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

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

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




问题
  今天在使用 STM32F407 的 ADC 时遇到一个问题:ADC 的参考电压都是通过 Vref+ 引脚提供的并作为ADC转换器的基准电压(部分 MCU 没有 Vref+ 引脚)。当我们使用的 Vref+ 是直接取自用 VDD 电压时,当 VDD 电压波动比较大时或稳压性能比较差时,转换结果自然就不准确了!

供电方案
  MCU 的参考手册都会有一章节单独介绍 MCU 的电源管理,针对不同的 MCU(封装不同等)其外部电源如何连接也是有要求的,我们在 MCU 上一般都会发现如下引脚:

VDD = 2.0 to 3.6 V: external power supply for I/Os and the internal regulator. Provided externally through VDD pins.
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.
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.
VREF+: 正模拟参考电压输入(部分芯片没有个引脚)
下面以 STM32F1 和 STM32F2 的 MCU 比较来具体看看
供电架构如下图所示:
21.png
不同的供电所管理的供电域
22.png
供电电压
23.png

VCC: C=circuit 表示电路的意思, 即接入电路的电压
VDD: D=device 表示器件的意思, 即器件内部的工作电压;
VSS: S=series 表示公共连接的意思,通常指电路公共接地端电压
stm32 的 VDDA 和 VSSA 不能悬空,复位模块和RC振荡器需要 VDDA 和 VSSA。否则无法下载程序!
电源引脚连接
VDD 引脚外接去藕电容连到外部稳压源
一个最小值4.7uF、典型值10uF的钽电容或陶瓷电容
每个VDD引脚再接一个100nF的陶瓷电容
VBAT引脚外接电池。若没有电池,推荐通过100nF的陶瓷电容连到VDD引脚
VDDA引脚外接两个去藕电容
一个100nF的陶瓷电容
一个1uF的钽电容或陶瓷电容
VREF+引脚连到VDDA
若有单独的参考稳压源连接
一个100nF和1uF的电容
VCAP1 和 VCAP2 通常只各连接一个2.2uF的电容
特殊封装上,可外接1.2V电源来旁路内部主电压调节器
24.png
ADC的参考电压
  在部分MCU的封装中,会有单独的一个Vref引脚
25.png
我们可以把外部基准电压芯片(例如REF3133,输出的电压是标准的3.300V)连接到Vref引脚。一般100脚的STM32 MCU(如上图STM32F4)都有VREF引脚。
  对于100脚以下的芯片,STM32没有把VREF引脚引出来,所以,我们只能把基准电压芯片连接到VDDA引脚。注意,STM32单片机上面有好多电源引脚,其中有若干VDD引脚,只有一个 VDDA 引脚,VDDA 引脚就是模拟供电引脚。不过,需要注意,VDDA的电压不是随便定义的。例如,STM32F051系列单片机就规定,VDDA必须要大于或者等于VDD才可以正常工作,所以这时候,最好是给单片机3.0V供电,再给VDDA采用一个3.3V的基准电压芯片供电。
26.png

内部参照电压
  以上两种方法都需要外加基准电压芯片,在实际应用中,往往是VDDA引脚和VDD引脚连在一起,都是由电源芯片供电。这个时候如果要提高ADC转换准确性该怎么办呢?
  在每个MCU的内部,都有一个叫内部参照电压的东西。关于该部分的介绍,位于对应 MCU 的 数据手册 中(不同MCU的 数据手册 介绍有多又少,同样是STM32F0的 数据手册 介绍更为详细),如下图:
27.png
内部参考电压在芯片出厂时已经校准过精度了!且不同的MCU是有可能不同的!其厂内校准过程是在外部供3.3V电源,将采样内部参考的ADC值写入到固定的内存中去(如上地址,不同MCU具体位置可能不同)!而我们就可以利用这个来校准自己的ADC。
  STM32的ADC内部都有一个参考电压引脚,可以通过配置,把这个脚连接到ADC输入引脚,是内部连接。然后再计算实际的VDDA值。MCU不同具体链接的ADC引脚也是不同的。下面是STM32F4芯片的参考手册的说明:
28.png
这样我们就可以用ADC实际采样,得到VREFINT的采样值,然后使用上面的校准值进行计算即可!
  关于使用内部参照电压的具体方法,只有在STM32F0x芯片的参考手册中才能找到,其他MCU的参考手册都是很简单的几句说明。
29.png
更进一步,在计算其他通道的时候,我们就可以使用以上计算的 VDDA 来作为基准了!
30.png
需要特殊注意的是,在不同系列的芯片中,以上是有区别的,例如以下是 STM32L476 系列的
31.png

ADC转换时间
在使用上面的方法时,必须要特殊注意ADC转换时间。否则采样值将出现较大偏差!先看看每个通道的总转换时间公式:每个通道总的转换时间 = TSampling + Tconversion

TSampling可配置:SMP@ADC_SMPRx,需要和外部电路的输入阻抗匹配(在对应的数据手册中会有详细说明)
32.png
Tconversion取决于转换精度:
RES@ADC_CR1,降低转换精度可提高转换速度
33.png
ADC总转换时间为:Ttotal = (SMP + RES) * ADCCLK

SMP:采样时间,需要和外部输入阻抗搭配
RES:转换精度,降低精度可提高速度
ADCCLK:ADC模块工作时钟
ADCCLK = APB2时钟分频(2,4,6,8)
ADCCLK最大值还受限于工作电压
VDDA=1.8~2.4V fADCmax = 15MHz
VDDA=2.4~3.6V fADCmax = 30MHz
为什么要说ADC采样时间?因为上一节所讲的方法,对于采样时间是有限制的!!!

温度传感器
34.png
Vbat
35.png
VREFINT
36.png
关于采样时间需要和外部输入阻抗搭配,参看下图和对应的 数据手册
37.png



收藏 评论0 发布时间:2020-11-9 13:39

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版