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