嵌入式学习笔记 - STM32 ADC,多重转换,内部参考电压,
一 多个ADC器件,多重转换速率
每个型号MCU通常由多个ADC器件,比如STM32F4有三个ADC器件,每个ADC器件有一个最大转换速率,一般为25Mhz,即一个ADC器件每秒最多转换25M次,两次转换之间需要有时间间隔,但是不同ADC器件之间没有转换间隔要求,即一个ADC器件转换完成,可以立即开始下一个ADC转换器件,这也叫做多重转换,这时相当于转换速率提升到25*3=75M。
二 内部参考电压 VREFINT
①内部参考电压的大小以及连接通道:
STM32内部有一个参考电压,Vrefint, 这个参照电压的典型值是1.20V,最小值是1.16V,最大值是1.24V(-40~85度)。这个参考电压不随外部供电电压的变化而变化。
不同的芯片这个参考电压的范围不一样,如下面这个(STM32L475 datasheet):
STM32 的这个内部参考电压 VREFINT 通常接入到 ADC 内部的通道17。
②内部参考电压的作用:
通常情况下STM32的ADC模块采用Vref作为参考电压,Vref内部连接到Vdda,其实也就是供电电压vdd,加入采用的ADC是12位的,那么测得的电压值为:
Vchx=Vdd*(ADchx/4096)
但是在某些情况下,这个供电电压是不稳定的,不如外部干扰,电源波动,有可能随外部一些其他用电器工作使用的大电流而导致电压不稳定,还有可能MCU供电LDO转换的精度个别偏差较大。这时候依然用vdd=3.3V的定值做参考电压计算显然得出的值就会出现与实际电压偏差较大的问题。
而Vrefint的主要作用就是提供一个内部稳定的电压,这个电压不随外部供电电压的变化而变化,推测内部存在类似稳压二极管器件用来提供次参考电压,我们就可以用它来校正测量电压值从而提高准确性。首先采集并转换17通道ADC值ADrefint,然后采集实际所测量通道ADC值ADchx,那么通过公式
Vchx=VREFINT×(ADchx/ADrefint)
获得实际所测量电压值。