在前面一個討論7135的貼子里,提到了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.999~1.001V之間。對于DAC也是類似的。比如DAC7512,INL值為8LSB,那么,如果基準4.095V,給定數字量1000,那么輸出電壓可能是0.992~1.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點高197~203mV。而不是準確的200mV。對于DAC也是一樣的,某DAC的DNL值3LSB。那么,如果數字量增加200,實際電壓增加量可能在197~203mV之間。
很多分辨率相同的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特別適合用在數字電壓表等需要線性誤差非常小的場合。
還要特別提一下基準源;鶞试词菧y量精度的重要保證。基準的關鍵指標是溫飄,一般用ppm/K來表示。假設某基準30ppm/K,系統在20~70度之間工作,溫度跨度50度,那么,會引起基準電壓30*50=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還存許多怪脾氣,難伺候。