一、ADC简介
Analog-to-Digital Converter的缩写。指模/数转换器或者模拟/数字转换器。
STM32ADC简介
STM32 拥有 1~3 个 ADC,ADC1和ADC2紧密耦合,可在双模式下工作(ADC1为主模式)。每个ADC由一个12位逐次逼近的模数转换器组成。每个ADC有多达19个多路复用通道。各种通道的A/D转换可以在单一、连续、扫描或不连续模式下执行。ADC的结果是存储在左对齐或右对齐的16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。
ADC工作框图(根据STM32F1的ADC框图介绍STM32L4系列的ADC,大部分相同,有些寄存器有所变动)
下面根据上图一一介绍
STM32L4ADC寄存器表
1.电压输入范围:
ADC输入范围为: VREF- <= VIN <= VREF+。由 VREF-、VREF+ 、VDDA 、VSSA、这四个外部引脚决定。一般把 VSSA 和 VREF-接地,把 VREF+和 VDDA 接 3V3,得到ADC 的输入电压范围为:0~3.3V。如果我们想让输入的电压范围变宽,去到可以测试负电压或者更高的正电压,我们可以在外部加一个电压调理电路,把需要转换的电压抬升或者降压到 0~3.3V,这样 ADC 就可以测量了。不要直接将高于 3.3V 的电压接到 ADC 管脚上,那样将可能烧坏芯片。
2.通道转换顺序
信道选择(SQRx、JSQRx)
每个ADC最多有19个多路复用通道:5个来自GPIO板的快速模拟输入(ADCx_INP/INN[1..5]),来自GPIO PADS的多达11个慢模拟输入(ADCx_INP/INN[6..16])
ADC连接到以下内部模拟输入:内部参考电压(VREFINT)连接到ADC1_INP0/INN0。内部温度传感器(VTS)连接到ADC1_INP17/INN17。vbat监控通道(vbat/3)连接到ADC1_INP18/INN18。DAC1内部通道连接到ADC1_INP/INN17。
规则通道组序列寄存器有 3 个,分别是 SQ