跳到主要内容

05 ADC

up的视频讲解

先用二分比较理解模数转换,再看采样电容、转换时间,以及数据如何交给程序。

1 ADC 要解决什么问题​

ADC 是模数转换器,把输入电压转换成数字结果。GPIO 输入回答“高还是低”,ADC 则帮助我们进一步回答“电压大约是多少”。

课程先分析一个时刻的电压如何转换,再把这个过程扩展到连续采集。12 位结果有 4096 种编码,范围为 0~4095。

2 逐次逼近:每次确定一位​

从一半参考电压开始比较​

把未知输入与参考电压的一半比较,就可以确定它位于上半区还是下半区;然后只在选中的范围内继续二分。

每比较一次,剩余的不确定范围缩小一半。
每比较一次,剩余的不确定范围缩小一半。
  1. 先试探最高位,对应半量程。
  2. 根据比较结果保留或清除这一位。
  3. 试探下一位,步长减半。
  4. 重复这个过程,直到确定全部位。

这里的“减半”指的是下一次试探的步长减半,不是每次把当前输出电压整体加倍或减半。

从高位到低位,权重依次为 1/2、1/4、1/8……
从高位到低位,权重依次为 1/2、1/4、1/8……

12 次逐位判定形成 12 位结果,这就是逐次逼近的基本思路。

3 电容阵列怎样完成采样与比较​

本课用电容阵列 DAC、比较器与逐次逼近寄存器构成的模型解释 SAR ADC。它与上一课用来理解 DAC 的电阻网络不同。

先找到电容阵列、开关、比较器和结果保存部分。
先找到电容阵列、开关、比较器和结果保存部分。

采样:先把输入电压保存下来​

采样阶段,输入信号通过开关给电容充电。电容保存的电荷与电压有关,可以用 Q = C × V 理解。

采样阶段建立充电通路,把这一时刻的输入保存在电容上。
采样阶段建立充电通路,把这一时刻的输入保存在电容上。

比较:切换参考连接,判断保留哪一位​

采样结束后切换开关,利用电荷守恒分析节点电位。最高权重对应半量程,后续权重依次减半;比较器给出判断,逐次逼近逻辑据此保留或清除当前试探位。

从总电荷不变出发,推导第一级比较的节点电位。
从总电荷不变出发,推导第一级比较的节点电位。
比较结果被逐位记录,最后形成完整的转换结果。
比较结果被逐位记录,最后形成完整的转换结果。

把电路按“采样、比较、保存结果”三个阶段阅读,就不必同时记住所有开关状态。

4 把转换结果与时间算清楚​

数字结果怎样对应电压​

理想 12 位量化模型中,一个量化间隔约为参考电压范围的 1/4096。参考下限为 0 V 时,可用下面的关系理解每一位的权重:

一个量化间隔 ≈ Vref ÷ 4096

量化结果表达的是一个有限宽度的电压区间,不是无限精确的电压值。实验中的换算还需要结合实际参考电压和所采用的标定关系。

一次转换要多久​

总时间分为采样阶段和后续转换阶段。
总时间分为采样阶段和后续转换阶段。

对于课程芯片,转换时间按下面的关系计算:

转换时间 = (采样周期数 + 12.5) ÷ ADC 时钟频率

采样时间决定电容有多久跟随输入。它过短时,输入阻抗和充电过程可能使结果尚未稳定;延长采样时间则会降低连续转换的速度。

在满足器件条件时,14 MHz 时钟与 1.5 周期采样对应 1 μs 转换时间。
在满足器件条件时,14 MHz 时钟与 1.5 周期采样对应 1 μs 转换时间。

这里的时钟指 ADC 工作时钟,需要从 RCC 的 ADC 分频路径获得,不能直接使用 CPU 的 72 MHz。实际设置应同时满足数据手册对 ADC 时钟和输入源阻抗的要求。

5 从通道到数据寄存器​

沿输入通道、多路选择、转换器、结果寄存器的路径阅读。
沿输入通道、多路选择、转换器、结果寄存器的路径阅读。

输入通道先由多路选择器送入转换器。规则组按配置完成常规转换;注入组用于需要更高响应优先程度的转换任务,并有相应的结果寄存器。

结果产生后,可以由 CPU 读取,也可以在支持的通路中交给 DMA 搬运。模拟看门狗则根据设定的上下限检查结果,帮助发现超出范围的输入。

下一节实验沿着“采样值 → 电压 → 传感器物理量”的顺序,处理光照、温度与麦克风信号。