幾年前,我需要一個快速、低頻但失真極低的源來測試板載微控制器 ADC,看看它是否具有接近數(shù)據(jù)表中所述的有效位數(shù) (ENOB) 和線性度。
我知道凌力爾特 [1] 的失真非常低,但設(shè)計有些復(fù)雜,但這對于我的迫切需要來說似乎有點過分了。因此,我最終基于 Hein van den Heuvel [2] 的電路構(gòu)建了一個經(jīng)典的三運放狀態(tài)變量振蕩器,帶有一個小小麥燈泡作為振幅穩(wěn)定電路。
經(jīng)過一天擺弄電路中運算放大器的各個階段的負載后,我設(shè)法將諧波失真產(chǎn)物降低到 -95 dBc 水平以下,這對我的即時需求來說很好。
雖然可以構(gòu)建分立的振蕩器電路,但它很繁瑣。存在溫度問題,如幅度漂移、頻率漂移、啟動和穩(wěn)定時間等。同樣,我認為在未來擁有一個具有 2.5 到 +/-10 伏多輸出的快速設(shè)置振蕩器會很好,這樣我可以快速測量任何 16 位精度的 ADC。
模擬方法絕不是一種快速設(shè)置,這讓我開始思考專業(yè)音頻分析儀是如何實現(xiàn)它們的源的。我想,他們必須要么構(gòu)建一個精密的離散 DDS,要么使用其中一個高分辨率 I2S 音頻 DAC。
然后,我瀏覽了 TI 應(yīng)用說明,了解他們對超低失真測試振蕩器的看法,果然,它使用了他們的 Burr-Brown I2S 音頻 DAC 之一,然后是一些高性能低通濾波器 [3]。
我買了幾個 I2S DAC 并將它們連接到我的一個微控制器演示板上,大約一天后 I2S 就開始運行,并且有一些不錯的信號從設(shè)置中跑出來。I2S 的奇妙之處在于它可以連接到處理器的 DMA 上,使 99% 的數(shù)據(jù)傳輸對處理器透明。處理器所要做的就是每隔一段時間保持 DMA 管道充滿。
這是一種學習體驗,在經(jīng)濟上并不有利,因為 TI 以低于 300 美元的價格出售他們的電路,但是,沒有發(fā)布的 API 可用于通過您自己的測試程序控制他們的解決方案。
然后我想,“USB聲卡加密狗怎么樣?它們一定很體面而且很便宜?!?/p>
快速搜索發(fā)現(xiàn),Creative Labs 確實制造了一款成本極低但性能卓越的 16/24 位 USB 加密狗,令人印象深刻的是“Creative Labs Sound Blaster Play!3.” 這款不到 20.00 美元的設(shè)備甚至具有 24 位/96-kHz 的數(shù)據(jù)速率 [4]。我相信創(chuàng)意實驗室不會制造垃圾,所以我買了一個試試。
使用我的 18 位 FFT 分析儀 [5] 進行的初步測試表明,筆記本電腦不僅“聽起來”更好聽我的耳朵,而且性能確實處于 16 位失真水平,底噪非常干凈。
這種方法確實是我的通用 ADC 測試臺的“快速設(shè)置”解決方案,因為所有軟件都可以在我的實驗室 PC 上運行;現(xiàn)在我將擁有一個“可控”的源、頻率和幅度,并且它正在我的 PC 上運行,因此我可以擁有獨立的應(yīng)用程序,甚至可以構(gòu)建 API 以在以后需要時包含在自動化測試套件中。
在那里解決了很多工作,并且通過使用外部聲卡,精確的幅度和已知質(zhì)量可以在任何測試臺之間轉(zhuǎn)移,因為我的測試筆記本電腦內(nèi)部聲卡在輸出幅度和真實音質(zhì)上隨處可見.
將筆記本電腦用于測試控制器的另一個好處是,您可以拔下電源適配器并依靠電池運行,從而消除了許多接地回路問題,這些問題總是在您嘗試快速移動并完成工作時突然出現(xiàn)。
輸入 BlasterAmp
現(xiàn)在所需的所有項目都是用于 Sound Blaster 加密狗的模擬接口板,以便為我的“通用”測試設(shè)置獲得所需的輸出。
我測量了 Sound Blaster 音頻輸出到指定的 300 歐姆耳機負載和一些測試音調(diào),我測量了滿量程輸出的一致 0.37 伏峰值,與我使用的 PC 或操作系統(tǒng)無關(guān)。
列出了常用的 ADC 輸入范圍(表 1)。我想如果我涵蓋了常見的 ADC 輸入范圍,則可以通過使用音量控制來調(diào)整幅度來測量介于兩者之間的任何內(nèi)容,這最終會降低可實現(xiàn)的信噪比 (SNR),但 Sound Blaster 的 SNR 已經(jīng)足夠了對于我要測量的應(yīng)用程序。
表 1:這些范圍涵蓋了我在過去 10 年中遇到的幾乎所有 ADC 輸入。該表用作確定 Sound Blaster 加密狗輸出的放大器所需的增益和偏移量的基礎(chǔ)。
3.3 伏的峰值范圍很奇怪,但仍然出現(xiàn)在較低分辨率的基本設(shè)計中,無論如何大多數(shù)都是 10 位或 12 位 ADC,因此決定只使用音量控制和 0-5 伏范圍在這些應(yīng)用中,只有很小的信噪比損失。
然后我設(shè)計了我稱之為“BlasterAmp”的東西,它具有所需的增益和偏移,以便能夠轉(zhuǎn)換 0.37 伏峰值,即 Sound Blaster 加密狗的滿量程輸出,以匹配表 2。
表 2:BlasterAmp 旨在涵蓋表 1 中的常見電壓,只有 4 個增益步長和 3 個偏移設(shè)置。單極范圍需要使用三個偏移電壓。
關(guān)于單極范圍需要注意的一點:現(xiàn)在這些總是“軌到軌”,雖然我們說“軌到軌”,但幾乎總是與“軌”有一些偏移。這將對任何 ADC/緩沖器測試造成嚴重破壞,因為如果“軌”不完全處于零或滿量程,那么 ADC 將削波,這將導致嚴重的失真,從而阻止進行任何有意義的測量。此外,有時 ADC 參考電壓為 2.048 或 4.096 伏,而不是 2.5 和 5 伏。為了解決這些情況,我使用了精確的 25 轉(zhuǎn)微調(diào)器,以便在需要時對增益和偏移進行微調(diào)。微調(diào)器還允許 Sound Blaster 加密狗、電阻器容差和運算放大器偏移電壓的任何細微差異。
圖 1 顯示了完成的 BlasterAmp 的一個通道。短路跳線用于允許根據(jù)需要更改偏移和增益,以適應(yīng)各種所需的輸出范圍。
圖 1:立體聲 BlasterAmp 的一個通道。增益和偏移范圍通過可移動的跳線設(shè)置,然后借助精確的 25 圈微調(diào)器進行微調(diào)。U101 周圍的電阻網(wǎng)絡(luò)是來自 Vishay (OSOPTC1001AT0) 的 1 k-ohm 匹配網(wǎng)絡(luò)。所有其他電阻器的尺寸為 0.1%,0805,以最大限度地減少電阻器發(fā)熱和隨后的失真。C100 和 C101 必須是薄膜或 COG 陶瓷類型以消除失真。
對于放大器,我使用了久經(jīng)考驗的真正 Burr-Brown OPA1611,這是一款超低失真音頻運算放大器,它們的性能符合數(shù)據(jù)表,也就是說非常出色。
對于偏移參考電壓,我使用了 TI REF5050,它是一個精密的 5 伏參考電壓。
由于該電路預(yù)計將在我的工作臺上用于測試設(shè)置安排,因此我將其設(shè)計為由 +/-15 伏導軌供電,并使用了另一個經(jīng)過驗證的真正組件,即我保留的 HP6234A 雙線性電源在我的長凳上這樣的場合。使用像 HP6234A 這樣的線性電源非常有用,因為它具有低噪聲、低 IO 電容設(shè)計,而且它不會在任何地方從開關(guān)電源中噴出共模電流。如果我必須使用切換器為設(shè)計供電,我會使用一些線性、低壓差穩(wěn)壓器和電路中的大量共模扼流圈,以盡我所能將開關(guān)噪聲遠離電路板。值得信賴的 HP6234A 消除了所有這些問題。
我鋪設(shè)了最終的雙通道 BlasterAmp PCB,以安裝在我沒有蓋上蓋子的小型 Hammond 外殼 [6] 中,因為這樣可以輕松更換各種跳線和微調(diào)電位器(圖 2 )。
圖 2:完成的 BlasterAmp。我將 PCB 安裝在擠壓外殼中以進行保護。來自聲卡的音頻是 PCB 右上方的黑色電纜。電源由我的 HP6234A 線性工作臺電源通過 PCB 中間右側(cè)的電線連接器供電。完整的設(shè)計可用,見參考文獻 10。
通用格言:硬件需要軟件
使用 Sound Blaster 加密狗無疑大大簡化了設(shè)計并節(jié)省了開發(fā)時間,但我仍然需要一種將高動態(tài)范圍測試信號播放到 Sound Blaster 中的方法。我嘗試了大約十幾種音頻測試音調(diào)軟件解決方案,其中大多數(shù)都只有 60-dBc 或更低的失真水平,這對于聽力測試來說很好,但對于我的應(yīng)用來說不行,我需要將失真降低到 16位級別。
互聯(lián)網(wǎng)上有幾個發(fā)燒友網(wǎng)站提供非常低的失真文件用于測試 [7]。對于播放,您需要一個在循環(huán)時具有零死區(qū)時間的 WAV 或 MP3 文件播放器。我發(fā)現(xiàn)愚蠢地命名的程序“foobar2000”是一個很好的選擇[8]。我最初在旅行時使用該程序在筆記本電腦上播放白噪聲,以在嘗試入睡時淹沒多余的聲音,并且在循環(huán)播放白噪聲文件時也不能有任何咔噠聲或爆裂聲,否則您會立即醒來. foobar2000 程序非常適合 BlasterAmp 和睡眠。
這些預(yù)制測試文件具有固定頻率,但可以通過 BlasterAmp 微調(diào)器或 PC 的音量控制根據(jù)需要微調(diào)幅度。
至于能夠以編程方式設(shè)置頻率和音量,我找到了一個名為 PyAudio [9] 的 Python 庫,它允許我生成給定幅度的精確正弦波信號,然后能夠直接從 Python 腳本 [10 ]。事實證明,這可以產(chǎn)生非常低的失真信號,如圖 3 所示。
圖 3:在我的 DMT9000 FFT 分析儀上測量的 BlasterAmp 設(shè)置為 +/-10V 范圍時的結(jié)果 [5]。可以看到滿量程失真產(chǎn)物在滿量程以下 -96 dBc 的 16 位級別。
然而,在產(chǎn)生任何測試音時必須小心。您要么必須為測試創(chuàng)建一個連續(xù)且足夠長的文件,要么必須不斷循環(huán)。循環(huán)時,只需確保波形的起點和終點準確對齊,否則會出現(xiàn)不連續(xù)性,從而在循環(huán)點增加失真。
作為使用 Sound Blaster 加密狗生成精確音調(diào)的最后一點,請務(wù)必關(guān)閉正在播放聲音生成的 PC 上的所有音頻均衡器或控制程序,以確保沒有不可預(yù)見的問題。
下次
在下一篇文章中,我將展示使用 BlasterAmp 測量一些實際 ADC 和測試組件的失真的技術(shù)。
Python 腳本的完整源代碼和 BlasterAmp 的完整原理圖可以在 Github 上找到。
審核編輯 黃昊宇
-
集成
+關(guān)注
關(guān)注
1文章
177瀏覽量
30641 -
模數(shù)轉(zhuǎn)換器
+關(guān)注
關(guān)注
26文章
3359瀏覽量
128264
發(fā)布評論請先 登錄
Analog Devices Inc. AD9217射頻模數(shù)轉(zhuǎn)換器數(shù)據(jù)手冊

ad7760模數(shù)轉(zhuǎn)換器(ADC)數(shù)據(jù)手冊
國產(chǎn)模數(shù)轉(zhuǎn)換器100%替換ADS1278應(yīng)用于振動和模態(tài)分析

LTC2245和國產(chǎn)模數(shù)轉(zhuǎn)換器SC2245特征以及應(yīng)用優(yōu)勢分享

24位模數(shù)轉(zhuǎn)換器SC1641——AD7793的優(yōu)質(zhì)國產(chǎn)替代方案

請問模數(shù)轉(zhuǎn)換器ADS8344的多通道采樣是同步的嗎?
模數(shù)轉(zhuǎn)換器ADI AD7606與SC1467的深度對比和應(yīng)用分析

高速模數(shù)轉(zhuǎn)換器基礎(chǔ)知識

集成式電流檢測模數(shù)轉(zhuǎn)換器

LTC2217模數(shù)轉(zhuǎn)換器英文手冊
ADS8371一款16位模數(shù)轉(zhuǎn)換器數(shù)據(jù)表

評論