历史上的今天
今天是:2025年01月23日(星期四)
2020年01月23日 | 使用stm32的ADC得到准确的电压
2020-01-23 来源:eefocus
一、引脚多一点的stm32单片机存在VREF-和VREF+引脚

由上面的供电图知道,如果存在VREF-和VREF+引脚,那么ADC是由这两个引脚供电的,ADC的采集电压范围为:VREF- 二、引脚少的单片机(48脚)没有引出VREF-和VREF+引脚 VREF-和VREF+引脚在单片机内部与VDDA和VSSA连在一起,因为不像上面单独给VREF+一个稳压源,因此可能存在供电电压不稳的问题。于是需要一些方法来对转换结果进行矫正。 ADC的通道17就是单片机内部的一个稳压源。可以读取它的数据来进行矫正。 该稳压源电压为1.16V到1.24V,精度不是很准确,要求不高,可以凑合着用。 具体使用方法是:增加一个通道17的采集(如本来要采集2个通道,现在采集3个通道),把通道17的测量数值记为ADrefine,目标通道测量数值为ADchx,则目标电压为: Vchx = Vrefine* (ADchx/ADrefine),其中Vrefine为参照电压=1.20V。 程序上: 在STM32提供的库函数中,如果要开启内部参考电压功能,使用的库函数和开启温度内部温度传感器的函数是一样的,只是在后面采集ADCx_Channel_x通道的时候不同而已。开启函数为: ADC_TempSensorVrefintCmd(ENABLE); 注:必须设置TSVREFE位激活内部通道:ADCx_IN16(温度传感器)和ADCx_IN17(VREFINT)的转换。 关于操作源码,可以参考正点原子不完全手册 第二十一章 内部温度传感器实验,对于内部电压值的测量和温度传感器的方法是一样的,只是使能的ADC通道不一样,其他都是一样的,所以,可以直接参考。 三、引脚少的单片机(48脚)没有引出VREF-和VREF+引脚(方法二) 在某些stm32单片机中还存在VREFINT_CAL(直接在数据手册中搜索VREFINT_CAL) 这个值是ST在出厂测试时,25度,VDDA电压3V,读通道17的数值。我们知道引脚少的单片机VREF+与VDDA是连在一起的,因此当参考电压为3V,25度,ADC测量1.2V的结果就是VREFINT_CAL。这样我们可以测量通道17的数值来计算VDDA的电压: 比如:参考电压为3V,25度,ADC测量1.2V的结果VREFINT_CAL=100,现在我读通道17的数值是200,因为测量对象一直是稳压源1.2V,可是测量数值翻倍了,那肯定是参考电压折半了嘛。 这样相当于我能测量参考电压大小,于是就能计算目标电压大小:(把上面的式子代入) 四、采样时间会影响采样精度 因为ADC的采样需要一定的电流大小,因此外部阻抗的大小会影响采样的时间。阻抗越大,电流越小,需要采样时间越长。




上一篇:STM32定时器的TRGO信号
史海拾趣
|
来源:窗户纸 http://www.getproject.com.cn/post/98.html 机器人,听起来挺神秘的,在大多数科幻电影和文学作品中,机器人通常无所不知,无所不能,跟人类相比起来,简直就是完美无瑕了。因此,作品中的机器人,要么是人类的好朋友, ...… 查看全部问答> |
|
_delay_ms()这个延时到底有多准啊? 如果用计数器TNCT0计数,TNCT0的初始值为55,跳到255后溢出中断, 选择8分频的时钟源,F_CPU= 16M,10ms的时间TNCT0的溢出次数应该是100次 即TNCT0跳了100*(255-55)= 20000次。 问: _ ...… 查看全部问答> |
|
现在刚开始接触FPGA不久,看了很长时间论坛了,也学习了Verilog,试着学习应用quartusii和modelsim,现在依旧感觉没有多大进步,好像根本还没有入门,简单的仿真还能进行,遇到复杂点的,比如几个模块联合编译仿真就总是仿真失败,也没有找到原因! ...… 查看全部问答> |
|
【 信号处理】基于DSP+FPGA+ASIC的实时红外图像处理系统 随着红外焦平面阵列技术的快速发展,红外成像系统实现了高帧频、高分辨率、高可靠性及微型化,在目标跟踪、智能交通监控中得到了越来越多的应用,并向更加广泛的军事及民用领域扩展。实时红外图像处理系统一般会包括非均匀校正、图像增强、图像分 ...… 查看全部问答> |
|
有幸得到一本《MCU工程师炼成记》 第一章 1.1 把iPhone变成一台心电图仪 文章十分精彩,利用右声道作为MSP430系统电源输出,左声道和麦克风作为信号输出和输入,麦克风作为输入好理解。 感觉耳机左右声道的输出信号应该是一致的,那 ...… 查看全部问答> |




