【導讀】基于Hein van den Heuvel的電路,構建了一個經典的、三運放、狀態變量振蕩器,并用一小粒小麥燈泡作為振幅穩定電路。對電路中運算放大器的各級負載進行了一天的擺弄,成功地將諧波失真產物降至-95 dBc以下,滿足了當時的需求。
幾年前曾需要一個快速、低頻、且失真極低的源來測試片上微控制器ADC,看它是否接近數據手冊所給出的有效位數(ENOB)和線性度。
凌特公司的設計失真度很低,不過設計有些復雜,對于那時的需要來說,似乎有點大材小用了。最后,基于Hein van den Heuvel的電路,構建了一個經典的、三運放、狀態變量振蕩器,并用一小粒小麥燈泡作為振幅穩定電路。
對電路中運算放大器的各級負載進行了一天的擺弄,成功地將諧波失真產物降至-95 dBc以下,滿足了當時的需求。
雖然可以構建分立式振蕩器電路,但調試起來比較復雜。還有溫度問題,如幅度漂移、頻率漂移、啟動和穩定時間等。同樣,我認為將來如果有一個快速設置振蕩器,具有2.5至+/-10v的多路輸出,這樣就可以實現一個通用ADC測試平臺,可快速測量任何16位精度的ADC。
通用ADC測試平臺
該測試平臺如果采用模擬方案,實施起來太慢了,這讓我想起不知道專業音頻分析儀的源是如何實現的?我想要么是構建精密的分立式DDS,要么使用高分辨率I2S音頻DAC。
然后,開始瀏覽TI應用手冊,了解他們的超低失真測試振蕩器是如何實現的。果不其然,使用了一款Burr Brown的 帶I2S的音頻DAC,后接了一些高性能低通濾波器。
我買了幾個I2S DAC,將它們連接到我的一個微控制器演示板上,大約一天時間,I2S就開始運行了,并且系統中產生出了一些基本像樣的信號。I2S的奇妙之處在于,它可以連接到處理器的DMA,使99%的數據傳輸對處理器透明。處理器所要做的就是,每隔一段時間把DMA管道充滿。
這只是一次體驗,在經濟上并沒有優勢,因為TI的電路售價才不到300美元,不過沒有公開API接口,無法從自己的測試程序來控制他們的解決方案。
然后我想,“USB聲卡加密狗怎么樣?它們也許既好用又便宜?!?/p>
快速搜索后發現,Creative Labs確實有一款成本很低、但性能又非常高的16/24位USB加密狗,其名字令人印象深刻:“Creative Labs Sound Blaster Play!3"。這款不到20美元的設備,竟然具有24位/96 kHz的數據速率。我相信Creative Labs制造的不會是“垃圾”,所以買了來試用。
使用18位FFT分析儀進行的初步測試表明,筆記本電腦不僅聽起來音質更好,而且性能確實達到了16位失真水平,噪聲基底非常干凈。
對于我的通用ADC測試平臺來說,這種方法確實是一種“快速”解決方案,因為所有軟件都可以在實驗室電腦上運行;如今,我擁有了一套頻率和幅度都“可控”的信號源,并且運行在我自己的電腦上,這樣就可以擁有獨立的應用程序,甚至可以構建API,以便在以后需要時納入自動測試套件。
這就解決了很多問題,通過使用外部聲卡,精確的振幅和已知的質量可以在任何測試平臺之間轉移,因為我的測試筆記本電腦內部聲卡的輸出振幅和真實音質因地可變。
使用筆記本電腦作為測試控制器的另一個好處是,可以拔出電源適配器并用電池供電,從而消除了試圖快速更換地點并完成工作時經常出現的許多接地回路問題。
聲霸(Blaster)放大器
現在需要的是用于聲霸加密狗(sound blaster dongle)的模擬接口板,以獲得“通用”測試裝置所需的輸出。
我在300歐姆的指定耳機負載上測量聲霸音頻輸出,并使用了一些測試音,滿量程輸出測量到一致的0.37V峰值,并與使用的PC或操作系統無關。
表1列出了常見的ADC輸入范圍。我認為,如果覆蓋了常見的ADC輸入范圍,則通過音量控制來調整幅度,就可以實現范圍內任何輸入的測量,不過這最終會降低可實現的信噪比(SNR ),然而,聲霸的SNR已足以滿足所預期的所有測量應用。
表1:表中所列涵蓋了幾乎所有常見的ADC輸入范圍,這些是計算聲霸加密狗輸出端放大器所需增益和偏置的基礎。
表中的3.3V峰值范圍貌似有點奇怪,但在分辨率較低的設計中仍然會出現,無論如何,基本設計大多是10位或12位ADC,因此決定在這些應用中只使用音量控制和0-5V范圍,此時信噪比損失很小。
然后,我設計了具有所需的增益和偏置、且稱之為“BlasterAmp”的放大器,能夠轉換0.37峰值,即聲霸加密狗的滿量程輸出,以與表2中的數值匹配。
表2:BlasterAmp設計用于覆蓋表1中的常見電壓范圍,僅有4個增益步長和3個偏置設置。對于單極性則需要使用三個偏置電壓。
對于單極性范圍,有一點需要注意,雖然目前所講的這些范圍都是“軌到軌”,但幾乎總有一點偏差。這將對任何ADC/緩沖器測試造成嚴重影響,因為如果“供電軌”不完全處于零電平或滿量程,ADC就會削波,導致嚴重失真,從而無法進行任何有意義的測量。此外,有時ADC基準電壓為2.048或4.096V,而不是2.5和5V。為了應對這些情況,我使用了25圈精密微調電位器,以便在需要時對增益和偏置進行微調。該精密微調還可以對聲霸加密狗、電阻容差和運算放大器失調電壓存在的任何細微差異進行補償。
圖1顯示了成品BlasterAmp的一個通道。根據需要,短路跳線用于改變偏置和增益,以適應所需的各種輸出范圍。
圖1:立體聲聲霸放大器的單通道示意圖。
圖1中,增益和偏置范圍通過可移動跳線設置,然后借助精密的25圈微調電位器進行微調。U101周圍的電阻網絡是Vishay (OSOPTC1001AT0)的1 k歐姆匹配網絡。為了最大限度地減少電阻發熱和后續的失真,所有其他電阻的尺寸均為0805,精度為0.1%。為了消除失真,C100和C101必須是薄膜或COG陶瓷電容。
對于放大器,選用了久經考驗的Burr-Brown OPA1611,這是一款失真超低的音頻運算放大器,其性能符合數據手冊所列,可以說非常出色。
對于偏置基準電壓,用的是TI REF5050,為一款5V精密基準電壓源。
由于期望該電路用在測試工作臺上,因此將其設計成由+/-15v電壓軌供電,并使用了另一個久經考驗的HP6234A雙線性電源,將其放在工作臺上以備此類場合使用。使用HP6234A這類的線性電源非常有用,因為它具有低噪聲、低IO電容設計,而且沒有開關電源到處冒出的共模電流。如果供電設計必須使用一個開關的話,應在電路中使用一些線性、低壓差調節器和大共模扼流圈,以盡可能地消除電路板上的開關噪聲。值得信賴的HP6234A消除了所有這些問題。
最后,將雙通道BlasterAmp PCB放在一個小尺寸的Hammond外殼中,沒有蓋上外殼,因為這樣可以方便地進行各種跳線更換和可調電位器調整,見圖2。
圖2:完整的聲霸放大器示意圖。
圖中,印刷電路板被安裝在一個沖壓外殼中進行保護。PCB右上角的黑色電纜為聲卡的音頻電纜。電源由 HP6234A線性工作臺電源,并通過PCB中間右側的導線連接器供電。
測試軟件
使用聲霸卡確實大大簡化了設計,節省了開發時間,但還需要一種方法將大動態范圍測試信號播放到聲霸卡中。我嘗試了大概十幾種音頻測試音軟件解決方案,其中大多數的失真水平都只有60 dBc或更低,這對于聽力測試來說還好,但對于我的應用來說就不夠了,我的應用需要將失真降至16位水平。
互聯網上有幾個發燒友網站提供了非常低失真的測試文件。為了回放,需要一個WAV或MP3文件播放器,循環播放時沒有死區時間。使用中發現這個“foobar2000” 程序雖然命名愚蠢,但卻是一個極好的選擇。最初使用該程序在筆記本電腦上播放白噪音,試圖在睡覺時淹沒外來聲音,另外,當循環播放白噪音文件時,不能有任何點擊或彈出,否則就會立即醒來。foobar2000程序非常適合BlasterAmp和睡眠。
這些預先錄制好的測試文件的頻率固定,但振幅可以根據需要通過聲霸放大器中的微調電位器或電腦的音量控制來微調。
至于能夠以編程方式設置頻率和音量,我發現了一個名為PyAudio 的Python庫,它可以生成特定幅度的精密正弦波信號,然后能夠直接從Python腳本中播放。這已經證明可以產生失真非常低的信號,如圖3所示。
圖3:在DMT9000 FFT分析儀上測量聲霸放大器范圍設置為+/-10V時的測量結果??梢钥闯觯瑵M量程失真產物為滿量程以下16位,即-96 dBc。
然而,在產生任何測試音時都必須小心。要么必須為測試創建一個連續且足夠長的文件,要么必須連續循環。循環時,只需確保波形的起點和終點完全對齊,否則會出現不連續,這會增加循環點的失真。
關于使用聲霸加密狗進行精確音調生成的最后一點注意事項是,請務必關閉正在播放PC上的任何音頻均衡器或控制程序,以確保沒有不可預見的問題出現。
(參考原文:An easier way to test integrated analog-to-digital converters,本文為《電子工程專輯》2022年10月刊雜志文章)
(來源:EDN電子設計,作者:Steve Hageman,Embedded.com特約作者)
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。
推薦閱讀: