一、引脚多一点的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信号
下一篇:stm32影子寄存器、预装载寄存器
推荐阅读最新更新时间:2024-11-06 19:36
设计资源 培训 开发板 精华推荐
- EVAL-ADF4252EBZ2,ADF4252 双路小数/整数频率合成器评估板
- 使用 Microchip Technology 的 LX8940 的参考设计
- 使用 BFP405 的低噪声放大器在 1.9GHz 下显示出良好的噪声系数性能
- AL5811 60V 线性、75mA 可调电流 LED 驱动器的典型应用,用于低侧 LED 串抽头
- 使用 ROHM Semiconductor 的 BD45265 的参考设计
- LM2904DMR2G 维恩桥振荡器的典型应用
- MCP1603 同步降压稳压器的典型应用电路,用于 3 节镍氢电池至 1.2V @ 500 mA 应用
- LT3066IMSE-3.3 电流监视器的典型应用电路
- TPS5430单电源转正负双电源模块
- 适用于工业应用的 C8051F520A MCU 的 C8051F530ADK、8051 开发系统