[STM32] SAR型ADC(逐次逼近型ADC)工作原理简介

一、概述

SAR全称为Successive Approximation Register(逐次逼近寄存器),当前STM32等MCU内置的ADC均为SAR型ADC。SAR型ADC采用逐位比对的串行逻辑完成模拟电压到数字量的转换,非常适合传感器采集、电压检测等中低速场景。

二、结构构成

由四大核心硬件模块构成,各模块作用如下:

  1. 采样保持电路:包含模拟开关与采样电容,负责采集并锁住瞬时模拟电压,保证转换过程中电压稳定不变;
  2. 逐次逼近寄存器:从最高位到最低位逐位试探,确定每一位二进制数值;
  3. 内置DAC电路:根据SAR的猜测值,输出对应的标准参考电压;
  4. 电压比较器:对比输入采样电压与DAC输出参考电压的大小,判定当前猜测位是0或1;

三、工作流程(以12位为例)

  1. 采样保持阶段:输入电压对内部采样电容充电,电容电压逐渐跟随输入电压变化。经过固定的采样时钟周期(STM32最小为3个ADC时钟)后,开关断开,电容锁定当前瞬间的模拟电压。
  2. 逐次逼近转换阶段(模拟转数字)
  • SAR寄存器发起猜测:猜测当前判定位为1,生成一组临时用于比较的12位二进制值
  • 内置DAC输出基准电压:根据SAR给的二进制值,转换为标准模拟参考电压
  • 电压比较器完成比对:一端读取采样保持电路锁存的真实输入电压,另一端比对DAC输出的基准电压,判定大小关系
  • SAR锁存最终位值:根据比较器的比对结果,确定该位最终的0/1状态
  • 循环迭代:依次切换下一位,重复上述流程,直到12位二进制数值全部判定成功。

四、举例说明

  • ADC分辨率:12位(数值范围0~4095)
  • 参考电压:3.3V
  • 最小分辨率:3.3V/4095 = 0.81mV
  • 待测输入电压:2.5V

第1步:判定Bit11

预置当前位为1,临时二进制值为1000 0000 0000,内置DAC根据此值转换为基准电压1.65V。电压比较器对比:待测输入电压2.5V > 1.65V,所以Bit11 置1。

第2步:判定Bit10

保留Bit11为1,预置Bit10为1,临时二进制值为1100 0000 0000,DAC转换为基准电压2.475V,电压比较器对比:待测输入电压2.5V > 2.475V,所以Bit10 置1。

后续操作都同上,每完成1位判定,就锁定该位二进制值,缩小一次电压区间,12位对应12个ADC时钟周期。最终运算结果为:1100 0001 1111,对应10进制3103。

相关推荐
智闲电子设计1 小时前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech2 小时前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ3 小时前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡4 小时前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城5 小时前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡6 小时前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生6 小时前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程
离凌寒6 小时前
一、对stm32mp157配置freertos后,任务挂掉无法启动问题总结
stm32·单片机·嵌入式硬件
消失的旧时光-19438 小时前
7-fix补充篇:机器人为什么需要多级控制仲裁?Cloud、Linux 与 MCU 分别管什么
linux·单片机·机器人·仲裁机制·安全保护机制
Hello_Damon_Nikola9 小时前
CH573从入门到精通
c语言·开发语言·单片机·嵌入式硬件