【STM32 系列】提升ADC采樣精度的方法
資料地址
兆易創新GigaDevice-資料下載兆易創新GD32 MCU

ADC簡介
- 假設 ADC 轉換包括采樣、保持、量化、編碼四個步驟。
- 在采樣過程中,采樣電容會參與其中。具體而言,即在采樣開關 SW 關閉期間,外部輸入信號借助外部的輸入電阻 RAIN 以及 ADC 采樣電阻 RADC,對采樣電容 CADC 進行充電。在采樣階段,必須在規定的采樣時間內,將外部信號的電壓準確無誤地采樣到 ADC 中。Vref+需要在量化的過程中保持穩定。
- ADC的性能指標一般分為" 靜態性能參數 "和" 動態性能參數 "
每次采樣過程可以簡化為:外部信號通過輸入阻抗以及采樣電阻對采樣電容的充電電阻對采樣電容的充電(即采樣電容零狀態的單位階躍響應)。

誤差
- 以下幾種就是靜態性能參數。
- 采樣時間結束后,采樣誤差表示為采樣電容上的電壓與信號源上的電壓差值。在一次理想的采樣過程中,這個電壓差值應該保持在 0.5LSB 以內。(LSB為逐次逼近型ADC(SAR ADC)的最小電壓分辨率,0.5LSB為SAR ADC的量化誤差)。
偏置誤差

增益誤差

微分非線性誤差

積分非線性誤差

ADC采樣信號FFT頻譜圖
以下就是ADC采樣的動態性能參數。

信噪比(SNR)

信納比(SNDR)

有效位數(ENOB)

總諧波系數(THD)

采樣周期Ts與外部輸入電阻Rain
此處僅說結論,推導過程可以在資料中找到!

故在設計SAR ADC的外圍電路時,首先就要考慮其采樣時間Ts和外部信號源內阻,如果忽略這些基本參數,那么采樣結果很難達到理想的精度。
RC濾波與采樣
此處僅說結論,推導過程可以在資料中找到!


提高精度的幾種方法和注意事項
MUC供電電源
- 一般的單片機內部都會有一個精準的內部參考源(典型電壓 2.5V),可以用作 ADC 工作時的電壓。該內部參考電壓可以連接到 Vref 引腳上,但是需要注意的是,其內部參考源帶載能力不強,謹慎選擇所帶負載的大小。
- 量化編碼過程中,Vref + 需要為轉化電容網絡充電。在量化過程里,同樣存在對基準源抽取電荷的作用。所以,倘若沒有其他去耦措施,一個穩定且純凈的 Vref + 基準會對 ADC 量化的精度產生顯著影響。建議對于這兩個電源采用紋波噪聲系數更小的 LDO 來供電。
- 對于 VREF + 基準源,建議靠近引腳并聯一個 uF 級以及一個 nF 級的去耦電容,一方面,它能夠濾除來自外部的低頻與高頻電源噪聲;另一方面,還可使 ADC 在量化編碼過程中的基準源更加穩定。
- 在 layout 過程中,對于相關電源線的走線,推薦加寬電源跡線,以減小跡線的 ESR,在量化階段,減小轉化電容網絡瞬間充電對輸入基準源的影響。
引腳電容

參考電壓設置
采樣信號的幅值不應超出 VREF+的幅值,對于無VREF+引腳的 MCU,采樣信號的幅值不應超出 VDDA 的幅值,否則可能會導致模擬電源漏電,嚴重影響 ADC 性能。

IO口引入超范圍電壓

信號源輸入電阻的影響

當信號源輸入電阻不滿足要求
假設鋰電池的電壓為24V,用R1=9MΩ、R2=1MΩ的電阻分壓,然后將分壓結果送進ADC通道進行采樣,其并聯得到的輸出阻抗為0.9MΩ。

改善方法
- 添加一個運放跟隨電路以實現阻抗匹配。
- 若對采樣率無要求,可降低 ADC 的采樣時鐘,通過變相延長采樣時間,使采樣電容充電至正確電位。
- 當功耗要求可放寬時,可按相同比例縮小 R1、R2 兩個電阻,例如設 R1 = 900k,R2 = 100k ,此時該分壓電路的輸出阻抗變為 90k 。配置合適的采樣周期,便能夠滿足 ADC 的阻抗要求。
保證ADC采樣精度的改善方法
對于 SAR ADC,在采樣時間內,采樣電容上的電壓必須充分充放電。其充電電壓值與外部輸入電壓的差值不應超過 0.5LSB,否則,無論后級 ADC 性能多么卓越,都無法真實反映信號的幅值。
- 對于具有極大輸入阻抗的情況,我們添加了一顆電容來限制單次采樣時的電壓跌落或上升毛刺的幅值,但是在這種情形下,需要在每兩次采樣之間添加足夠的時延給內部采樣電容充電,以保證采樣開關關閉時,采樣電容上的電壓與外部信號的電壓差在量化誤差范圍內。
- 當 ADC 工作在連續采樣或者掃描采樣時,若因輸入阻抗過大且未及時修正,輸入阻抗過大通道的采樣結果會受前一個采樣通道信號的影響,通過增大采樣時間以滿足輸入阻抗的影響會顯著改善這個現象。
I/O引腳串擾

- 在引腳規劃方面,需提前規劃將那些需要持續翻轉的數字 I/O 在物理位置上與 ADC 采樣通道保持距離。
- 倘若因資源限制,頻繁翻轉的數字 I/O 無法遠離模擬采樣口,那么在后期 layout 時可采取一些措施來降低影響。例如,可在數字 I/O 與模擬通道之間設置一定面積的 GND 進行隔離。
- 此外,減緩數字信號的邊沿也能減弱串擾影響,比如給數字信號添加電容值合適的電容,降低 MCU 數字 IO 口的驅動速度,就能明顯減緩該數字信號的邊沿。
- 還可以在數字 I/O 口不翻轉時進行一次 ADC 轉換,當然,這一做法的前提是應用允許。

軟件提高ADC采樣精度
- 采用 ADC 片上硬件過采樣。
- 對于不具備片上硬件過采樣單元的 MCU,在軟件算法上也可采用一些常用的濾波算法,來降低輸入信號采樣值的波動。比如最常見的平均算法,該算法在濾波過程中會占用 CPU 的算力以及一定的 RAM 空間。這種平均算法適用于輸入信號變化緩慢、偶有脈沖型干擾的情況。要是信號變化頻率高于這個平均濾波算法的執行頻率,就會丟失信號變化的細節,經過平均后的采樣結果便無法重現信號的全部信息。因此,此平均算法一般僅用于采樣直流小信號,不建議用于采樣交流連續信號(如正弦波等)。
博客導航
本文來自博客園,作者:膝蓋中箭衛兵,轉載請注明原文鏈接:http://www.rzrgm.cn/Skyrim-sssuuu/p/18774942


浙公網安備 33010602011771號
https://orcid.org/0000-0001-5102-772X