你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32供电系统及内部参照电压(VREFINT)使用及改善ADC...

[复制链接]
STMCU-管管 发布时间:2020-11-9 13:39

4 L% X7 W% O" s7 l' x/ O$ L& ~

2 \- r2 K- N' T' D' x0 [3 O
. Q, R# d8 h; t* k/ o% M  v

; r& ~8 l; |) U* `问题
& l& R. {! h/ E0 c- S( A  w  今天在使用 STM32F407 的 ADC 时遇到一个问题:ADC 的参考电压都是通过 Vref+ 引脚提供的并作为ADC转换器的基准电压(部分 MCU 没有 Vref+ 引脚)。当我们使用的 Vref+ 是直接取自用 VDD 电压时,当 VDD 电压波动比较大时或稳压性能比较差时,转换结果自然就不准确了!
& `: o$ ?+ \" F2 L) p2 S
供电方案
% ?' o4 B* ]/ V2 @' Z2 F7 u6 D* S  MCU 的参考手册都会有一章节单独介绍 MCU 的电源管理,针对不同的 MCU(封装不同等)其外部电源如何连接也是有要求的,我们在 MCU 上一般都会发现如下引脚:

. K9 l6 k2 R2 Q6 C5 J0 l9 bVDD = 2.0 to 3.6 V: external power supply for I/Os and the internal regulator. Provided externally through VDD pins.7 {$ }. d4 m# C9 t: L" S5 y
VSSA, VDDA = 2.0 to 3.6 V: external analog power supplies for ADC, reset blocks, RCs and PLL (minimum voltage to be applied to VDDA is 2.4 V when the ADC is used). VDDA and VSSA must be connected to VDD and VSS, respectively.' i" Y7 ^& B, {1 ]  `7 L) Q! L
VBAT = 1.8 to 3.6 V: power supply for RTC, external clock 32 kHz oscillator and backup registers (through power switch) when VDD is not present.* O, ^/ T4 Y" @9 l2 T1 R" N! _
VREF+: 正模拟参考电压输入(部分芯片没有个引脚)
5 K* B+ V% h/ h; G# ?! Y2 V5 z下面以 STM32F1 和 STM32F2 的 MCU 比较来具体看看4 v, }  U+ Q) v( J0 Z: h, y/ i
供电架构如下图所示:/ h9 l. p  ]8 U* Y9 E  t
21.png
) r, _+ l) {& i! ?# O" Q$ b不同的供电所管理的供电域
& D' R7 j! Y5 d$ M' t2 r2 ]9 S 22.png
' ^. z7 b" L! }" e# d, Q/ I供电电压/ Z3 d- b$ K( B- j8 y) E* Y# q
23.png

1 _) U! x: v/ ?& S( C* EVCC: C=circuit 表示电路的意思, 即接入电路的电压
; [4 \& y9 N! F" Y. [; Q( s+ wVDD: D=device 表示器件的意思, 即器件内部的工作电压;2 Y" o0 K( F& y$ W6 b( x
VSS: S=series 表示公共连接的意思,通常指电路公共接地端电压
* f; C6 X, l7 w5 [stm32 的 VDDA 和 VSSA 不能悬空,复位模块和RC振荡器需要 VDDA 和 VSSA。否则无法下载程序!  b$ R; Q! J5 _/ ]# c
电源引脚连接
+ B3 l, v" ~. Z' `! k+ J- UVDD 引脚外接去藕电容连到外部稳压源: ]/ Y! Y$ `: f$ l5 t
一个最小值4.7uF、典型值10uF的钽电容或陶瓷电容
6 Y7 x5 n/ l6 |每个VDD引脚再接一个100nF的陶瓷电容
! u+ `- R) z! C$ LVBAT引脚外接电池。若没有电池,推荐通过100nF的陶瓷电容连到VDD引脚9 G; y- u+ J/ W3 b8 Q
VDDA引脚外接两个去藕电容, P: ~3 `; R' N/ g6 U1 f+ S5 |
一个100nF的陶瓷电容
4 T; L, `( H6 a! |( _" O! G. e( S5 O一个1uF的钽电容或陶瓷电容' O# u# x9 A9 E9 P3 f- I# }5 C% l: [
VREF+引脚连到VDDA
* j' F& z( F. y" T8 W7 B4 `若有单独的参考稳压源连接
5 e! c5 e  A4 G9 i" E; L, F) U7 I一个100nF和1uF的电容
: g% F3 N" X0 x+ G3 s) [' B$ i# }0 |VCAP1 和 VCAP2 通常只各连接一个2.2uF的电容* a/ a' K( M0 A
特殊封装上,可外接1.2V电源来旁路内部主电压调节器
! [, R; P1 e4 N+ ^1 o 24.png
. L6 M8 [0 r  R- dADC的参考电压
7 k' M1 @) E9 b+ g3 s: O  在部分MCU的封装中,会有单独的一个Vref引脚
$ [9 C4 }0 y8 i& V% e1 G6 o( x 25.png
9 Z; ]$ d5 h( D& Q我们可以把外部基准电压芯片(例如REF3133,输出的电压是标准的3.300V)连接到Vref引脚。一般100脚的STM32 MCU(如上图STM32F4)都有VREF引脚。$ A" q9 F5 c# t% t9 d
  对于100脚以下的芯片,STM32没有把VREF引脚引出来,所以,我们只能把基准电压芯片连接到VDDA引脚。注意,STM32单片机上面有好多电源引脚,其中有若干VDD引脚,只有一个 VDDA 引脚,VDDA 引脚就是模拟供电引脚。不过,需要注意,VDDA的电压不是随便定义的。例如,STM32F051系列单片机就规定,VDDA必须要大于或者等于VDD才可以正常工作,所以这时候,最好是给单片机3.0V供电,再给VDDA采用一个3.3V的基准电压芯片供电。
& h8 A# p" K$ W- [: w4 m 26.png

- ~3 q2 H+ N# S5 E( E$ s1 }9 S内部参照电压
5 I  h; Q- q# k% ^9 C  以上两种方法都需要外加基准电压芯片,在实际应用中,往往是VDDA引脚和VDD引脚连在一起,都是由电源芯片供电。这个时候如果要提高ADC转换准确性该怎么办呢?
2 Y" f7 O$ T5 Y$ I6 F  在每个MCU的内部,都有一个叫内部参照电压的东西。关于该部分的介绍,位于对应 MCU 的 数据手册 中(不同MCU的 数据手册 介绍有多又少,同样是STM32F0的 数据手册 介绍更为详细),如下图:
( V# T* i* P# ]; Z9 I% C# g$ o" u 27.png
3 i! T8 J3 o! h+ [' {内部参考电压在芯片出厂时已经校准过精度了!且不同的MCU是有可能不同的!其厂内校准过程是在外部供3.3V电源,将采样内部参考的ADC值写入到固定的内存中去(如上地址,不同MCU具体位置可能不同)!而我们就可以利用这个来校准自己的ADC。5 l% I( y8 h3 c
  STM32的ADC内部都有一个参考电压引脚,可以通过配置,把这个脚连接到ADC输入引脚,是内部连接。然后再计算实际的VDDA值。MCU不同具体链接的ADC引脚也是不同的。下面是STM32F4芯片的参考手册的说明:+ H$ C# D$ [! c& s. e
28.png
9 X. P! M3 m1 j  U, h, s+ n8 X+ r这样我们就可以用ADC实际采样,得到VREFINT的采样值,然后使用上面的校准值进行计算即可!
0 |1 @  B7 i7 q  ]  关于使用内部参照电压的具体方法,只有在STM32F0x芯片的参考手册中才能找到,其他MCU的参考手册都是很简单的几句说明。' [! t4 d4 [/ p* q0 s# B( ?  h
29.png
7 j% }5 R6 V; r& i' {6 K; f更进一步,在计算其他通道的时候,我们就可以使用以上计算的 VDDA 来作为基准了!6 R0 V2 P, Y# `! b1 {) T
30.png
5 u( B  i. w/ y) h需要特殊注意的是,在不同系列的芯片中,以上是有区别的,例如以下是 STM32L476 系列的
, K2 a# @* K! T- V5 N) {7 c6 r6 [ 31.png
! G. ]3 T% I3 }& R* q; z" w
ADC转换时间
* X# C8 c; w1 y" }  R* D在使用上面的方法时,必须要特殊注意ADC转换时间。否则采样值将出现较大偏差!先看看每个通道的总转换时间公式:每个通道总的转换时间 = TSampling + Tconversion

) \# `5 M0 X' ]& X6 B* u2 B  ETSampling可配置:SMP@ADC_SMPRx,需要和外部电路的输入阻抗匹配(在对应的数据手册中会有详细说明)9 R: M! _+ L! d- Q% k5 a
32.png
1 y& j3 J; K) CTconversion取决于转换精度:
RES@ADC_CR1,降低转换精度可提高转换速度
0 `7 `; o+ \6 I6 F" | 33.png , i. @% D+ Z. I. E+ ]6 f" C
ADC总转换时间为:Ttotal = (SMP + RES) * ADCCLK
- V0 j( O( o% l. I4 ]! Y
SMP:采样时间,需要和外部输入阻抗搭配
5 l0 J& f6 J4 z+ r/ M6 mRES:转换精度,降低精度可提高速度; Y2 c: ?" S, M% q; P0 @
ADCCLK:ADC模块工作时钟
2 D/ ]9 L7 \  A. h9 JADCCLK = APB2时钟分频(2,4,6,8)5 V) I( U2 d: r# a. u2 D; |
ADCCLK最大值还受限于工作电压' U: X  s0 {& `) q: F$ U
VDDA=1.8~2.4V fADCmax = 15MHz
. v# ?, F* {2 w5 \% ?0 vVDDA=2.4~3.6V fADCmax = 30MHz
4 j" S& ?3 N& }# H* A: I为什么要说ADC采样时间?因为上一节所讲的方法,对于采样时间是有限制的!!!

) z( ]) G0 Q8 R2 D2 O1 f1 u1 N温度传感器
; c& F( ~' V: G+ D9 e 34.png
! `4 w  M* R2 @Vbat
( y/ z+ P0 C3 Z& f6 r4 ~ 35.png + `" ?2 E% h  S0 C
VREFINT
7 H7 W8 Y$ ?' g# Z 36.png
! K" o5 y" |" ?- G# D% O9 J关于采样时间需要和外部输入阻抗搭配,参看下图和对应的 数据手册
4 Y/ @  ]- d2 a9 _! S 37.png

: e  b/ w# v, N+ Y: N7 M3 T9 p" O+ B6 f9 v4 F
" b& |+ x5 ~% h" G
赞 收藏 2 评论0 发布时间:2020-11-9 13:39

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版