1. ADC采樣過程中遇到的問題
2. 理論分析
3.實(shí)例分析
4.總結(jié)
5. 經(jīng)驗(yàn)交流
1. ADC采樣過程中遇到的問題
ADC是從模擬到數(shù)字世界的橋梁,當(dāng)前ADC模塊基本是MCU的標(biāo)配,而且在轉(zhuǎn)換速度和精度都有很好的表現(xiàn),如NXP Kinetis KE15內(nèi)部有2個(gè)16bit SAR型ADC模塊(以精度制勝),可以配合EDMA完美實(shí)現(xiàn)雙ADC的同步采樣,STM32G4系列也有2個(gè)12bit但速度可達(dá)5M的ADC(以速度見長)。
相比很多以前需要MCU+外置ADC應(yīng)用的場合來說,在成本上具有很大的優(yōu)勢。這些ADC通常都是SAR型的,相比較∑Δ類型的ADC來說通常速度要快很多,但是精度會差些,但已足夠滿足大部分的應(yīng)用。然而想要在實(shí)際應(yīng)用中達(dá)到標(biāo)稱的精度,僅僅依賴ADC模塊本身是不夠的,實(shí)際的測量精度還會受到諸多外在因素的影響,例如:
ADC時(shí)間配置(包括采集時(shí)間、轉(zhuǎn)換時(shí)間、采樣時(shí)間、采樣時(shí)鐘抖動(dòng)等等)
電源性能(噪聲和內(nèi)部阻抗)
數(shù)據(jù)采集系統(tǒng)中數(shù)字和模擬部分的隔離情況
內(nèi)部阻抗與外部阻抗的匹配
輸入/輸出開關(guān)切換的影響
PCB布局布線
但是在實(shí)際應(yīng)用中發(fā)現(xiàn),ADC引腳外部的RC電路的電阻和電容的取值對ADC的性能影響比較大,如有客戶反饋在ADC采樣期間會在ADC輸入端觀察到嚴(yán)重的電壓擾動(dòng)(電壓跌落/電壓尖峰),如下圖1 所示,從而影響實(shí)際采樣精度。這種現(xiàn)象在多通道順序采樣,且前后兩個(gè)連續(xù)采樣通道信號電壓差比較大時(shí),現(xiàn)象會更加明顯,因?yàn)锳DC引腳的RC重新充電需要時(shí)間,這種擾動(dòng)來源于SAR型ADC內(nèi)部固有的采樣電路,是不可避免的。
那既然無法避免,如何采取措施避免這種擾動(dòng)對ADC采樣的影響呢,盡可能的提高ADC的精度呢?答案是選擇合適的采樣時(shí)間和ADC采樣引腳RC電路中電阻和電容的值,從原理上講,其目的是保證在采樣時(shí)間Taq內(nèi),采樣電容Csh充分充電,使其兩端電壓與待測輸入電壓之間的差值達(dá)到一個(gè)可接受的范圍內(nèi)(通常在采樣時(shí)間結(jié)束時(shí)刻,兩者的差值不能超過滿量程的 0.5LSB)。NXP AN4373文檔對這塊進(jìn)行了深入的探討,但是文章冗長不好理解,本文檔嘗試化繁為簡先介紹RC值求取的公式理論推導(dǎo),然后給出具體實(shí)例,方便理解。
2. 理論分析
在一般的采樣過程中,我們將采樣時(shí)間內(nèi)的待測輸入信號當(dāng)作一個(gè)有著恒定電壓的直流電壓源。通常設(shè)計(jì)人員會假設(shè)該電壓源有著很大的內(nèi)阻(即Rin>>Rsh)。在此假設(shè)下,采樣電容充電期間將會出現(xiàn)兩個(gè)明顯不同的時(shí)間段,如圖3所示。圖中所繪為采樣電容(紅色)和輸入電容(綠色) 兩端的電壓波形,其中,采樣電容是指外部的電容,輸入電容是指ADC內(nèi)部電容。
圖3所示為輸入電容上的初始電壓大于采樣電容上的初始電壓的情況(即Vcin>Vcsh)。此時(shí),輸入電容兩端的電壓將出現(xiàn)電壓降落。反之,當(dāng)Vcin
可以看到,圖3中采樣電容Csh兩端的電壓曲線可以劃分為兩個(gè)時(shí)間段,高輸入阻抗階段和低輸入阻抗階段,在高輸入阻抗的情況下,時(shí)間段Ⅱ的曲線變化要比時(shí)間段Ⅰ緩慢許多。其中,時(shí)間段Ⅰ采樣電容充電來自于外部輸入電容Cin,時(shí)間段Ⅱ采樣電容充電來自于外部流過Rin的外部電壓輸入因而,圖2所示的等效電路可以根據(jù)時(shí)間段的不同劃分為兩個(gè)新的等效電路,如圖4 所示。
首先,先討論時(shí)間段I內(nèi)采樣電容充電的波形,如上面圖5所示。通過一系列公式推導(dǎo)(此處忽略推導(dǎo)過程,詳見AN4373),可以得出電壓降落/電壓尖峰的幅度大小由后面的公式如下:
其中,α為輸入電容和采樣電容之比:
根據(jù)以上公式,可以發(fā)現(xiàn)輸入電容與采樣電容的比值越大,產(chǎn)生的電壓降落(或電壓尖峰)的幅度將越小。接著,討論時(shí)間段II內(nèi)采樣電容充電的波形,其波形如下圖6所示,而為了提高精度,我們的目標(biāo)是保證圖7中Vcx在Taq點(diǎn)采樣的電壓接近于真實(shí)值,也就是Vin-Vcx<0.5 LSB。
而想要使采樣電容兩端電壓與實(shí)際待測電壓之間的誤差小于0.5LSB,則采樣保持開關(guān)必須在采樣時(shí)間Taq內(nèi)保持閉合,Taq需要滿足:
另外,如果采樣時(shí)間Taq已經(jīng)確定(對于Kinetis,軟件可以設(shè)置),其它的變量包括Csh、Vfsr都是datasheet決定的,未知的兩個(gè)變量分別為Cin和Rin,對于Kinetis,通常選擇Cin為33pf,則對于設(shè)計(jì)者來說只需要考慮輸入電阻Rin,其計(jì)算方法是:
Note:具體為何是33pF?AN4373文檔表述為:參照數(shù)據(jù)手冊8.2節(jié)中的建議,每個(gè) ADC 輸入端接不小于 33 pF的輸入電容和不小于10 Ω 的輸入電阻。需要注意的是,這個(gè)值是最小的值,實(shí)際選取可以適當(dāng)大一些。通常在選擇設(shè)計(jì)外部RC元件時(shí),我們常常犯這樣的錯(cuò)誤,希望通過增加輸入電阻來降低輸入電流,或是實(shí)現(xiàn)測量源和ADC之間的阻抗隔離?,F(xiàn)在考慮這樣的情況,如果增加到10 kΩ,使得在采樣時(shí)間內(nèi)不能充分充電,那么采樣值也會不準(zhǔn)確。所以,對于硬件設(shè)計(jì)者來說,問題的焦點(diǎn)集中在外部電阻的設(shè)計(jì)。
3.實(shí)例分析
此處以Kinetis為例(同樣使用其他配備SAR型ADC的MCU),ADC時(shí)鐘為12M,16bit模式,采樣時(shí)間設(shè)置盡可能的?。ˋDLSMP=0, ADLSTS=3,ADHSC=1),按照以上設(shè)置,ADC理論計(jì)算的總轉(zhuǎn)換時(shí)間約為2.7 μs,采樣時(shí)間Taq=6xADCK cycle=6x1/12=500ns,其中,為何乘數(shù)是6,請參見ADLSTS的配置,理論上可以設(shè)置更長,對精度有好處,但會影響速度,需要用戶去平衡,本示例是按照最快速度去計(jì)算的。
按照以下公式片刻計(jì)算得出合適的Rin,Taq上面得出是500ns,從Kinetis datasheet上可以查到,輸入電容Cadin或者Csh最大值為10pF, 數(shù)據(jù)手冊中對Cin輸入電容沒有限制(數(shù)據(jù)手冊中表述為Cas,選擇為33pF,
忽略其他的寄生參數(shù), 現(xiàn)在我們得到了計(jì)算外部 RC 元件取值所需要的所有參數(shù)。
Taq=500ns, 取決于軟件配置
Cin=33pf,取決于經(jīng)驗(yàn)
Csh=10pf,取決于datasheet
Vin=3.3V,取決于參考電源
Vcsh=0V,求取最差情況,就是連續(xù)采集的兩個(gè)通道差值最大,分別為VCC和GND
Vfsr=3.3V,同上
N=16,精度
代入公式,可以計(jì)算出Rin的最大取值為
,其中
計(jì)算的輸入電阻最大取值表示我們可以在模擬輸入端加上的最大電阻, 同時(shí)又不會損失采樣的精度。如果選用超過最大取值的電阻,則將導(dǎo)致轉(zhuǎn)換結(jié)果的錯(cuò)誤。datasheet數(shù)據(jù)手冊中給出的最大取值5kΩ,原因在于,其計(jì)算的配置與本例中給出的最大取值因條件不同而不同(數(shù)據(jù)手冊中為 12/13-bit分辨率模式以及更低的ADC 時(shí)鐘頻率)。其電壓跌落也能通過公式計(jì)算出來。
如圖 11 所示,采樣電容的充電過程在500 ns的采樣時(shí)間內(nèi)已經(jīng)完成。因此,可以預(yù)見在結(jié)果寄存器中能夠得到準(zhǔn)確的轉(zhuǎn)換結(jié)果。ADC0 模塊的 DAD0 通道實(shí)際結(jié)果穩(wěn)定在 65535(這與理想值的偏差為 0,即沒有錯(cuò)誤)。
圖12是將輸入電阻從 1.1 kΩ 改為 5.1 kΩ 時(shí)的電壓波形,從圖中能明顯觀察到在 500 ns 的采樣時(shí)間內(nèi),采樣電容的充電過程還沒有完成。因此, 結(jié)果寄存器中的轉(zhuǎn)換結(jié)果不可能正確, ADC0模塊的 DAD0 通道實(shí)際結(jié)果在 64750 附近變化。
4.總結(jié)
在采樣時(shí)間Taq內(nèi),采樣電容Csh必須充分充電,使其兩端電壓與待測輸入電壓之間的差值達(dá)到一個(gè)可接受的范圍內(nèi)。通常在采樣時(shí)間結(jié)束時(shí)刻,兩者的差值不能超過滿量程的 0.5LSB。
如果采用了高阻抗的輸入電阻(更高的外部元件時(shí)間常數(shù)),則采樣電容Csh將會首先由外部輸入電容Cin的能量充電(更低的輸入元件時(shí)間常數(shù))。采樣電容上的充放電過程導(dǎo)致了輸入電容Cin兩端電壓的電壓降落(或電壓尖峰)。之后采樣電容的充電過程由于較高的輸入阻抗而變化的緩慢。
因此,外部 RC 元件的取值會從本質(zhì)上影響ADC轉(zhuǎn)換的精度,為了獲得最佳的 ADC 性能,我們需要小心對待并設(shè)計(jì)外部 RC 元件,在選取采樣時(shí)間時(shí)也必須參考采樣電容充電的時(shí)間常數(shù)。其他需要滿足的條件,詳見器件的參考手冊與數(shù)據(jù)手冊。
示例中計(jì)算電阻R是基于33pF電容的,實(shí)際使用中,用戶還需要對信號和外部可能的干擾信號的頻率等綜合考慮,但計(jì)算公式和選取思路是一樣的,即在采樣時(shí)間Taq內(nèi),采樣電容Csh必須充分充電。
盡管示例中選取Kinetis MCU作為計(jì)算對象,但實(shí)際該計(jì)算方法也適用于其他的SAR型ADC
Note:本文所涉及到的參數(shù)名字可能和數(shù)據(jù)手冊中的表述有所不同。例如:Rin=Ras(模擬源電阻),Cin=Cas(模擬源電容),Rsh=Radin(輸入電阻),Csh=Cadin(采樣電容),等式左邊為本文所用符號,等式右邊為數(shù)據(jù)手冊用到的符號。
審核編輯:湯梓紅
評論
查看更多