ADC的種類很多,對應(yīng)的精度和誤差也有很多,本文就來講講關(guān)于ADC精度和誤差的內(nèi)容。
ADC介紹
ADC:Analog Digital Converter,指模數(shù)轉(zhuǎn)換,也就是(電壓)模擬量轉(zhuǎn)換成數(shù)字量。大多數(shù)MCU中都集成了ADC模塊,同時ADC也是在產(chǎn)品開發(fā)中使用率較高的一個模塊,相信大部分人都使用過ADC這個功能。在STM32中內(nèi)置最多四個高級12位ADC控制器(ADC1、2、3、4)。當(dāng)然,ADC控制器數(shù)量多少取決于STM32型號,還有部分STM32具有16位采樣的ADC(如STM32F373)。他們提供自校準(zhǔn)功能,用于提高環(huán)境條件變化時的ADC精度。我們平時在使用ADC中要求不是很高,可能就沒有在于ADC轉(zhuǎn)換的值是否精確。但是,有些特定場合就需要更精確的轉(zhuǎn)換值,那么我們就需要對ADC做更多了解。下面章節(jié)帶領(lǐng)大家了解相關(guān)內(nèi)容。
ADC誤差
在涉及模數(shù)轉(zhuǎn)換的應(yīng)用中,ADC精度會影響整體的系統(tǒng)質(zhì)量和效率。為了提高此精度,有必要了解與ADC相關(guān)的誤差。
ADC誤差主要包含:ADC自身和環(huán)境導(dǎo)致的誤差。
1、ADC自身導(dǎo)致的誤差
說誤差之前,先說下ADC精度,為便于參考,將精度誤差表達(dá)為1 LSB的倍數(shù):
1LSB=VREF+/2^12.
(1)偏移誤差
偏移誤差是第一次實際轉(zhuǎn)換和第一次理想轉(zhuǎn)換之間的偏離。第一次轉(zhuǎn)換發(fā)生在數(shù)字ADC輸出從0變?yōu)?時。理想情況下,當(dāng)模擬輸入介于0.5 LSB和1.5 LSB之間時,數(shù)字輸出應(yīng)為1。仍然是理想情況下,第一次轉(zhuǎn)換發(fā)生在0.5 LSB處。用EO表示偏移誤差。可通過應(yīng)用固件輕松校準(zhǔn)偏移誤差。正偏移誤差的表示方法:
負(fù)偏移誤差的表示方法:
(2)增益誤差
增益誤差是最后一次實際轉(zhuǎn)換和最后一次理想轉(zhuǎn)換之間的偏離。增益誤差用EG表示。正增益誤差的表示方法:
負(fù)增益誤差的表示方法:
(3)微分線性誤差
微分線性誤差(DLE)為實際步進(jìn)和理想步進(jìn)之間的最大偏離。這里的“理想情況”不是指理想傳輸曲線,而是指ADC分辨率。理想情況下,1 LSB的模擬輸入電壓變化量應(yīng)導(dǎo)致數(shù)字代碼變化。如果需要大于1 LSB的模擬輸入電壓才能導(dǎo)致數(shù)字代碼變化,將觀察到微分線性誤差。因此,DLE對應(yīng)于從一個數(shù)字代碼變?yōu)橄乱粋€數(shù)字代碼所需的最大額外電壓。
(4)積分線性誤差
積分線性誤差為任何實際轉(zhuǎn)換和端點相關(guān)線間的最大偏離,用EL表示ILE。端點相關(guān)線可以定義為A/D傳輸曲線上連接第一次實際轉(zhuǎn)換與最后一次實際轉(zhuǎn)換的線。EL是指與每一次轉(zhuǎn)換的這條線的偏離。因此,端點相關(guān)線對應(yīng)于實際傳輸曲線并且與理想傳輸曲線不相關(guān)。
(5)總未調(diào)整誤差
總未調(diào)整誤差(TUE)為實際和理想傳輸曲線間的最大偏離。此參數(shù)指定可能發(fā)生的會導(dǎo)致理想數(shù)字輸出與實際數(shù)字輸出之間最大偏離的總誤差。TUE是記錄到的任何輸入電壓的理想預(yù)期值與從ADC獲得的實際值之間的最大偏離。
2、ADC環(huán)境導(dǎo)致的誤差
(1)參考電壓噪聲
由于ADC輸出為模擬信號電壓與參考電壓之比,因此模擬參考上的任何噪聲都會導(dǎo)致轉(zhuǎn)換后數(shù)字值的變化。在某些封裝中,VDDA模擬電源被用作參考電壓(VREF+),因此VDDA電源的質(zhì)量會影響ADC誤差。
(2)參考電壓/電源調(diào)節(jié)
電源調(diào)節(jié)對于ADC精度十分重要,因為轉(zhuǎn)換結(jié)果是模擬輸入電壓與VREF+值之比。當(dāng)連接到VDDA或VREF+時,如果這些輸入上的負(fù)載及其輸出阻抗導(dǎo)致電源輸出下降,將在轉(zhuǎn)換結(jié)果中產(chǎn)生誤差。
(3)外部參考電壓參數(shù)
當(dāng)使用外部參考電壓源(VREF+引腳上)時,該外部參考源有一些重要參數(shù)。必須考慮三個參考電壓規(guī)格:溫度漂移、電壓噪聲和長期穩(wěn)定性。
(4)模擬輸入信號噪聲
在采樣時間內(nèi),小而高頻率的信號變化可導(dǎo)致較大轉(zhuǎn)換誤差。此噪聲由電氣設(shè)備(例如電機(jī)、發(fā)動機(jī)點火、電源線)生成。它增加了不需要的信號,因此會影響源信號(例如傳感器)。這樣一來,導(dǎo)致ADC轉(zhuǎn)換結(jié)果不準(zhǔn)確。
(5)最大輸入信號幅度的ADC動態(tài)范圍匹配不佳
為獲得最高ADC轉(zhuǎn)換精度,ADC動態(tài)范圍必須與待轉(zhuǎn)換信號的最大幅度相匹配。我們假設(shè)待轉(zhuǎn)換信號在0 V與2.5 V之間變化,并且VREF+等于3.3 V。如下圖所示,有部分未使用的ADC轉(zhuǎn)換范圍,也會使轉(zhuǎn)換后信號精度下降。
如何提高ADC采集數(shù)據(jù)準(zhǔn)確性
這個問題之前寫過相關(guān)的內(nèi)容,只是沒有單獨提出來說,這里匯總一下。
1、減少ADC相關(guān)誤差的影響
上面描述了“ADC自身導(dǎo)致的誤差”,使用STM32 ADC自校準(zhǔn)功能或通過微控制器固件可以輕松補(bǔ)償偏移誤差和增益誤差。
之前在分享的代碼中有提到,比如通過軟件校正:
ADC_StartCalibration(ADC1);
2、使外部環(huán)境誤差最小化
(1)參考電壓/電源噪聲最小化
也就是在VREF和VDDA引腳連接外部去耦電容。
(2)模擬輸入信號噪聲消除
通過添加外部RC濾波器以消除高頻。
(3)將ADC動態(tài)范圍與最大信號幅度進(jìn)行匹配
也就是將參考電壓范圍匹配采樣電壓(當(dāng)然,需要有參考電壓引腳的芯片才行)。
同時,也可以使用放大器針對ADC范圍調(diào)整輸入信號范圍:
(4)溫度影響補(bǔ)償
第一種方法是完整描述偏移和增益漂移特性,并在存儲器中提供查詢表,以便根據(jù)溫度變化修正測量值。此校準(zhǔn)方法需要額外的成本和時間。第二種方法包括使用內(nèi)部溫度傳感器和ADC看門狗,以在溫度變化達(dá)到給定值時重新校準(zhǔn)ADC。
(5)優(yōu)化PCB布局
將模擬和數(shù)字布局分開
隔離模擬和數(shù)字電路電源
對供電和接地使用單獨的PCB層
3、提高精度的軟件方法
(1)平均采樣
平均會降低速度但可以提高精度
(2)數(shù)字濾波(抑制DC值中的50/60 Hz噪聲)
設(shè)置適當(dāng)?shù)牟蓸宇l率(這種情況下,從計時器觸發(fā)十分有用)。
對采樣數(shù)據(jù)執(zhí)行軟件后處理(例如,對50 Hz噪聲及其諧波抑制進(jìn)行組合濾波)。
(3)AC測量的快速傅里葉變換(FFT)
此方法可以顯示被測信號中的諧波部分。
由于使用了更強(qiáng)的計算能力,因此速度較慢。
(4)ADC校準(zhǔn):偏移、增益、位權(quán)重校準(zhǔn)
ADC校準(zhǔn)可減少內(nèi)部ADC誤差。但是,必須知道內(nèi)部ADC結(jié)構(gòu)。
(5)使CPU生成的內(nèi)部噪聲最小化應(yīng)用設(shè)計必須確保
ADC轉(zhuǎn)換期間來自微控制器的干擾盡可能小。
使采樣和轉(zhuǎn)換期間的數(shù)字信號變化量最小化(數(shù)字靜默)。
好了,本文就寫到這里,希望能對大家有所幫助。
審核編輯 :李倩
-
mcu
+關(guān)注
關(guān)注
146文章
16885瀏覽量
349918 -
模塊
+關(guān)注
關(guān)注
7文章
2655瀏覽量
47292 -
adc
+關(guān)注
關(guān)注
98文章
6391瀏覽量
543766
原文標(biāo)題:單片機(jī)中ADC采集都存在哪些誤差?
文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論