笔记:STM32的ADC参考电压与参照电压(电源监测) |
您所在的位置:网站首页 › stm32adc精度怎么样 › 笔记:STM32的ADC参考电压与参照电压(电源监测) |
STM32的ADC 电压输入范围为: VREF- ≤ VIN ≤ VREF+。一般设计的时候会把VREF-和地相连, VREF+和VDDA相连。若MCU供电电压为3.3V,则ADC输入电压范围为0~3.3V。此时ADC模块的参考电压即为MCU供电电压。 系统如果使用电池供电,想要使MCU供电电压稳定,就要加LDO等对系统电源进行处理。如果直接使用电池供电,那么MCU的供电电压会随着电池的电量损耗而降低,此时ADC模块的参考电压已经改变,那么通过AD转换求出来的电压值也就不准确了,此时就达不到对系统电源监测的目的。 STM32内部都有个相对稳定,且不受MCU供电电压变化影响的参照电压,在内部连接至ADC1的输入通道17。 以下资料来自STM32L151手册 The internal voltage reference (VREFINT) provides a stable (bandgap) voltage output for the ADC and Comparators. VREFINT is internally connected to the ADC_IN17 input channel. The precise voltage of VREFINT is individually measured for each part by ST during production test and stored in the system memory area。 根据数据手册中的描述,VREFINT的典型值为1.224V,最小1.202V,最大1.242V。不同的系列的MCU,值也会有所差别,可以查看手册得出: 对于某一个参考电压来说,如果能测得1.224V所对应的AD转换值(通过ADC1通道17),假设记为Vrefint_ad ,那参考电压VDD对应的AD转换值自然是此时该AD的满量程值FULL_SCALE(12位ADC为4096,10位ADC为1024)。不管VDD怎么变动,某时刻的VDD对应的满量程值FULL_SCALE跟内部基准电压VREFINT的AD转换值Vrefint_ad 的线性比例关系总是存在的。即有: VDD:FULL_SCALE = 1.224:Vrefint_ad 则:VDD = (1.224/Vrefint_ad)*FULL_SCALE这样就可以在使用电池直接供电的情况下求出MCU供电电压,同理,也可以测出在电压波动情况下其他待测点的电压。若待测点AD转换值记为Vtemp_ad,待测点电压记为Vbatt: Vbatt = Vtemp_ad*VDD/4096; = Vtemp_ad*(1.224/Vrefint_ad)*4096/4096; = 1.224*Vtemp_ad/Vrefint_ad;如果使用库函数,则需要调用如下函数来使能内部温度传感器和参照电压,温度传感器内部连接至ADC1的通道16,参照电压内部连接至ADC1的通道17。 ADC_TempSensorVrefintCmd(ENABLE);参考:利用ST MCU内部基准参考电压监测电源电压及其它 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |