本文導讀
ADC的主要參數指標分為靜態參數和動態參數兩類,基于這兩類指標,本文將對先楫半導體HPM6750 MCU片內16位ADC的精度進行全面測試,一起看看結果怎么樣。
ADC參數測試原理
1.1ADC參數
國內16位SAR型ADC芯片目前較少,MCU內置16位SAR型ADC的則更少。如何衡量ADC的性能,參考S*公司帶有16位ADC的MCU芯片S**32H750手冊,分為靜態參數、動態參數兩部分,如表 1.1、表 1.2所示。
靜態參數主要有差分非線性(DNL)、積分非線性(INL),衡量ADC測量直流及低頻信號時的性能。
表 1.1 ADC的靜態參數(S**32H750)
動態參數主要有有效位數(ENOB)、信噪失真比(SINAD)、信噪比(SNR)、總諧波失真(THD),衡量ADC測量交流動態信號時的性能,例如測試1KHz正弦波。
表 1.2 ADC的動態參數(S**32H750)
1.2 IEEE1241標準
IEEE1241對ADC器件的指標參數和測試方法進行定義,是一種為ADC器件廠家制定的標準。ADI和TI等廠家的獨立ADC芯片、MCU廠家的片內ADC,均遵循該標準的方法,進行靜態參數和動態參數的測試。
IEEE1241于2000年發布,較新的版本為IEEE1241-2010。ADC測試評估的主要任務是確定其電壓傳輸關系,理想情況下輸入電壓與ADC輸出代碼中點的傳輸關系是一條直線,每個輸出代碼的寬度相同。實際的電壓傳輸關系不同于理想情況,IEEE1241標準給出了幾種可選的測試步驟和方法。一種方法是使用斜坡電壓信號,通過復雜的伺服環路系統,使用比被測ADC分辨率高得多的DAC,精確步進,得到被測ADC各個LSB的實際跳變電壓。
另一種方法是使用正弦波信號,該信號必須具有比被測ADC預期信噪失真比(SINAD)至少高20 dB的總諧波失真和噪聲。例如,一個理想16位ADC具有98dB的信噪比(SNR),假設沒有失真,那么SINAD就為98dB。要想對該ADC進行測試,要求使用一個-118dB以上THD+N的正弦波信號。該低失真正弦信號,可以通過多階帶通濾波器實現,硬件相對簡單。因此使用正弦波信號,是目前主要的ADC測試方法。
EEE1241標準的各章節中,給出了基于正弦波信號和統計直方圖,實現靜態參數DNL、INL,動態參數ENOB、SINAD、SNR、THD的測試方法和計算公式。
【6.4節】給出ADC電壓傳輸關系的測試方法。使用一個幅度稍微超過ADC測量范圍的純正正弦波,輸入到ADC,獲取多個連續的采樣數據并統計直方圖,由公式(27)計算電壓傳輸關系。
其中,T[k]是第k個二進制代碼對應的電壓值,Hc[k-1]是累計直方圖,S是總采樣點數。該節還給出了正弦波頻率和ADC采樣頻率的選擇,每次采集的數據點數,總的采集數據點數,正弦波幅度過載量要求。
【7.4.1節】給出增益誤差G、失調電壓Vos的測試方法和計算公式,基于對T[k]的最小二乘法擬合。
【8.2節】給出積分非線性INL的測試方法。測量值T[k]校正增益和失調誤差之后,與理想值Tnom[k]相減,它們的差值代入公式(40),計算輸出碼k處的積分非線性ε[k]。
由公式(40)將LSB單位的INL,換算成百分比形式。
【8.4節】給出差分非線性DNL的測試方法,由公式(43)計算。當DNL[k]<0.9時,輸出碼k被定義為缺失碼(missing code)。
【8.8節】給出總諧波失真THD的測試方法。ADC 對周期信號進行采樣時,動態誤差和積分非線性都會導致諧波失真,總諧波失真用于量化此類影響。總諧波是指一組目標諧波分量的均方根值(二次、三次等)與所施加信號均方根值的比值,由公式(50)計算。
該節給出了目標諧波的次數要求,由輸入正弦波的最低9個諧波組成,包括第2次到第10次。用于計算的采樣數據中,應該包含整數個輸入正弦波周期,以最小化頻譜泄漏,例如10個整周期。
【9.2~9.4節】給出SINAD、SNR、ENOB的測試方法。將指定頻率和幅度的純正正弦波輸入到ADC,首選幅度接近滿量程的大信號,但是不能出現削波(例如95%FS信號)。首先計算噪聲和失真NAD,通過計算測量數據波形的DFT頻譜,從頻譜中刪除直流和測試頻率處的分量后,所有剩余傅立葉分量的和方根是NAD,由公式(67)計算。
通過將NAD和Arms代入公式(66),計算SINAD。
通過將NAD、Arm、THD代入公式(69)和(68),計算SNR。
通過將NAD代入公式(70),計算ENOB。其中εQ是理想的量化誤差rms值,等于LSB/√12。
根據IEEE1241標準的以上計算過程和公式,編寫科學計算軟件代碼,可以實現各參數的測量。
測試環境搭建
2.1 硬件框圖
ADC測試的硬件由正弦波信號源、HPM6750測試板、USB轉TTL線、U盤等組成,如圖 2.1所示。正弦波信號源通過SMA連接線,連到HPM6750測試板。
圖 2.1 測試環境硬件框圖
靜態參數測試時,需要大量采樣數據,采樣數據先存儲在HPM6750測試板的內存中,之后多份采樣數據存儲到U盤中。動態參數測試時,需要的采樣數據較少,采集完成之后直接通過HPM6750的UART打印,由TTL轉USB線傳輸到電腦進行計算。
電腦上需要的軟件工具如表 2.1所示。
表 2.1 測試所需的軟件工具
2.2 正弦波信號源
用于測試的正弦波信號需要具有比被測ADC預期信噪失真比(SINAD)高20 dB左右的總諧波失真和噪聲。一個理想16位ADC具有98dB的信噪比(SNR),如果沒有失真,SINAD為98dB。因此,需要一個-118dB以上THD+N的正弦波信號對16位ADC進行測試。
本測試使用TI 的PSIEVM精密信號注入器,板上有8階帶通濾波器生成低失真正弦波,THD參數為-123dB,以符合測試要求。PSIEVM板如圖 2.2所示,它的正弦波輸出頻率固定為2KHz,輸出幅度和直流偏移電壓可調,配套有PC端的GUI界面進行設置。
圖 2.2 正弦波信號源PSIEVM板
需要注意PSIEVM板的輸出阻抗,需要手工改成50Ω。
2.3 外圍電路要求
HPM6750片內ADC的外圍電路設計,對保證ADC的信噪比,至關重要。SAR型ADC可以等效理解為一個多輸入端口的比較器,模擬電源AVDD、基準輸入VREFH、接地平面、輸入通道上的噪聲直接影響ADC輸出代碼的跳動。
本測試使用專用的HPM6750測試板,如圖 2.3。
圖 2.3 HPM6750測試板
HPM6750測試板的ADC外圍電路處理方式如下文所述,硬件設計時建議參考處理。
【模擬電源AVDD】通過LDO從數字電源5V獲得低噪聲模擬電源。需要注意LDO的電源抑制比在10kHz及以上頻率時下降,導致高頻紋波和尖峰噪聲仍可以傳導至LDO輸出。建議在LDO之前加入10Ω左右電阻和磁珠與輸入端10uF左右電容,形成低通濾波,濾除高頻紋波與尖峰噪聲。
【基準VREFH】基準電路設計包括兩部分:電容選取、基準噪聲。VREFH管腳位置的大電容是片內SAR型ADC的一部分,此類ADC基于開關電容電荷重新分配原理,在確定輸出代碼LSB過程中,需要從VREFH管腳獲得瞬態電荷。例如,使用了兩個10uF的X5R材質低ESR陶瓷電容和104電容并聯,并且在PCB布局時以盡量短的走線和覆銅連接到VREFH管腳,電容的接地焊盤需要就進放置多個過孔至PCB接地平面,以降低連接阻抗。
基準的噪聲需要選擇低噪聲基準。例如,使用了低成本的AZ432搭建3.1V基準,低頻噪聲10uVpp,典型溫漂20ppm。對溫漂有更高要求時,可以選用TPR3525,低頻噪聲50uVpp,典型溫漂10ppm。
【接地平面】AGND和VREHL管腳需要就近放置過孔,連接到接地平面。PCB布局時需要把模擬器件、數字器件分區域放置,引導數字信號的開關電流不流經模擬電路的低平面,以避免串入數字開關噪聲。詳細地平面設計說明參考資料[6]。
【輸入通道】需要注意,本測試中輸入通道不能有普通電容,普通電容的容量隨輸入電壓變化,使得低通截止頻率變化,會引入明顯失真。正常使用時,輸入通道需要限制信號帶寬,例如加入RC低通濾波,限制寬帶噪聲。
使用以上處理,HPM6750測試板的測試數據詳見5.1節的表5.1。
靜態參數測試
3.1 測試條件
使用正弦波輸入信號,基于概率密度原理和累計直方圖測試DNL、INL。當輸入信號是理想正弦波時,ADC以固定頻率采集,所輸出數字代碼的出現概率,理論上為固定值,如圖 3.1所示。出現概率通過某一數字代碼的出現次數,除以總采樣點數計算。各個輸出數字代碼的測試出現概率,與理想出現概率之間的差值,是這個代碼的寬度誤差。統計最大寬度誤差,得到差分非線性DNL。得到DNL之后,DNL的累計誤差是積分非線性INL。
圖 3.1 正弦波輸入時的ADC輸出代碼直方圖
圖 3.1的直方圖高度非線性,不能直接計算,通過累計直方圖實現積分計算,可以實現直方圖線性化(參考資料[3])。IEEE1241標準6.4、7.4、8.2、8.4節,給出了以上基于正弦波信號和概率密度直方圖方法的計算過程、公式、及測試條件。
結合IEEE1241中6.4節要求,本測試實際使用測試條件設置如圖 3.1所示。
表 3.1 靜態參數測試條件
【輸入信號幅度】IEEE1241的6.4節描述,輸入信號幅度需要輕微超出ADC測量范圍,過載量根據輸入噪聲而定。因為在輸入正弦波的波峰、波谷位置,ADC兩個臨近輸出代碼對應的輸入電壓差小,容易受噪聲影響。本測試中,選用10%過載量,根據ADC輸入范圍0~3.1V,PSIEVM輸出正弦波幅度設置為-0.3~3.4V,offset設置為1.55V。
【ADC采樣速率】IEEE1241的6.4.1節描述,采樣速率和輸入信號頻率必須互為質數,實現均勻遍歷到所有的ADC輸出代碼。本測試中,輸入正弦波頻率2KHz,采樣速率664Ksps,每個周期獲得332個采樣點,具有332個不同輸出代碼,通過小數位頻率和大量采樣點,實現均勻遍歷所有的輸出代碼。
【采樣點數】IEEE1241的6.4.1節描述,每一次采集的連續采樣點數,包含整數個輸入信號周期。這樣保證每次的采樣點在0~2π的相位上均勻分布。因為會使得多次采集的數據進行拼接時,輸出代碼的出現概率均勻分布。本測試中,每次采樣點數約120K。
IEEE1241的6.4.3節描述,根據概率密度進行測試時,樣本數量與測試精度、置信度的計算公式。本測試中使用大約30M采樣點進行計算,存儲在U盤中。
3.2 測試步驟
靜態參數測試時,單次的連續采樣數據,MCU先存儲在HPM6750測試板的內存中,然后順序存到U盤中,將多份采樣數據拼接成幾十兆采樣點的數據記錄文件,用于參數計算。測試的步驟如下。
(1) PC上位機設定正弦波信號源PSIEVM的頻率頻率、幅度、失調,使能輸出;
(2) Segger Embedded Studio環境中啟動ADC采集數據,并存儲到U盤;
(3) U盤中的數據記錄文件復制到電腦,數據文件的路徑寫入科學計算軟件;
(4) 運行科學計算軟件代碼計算DNL、INL;
(5) 查看科學計算軟件輸出的圖表和數據。
3.3 測試數據
本測試中從U盤讀取的33M采樣數據文件大小為128MB,導入科學計算軟件獲得的輸出代碼直方圖如圖 3.2所示,其中橫軸X為ADC的輸出代碼值,縱軸Y為該代碼的出現次數,以對數坐標顯示。可以看到圖 3.2包含了0~65535個輸出代碼,符合16位ADC的輸出代碼個數。
圖 3.2 采樣數據直方圖
3.3.1 DNL
采樣數據通過科學計算軟件計算得到的DNL,如圖 3.3所示,DNL最大值為+1.1~-0.92LSB。
圖 3.3 DNL測試數據
3.3.2 INL
采樣數據通過科學計算軟件計算得到的INL,如圖 3.4所示,INL最大值為+4~-4.2LSB。
圖 3.4 INL測試數據
3.3.3 小結
根據以上測試數據,HPM6750片內16位ADC測得DNL為+1.1/-0.92LSB,INL為+4/-4.2LSB。
動態參數測試
4.1 測試條件
使用正弦波輸入信號,基于FFT頻譜分析,從頻譜成分計算出SINAD、ENOB、SNR、THD參數。將噪聲和諧波成分等效到ADC輸入端,根據理想ADC的信噪比公式,可以得到有效位數ENOB。IEEE1241的9.2~9.4節,描述基于FFT方法的ENOB等參數計算過程、公式、及測試條件。
結合IEEE1241要求,本測試實際使用測試條件設置如表 1.1所示。
表 4.1 動態參數測試條件
【輸入信號幅度】IEEE1241的9.2.3節描述,輸入信號幅度接近ADC的滿量程,但是不能出現削波。因為信噪比SNR和失真THD直接和輸入信號幅值相關,但是幅度過大,接近削波時,將出現明顯失真。本測試中選用93%FS,根據ADC輸入范圍0~3.1V,PSIEVM輸出正弦波幅度設置為0.0775~3.0225V,offset設置為1.55V。
【采樣速率】IEEE1241的9.3節描述,可選相干采樣,或非相干采樣加窗。本測試中選用后者,為了衡量ADC性能,采樣速率選用最高值2MSPS。
【采樣點數】IEEE1241的9.4.3節描述,采樣點數增加時,隨機噪聲對正弦波測試結果的影響降低,可重復性更好。采樣點數不應過多,以免正弦波信號源或ADC時鐘信號中的頻率漂移或相位噪聲影響結果。本測試中選用20個整周波采樣點數,即20K samples。
4.2 測試步驟
動態參數測試時,采樣數據需要較少,ADC采集20個輸入信號周期的連續數據,采集完成之后通過HPM6750的UART打印,通過TTL轉USB線傳輸到電腦進行計算。
(1) PC上位機設定正弦波信號源PSIEVM的頻率頻率、幅度、失調,使能輸出;
(2) Segger Embedded Studio環境中啟動ADC采集數據,并通過UART打印;
(3) 采樣數據文件的路徑寫入科學計算軟件;
(4) 運行科學計算軟件代碼計算ENOB等參數;
(5) 查看科學計算軟件輸出的圖表和數據。
4.3 測試數據
本測試中從UART打印20K點數據,導入科學計算軟件看到的原始數據波形如圖 4.1所示,可以看到波形幅值接近滿量程。
圖 4.1 動態參數測試數據的原始波形
4.4 ENOB、SINAD、SNR、THD
通過科學計算軟件計算輸出的頻譜如圖 4.2,藍色是輸入信號,紅色是諧波,黑色是噪聲。
圖 4.2 動態參數測試數據的頻譜
通過科學計算軟件計算輸出的動態參數值如表 4.2。需要注意動態參數測試與噪聲相關,容易受干擾,需參考2.3節的描述仔細設計ADC外圍電路。
表 4.2 動態參數測試數據
HPM6750片內16位ADC的采樣速率最高可以設置至4MSPS,這種情況下的動態參數測試值如表 4.3。可以看到,ENOB等參數有一定幅度下降,需要更高采樣速率而不是更高精度時,可以選擇使用該設置。
表 4.3 動態參數測試數據(4MSPS)
4.5 小結
根據以上測試數據,HPM6750片內16位ADC在2MSPS最高采樣速率下,測得ENOB為12.1位,SINAD為74.6dB,SNR為74.7dB,THD為-88.9dB。
采樣速率最高可支持至4MSPS,測得ENOB為11位。
測試總結
5.1 實測參數與手冊參數對比
匯總以上測試數據,HPM6750片內16位ADC的靜態參數和動態參數如表 5.1所示。表中與HPM6750手冊中的參數進行了對比,可以看到實測參數基本與手冊符合。
表 5.1 實測參數與手冊參數
如下表,靜態參數部分與國外領先廠家的同類型SOC片內16位ADC參數進行對比。HPM6750的靜態參數較好,DNL優于對比型號。INL約為±4LSB,優于S**32H750,與Lxx553x接近。
表 5.2 與國外廠家的靜態參數對比
如下表,動態參數部分與國外領先廠家的同類型SOC片內16位ADC參數進行對比。HPM6750的動態參數與對比型號基本在同一水平,ENOB為12.1位,S**32H750為12.2位,Lxx553x為11.8位。
表 5.3 與國外廠家的動態參數對比
通過以上對比,HPM6750片內16位ADC的實測數據具有與同類型號S**32H750、Lxx553x幾乎等同的性能,ENOB有效位數為12位,INL較好約±4LSB。
5.2 有效位數的區別
對于高分辨率ADC,關注實際能做到多少位,但是大部分情況下不具備搭建IEEE1421中正弦波測試環境的條件,測試有效位數ENOB。通常使用測量DC電壓的方式,統計輸出數據不跳動的位數,檢查ADC的無噪聲分辨率NFR。需要區分無噪聲分辨率NFR,不等同于手冊中的有效位數ENOB。NFR是測量直流或低頻信號時,所關注的不跳動位數,而ENOB是測量交流動態信號關注的有效位數。NFR測量的是噪聲的峰峰值,但沒有包括ADC的非線性,ENOB測量的是噪聲的均方值,還包括了ADC的非線性。高速ADC的手冊中通常只標注動態參數ENOB,沒有標注NFR,但是在ADC的非線性遠小于噪聲的峰峰值的情況下,可以從動態參數ENOB,估算能夠獲得的NFR。
【無噪聲分辨率NFR的測試方法及計算】無噪聲分辨率衡量ADC能夠測量到最小直流信號,測試方法:輸入端接地,或連接到一個通過大電容深度去耦低噪聲的直流電壓,然后采集大量采樣點,并將其表示為直方圖。外圍電路設計良好時,等效到ADC輸入端的噪聲為白噪聲,直方圖呈正態分布。直方圖的代碼分布個數,表示峰峰值噪聲,對應無噪聲分辨率。
【有效位數ENOB的測試方法及計算】有效位數衡量ADC能夠測量到的最小交流信號。測試方法:輸入正弦信號,對采樣數據進行FFT分析,計算所有噪聲(包括量化噪聲)和失真項的和方根值SINAD,并等效為ADC輸入噪聲,代替SNR,根據理想N位ADC的理論SNR公式,換算位數N。
SNR = 6.02N + 1.76dB
【通過ENOB估算NFR】根據參考資料[5],針對交流輸入信號的ENOB,與直流低頻信號的無噪聲分辨率NFR,有如下的換算關系:
ENOB = NFR+0.92
對于直流低頻信號,ADC的ENOB約比NFR大1位(0.92位)。但是以上計算過程,沒有考慮ADC非線性,外圍電路噪聲、以及輸入信號噪聲影響,是理想情況下能獲得的無噪聲分辨率NFR。實際電路中,NFR與外圍電路直接相關,ADC外圍AVDD管腳、VFEFH管腳、接地平面,以及直流輸入信號自身的噪聲,均會直接影響ADC輸出代碼跳動,需要仔細設計外圍電路和PCB(參考資料[6]),才能獲得預期的無噪聲分辨率。
測量直流低頻信號時,除了硬件措施,對高速ADC輸出代碼做數字平均濾波,是提高無噪聲分辨率的有效方法。HPM6750片內16位ADC,做數字平均之后的無噪聲分辨率如表 5.4所示。被測的信號是一節1.5V干電池,可以看到平均4次之后,NFR為11位以上;平均32次之后,NFR為12位以上。
表 5.4 HPM6750數字平均之后的無噪聲分辨率
來源:立功科技
審核編輯:湯梓紅
-
芯片
+關注
關注
455文章
50730瀏覽量
423186 -
mcu
+關注
關注
146文章
17131瀏覽量
351012 -
半導體
+關注
關注
334文章
27300瀏覽量
218135 -
adc
+關注
關注
98文章
6496瀏覽量
544477
發布評論請先 登錄
相關推薦
評論