理解ADC误差对系统性能的影响(二)
2.5V基准时+8mV的失调误差相当于12位ADC具有13LSB的误差(8mV/[2.5V/4096])。虽然分辨率仍是12位,但是你必须从每次转换结果中扣除13个码以补偿失调误差。值得注意的是,实际上这时的可测量满量程值就变为了2.5V(4083/4096) = 2.492V。此范围以上的任何值都会使ADC溢出。因此,ADC的动态范围或者说输入范围减小了。这个问题在较高分辨率的ADC中尤为显著;在16位系统中,8mV对应于210LSB (VREF = 2.5V)。
如果失调为-8mV (假设为单极性输入),接近于零的小信号输入将不会引起任何输出变化,一直到模拟输入增加到+8mV 。这同样造成了ADC动态范围的减小。
增益误差定义为满量程误差减去失调误差(图5)。满量程误差在转换函数曲线上最后一次ADC跳变处进行测量,并和理想ADC的转换函数相比较。增益误差可通过软件用一个简单的线性函数y = (m1/m2)(x)进行简单的校正,其中的m1是理想转换函数的斜率,m2是实际测得的转换函数的斜率(图5)。
图5. 失调、增益和满量程误差
增益误差指标中可能包含或不含ADC参考电压对于误差的贡献。在电气规范中,检查一下增益误差的测试条件,并决定采用内部或外部基准工作是非常重要的。一般情况下,当采用片内基准时增益误差会比较大。如果增益误差为零,在对满量程模拟输入作转换时转换结果应为全1 (对于本例的12位系统则为3FFh) (见图6) 。由于我们的转换器不理想,全1转换结果可能会在施加的输入电压大于满量程(负增益误差)或小于满量程(正增益误差)时出现。有两种办法可以调整增益误差,其一是调节参考电压,以便在某特定参考电压下得到满量程输出,或者在软件中采用一个线性校正曲线改变ADC转换函数的斜率(一阶线性方程或查表法)。
图6. 增益误差降低了动态范围
和失调误差一样,增益误差也会降低动态范围。举例来说,如果满量程输入电压时转换得到的数码输出为4050而非理想的4096 (12位转换器),也就是所谓的负增益误差,在这种情况下,高端的46个码将无法利用。类似地,如果满量程数码4096出现在输入电压低于满量程时,ADC的动态范围同样被降低了(见图6)。值得注意的是对于正的满量程误差,你无法在转换结果变为全1的点之外对转换器进行校准。
对付失调和增益误差最简单的办法就是找一个误差值足够低的ADC,这样你就不必再考虑校正了。找到一个失调和增益误差小于4LSB的12位ADC并不困难。
其它误差源
码沿噪声
码沿噪声是在转换函数中恰好发生编码跳变时出现的噪声。通常在规格书中对该项特性不作规定。甚至对于较高分辨率的转换器(16位以上),由于更小的LSB间隔,码沿噪声更为显著,通常都对这项性能未作规定。很多时候,码沿噪声能有几个LSB。转换恰好位于代码边缘的模拟输入时,代码会在LSB位发生跳动。如果出现明显的码沿噪声,就应该对采样进行平均,这样可以有效地从转换结果中去除这种噪声。需要对多少个采样取平均? 如果码沿噪声为2/3LSB RMS,这接近于4LSB P-P。那么要将噪声降低到1LSB,则需要对16次采样取平均(性能的改进正比于采样数的均方根)。
基准
评论