STM32的工作电压(VDD )为2.0~3.6V,通过内置的电压调节器提供所需的1.8V电源,当主电源VDD 掉电后,通过VBAT 脚为实时时钟(RTC)和备份寄存器提供电源(下图为STM32F1**系列电源框架图,STM32基本大同小异)。
可以看到上图有VDD、VSS、VDDA、VSSA、VREF+等标识,这些是什么意思呢?有什么特点呢?如何看懂STM32系统的电源框架图呢?
首先对名词进行解析,如下所示:
VCC电路的供电正电压VDDD芯片的工作数字正电压
GND电路的供电负电压VSSD芯片的工作数字正电压
VDD芯片的工作正电压VREF+ADC基准参考正电压
VSS芯片的工作负电压VREF-ADC基准参考负电压
VDDA芯片的工作模拟正电压VBAT电池或其他电源供电
VSSA芯片的工作模拟负电压VEE负电压供电
为了提高转换的精确度,ADC使用一个独立的电源供电,过滤和屏蔽来自印刷电路板上的毛刺干扰,ADC的电源引脚为VDDA,独立的电源地VSSA,如果有VREF- 引脚(根据封装而定),它必须连接到VSSA,确保共地。
使用电池或其他电源连接到VBAT 脚上,当VDD 断电时,可以保存备份寄存器的内容和维持RTC的功能。
Vref管脚就是来做电压基准的。可以在外围电路上设置一个恒定的电压来接到这个管脚上就可以了
AD581JH 精密 10V电压基准源(民用级)TO-5
AD584JH 引脚设置输出电压基准源(民用级)TO-99
AD586JN 精密 5V电压基准源(民用级)DIP
AD587KN 精密 10V电压基准源(民用级)DIP
AD589JH 精密 1.235V电压基准源(民用级)H-02A
AD680JN 精密 2.5V电压基准源(民用级)DIP
这些都是常用的
stm32的供电电压在外部看来一般就是外设的3.3V供电,ADC的参考电压供电内核电压一般1.2-1.8V左右,但不需要自行引入STM32为了简化外围电路设计一般是不额外引入内核供电电源引脚,这样你只输入一路3.3V,其他电压由内部线性稳压获得。这与FPGA的设计不同,FPGA则一般需要1.21.8和3.3三路供电,stm32这种低成本的控制器不会设计成这么繁琐。但是说内部具体有多少电压区域,这个数据手册应该会有说明。。
从datasheet中可以看到内部基准出厂校准值储存在地址0x1ffff7ba~0x1ffff7bb
注意到该值是在VDDA=3.3V时测量得到.
读取校准值的过程是对该地址进行直接寻址:
我读到的VrefInt 值为1521,换算成电压:(1521/4095)*3.3V=1.226V.
因为Vref连接到ADC的通道17,用ADC对其进行采样得到当前系统电压下的值为1696,当前VDDA标称值为3V.用以上参数可以计算实际VDDA电压,原理如下
3.3V系统下,Vref电压为:
当前系统下,Vref电压为:
显然,两个算式应该相等,于是可以得到:
参考手册252页中有本方法的计算,有印刷错误,其中的.3V应该为3.3V
用万用表测量值为2.97V
可见该方法还是靠谱的.
本文标签:stm32的基准电压源