ADC的分辨率与精度
- 精度”是用来描述物理量的准确程度的,而“分辨率”是用来描述刻度划分的。
- 分辨率与AD芯片的位数有关,而精度需要查看手册看参数。
- 对于ADC*:确定输入大小:
Vin=OutputcodeLSB;
如果ADC的输出代码为二进制或二进制补码格式也没有关系,只要将二进制数正确转换为其等效十进制值即可。
LSB大小是ADC代码中的最低有效位(LSB)。
LSB=FSR/2的N次方
其中FSR即fullscalerange是与基准电压成比例的ADC的满量程输入范围(单位为伏特),N是ADC输出代码中的位数。
要注意所使用ADC的FSR,因为不同的ADC有不同的FSR。FSR总是与基准电压成正比,也可能取决于任何内部增益。
以ADS8685为例:单电源5V供电情况下,输入可以正负输入
Vref=4.096V,此时,input range 或fsr如下图所示。
精度INL如下图所示:
对于AD7124-8输出如下,因AD芯片内部前端有PGA增益,所以,
FSR=VREF/GAIN
对于ADS124S08:双极性,那么LSB=(fsr/2)/2的n-1次方
综上可以看出,Vref和LSB及OUTPUTCODE密切相关,所以VREF的选取非常重要,精度、漂移等,尽量选用单独的参考电压芯片。取值可根据芯片手册确定,比如有时VREF与VADD相等。
ADC的精度
DNL:Differencial NonLiner——微分非线性度
INL:Interger NonLiner——积分非线性度(精度主要用这个值来表示)文章来源:https://www.toymoban.com/news/detail-488036.html
当然,像有的AD如SIGMA-DELTA 系列的AD,也用Linearity error 来表示精度。为什么有的AD很贵,就是因为INL很低。分辨率同为12bit的两个ADC,一个INL=±3LSB,而一个做到了±1.5LSB,那么他们的价格可能相差一倍。
一般通过INL来考量精度参数。
以下内容摘自博客园
ADC转换参数——INL_DNL
说起来都是教科书害人。几乎所有的教科书、参考书、文献选编都只关心模数器件的分辨率和速度,而忽略了器件的精度。而关系到器件精度的两个非常重要的参数就是INL值和DNL值。小弟觉得非常有必要专门写一篇贴子来普及一下模数器件
精度这个重要的概念。
说精度之前,首先要说分辨率。最近已经有贴子热门讨论了这个问题,结论是分辨率决不等同于精度。比如一块精度0.2%(或常说的准确度0.2级)的四位半万用表,测得A点电压1.0000V,B电压1.0005V,可以分出B比A高0.0005V,但A点电压的真实值可能在0.9980~1.0020之间不确定。
那么,既然数字万用表存在着精度和分辨率两个指标,那么,对于ADC和DAC,除了分辨率以外,也存在精度的指标。
模数器件的精度指标是用积分非线性度(Interger NonLiner)即INL值来表示。也有的器件手册用 Linearity error 来表示。他表示了ADC器件在所有的数值点上对应的模拟值,和真实值之间误差最大的那一点的误差值。也就是,输出数值偏离线性最大的距离。单位是LSB(即最低位所表示的量)。
比如12位ADC:TLC2543,INL值为1LSB。那么,如果基准4.095V,测某电压得的转换结果是1000,那么,真实电压值可能分布在0.9991.001V之间。对于DAC也是类似的。比如DAC7512,INL值为8LSB,那么,如果基准4.095V,给定数字量1000,那么输出电压可能是0.9921.008V之间。
下面再说DNL值。理论上说,模数器件相邻量个数据之间,模拟量的差值都是一样的。就相一把疏密均匀的尺子。但实际并不如此。一把分辨率1毫米的尺子,相邻两刻度之间也不可能都是1毫米整。那么,ADC相邻两刻度之间最大的差异就叫差分非线性值(Differencial NonLiner)。DNL值如果大于1,那么这个ADC甚至不能保证是单调的,输入电压增大,在某个点数值反而会减小。这种现象在SAR(逐位比较)型ADC中很常见。
举个例子,某12位ADC,INL=8LSB,DNL=3LSB(性能比较差),基准4.095V,测A电压读数1000,测B电压度数1200。那么,可判断B点电压比A点高197203mV。而不是准确的200mV。对于DAC也是一样的,某DAC的DNL值3LSB。那么,如果数字量增加200,实际电压增加量可能在197203mV之间。
很多分辨率相同的ADC,价格却相差很多。除了速度、温度等级等原因之外,就是INL、DNL这两个值的差异了。比如AD574,贵得很,但它的INL值就能做到0.5LSB,这在SAR型ADC中已经很不容易了。换个便宜的2543吧,速度和分辨率都一样,但INL值只有1~1.5LSB,精度下降了3倍。
另外,工艺和原理也决定了精度。比如SAR型ADC,由于采用了R-2R或C-2C型结构,使得高权值电阻的一点点误差,将造成末位好几位的误差。在SAR型ADC的2^n点附近,比如128、1024、2048、切换权值点阻,误差是最大的。1024值对应的电压甚至可能会比1023值对应电压要小。这就是很多SAR型器件DNL值会超过1的原因。但SAR型ADC的INL值都很小,因为权值电阻的误差不会累加。
和SAR型器件完全相反的是阶梯电阻型模数/数模器件。比如TLC5510、DAC7512等低价模数器件。比如7512,它由4095个电阻串联而成。每个点阻都会有误差,一般电阻误差5%左右,当然不会离谱到100%,更不可能出现负数。因此这类器件的DNL值都很小,保证单调。但是,每个电阻的误差,串联后会累加,因此INL值很大,线性度差。
这里要提一下双积分ADC,它的原理就能保证线性。比如ICL7135,它在40000字的量程内,能做0.5LSB的INL值(线性度达到1/80000 !!)和0.01LSB的DNL值.这两个指标在7135的10倍价钱内,是不容易被其他模数器件超越的。所以7135这一类双积分ADC特别适合用在数字电压表等需要线性误差非常小的场合。
还要特别提一下基准源。基准源是测量精度的重要保证。基准的关键指标是温飘,一般用ppm/K来表示。假设某基准30ppm/K,系统在20~70度之间工作,温度跨度50度,那么,会引起基准电压3050=1500ppm的漂移,从而带来0.15%的误差。温漂越小的基准源越贵,比如30ppm/K的431,七毛钱;20ppm/K的385,1块5;10ppm/K的MC1403,4块5;1ppm/K的LM399,14元;0.5ppm/K的LM199,130元。
该死的教科书害了一代学生。说起来好笑的一个现象:我这边新来的学生大多第一次设计ADC电路的时候,基准直接连VCC,还理直气壮的找来N本教科书,书上的基准写了个网标:+5V。天下的书互相抄,也就所有的学校的教科书都是基准接5V。教科书把5V改成5.000V多好?学生就会知道,这个5V不是VCC。或者提一下基准需要高稳定度,也好啊!
最后说一下Sigma-Delta型ADC,它比较特殊,对于精度,一般用直接用线性度表示,比如0.0015%.不说差分非线性值,而直接用有效分辨率来表示。此外,Sigma-Delta型ADC还存许多怪脾气,难伺候。
ADC应用中被 bangzhu 发表于 2006-3-20 23:15 模拟技术 ←返回版面
总结:
(1)INL(Interger NonLinear,Linearity error)精度。理解为单值数据误差,对应该点模拟数据由于元器件及结构造成的不能精确测量产生的误差。
(2)DNL(Differential NonLinear)差分非线性值。理解为刻度间的差值,即对每个模拟数据按点量化,由于量化产生的误差。
例子:
(1)INL,精度
比如12位ADC:假设基准Vref=4.095V,那么1LSB=Vref/2^12=0.001V。如果精度为1LSB,则它的单值测量误差0.001V1=0.001V,比如测量结果1.000V,实际在1.000+/-0.001V范围。如果精度为8LSB,则他的单值测量误差0.001V8=0.008V,比如测量结果1.000V,实际在1.000+/-0.008V范围
(2)DNL,差分非线性值
比如12位ADC:假设基准Vref=4.095V,那么1LSB=Vref/2^12=0.001V。不考虑精度,即精度为0LSB。没有单值误差。如果DNL=3LSB=0.001V3=0.003V假设A实际电压为1.001V,B实际电压为1.003V。理论上A点读数1.001V/1LSB=1001,B点读数1.003V/1LSB=1003,B-A=2,B>A,但由DNL=3LSB=0.003V,模拟数据间的量化误差有0.003V,那么B-A会在-1(2-3=-1)到+5(2+3=5)之间的某一个数。**文章来源地址https://www.toymoban.com/news/detail-488036.html
到了这里,关于硬件知识-ADC模数转换芯片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!