ADC模块误差测试-分析

背景说明

测试ADC模块时想到的点。如何去分析ADC模块所产生的误差??
关于ADC大家一定都不陌生,也就是我们常说的模数转换,将模拟信号(如电压、电流等)转为数字信号,可是在使用的时候我们发现,采用12位分辨率的ADC未必意味着具有12位的精度。很多时候,令我们吃惊和不解的是:数据采集时ADC所表现出的性能往往远低于期望值。如果这个问题直到实际运行时才被发现,那么重新设计的成本有点高了。那么到底是那些因素在影响着ADC的精度呢?ADC的误差可以分为与直流(DC)和交流(AC)有关的误差。,交流误差还不太明白,这里就先介绍直流误差,直流误差又细分为四类:量化误差、微分非线性误差、积分非线性误差、失调与增益误差。
  首先我们需要弄清楚几个概念:精度,分辨率,LBS,量化。以前写过一点关于ADC的,就直接搬来了:
  简单点说,“精度”是用来描述物理量的准确程度的,而“分辨率”是用来描述刻度划分的。之前在网上看见一个例子举得很通俗:有这么一把常见的塑料尺,它的量程是10厘米,上面有100个刻度,最小能读出1毫米的有效值。那么我们就说这把尺子的分辨率是1毫米,或者量程的1%;而它的实际精度就不得而知了(算是0.1毫米吧)。当我们用火来烤一下它,并且把它拉长一段,然后再考察一下它。我们不难发现,它还有有100个刻度,它的“分辨率”还是1毫米,跟原来一样!然而,您还会认为它的精度还是原来的0.1毫米么?
  假定我们需要0.1%或者说10位的精度(1/2^10),只有选择一个具有更高分辨率的转换器才有意义。如果是一个12位(分辨率)的转换器,我们可能会想当然地以为精度已足够高;但是在没有仔细检查其规格书之前,我们并没有把握得到12位的性能(实际情况可能更好或更糟)。举例来说,一个具有4LSB INL(INL下面会讲到)的12位ADC,最多只能提供10位的精度。一个具有0.5LSB INL的12位ADC器件则可提供0.0122%的误差或13位的精度。要计算最佳精度,可用最大INL误差除以2^N,其中N是转换器位数。
  分辨率是由AD的位数决定的,比如说ADC采用的16位时,它的分辨率就是2^16。LBS是一种度量单位,1LSB = VFSR/2^N,其中VFSR为满量程电压,N是ADC的分辨率,举例来说,满量程为3.3v,ADC分辨率为10位时,1LBS = 0.003v。

单位理解

1. LSB

测量范围+5V,
精度10位,LSB=0.0048 =5/1023
精度16位,LSB=0.000076951 = 5/65535

测量范围±5V,
精度10位,LSB=0.009765625,大约为0.01 = 10/1023
精度16位,LSB=0.00015258789,大约为0.00015 = 10/65535

测量范围±10V,
精度10位,LSB=0.01953125,大约为0.02
精度16位,LSB=0.00030517578125,大约为0.0003,调试高精度AD中的0.3mV

误差原因分析

1.量化误差

The discrete character of the digital result generates a system-inherent quantization uncertainty of ±0.5 LSBn for each conversion result.
The ideal transfer curve has the first digital transition (between 0 and 1) when the analog input reaches 0.5 LSBn.
量化是指将输入的电压以离散的电压来表示,以3位分辨率的ADC举例,如图1所示,将3.3V以000b-111b这8个代码(英文里面就是用code来表示的)表示,相邻代码跨越VFSR/8的电压范围。量化误差是基本误差,产生指定代码的实际电压与代表该码的电压两者之间存在误差,因为实际上电压值是一个点,而量化之后是范围。一般来说,0.5LSB偏移加入到输入端便导致在理想过渡点上有正负0.5LSB的量化误差。
在这里插入图片描述

2.失调和增益误差

The offset error is the deviation of the real transfer line from the ideal transfer line at the lowest code. This refers to best-fit lines through all possible codes, for both cases.
The gain error is the deviation of the slope of the real transfer line from the slope of the ideal transfer line. This refers to best-fit lines through all possible codes, for both cases.
失调和增益误差很容易利用微控制器修正过来。就失调误差来讲,如果转换器允许双极性输入信号的话,操作将非常简单。对于双极性系统,失调误差只是平移了转换函数,但没有减少可用编码的数量(图2)。有两套方法可以使双极性误差归零。其一,你可以将转换函数的x或y轴平移,使负满度点与单极性系统的零点相对准。利用这种方法,可以简单地消除失调误差,然后,通过围绕“新”零点旋转转换函数可以对增益误差进行调节。第二种技术采用了一种迭代法。首先给ADC输入施加一个0V电压并执行一次转换;转换结果反映了双极性零点失调误差。然后,通过围绕负满度点旋转转换曲线实现增益调节。注意此时转换函数已绕A点转过一定角度,使零点偏离了期望的转换函数。因此还需要进一步的失调误差校正。

以下是我的理解,不一定对;
如果

3.微分非线性(Differential nonlinearity,DNL)

The differential non-linearity error (DNL) is the deviation of the real code width (variation of the analog input voltage between two adjacent digital conversion results) from the ideal code width.

4.积分非线性(Integral nonlinearity,INL)

The integral non-linearity error (INL) is the deviation of the real transfer curve from an adjusted ideal transfer curve (same offset and gain error as the real curve, but equal code widths).

5.其它误差源

The total unadjusted error (TUE) describes the maximum deviation between a real conversion result and the ideal transfer characteristics over a given measurement range. Since some of these errors noted above can compensate each other, the TUE value generally is much less than the sum of the individual errors.
The TUE also covers production process variations and internal noise effects (if switching noise is generated by the system, this generally leads to an increased TUE
value).
由UM-述,其他误差的综合<<远小于各个错误的总和,可忽略??不清楚,可能芯片比较牛吧。

文献支持

文档论点支持

  1. UM-Aurix275
    Nominal analog supply voltage 5.0 V, operation at 3.3 V with reduced performance.
    在系统中,5V的性能更优。
  2. Blog: http://jeremybai.github.io/blog/2014/07/31/adc
  • 6
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值