0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ADC采集的數(shù)據(jù)都準確嗎?

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-04 10:08 ? 次閱讀

想要提高ADC采集精度,軟件和硬件工程師都應(yīng)該了解一下相關(guān)的內(nèi)容!

1寫在前面

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)。當然,ADC控制器數(shù)量多少取決于STM32型號,還有部分STM32具有16位采樣的ADC(如STM32F373)。他們提供自校準功能,用于提高環(huán)境條件變化時的ADC精度。

我們平時在使用ADC中要求不是很高,可能就沒有在于ADC轉(zhuǎn)換的值是否精確。但是,有些特定場合就需要更精確的轉(zhuǎn)換值,那么我們就需要對ADC做更多了解。下面章節(jié)帶領(lǐng)大家了解相關(guān)內(nèi)容。

2

ADC誤差

在涉及模數(shù)轉(zhuǎn)換的應(yīng)用中, ADC精度會影響整體的系統(tǒng)質(zhì)量和效率。為了提高此精度,有必要了解與ADC相關(guān)的誤差。

ADC誤差主要包含:ADC自身和環(huán)境導(dǎo)致的誤差。

1.ADC自身導(dǎo)致的誤差

說誤差之前,先說下ADC精度,為便于參考,將精度誤差表達為1 LSB的倍數(shù):

1 LSB = VREF+ / 2^12.

A.偏移誤差

偏移誤差是第一次實際轉(zhuǎn)換和第一次理想轉(zhuǎn)換之間的偏離。第一次轉(zhuǎn)換發(fā)生在數(shù)字ADC輸出從0變?yōu)?時。理想情況下,當模擬輸入介于0.5 LSB和1.5 LSB之間時,數(shù)字輸出應(yīng)為1。

仍然是理想情況下,第一次轉(zhuǎn)換發(fā)生在0.5 LSB處。用EO表示偏移誤差??赏ㄟ^應(yīng)用固件輕松校準偏移誤差。

正偏移誤差的表示方法:

負偏移誤差的表示方法:

B.增益誤差

增益誤差是最后一次實際轉(zhuǎn)換和最后一次理想轉(zhuǎn)換之間的偏離。增益誤差用EG表示。

正增益誤差的表示方法:

負增益誤差的表示方法:

C.微分線性誤差

微分線性誤差( DLE)為實際步進和理想步進之間的最大偏離。這里的“理想情況”不是指理想傳輸曲線,而是指ADC分辨率。

理想情況下, 1 LSB的模擬輸入電壓變化量應(yīng)導(dǎo)致數(shù)字代碼變化。如果需要大于1 LSB的模擬輸入電壓才能導(dǎo)致數(shù)字代碼變化,將觀察到微分線性誤差。因此, DLE對應(yīng)于從一個數(shù)字代碼變?yōu)橄乱粋€數(shù)字代碼所需的最大額外電壓。

D.積分線性誤差

積分線性誤差為任何實際轉(zhuǎn)換和端點相關(guān)線間的最大偏離,用EL表示ILE。

端點相關(guān)線可以定義為A/D傳輸曲線上連接第一次實際轉(zhuǎn)換與最后一次實際轉(zhuǎn)換的線。 EL是指與每一次轉(zhuǎn)換的這條線的偏離。因此,端點相關(guān)線對應(yīng)于實際傳輸曲線并且與理想傳輸曲線不相關(guān)。

E.總未調(diào)整誤差

總未調(diào)整誤差( TUE)為實際和理想傳輸曲線間的最大偏離。此參數(shù)指定可能發(fā)生的會導(dǎo)致理想數(shù)字輸出與實際數(shù)字輸出之間最大偏離的總誤差。 TUE是記錄到的任何輸入電壓的理想預(yù)期值與從ADC獲得的實際值之間的最大偏離。

2.ADC環(huán)境導(dǎo)致的誤差

A.參考電壓噪聲

由于ADC輸出為模擬信號電壓與參考電壓之比,因此模擬參考上的任何噪聲都會導(dǎo)致轉(zhuǎn)換后數(shù)字值的變化。在某些封裝中, VDDA模擬電源被用作參考電壓( VREF+),因此VDDA電源的質(zhì)量會影響ADC誤差。

B.參考電壓/電源調(diào)節(jié)

電源調(diào)節(jié)對于ADC精度十分重要,因為轉(zhuǎn)換結(jié)果是模擬輸入電壓與VREF+值之比。

當連接到VDDA或VREF+時,如果這些輸入上的負載及其輸出阻抗導(dǎo)致電源輸出下降,將在轉(zhuǎn)換結(jié)果中產(chǎn)生誤差。

C.外部參考電壓參數(shù)

當使用外部參考電壓源( VREF+引腳上)時,該外部參考源有一些重要參數(shù)。必須考慮三個參考電壓規(guī)格:溫度漂移、電壓噪聲和長期穩(wěn)定性。

D.模擬輸入信號噪聲

在采樣時間內(nèi),小而高頻率的信號變化可導(dǎo)致較大轉(zhuǎn)換誤差。此噪聲由電氣設(shè)備(例如電機、發(fā)動機點火、電源線)生成。它增加了不需要的信號,因此會影響源信號(例如傳感器)。這樣一來,導(dǎo)致ADC轉(zhuǎn)換結(jié)果不準確。

E.最大輸入信號幅度的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)換后信號精度下降。

3

如何提高ADC采集數(shù)據(jù)準確性

這個問題之前寫過相關(guān)的內(nèi)容,只是沒有單獨提出來說,這里匯總一下。

1.減少ADC相關(guān)誤差的影響

上面描述了“ADC自身導(dǎo)致的誤差”,使用STM32 ADC自校準功能或通過微控制器固件可以輕松補償偏移誤差和增益誤差。

之前在分享的代碼中有提到,比如:ADC_StartCalibration(ADC1);

2.使外部環(huán)境誤差最小化

A.參考電壓/電源噪聲最小化

也就是在VREF和VDDA引腳連接外部去耦電容。

B.模擬輸入信號噪聲消除

通過添加外部RC濾波器以消除高頻。

C.將ADC動態(tài)范圍與最大信號幅度進行匹配

也就是將參考電壓范圍匹配采樣電壓(當然,需要有參考電壓引腳的芯片才行)。

同時,也可以使用放大器針對ADC范圍調(diào)整輸入信號范圍:

D.溫度影響補償

第一種方法是完整描述偏移和增益漂移特性,并在存儲器中提供查詢表,以便根據(jù)溫度變化修正測量值。此校準方法需要額外的成本和時間。

第二種方法包括使用內(nèi)部溫度傳感器和ADC看門狗,以在溫度變化達到給定值時重新校準ADC。

E.優(yōu)化PCB布局

將模擬和數(shù)字布局分開

隔離模擬和數(shù)字電路電源

供電和接地使用單獨的PCB層


3.提高精度的軟件方法

A.平均采樣

·平均會降低速度但可以提高精度

B.數(shù)字濾波(抑制DC值中的50/60 Hz噪聲)

·設(shè)置適當?shù)牟蓸宇l率(這種情況下,從計時器觸發(fā)十分有用)。

·對采樣數(shù)據(jù)執(zhí)行軟件后處理(例如,對50 Hz噪聲及其諧波抑制進行組合濾波)。

C.AC測量的快速傅里葉變換( FFT)

·此方法可以顯示被測信號中的諧波部分。

·由于使用了更強的計算能力,因此速度較慢。

D.ADC校準:偏移、增益、位權(quán)重校準

·ADC校準可減少內(nèi)部ADC誤差。但是,必須知道內(nèi)部ADC結(jié)構(gòu)。

E.使CPU生成的內(nèi)部噪聲最小化

應(yīng)用設(shè)計必須確保

·ADC轉(zhuǎn)換期間來自微控制器的干擾盡可能小。

·使采樣和轉(zhuǎn)換期間的數(shù)字信號變化量最小化(數(shù)字靜默)。

好了,就寫到這里。本文內(nèi)容參考ST官方應(yīng)用筆記內(nèi)容,經(jīng)我整理分享給大家,還有許多方法,大家可以自行研究。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16667

    瀏覽量

    347786
  • adc
    adc
    +關(guān)注

    關(guān)注

    97

    文章

    6300

    瀏覽量

    542453
  • 引腳
    +關(guān)注

    關(guān)注

    16

    文章

    1132

    瀏覽量

    49741
收藏 人收藏

    評論

    相關(guān)推薦

    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+HAL庫)

    第12章-ADC采集電壓和顯示 基于STM32的ADC—電壓采集(詳細講解+HAL庫)
    的頭像 發(fā)表于 08-21 16:31 ?1069次閱讀
    第12章-<b class='flag-5'>ADC</b><b class='flag-5'>采集</b>電壓和顯示 基于STM32的<b class='flag-5'>ADC</b>—電壓<b class='flag-5'>采集</b>(詳細講解+HAL庫)

    使用rt-thread的ADC框架,增加了DMA采集部分,采集到的兩通道數(shù)據(jù)中,有一個通道數(shù)據(jù)異常,為什么?

    裸機程序通過ADC+DMA采集兩通道模擬量數(shù)據(jù),可以正常采集數(shù)據(jù),使用rt-thread的ADC
    發(fā)表于 07-12 08:07

    國產(chǎn)ADC兼容AD7606在便攜式振動數(shù)據(jù)采集器中應(yīng)用

    國產(chǎn)ADC兼容AD7606在便攜式振動數(shù)據(jù)采集器中應(yīng)用
    的頭像 發(fā)表于 07-04 10:05 ?230次閱讀
    國產(chǎn)<b class='flag-5'>ADC</b>兼容AD7606在便攜式振動<b class='flag-5'>數(shù)據(jù)采集</b>器中應(yīng)用

    16位200kSPS的ADC替代AD7606在數(shù)據(jù)采集系統(tǒng)中應(yīng)用

    16位200kSPS的ADC替代AD7606在數(shù)據(jù)采集系統(tǒng)中應(yīng)用
    的頭像 發(fā)表于 06-03 09:42 ?408次閱讀
    16位200kSPS的<b class='flag-5'>ADC</b>替代AD7606在<b class='flag-5'>數(shù)據(jù)采集</b>系統(tǒng)中應(yīng)用

    STM32F334 ADC1和ADC2同步采樣,有時會出現(xiàn)采ADC1和ADC2所有的通道采集數(shù)據(jù)一樣的情況為什么?

    STM32F334 ADC1和ADC2同步采樣,有時會出現(xiàn)采ADC1和ADC2所有的通道采集數(shù)據(jù)
    發(fā)表于 05-15 08:15

    ST BlueNRG-1的ADC每個接一個模擬量傳感器,可以同時采集數(shù)據(jù)嗎?

    傳感器,可以同時采集數(shù)據(jù)嗎? 另外接麥克風的PDM接口也用到了ADC單元,可以同時采集ADC數(shù)據(jù)的同時同時
    發(fā)表于 05-06 06:12

    stm32 ADC定時喚醒采集數(shù)據(jù),工作一段時間adc值不變了是為什么?

    ,但是不知道過多久,隨機的,adc數(shù)據(jù)就會停留在一個固定數(shù)值,不論我怎么調(diào)節(jié)模擬輸入無效 用仿真器查了dma 和數(shù)據(jù)buf 和adc的D
    發(fā)表于 04-11 07:22

    STM32F4 ADC采集數(shù)據(jù)不匹配是什么原因造成的?如何解決?

    地。 然而實際采集到的數(shù)據(jù)是: 輸入電壓0V~ADC轉(zhuǎn)換數(shù)據(jù)0; 輸入電壓1.054V~ADC轉(zhuǎn)換數(shù)據(jù)
    發(fā)表于 04-02 08:21

    STM32G431的ADC數(shù)據(jù)準確是什么原因?qū)е碌模?/a>

    我在一個STM32G431的核心板上做的測試工程. 使用 ADC1,TIM1,DMA1 實現(xiàn)的 ADC多通道定時采集工程. ADC進行了校準, 采集
    發(fā)表于 03-26 08:22

    DMA傳輸打印ADC采集數(shù)據(jù)ADC采集直接打印數(shù)據(jù)不同,為什么?如何排查?

    現(xiàn)在發(fā)現(xiàn)利用DMA將ADC采集數(shù)據(jù)傳入數(shù)組打印與直接將ADC采集數(shù)據(jù)打印 出來有差異,為啥呢
    發(fā)表于 03-19 07:39

    關(guān)于STM32G474 ADC多通道數(shù)據(jù)采集遇到的問題求解

    STM32G474 ADC時鐘:168MHz/4=42MHz 分辨率 12bit 單端輸入 ADC1 采集6通道數(shù)據(jù) 采樣時間6.5cycle 單端1.65V【0~-10mV左右跳動
    發(fā)表于 03-14 08:11

    振弦采集儀:高效準確,助力工程監(jiān)測

    工程監(jiān)測工作更加精確和有效。 振弦采集儀:高效準確,助力工程監(jiān)測 首先,振弦采集儀可以實時采集振弦信號,并將其轉(zhuǎn)換為數(shù)字信號進行處理。這種數(shù)字信號處理的方式可以大大降低測量誤差,提高
    的頭像 發(fā)表于 02-21 13:46 ?282次閱讀
    振弦<b class='flag-5'>采集</b>儀:高效<b class='flag-5'>準確</b>,助力工程監(jiān)測

    脈沖信號如何實時采集?

    脈沖信號如何實時采集? 脈沖信號實時采集是指對脈沖信號進行高速、準確的采樣和記錄。在很多領(lǐng)域中,如電力系統(tǒng)、通信、生物醫(yī)學工程等,需要對脈沖信號進行實時
    的頭像 發(fā)表于 11-10 15:36 ?1563次閱讀

    小型氣象站數(shù)據(jù)采集網(wǎng)關(guān)——準確監(jiān)測雨量、風速

    隨著科技的發(fā)展,人們對天氣信息的需求也愈發(fā)增加。天氣是每個人生活中不可或缺的一部分,了解準確的天氣信息有助于我們做出合理的決策和安排。在小型氣象站數(shù)據(jù)采集中,一個關(guān)鍵的環(huán)節(jié)是監(jiān)測雨量和風速。而小型
    的頭像 發(fā)表于 10-27 16:03 ?418次閱讀
    小型氣象站<b class='flag-5'>數(shù)據(jù)采集</b>網(wǎng)關(guān)——<b class='flag-5'>準確</b>監(jiān)測雨量、風速

    adc采集的電壓值數(shù)值如何真有效性轉(zhuǎn)換?

    adc采集的電壓值數(shù)值如何真有效性轉(zhuǎn)換?adc采集溫度基準電壓紋波太大有什么影響? ADC采集
    的頭像 發(fā)表于 10-17 18:17 ?1293次閱讀