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做更多了解。下面章節帶領大家了解相關內容。
2ADC誤差
在涉及模數轉換的應用中, 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轉換期間來自微控制器的干擾盡可能小。
·使采樣和轉換期間的數字信號變化量最小化(數字靜默)。
好了,就寫到這里。本文內容參考ST官方應用筆記內容,經我整理分享給大家,還有許多方法,大家可以自行研究。
上一篇:ADC,DMA,多路,單次/連續轉換
下一篇:STM32串口自動識別波特率
推薦閱讀
史海拾趣
面對日益激烈的市場競爭,Fermionics Lasertech Inc公司始終堅持以創新為驅動力。他們不斷投入研發資金,引進高端人才,加強與高校和科研機構的合作,共同推動激光技術的創新。公司成功研發出了一系列具有自主知識產權的新型激光器,不僅提升了產品性能,還降低了生產成本,使公司在激烈的市場競爭中保持領先地位。
為了提高生產效率與產品質量,國光新業積極引進并自主研發高效自動化生產線。公司投產了行業首條高效聚合物自動化生產線,并在此基礎上不斷進行技改迭代。這些生產線的建立,不僅大幅減少了人力成本,還顯著提升了產品的生產效率與一致性。目前,公司正進行第三條全國產化技改技術攻關,旨在進一步提升生產線的智能化與自動化水平。
在電子行業的初期,ARCOLECTRIC SWITCHES公司以其卓越的技術研發能力嶄露頭角。公司研發團隊成功開發出一種新型開關技術,具有更高的穩定性和耐用性,迅速在市場上獲得了廣泛認可。這一技術突破不僅為公司帶來了豐厚的利潤,還奠定了其在電子行業的重要地位。隨著技術的不斷升級和完善,ARCOLECTRIC SWITCHES公司逐漸發展成為一家技術領先、市場影響力強大的企業。
作為一家有社會責任感的企業,弘凱光電始終致力于環保和可持續發展。公司秉承“質量第一”的方針,不僅注重產品的品質和性能,還積極推廣環保理念,致力于生產高質量、環保的LED產品。此外,公司還積極參與社會公益活動,回饋社會,為建設環保節能型社會貢獻自己的力量。
以上五個故事,基于弘凱光電在電子行業中的發展歷程和公開信息,盡量以事實為依據,避免了主觀評價。這些故事展示了弘凱光電在技術創新、市場拓展、社會責任等方面的努力和成就,也反映了公司在電子行業中的崛起和影響力。
隨著技術的不斷進步和市場的不斷擴大,ASI開始積極拓展全球市場。通過設立分支機構和與全球各地的客戶建立合作關系,ASI的產品和服務逐漸覆蓋了幾十個國家。同時,ASI始終堅持以客戶為中心的理念,不斷提升客戶服務的水平和質量。無論是售前咨詢、技術支持還是售后服務,ASI都致力于為客戶提供最優質、最專業的服務。
引言 CAN(Controller Area Network)總線控制器局域網絡是在1986年2月的SAE大會上,由RoberBosch公司首先提出的。CAN總線是一種串行通信協議,它能有效支持高安全等級的分布式實時控制,其最初的目的是用在汽車上。但由于采用了許多新技術及獨特的設 ...… 查看全部問答∨ |
汽車借用飛機科技早已屢見不鮮,從發動機渦輪增壓技術,到空氣動力學配件等都是將成熟的飛機技術成功轉移到汽車上的典型案例。目前,又一項飛機技術將運用到未來汽車上,它就是電子制動系統。 電子制動系統在航空領域應用相當普遍,且制動 ...… 查看全部問答∨ |
void __irq watchdogIRQ(void) { ledblink(); isBlink=~isBlink; if(isBlink==0) { ...… 查看全部問答∨ |
windows mobile啟動中的經典錯誤initialized function of oem certification 各位大蝦,請教個問題: 定制mobile bsp的時候 ,開機啟動時候出現如下的debug信息,實在是找不到問題出在哪里,debug info如下: Windows CE Kernel for ARM (Thumb Enabled) Built on Dec 2 2008 at 15:23:13 ProcessorType=0b76&n ...… 查看全部問答∨ |
關于多普達-藍牙發送文件 多普達中選擇一個文件->打開下拉菜單->選擇\"藍牙發送文件\"->藍牙發送界面 現在我放做一個button,click button時進入藍牙發送界面,文件還是原來的文件. 請問mobile c++能否實現 … 查看全部問答∨ |
大四實習找工作-----嵌入式軟件開發-----計算機科學技術專業 大四實習,嵌入式軟件開發。 看看我能不能成為您們公司的一員。 學歷:本科 性別:男 專業:計算機科學與技術 &n ...… 查看全部問答∨ |
求 用Borland c/c++ 4.5編譯 uCOS-II時的一個插件 用Borland c/c++ 4.5編譯 uCOS-II時,需要對Borland c/c++ 兼容匯編語言,需要一個TASM.EXE 插件,哪位兄弟有的話,給兄弟傳一下。謝謝! 20weiliaoshei08@163.com … 查看全部問答∨ |
|