在电子领域中,ADC(模拟 - 数字转换器)是极为关键的器件,它能将连续的模拟信号转换为离散的数字信号,广泛应用于各种电子设备中。然而,很多人在使用 ADC 时,往往没有深入探究其内部原理以及如何获得精度。今天,我们就基于 ST 的文档,来详细剖析一下 SAR ADC 的内部结构和工作原理。
STM32 微控制器中内置的 ADC 采用 SAR(逐次逼近)原则,分多步执行转换。转换步骤数等于 ADC 转换器中的位数,每个步骤均由 ADC 时钟驱动,每个 ADC 时钟从结果到输出产生一位。其内部设计基于切换电容技术。
下面的图展示了 ADC 的工作原理。这里仅以 10 位 ADC 为例,介绍了逼近的前面几步,但该过程会持续到 LSB(有效位)为止。


在采样状态下,电容充电至电压 VIN。此时,Sa 切换至 VIN,采样期间 Sb 开关闭合。

进入保持状态时,输入断开,电容保持输入电压。具体操作是,Sb 开关打开,然后 S1 - S11 切换至接地且 Sa 切换至 VREF。

- 个逼近步骤:S1 切换至 VREF,将 VIN 与 VREF/2 进行比较。

- MSB = 0 的情况:如果 MSB(有效位) = 0,则与 ?VREF 进行比较,S1 切换回接地,S2 切换至 VREF。

- MSB = 1 的情况:若 MSB = 1,则与 ?VREF 进行比较,S1 保持接地,S2 切换至 VREF。

后续会重复上述步骤,直到输出 LSB 为止。简单来说,这就是通过二分法逐次进行输入电压与参考电压的比较。首次与 VREF/2 比较,下次比较根据上次比较结果决定,如果 MSB = 1 则与 ?VREF 比较,如果 MSB = 0 则与 ?VREF 比较,之后再决定与 1/8VREF、3/8VREF、5/8VREF、7/8VREF 之一做比较,如此循环直至完成整个转换过程。