STM32的ADC简介

一、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芯片结构框图
  1. ADC框图

四、ADC基本结构

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

五、输入通道

六、转换模式

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

  1. ADC单通道
  • 单次转换,扫描模式失能:转换一次后停止,再次启动转换需重新触发;
  • 连续转换,扫描模式失能:转换一次后自动进入下一轮转换,只需在开始时触发一次;
  1. 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时钟周期。

相关推荐
智商偏低2 小时前
单片机之helloworld
单片机·嵌入式硬件
青牛科技-Allen3 小时前
GC3910S:一款高性能双通道直流电机驱动芯片
stm32·单片机·嵌入式硬件·机器人·医疗器械·水泵、
森焱森5 小时前
无人机三轴稳定控制(2)____根据目标俯仰角,实现俯仰稳定化控制,计算出升降舵输出
c语言·单片机·算法·架构·无人机
白鱼不小白5 小时前
stm32 USART串口协议与外设(程序)——江协教程踩坑经验分享
stm32·单片机·嵌入式硬件
S,D6 小时前
MCU引脚的漏电流、灌电流、拉电流区别是什么
驱动开发·stm32·单片机·嵌入式硬件·mcu·物联网·硬件工程
芯岭技术9 小时前
PY32F002A单片机 低成本控制器解决方案,提供多种封装
单片机·嵌入式硬件
youmdt9 小时前
Arduino IDE ESP8266连接0.96寸SSD1306 IIC单色屏显示北京时间
单片机·嵌入式硬件
嘿·嘘10 小时前
第七章 STM32内部FLASH读写
stm32·单片机·嵌入式硬件
Meraki.Zhang10 小时前
【STM32实践篇】:I2C驱动编写
stm32·单片机·iic·驱动·i2c
几个几个n12 小时前
STM32-第二节-GPIO输入(按键,传感器)
单片机·嵌入式硬件