STM32的ADC简介

发布于:2025-06-05 ⋅ 阅读:(25) ⋅ 点赞:(0)

一、ADC简介

STM32的ADC是一种12位逐次逼近型模拟数字转换器。它具备18个通道,能够测量16个外部信号源以及2个内部信号源。各通道的A/D转换可以执行单次、连续、扫描或间断模式。转换结果可采用左对齐或右对齐的方式(12位)存储于16位数据寄存器中。

二、ADC特点

ADC(Analog-Digital Converter)即模拟-数字转换器,可将引脚上连续变化的模拟电压转换为存储于内存中的数字变量,从而搭建起模拟电路与数字电路之间的桥梁。该ADC为12位逐次逼近型,转换时间为1us。其输入电压范围为0~3.3V,转换结果范围为0~4095。拥有18个输入通道,可测量16个外部和2个内部信号源。具备规则组和注入组两个转换单元,且模拟看门狗能够自动监测输入电压范围。

STM32F103C8T6的ADC资源包括ADC1和ADC2,拥有10个外部输入通道。

12位代表ADC的分辨率,其数值范围为0~2^12-1;

1us表示从转换开始到产生结果所需的最短时间为1us,对应的AD转换频率为1MHz;

16个外部信号源即16个GPIO口,引脚可直接测量电压;

2个内部信号源分别是内部温度传感器(用于测量CPU温度)和内部参考电压(基准电压约为1.2V,不随外部供电电压变化,可用于校准外部引脚电压);

三、ADC功能图

  1. 逐次逼近型ADC芯片结构框图

2. ADC框图

四、ADC基本结构

从左侧来看,有18个信号源进入AD转换器,可选择16个规则组和4个注入组,转换完成的结果会存储于AD数据寄存器,其中规则组有1个,注入组有4个。触发数据转换的触发控制部分提供软件触发和硬件触发两种方式。右侧推动ADC逐次比较的时钟CLOCK来源于RCC时钟。模拟看门狗位于上方,用于监测转换结果的范围,一旦超出阈值便会申请中断。规则组和注入组转换完成后会产生EOC信号,会设置标志位,同时也可以申请中断。

五、输入通道

 六、转换模式

ADC可选择单次转换或连续转换,扫描或非扫描模式,它们的不同组合会产生四种模式。

1. ADC单通道

- 单次转换,扫描模式失能:转换一次后停止,再次启动转换需重新触发;

- 连续转换,扫描模式失能:转换一次后自动进入下一轮转换,只需在开始时触发一次;

2. ADC多通道

- 单次转换,扫描模式使能:ADC的多个通道按配置顺序依次转换,完成后停止,再次启动需重新触发;

    - 连续转换,扫描模式使能:ADC的多个通道按配置顺序依次转换,完成后继续下一轮,开始时触发一次即可。在扫描模式下,下一次的刷新会覆盖上一次的值,且可通过DMA传输数据。

七、触发控制

# 八、数据对齐

12位ADC转换器的转换结果为12位数据,但数据寄存器为16位,因此存在数据对齐问题。

1. 数据右对齐:十二位数据靠右,高位补0;

2. 数据左对齐:十二位数据靠左,低位补0;

九、转换时间

ADC的转换过程包括采样、保持、量化和编码四个步骤。

Tconv = 采样时间 + 12.5个ADC周期(采样时间是采样与保持的时间总和;12.5个ADC周期是量化与编码所需的时间)(ADC周期是从RCC分频而来的ADCCLK,最大值为14MHz)

当ADCCLK为14MHz,采样时间为1.5个ADC周期时:

Tconv = 1.5 + 12.5 = 14个ADC周期 = 1us

采样时间短可提高速度,采样时间长则能避免毛刺干扰。

十、校准

ADC具备内置自校准模式。校准可显著降低因内部电容器组变化导致的精度误差。校准过程中,每个电容器上都会计算出一个误差修正码(数字值),该码用于消除后续转换中每个电容器产生的误差。

建议每次上电后执行一次校准。

启动校准前,ADC需处于关电状态至少两个ADC时钟周期。


网站公告

今日签到

点亮在社区的每一天
去签到