正常来讲,ADC的动态范围与最大输入信号的幅度相匹配,对于得到最大的ADC转换精度是非常重要的。: T# q0 ^2 A1 g 8 Y4 M: q) D+ R ; u% ^' H, _/ f4 H4 w& i ADC的动态范围与最大输入信号幅度严重不匹配是啥意思呢? 不妨举例说明之。 假定要转换的信号在0V至2.5V之间变化,而VREF+等于3.3V,ADC的分辨率为12位,则最大信号2.5V的ADC转换数值是3102,如下图所示。这样,就有993个未使用的转换值(4095 – 3102 = 993),即丢失了转换信号的精度。 5 ?, |4 T ~" R% A) N9 F: t + a" q. ~7 `* r4 @3 s# { 不妨换个说法。 5 W1 { f7 N- I4 j' V6 c7 k 当最大输入为2.5v,参考电压为3.3V时.输入信号所对应的实际分辨率为 2.5v/3102 .: } j2 E! r J8 M% C( y * _; H3 d) c1 ]2 p/ G) ~ ) G, Z9 C8 p5 y 若把ADC的参考电压调整为与输入相匹配,将参考电压也改为2.5V,那么2.5V输入所对应的ADC值则是满量程4095,此时的分辨率就提升到了2.5v/4095 .* W0 \3 f5 n, O 9 Q% t7 z! R/ D0 B# { ( s; S* Y* _4 F, | 实际应用中有人或许特意挑选一个分辨率比较满意的ADC芯片或带ADC的MCU,然而在具体设计的时候,ADC的最大输入信号离ADC模块的参考电压还相差一大截,这时当初挑选的ADC分辨率精度就根本没有被充分利用起来。如其这样,还不如选个哪怕分辨率低点、但参考电压跟输入信号幅度匹配的ADC芯片,这样或许成本上还可以省点。 ) p5 ~) R" z- Z6 ~: I 那如何使ADC的动态范围与最大输入信号的幅度相匹配?5 [3 ?4 s$ J5 s# Q6 z: N, J2 A 3 o2 M! r3 ~4 t T/ C 一般可以通过合理地选择参考电压或使用一个前级放大器,使用ADC的全量程输出,得到最大可能分辨率,从而提高转换精度。6 T5 S9 D! D5 K 1、选择合适的参考电压& s$ O' l/ p1 M: _7 F % t4 h/ u& z* P; R) k 让参考电压与要测量信号的幅值匹配,使用ADC模块的全范围、满量程输出,以得到最大的分辨率。3 a0 s, i, b) m0 E V' H" Q- H0 C) M 1 N0 E2 n( B/ |6 x) w' p2 o 2、使用前置放大器 4 ?8 w4 g3 D n0 Z4 F 如果与ADC的测量范围相比,待测量的信号太小,可以使用一个外部的前级放大器。例如:如果要测量的信号变化范围是0V至1V之间,而VDDA是3V,这个信号可以被放大,使它的峰-峰幅度与VDDA的数值相同,增益为3。 这个放大器可以把输入信号的范围转换至ADC模块的范围。不过,此时注意设计这个放大器时不要引入其它额外的误差。 `+ |: K- u, t, s0 V* s9 B g5 r ! h0 V; B8 \' I 所以,在做ADC应用时,注意输入信号幅度要尽量与ADC模块的参考电压想匹配,充分使用到满量程,实现最佳转换精度。 |