
STM32 ADC内部原理 01 前言 2 W. S3 ?1 F: P4 Y+ ?+ t" h用了这么久ADC,从没细看过ADC的内部原理和如何获得最佳精度,今天看到一篇ST的官方文档讲的不错,这里整理分享给大家。 02 SAR ADC内部结构 4 d* o A- B4 X3 F4 ?* z5 V9 z# [7 z" ^" o/ { STM32微控制器中内置的ADC使用SAR(逐次逼近)原则,分多步执行转换。转换步骤数等 于ADC转换器中的位数。每个步骤均由ADC时钟驱动。每个ADC时钟从结果到输出产生一 位。ADC的内部设计基于切换电容技术。 + D8 g& f; N# B& y: i& v: e; D! ^ - P1 [& w, v" F* X9 U 下面的图介绍了ADC的工作原理。下面的示例仅显示了逼近的前面几步,但 是该过程会持续到LSB为止 1 {' O0 Y% a r) F8 }) n7 A >>SAR切换电容ADC的基本原理(10位ADC示例)7 E, u8 L) a+ X7 j& J/ g 带数字输出的ADC基本原理图0 K- q b+ t, Q4 P ![]() >>采样状态, l% z) o% W1 d( n 采样状态:电容充电至电压VIN。Sa切换至VIN,采样期间Sb开关闭合! |! l o( F3 T ![]() >>保持状态0 O f# u6 k( D- e7 N3 {7 C 保持状态:输入断开,电容保持输入电压。Sb开关打开,然后S1-S11切换至接地且Sa切换至VREF。2 M" _+ {8 \& V( l/ T+ ~ ![]() >>逐次逼近 1、第一个逼近步骤。S1切换至VREF。VIN与VREF/2比较6 y$ ] R# _$ P$ ^ ![]() 2、如果MSB = 0,则与¼VREF进行比较,S1切换回接地。S2切换至VREF。& O6 G/ R5 d+ d3 ^# r- b) o ![]() 3、如果MSB = 1,则与¾VREF进行比较,S1保持接地。S2切换至VREF。8 S. ]2 S" T5 ~4 ]3 ?% y3 t. z0 Q/ L ![]() 重复如上步骤,直到LSB为止。可以简单理解为二分法逐次进行输入电压与参考电压的比较。首次于VREF/2比较,下次比较根据上次比较结果决定,如果MSB=1则与¾VREF比较。如果MSB=0则与¼VREF比较。后面决定与1/8VREF 3/8VREF、 5/8VREF、 7/8VREF之一做比较。循环直到输出LSB为止。 & p( i" L& W, @+ I! e- { |