在此我們簡要總結(jié)一下ADC的各種指標(biāo)如何理解,以及從硬件到軟件都有哪些可以采用的手段來提高ADC的轉(zhuǎn)換精度。
1.ADC指標(biāo)
除了分辨率,速度,輸入范圍這些基本指標(biāo)外,衡量一個(gè)ADC好壞通常會(huì)用到以下這些指標(biāo):失調(diào)誤差,增益誤差,微分非線性,積分非線性,信噪比,信納比,有效位數(shù),總諧波失真。讓我們以下圖為例來看一下這些指標(biāo)的意義。
LSB
參數(shù)中經(jīng)常用LSB作為單位,比如說差分非線性為2 LSB。這究竟是多大一個(gè)值呢?為了簡單起見,我們以一個(gè)3bit分辨率,滿量程為5V的ADC為例。1個(gè)LSB對(duì)應(yīng)的電壓大小為5V/7=714mV。如果是8bit分辨率,那么1個(gè)LSB對(duì)應(yīng)5/255=19mV。
圖中橫軸為輸入電壓Vin增長方向,縱軸為數(shù)字輸出。理想情況下輸入電壓每增長1LSB(714mV),那么輸出會(huì)向上跳變一次,對(duì)應(yīng)虛線L1所在轉(zhuǎn)換曲線。但實(shí)際電路往往會(huì)引入偏差,轉(zhuǎn)換曲線往往如 L2 所對(duì)應(yīng)曲線。
失調(diào)誤差(Offset Error)
電壓從0開始增大時(shí),引起輸出第一次跳變的電壓值,與理論上應(yīng)該引起第一次跳變的電壓值(0.5 LSB)的差值。衡量小電壓時(shí)的轉(zhuǎn)換精度。如圖中,理論上應(yīng)該在0.5 LSB處跳變,實(shí)際電壓增大到1 LSB時(shí)才跳變,所以O(shè)ffset Error是 1–0.5 = 0.5 LSB。
增益誤差(Offset Error)
可以理解為實(shí)際轉(zhuǎn)換曲線偏離理想曲線的程度。用最接近滿量程時(shí)跳變點(diǎn)電壓值和理論跳變點(diǎn)電壓值的差表示。
差分非線性 DNL(Differential Non-Linearity)
理論上每增加或減少1 LSB 的電壓,都會(huì)引起輸出對(duì)應(yīng)的一次跳變。但實(shí)際情況可能如圖中a,b處所示,電壓的步距大于或小于1個(gè)LSB的理論步距。
a 處 DNL = 1.5 – 1 = 0.5 LSB;
b 處 DNL = 0.5 – 1 = -0.5 LSB;
積分非線性 INL(Integral Non Linearity)
差分非線性累積起來造成的對(duì)實(shí)際轉(zhuǎn)換曲線的最大偏離就是INL。如圖中所示,需要注意的是INL不能表征對(duì)理想轉(zhuǎn)換曲線的偏離程度。
總不可調(diào)整誤差 TUE(Total Unadjusted Error)
實(shí)際轉(zhuǎn)換曲線與理想轉(zhuǎn)換曲線之間最大的偏離。在最糟糕的一點(diǎn),我們通過ADC得到的電壓,與實(shí)際電壓的差值。通俗講就是最不準(zhǔn)的一點(diǎn)差多少。
思考一下,如果 DNL 和 INL 都非常好,那么是不是說明 TUE 就非常好?
對(duì),還真不一定。即使線性度非常好,如果增益誤差大,還是會(huì)導(dǎo)致最終結(jié)果大的偏差。
信噪比 SNR(Signal-to-Noise Ratio)
有用信號(hào)與噪聲的能量比。我們總是期望信噪比越大越好。對(duì)于一個(gè) N-Bit 分辨率的ADC來說,如果輸入是一個(gè)滿量程的正弦信號(hào),在只考慮量化噪聲的情況下,可以推導(dǎo)出一個(gè)有用的公式:
SNR = 6.02N + 1.76dB
推導(dǎo)過程見參考文檔ADI: MT-001
此公式直觀的表明了ADC分辨率和信噪比之間的量化關(guān)系。
信納比 SINAD (Signal-to-Noise-and-Distortion Ratio)
實(shí)際ADC是無法達(dá)到理想狀態(tài)的,它的輸出除了會(huì)引入噪聲,還會(huì)引入輸入信號(hào)的諧波。SINAD是有用信號(hào)能量,與諧波(Distortion)加噪聲(Noise)能量的比,它更能體現(xiàn)現(xiàn)實(shí)世界中的ADC性能。
SINAD = 20log(S/(N+D))
*而SNR = 20log(S/N)
有效位數(shù) ENOB(Effective Number of Bits)
體現(xiàn)ADC實(shí)際性能相當(dāng)于多少位。可以從SINAD推出:
ENOB = (SINAD–1.76)/6.02
*和理想情況下的位數(shù)對(duì)應(yīng):NOB =(SNR - 1.76)/6.02。
總諧波失真 THD(Total Harmonic Distortion)
有用信號(hào)能量與諧波能量的比。
THD = 20log(S/D)
2.如何提高轉(zhuǎn)換精度
有的單片機(jī)ADC模塊會(huì)引出單獨(dú)的電源引腳和電壓參考引腳,最好用LDO給這些引腳供電,或者用磁珠和濾波電容把這部分電源從數(shù)字部分隔離出來。
輸入信號(hào)的輸出阻抗
下圖是ADC采樣簡化等效電路。ADC采樣和保持電路的等效輸入電阻電容Radc,和Cadc,手冊(cè)中都會(huì)給出。在采樣期間,開關(guān)SW會(huì)接通外部的信號(hào)輸入電路,給采樣電容Cadc充電至和輸入信號(hào)相等(接近),之后SW斷開,ADC對(duì)采樣電容上的電壓進(jìn)行轉(zhuǎn)換。如果采樣時(shí)間過短,或者輸入信號(hào)的輸出阻抗過大,將導(dǎo)致采樣電壓不準(zhǔn)。在信號(hào)源輸出阻抗過高時(shí),可以考慮增加一級(jí)運(yùn)放。
高頻串?dāng)_
如果與模擬輸入引腳靠近的IO上有高頻翻轉(zhuǎn)的信號(hào),或者PCB上有與輸入信號(hào)長距離的平行走線,串?dāng)_將干擾輸入信號(hào)。應(yīng)避免ADC引腳臨近信號(hào)高頻翻轉(zhuǎn)。在ADC輸入布線和臨近的走線之間用地線隔離開也可以避免ADC精度下降。
Wait,Stop模式
如果ADC在Wait和Stop模式下還可以工作,在此種模式下可以最大限度的降低MCU電源的波動(dòng),提高ADC的轉(zhuǎn)換精度。
過采樣(Oversampling)
如果采樣頻率為fs,那么對(duì)于fs/2以內(nèi)的信號(hào)頻率既可以獲得完整信息。過采樣是用遠(yuǎn)高于所需的采樣頻率去采樣,這樣噪聲就會(huì)均攤在整個(gè)采樣頻帶內(nèi)。我們用數(shù)字濾波器可以濾除有用信號(hào)頻帶之外的噪聲,從而使頻帶內(nèi)的信噪比提高,獲得更高的分辨率。對(duì)多次轉(zhuǎn)換結(jié)果進(jìn)行平均也可以提高結(jié)果的精度。
芯片內(nèi)部校正
很多單片機(jī)內(nèi)部都有校正機(jī)制(Calibration),每次上電后執(zhí)行一次Calibration,可以以提高ADC的精度。
溫度的影響
ADC受溫度影響比較大,特別是失調(diào)誤差和增益誤差。如果芯片工作溫度范圍很寬,可以在不同的溫度下預(yù)先測量,按溫度做出查找表以在實(shí)際工作時(shí)做校正。
混入白噪聲
這種方法對(duì)提高直流信號(hào)的分辨率很有用。如果輸入信號(hào)接近直流而且很穩(wěn)定,那么輸出就不會(huì)產(chǎn)生跳變,比如輸出一直是0x15A,我們無法確認(rèn)輸入電平是更接近0x159,還是更接近0x15B。那么我們可以人為地把白噪聲混入信號(hào),使信號(hào)產(chǎn)生小的波動(dòng)從而輸出產(chǎn)生跳變,然后再通過數(shù)學(xué)平均得出一個(gè)精度更高的數(shù)值。實(shí)際操作中可以用GPIO產(chǎn)生一個(gè)方波然后通過阻容耦合進(jìn)輸入信號(hào)引腳。
審核編輯:符乾江
-
單片機(jī)
+關(guān)注
關(guān)注
6037文章
44561瀏覽量
635647 -
adc
+關(guān)注
關(guān)注
98文章
6501瀏覽量
544769
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論