缘起
最近项目中用到了终端在仅有电流的情况下启动并正常工作的需要。此时需要先给系统充电,充电时间是毫秒级别。而 MCU 在 2V 基本就可以工作了,此时的 ADC 的基准电压也在 2V(使用的基准电压芯片只能保证在 2.5V ~ 3.3V 内是准确的),这就造成了 ADC 在这段时间内工作采样数据不准确。问题就是想搞明白此时基准电压低了,采样值会如何变化?
知其然,也要知其所以然!
国内基本找不到太有效的讲解 ADC 原理的资料(至少我是没找到),在 TI、ADI 等公司官网倒是有不少资料可供参考!
基本原理
STM32 微控制器中内置的 ADC 使用 SAR(Successive Approximation Register,逐次逼近)原则,分多步执行转换。SAR ADC 的工作原理基本都是一样的。下图左侧是 ST 给出的 ADC(以 10 位为例) 的基本原理图,右侧是专用 16 位高精度 SAR ADC 基本原理图:
- VIN / IN+:很多专用 ADC 手册都是都是标注为 VIN