在
电子电路设计与应用中,模拟 - 数字
转换器(ADC)是极为关键的元件,它能够将模拟信号转换为数字信号,从而便于
微控制器进行处理。
STM32 微控制器内置的 ADC 具有重要的应用价值,然而很多使用者在长期使用过程中,并未深入了解其内部原理以及如何获得精度。今天,我们将基于 ST 的文档,为大家详细整理分享 STM32 的 ADC 实现采样的相关知识。
STM32 微控制器中内置的 ADC 采用了逐次逼近寄存器(SAR)原则,分多步执行转换操作。转换步骤的数量与 ADC 转换器的位数相等,每个步骤都由 ADC 时钟驱动,且每个 ADC 时钟会从结果到输出产生一位。其内部设计基于切换电容技术。
下面我们通过一个 10 位 ADC 示例,来详细介绍 SAR 切换电容 ADC 的基本原理,同时给出带数字输出的 ADC 基本原理图。

在采样状态下,电容会充电至输入电压 VIN。具体操作是,
开关 Sa 切换至 VIN,并且在采样期间,开关 Sb 闭合。这样,电容就能够获取输入电压的值。

当进入保持状态时,输入被断开,电容将保持之前采样得到的输入电压。此时,开关 Sb 打开,然后开关 S1 - S11 切换至接地,同时开关 Sa 切换至参考电压 VREF。

- 个逼近步骤:开关 S1 切换至参考电压 VREF,此时将输入电压 VIN 与 VREF/2 进行比较。

- 后续比较步骤
- 如果有效位(MSB)为 0,那么接下来将与 ?VREF 进行比较,同时开关 S1 切换回接地,开关 S2 切换至 VREF。

- 如果有效位(MSB)为 1,那么接下来将与 ?VREF 进行比较,开关 S1 保持接地,开关 S2 切换至 VREF。

后续将重复上述步骤,直到得到有效位(LSB)为止。我们可以简单地将这个过程理解为二分法,即逐次进行输入电压与参考电压的比较。首次是与 VREF/2 进行比较,后续的比较则根据上次的比较结果来决定。如果 MSB = 1,则与 ?VREF 比较;如果 MSB = 0,则与 ?VREF 比较。之后还会依次决定与 1/8VREF、3/8VREF、5/8VREF、7/8VREF 之一进行比较,如此循环,直到输出有效位。