源設(shè)計(jì)與調(diào)試全解析)
兩個(gè)星期前我在面包板上搭了一個(gè)號(hào)稱“經(jīng)典”的RC橋式振蕩器用的還是網(wǎng)上流傳很廣的那張LM324電路圖。結(jié)果1kHz檔位秒起振波形干凈得像教科書一撥到100kHz示波器上只剩一條水平線。換到1Hz檔屏幕上是慢慢漂移的三角波。那次翻車讓我徹底明白網(wǎng)上那些“隨手一搭就能用”的文氏橋電路圖幾乎沒(méi)有一張能真正覆蓋1Hz到1MHz。原因很簡(jiǎn)單——在這個(gè)頻率范圍內(nèi)選頻網(wǎng)絡(luò)、運(yùn)放帶寬、穩(wěn)幅方式、電源和探頭負(fù)載每一項(xiàng)都可能變成瓶頸。后來(lái)我把整個(gè)方案重新設(shè)計(jì)了一遍把電路改成六段切換加雙運(yùn)放緩沖的結(jié)構(gòu)終于把1Hz到1MHz全部跑通。這篇文章會(huì)把原理、完整電路連接、元件選型和調(diào)試避坑經(jīng)驗(yàn)全部拆開寫清楚照著做你也能搭出一臺(tái)低失真的寬頻正弦波信號(hào)源。1. 為什么“1Hz-1MHz”會(huì)讓現(xiàn)成的文氏橋圖翻車1.1 文氏橋振蕩的核心RC選頻網(wǎng)絡(luò)RC橋式振蕩器也叫文氏橋振蕩器核心是運(yùn)放同相輸入端前面那組RC串并聯(lián)選頻網(wǎng)絡(luò)。輸出信號(hào)經(jīng)過(guò)R1與C1串聯(lián)后送到運(yùn)放同相端同相端又通過(guò)R2與C2的并聯(lián)網(wǎng)絡(luò)接地。當(dāng)R1R2R、C1C2C時(shí)這個(gè)網(wǎng)絡(luò)有一個(gè)中心頻率f 1 / (2πRC)在這個(gè)頻率上選頻網(wǎng)絡(luò)的反饋系數(shù)達(dá)到最大值1/3而且相移為零。運(yùn)放同相放大器的增益只要大于等于3就能滿足起振的幅度條件和相位條件電路開始振蕩。頻率落在中心頻率附近時(shí)相移接近零偏離后相移迅速增大振蕩器只會(huì)穩(wěn)定在f0附近輸出單一頻率的正弦波。這個(gè)原理看起來(lái)很簡(jiǎn)單但“1Hz到1MHz”這個(gè)需求一加進(jìn)來(lái)問(wèn)題就變味了。頻率覆蓋范圍是10的6次方倍如果用單個(gè)可變電容來(lái)實(shí)現(xiàn)連續(xù)調(diào)節(jié)電容值至少要跨越上百萬(wàn)倍的變化范圍這在物理上根本不現(xiàn)實(shí)。所以真正的方案必須分段。1.2 頻率跨度100萬(wàn)倍背后的三重挑戰(zhàn)第一重挑戰(zhàn)是選頻網(wǎng)絡(luò)元件值的跨度。按f1/(2πRC)算如果R固定在5kΩ左右那么1Hz需要大約30μF級(jí)別的電容而1MHz只需要約32pF。從30μF到32pF電容值差了將近1000倍沒(méi)有任何一顆可變電容能做到。唯一現(xiàn)實(shí)的做法是波段開關(guān)切換不同容量的電容電阻做段內(nèi)連續(xù)微調(diào)。第二重挑戰(zhàn)是運(yùn)放本身的帶寬和壓擺率。LM324這類通用運(yùn)放增益帶寬積只有1.2MHz在1MHz頻率下的開環(huán)增益已經(jīng)掉到1倍多一點(diǎn)。文氏橋電路要求運(yùn)放閉環(huán)增益至少3倍還得留出足夠的環(huán)路增益余量用LM324在100kHz以上基本就是“省省吧”。就算換到NE5532低頻段偏置電流又偏大對(duì)1Hz附近的穩(wěn)定性有一定影響。第三重挑戰(zhàn)是高頻段的寄生參數(shù)。100kHz到1MHz檔位選頻網(wǎng)絡(luò)的電容只有100pF甚至更小。運(yùn)放輸入電容通常有幾pF示波器探頭輸入電容有十幾pF這些寄生電容會(huì)和選頻網(wǎng)絡(luò)并聯(lián)直接把中心頻率拉偏。很多人仿真一切正常實(shí)物一接上就出問(wèn)題多半就是栽在這。1.3 方案對(duì)比為什么最終選了文氏橋做正弦波信號(hào)源常見(jiàn)方案有555定時(shí)器加LC濾波、LC振蕩器、文氏橋振蕩器、DDS直接數(shù)字頻率合成。各自特點(diǎn)對(duì)比如下方案頻率范圍波形質(zhì)量連續(xù)調(diào)頻復(fù)雜度555濾波低頻~幾百kHz差諧波多一般低LC振蕩器幾十kHz以上較好窄帶中文氏橋振蕩器1Hz~1MHz可分段好失真低波段內(nèi)連續(xù)中DDS直流~幾十MHz好但受DAC影響極好高DDS方案頻率精度和掃頻能力確實(shí)碾壓模擬方案但需要單片機(jī)、DAC或?qū)S肈DS芯片還要處理時(shí)鐘、濾波、幅度控制成本和代碼工作量都不小。文氏橋的優(yōu)勢(shì)是全模擬、結(jié)構(gòu)簡(jiǎn)單、失真低調(diào)起來(lái)有“搭電路”的感覺(jué)適合學(xué)習(xí)運(yùn)放反饋和RC網(wǎng)絡(luò)特性。所以我最后確定用文氏橋架構(gòu)配合波段開關(guān)做六段覆蓋每段內(nèi)用雙聯(lián)電位器連續(xù)微調(diào)。2. 完整電路方案六段切換加緩沖輸出2.1 頻段劃分與電容配置頻率從1Hz到1MHz按十倍頻程分成六段最合理1Hz-10Hz、10Hz-100Hz、100Hz-1kHz、1kHz-10kHz、10kHz-100kHz、100kHz-1MHz。每段內(nèi)用一個(gè)10kΩ雙聯(lián)電位器配合1kΩ固定電阻讓橋臂電阻在1kΩ到11kΩ之間變化頻率覆蓋范圍約11倍留出余量覆蓋十倍頻程。電容值按R6kΩ時(shí)的中心頻率計(jì)算取標(biāo)準(zhǔn)容值后如下頻段頻率范圍電容值電容類型11Hz~10Hz10μFCBB聚丙烯薄膜電容210Hz~100Hz1μFCBB聚丙烯薄膜電容3100Hz~1kHz100nFC0G/NP0陶瓷電容41kHz~10kHz10nFC0G/NP0陶瓷電容510kHz~100kHz1nFC0G/NP0陶瓷電容6100kHz~1MHz100pFC0G/NP0陶瓷電容注意低頻段不要用普通電解電容漏電流和介質(zhì)吸收會(huì)讓1Hz波形明顯漂移。我最早用4.7μF電解電容試過(guò)輸出波形低頻時(shí)像在呼吸一樣緩慢起伏換成CBB電容后立刻穩(wěn)定。2.2 運(yùn)放選型這關(guān)過(guò)不了后面全白搭運(yùn)放是寬頻文氏橋能否跑通的關(guān)鍵。選型時(shí)要同時(shí)看增益帶寬積、壓擺率、輸入偏置電流三個(gè)指標(biāo)。增益帶寬積決定了1MHz時(shí)還能不能提供足夠增益壓擺率決定了輸出大信號(hào)時(shí)波形會(huì)不會(huì)跟不上變化偏置電流決定了低頻段的積分漂移和頻率誤差。我對(duì)比過(guò)幾款常見(jiàn)的運(yùn)放運(yùn)放型號(hào)增益帶寬積壓擺率輸入偏置電流適頻段評(píng)估LM3241.2MHz0.5V/μs45nA最高支持幾十kHz1MHz完全不可用NE553210MHz13V/μs200nA高頻可用低頻偏置偏大TL0723MHz13V/μs65pA中低頻好1MHz略緊張OPA21348MHz20V/μs2pA全頻段均衡推薦AD82650MHz350V/μs3μA高頻極佳低頻需注意最終我選了OPA2134。它的增益帶寬積8MHz閉環(huán)增益3倍時(shí)還有約2.6MHz帶寬余量壓擺率20V/μs輸出4Vpp、1MHz正弦波的最大變化率大約是π×1MHz×2V約6.3V/μs明顯低于壓擺率不會(huì)出現(xiàn)斜率失真輸入偏置電流只有幾個(gè)pA對(duì)1Hz低頻段非常友好。NE5532在音頻段是經(jīng)典運(yùn)放但它的偏置電流會(huì)讓低頻檔的頻率穩(wěn)定性和波形對(duì)稱性變差。如果用NE5532做100kHz以上段還能接受做全頻段統(tǒng)一方案就不如OPA2134。2.3 完整電路連接關(guān)系既然沒(méi)有真實(shí)圖片我把電路連接關(guān)系寫清楚照著這個(gè)描述基本能自己畫出來(lái)。整機(jī)用一顆雙運(yùn)放OPA2134一半做振蕩核心另一半做輸出緩沖。具體連接如下選頻網(wǎng)絡(luò)部分振蕩運(yùn)放的輸出引腳U1A OUT接R1R1與C1串聯(lián)后接到U1A的同相輸入端U1A同相輸入端再接R2與C2的并聯(lián)支路到地。R1和R2由雙聯(lián)電位器的兩個(gè)聯(lián)分別串聯(lián)1kΩ固定電阻構(gòu)成C1和C2是波段開關(guān)當(dāng)前選中的那一組電容兩個(gè)橋臂的電容同步切換。負(fù)反饋網(wǎng)絡(luò)U1A輸出接Rf22kΩ到反相輸入端反相輸入端通過(guò)Rg10kΩ接地。兩個(gè)1N4148二極管反并聯(lián)后跨接在Rf兩端構(gòu)成二極管限幅穩(wěn)幅網(wǎng)絡(luò)。緩沖輸出U1A輸出直接接到U1B的同相輸入端U1B接成電壓跟隨器輸出端串聯(lián)一個(gè)50Ω電阻后接BNC輸出座。緩沖級(jí)的作用是隔離負(fù)載變化對(duì)振蕩核心的影響接不同負(fù)載時(shí)頻率和幅度都不會(huì)被拖偏。電源去耦每個(gè)運(yùn)放的V和V-引腳旁邊就近放一顆0.1μF陶瓷電容到地電源入口再放一顆10μF電解電容。這個(gè)結(jié)構(gòu)里最關(guān)鍵的一點(diǎn)是振蕩信號(hào)取自U1A輸出而不是緩沖級(jí)輸出。選頻網(wǎng)絡(luò)的反饋信號(hào)必須從振蕩運(yùn)放直接取否則緩沖級(jí)的任何附加相移都會(huì)影響振蕩條件。3. 起振與穩(wěn)幅正弦波質(zhì)量的三個(gè)關(guān)鍵點(diǎn)3.1 增益為什么必須“略大于3”文氏橋在中心頻率處的反饋系數(shù)β1/3要滿足起振條件A×β≥1運(yùn)放的整體增益A必須大于等于3。如果A恰好等于3電路處于臨界狀態(tài)實(shí)際元件任何一點(diǎn)溫漂或噪聲都會(huì)讓它停振。所以設(shè)計(jì)時(shí)會(huì)讓增益稍微大于3比如Rf22kΩ、Rg10kΩ時(shí)增益A122k/10k3.2起振有足夠余量。但增益大于3之后振蕩幅度會(huì)不斷增加。如果沒(méi)有穩(wěn)幅機(jī)制輸出很快就頂?shù)诫娫措妷鹤兂上黜數(shù)慕品讲?。所以一定要有非線性環(huán)節(jié)讓電路起振初期增益大于3、穩(wěn)態(tài)時(shí)自動(dòng)降到3附近。這也是整個(gè)電路里最容易做壞的地方。3.2 二極管限幅穩(wěn)幅最容易被新手接受的方案我在這個(gè)項(xiàng)目里用的穩(wěn)幅方案是“反并聯(lián)二極管并聯(lián)在Rf兩端”。它的工作原理很直觀輸出幅度很小時(shí)二極管兩端交流電壓低于導(dǎo)通閾值二極管截止反饋電阻就是純粹的22kΩ增益3.2倍電路快速起振輸出幅度增大到一定程度后交流電壓在正負(fù)半周分別使其中一個(gè)二極管導(dǎo)通反饋通路被二極管動(dòng)態(tài)旁路一部分等效反饋電阻減小閉環(huán)增益下降最終穩(wěn)定在平衡點(diǎn)。這個(gè)方案的優(yōu)點(diǎn)是電路極簡(jiǎn)、工作可靠不需要額外調(diào)整。缺點(diǎn)是1N4148導(dǎo)通時(shí)的非線性會(huì)讓波形帶一點(diǎn)交越失真實(shí)測(cè)THD大約在1%到2%之間對(duì)多數(shù)單片機(jī)ADC測(cè)試和模擬電路調(diào)試完全夠用。如果想追求更低失真后續(xù)可以換JFET自動(dòng)增益控制電路這個(gè)放到后面擴(kuò)展部分講。二極管限幅方案有一個(gè)容易被忽略的細(xì)節(jié)Rf兩端并聯(lián)的二極管會(huì)造成反相輸入端在某些瞬間過(guò)驅(qū)導(dǎo)致運(yùn)放內(nèi)部輸入級(jí)飽和。解決方法是讓Rf不要直接接反相端而是先串一個(gè)幾百歐姆的小電阻再并二極管但實(shí)際測(cè)試下來(lái)對(duì)1N4148方案影響不大直接用就行。3.3 雙聯(lián)電位器的現(xiàn)實(shí)同步誤差怎么處理每段內(nèi)連續(xù)調(diào)頻依靠雙聯(lián)電位器同時(shí)改變R1和R2。理想狀態(tài)下R1R2選頻網(wǎng)絡(luò)處于平衡狀態(tài)。但市面上幾十塊錢的雙聯(lián)電位器兩聯(lián)之間的一致性一般只有±5%左右個(gè)別差的能到±10%。R1≠R2時(shí)選頻網(wǎng)絡(luò)的中心頻率其實(shí)還是1/(2π√(R1R2CC))但反饋系數(shù)β會(huì)小于1/3Q值也會(huì)下降結(jié)果就是起振變難、穩(wěn)態(tài)增益需求更高。在低頻段這個(gè)問(wèn)題不明顯因?yàn)镼值低、環(huán)路增益余量大。但在100kHz-1MHz檔位R和C都很小雙聯(lián)電位器同步誤差帶來(lái)的增益損失可能直接導(dǎo)致不起振。我在調(diào)試中就遇到過(guò)100kHz檔位焊好之后不振蕩查了半天發(fā)現(xiàn)是雙聯(lián)電位器在接近最大阻值那邊兩聯(lián)差了大概3kΩ橋臂嚴(yán)重失衡。解決辦法有兩個(gè)。一個(gè)是在R1和R2的串聯(lián)臂上各預(yù)留一個(gè)幾百歐姆的微調(diào)電阻裝機(jī)后用示波器觀察波形反復(fù)微調(diào)直到波形最干凈。另一個(gè)是買品質(zhì)好一點(diǎn)的B型雙聯(lián)電位器注意一定是B型線性電位器A型對(duì)數(shù)電位器在低頻端變化太快很難精確調(diào)到目標(biāo)頻率。4. 制作過(guò)程與元件清單從采購(gòu)到焊接4.1 元件清單我實(shí)際用到的元件如下元件型號(hào)/規(guī)格數(shù)量備注運(yùn)放OPA2134 DIP-81也可用OPA604×2波段開關(guān)雙刀六擲旋轉(zhuǎn)開關(guān)1同時(shí)切換兩橋臂電容雙聯(lián)電位器10kΩ B型1帶鎖緊螺母更穩(wěn)固定電阻1kΩ、10kΩ、22kΩ各2金屬膜1%精度二極管1N41482反并聯(lián)電容組110μF CBB21Hz-10Hz段電容組21μF CBB210Hz-100Hz段電容組3100nF C0G2100Hz-1kHz段電容組410nF C0G21kHz-10kHz段電容組51nF C0G210kHz-100kHz段電容組6100pF C0G2100kHz-1MHz段輸出電阻50Ω1輸出保護(hù)去耦電容0.1μF陶瓷4每個(gè)電源腳一顆電源電容10μF電解2電源入口濾波4.2 裝配順序和接線要點(diǎn)我的裝配順序是先焊運(yùn)放插座和電源去耦電容再焊波段開關(guān)和對(duì)應(yīng)的六個(gè)電容組然后焊反饋網(wǎng)絡(luò)電阻和二極管最后焊雙聯(lián)電位器和輸出緩沖。這個(gè)順序的好處是每完成一部分都能用萬(wàn)用表檢查一遍避免全部焊完才發(fā)現(xiàn)錯(cuò)誤。接線時(shí)特別注意幾個(gè)點(diǎn)波段開關(guān)的公共端分別連到兩個(gè)橋臂的R1和R2下端六個(gè)檔位對(duì)應(yīng)六組電容兩個(gè)刀要同步旋轉(zhuǎn)保證C1和C2始終是同一組容值。同相輸入端是高阻節(jié)點(diǎn)周圍走線盡量短不要讓電源走線從它旁邊經(jīng)過(guò)。這個(gè)節(jié)點(diǎn)的雜散電容會(huì)直接影響高頻段的振蕩頻率。雙聯(lián)電位器裝在面板上之后用三根屏蔽線引到板子上屏蔽層單端接地否則人手碰到旋鈕時(shí)波形會(huì)亂跳。供電方面我直接用了±12V線性電源。如果沒(méi)有雙電源可以臨時(shí)用兩個(gè)12V鋰電池串聯(lián)把中點(diǎn)作為虛擬地效果也不錯(cuò)。用開關(guān)電源供電時(shí)注意輸出端會(huì)有高頻開關(guān)紋波最好經(jīng)過(guò)7812和7912三端穩(wěn)壓再加一級(jí)LC濾波否則1MHz檔位輸出的正弦波上會(huì)疊一層幾百kHz的毛刺。4.3 電源與噪聲抑制的細(xì)節(jié)運(yùn)放對(duì)電源紋波其實(shí)沒(méi)有想象中敏感但這臺(tái)振蕩器要輸出低失真正弦波電源噪聲會(huì)直接疊加到輸出波形上。實(shí)測(cè)下來(lái)用普通開關(guān)電源供電時(shí)1MHz檔位輸出波形上大約有20mV左右的開關(guān)紋波換成線性穩(wěn)壓之后降到2mV以下。如果手頭只有5V單電源可以用AMS1117-5V配合ICL7660電荷泵芯片生成±5V。但電荷泵的開關(guān)頻率一般在10kHz左右它會(huì)通過(guò)電源通路耦合到輸出端在低頻段可能還能通過(guò)運(yùn)放電源抑制比壓住到了1MHz段就很難說(shuō)了。我的建議是能上雙電源就上雙電源實(shí)在不行就用兩塊9V疊層電池串聯(lián)取中點(diǎn)雖然續(xù)航一般但波形絕對(duì)干凈。5. 仿真沒(méi)問(wèn)題、實(shí)物不出波的排查經(jīng)驗(yàn)5.1 高頻段不起振GBW、寄生電容、探頭負(fù)載我第一次調(diào)通低頻段后直接把波段開關(guān)撥到100kHz-1MHz檔結(jié)果示波器上什么都看不到。這個(gè)問(wèn)題的排查鏈路值得完整記錄。第一步先用萬(wàn)用表確認(rèn)運(yùn)放供電正常輸出腳不是被短路。第二步把示波器探頭換到10x檔并重新做探頭補(bǔ)償因?yàn)?x探頭輸入電容高達(dá)100pF以上接到振蕩器輸出端會(huì)直接把選頻網(wǎng)絡(luò)頻率拉到極低。做完這兩步信號(hào)依然沒(méi)有。第三步懷疑運(yùn)放帶寬不夠。用替換法把OPA2134換下來(lái)?yè)Q成NE5532還是不振蕩。這時(shí)候才想到可能是選頻網(wǎng)絡(luò)本身的寄生電容在搗亂。100pF電容在面包板上搭的時(shí)候旁邊就是焊接盤和引腳雜散電容可能已經(jīng)有10pF以上頻率偏移超過(guò)10%。但偏移不會(huì)導(dǎo)致停振真正導(dǎo)致停振的是另一個(gè)問(wèn)題選頻網(wǎng)絡(luò)在1MHz附近阻抗很低同相輸入端的輸入電容和PCB走線電容造成額外相移讓相位平衡條件被破壞。最終解決方法是把高頻段從面包板挪到洞洞板上盡量縮短走線同相輸入端周圍的覆銅區(qū)域挖空并把100pF電容直接跨接在波段開關(guān)引腳和運(yùn)放引腳附近。重新上電后100kHz檔位立刻起振頻率實(shí)測(cè)約105kHz在可接受范圍內(nèi)。5.2 低頻段不穩(wěn)定電容漏電、示波器耦合、起振時(shí)間1Hz到10Hz頻段的問(wèn)題和高頻正好相反。示波器如果用的是AC耦合低頻信號(hào)會(huì)被嚴(yán)重衰減甚至看不到。我第一次測(cè)試時(shí)半天不顯示波形后來(lái)才反應(yīng)過(guò)來(lái)探頭要從AC耦合切到DC耦合時(shí)間軸拉到500ms一格才看到約1Hz左右的緩慢正弦波。低頻段第二個(gè)坑是電容漏電。最初用4.7μF電解電容做10μF組合時(shí)波形雖然顯示了但頻率會(huì)慢慢漂移而且波形正半周和負(fù)半周高度明顯不一樣。換成CBB電容后對(duì)稱性立刻好了很多。原因很容易理解電解電容在低頻時(shí)的等效并聯(lián)電阻和介質(zhì)吸收效應(yīng)都會(huì)造成額外的毫伏級(jí)偏移這個(gè)偏移在低頻下會(huì)被運(yùn)放大環(huán)路增益放大成明顯的波形失真。低頻段還有一個(gè)容易被忽略的問(wèn)題起振時(shí)間非常長(zhǎng)。1Hz信號(hào)對(duì)應(yīng)周期1秒如果初始狀態(tài)離振蕩穩(wěn)定點(diǎn)比較遠(yuǎn)可能要等幾十個(gè)周期才能完全起振。有些人第一次測(cè)試時(shí)盯著示波器等了幾十秒就下結(jié)論說(shuō)“電路壞了”然后開始瞎換元件。正確的做法是給電路一個(gè)初始擾動(dòng)可以在選頻網(wǎng)絡(luò)和同相輸入端之間瞬間碰一下電源電壓或者直接用示波器探頭快速碰一下同相端這能讓振蕩迅速建立。5.3 波形畸變的三種典型表現(xiàn)和修法實(shí)際調(diào)試中我遇到過(guò)幾種典型的波形問(wèn)題這里直接給出表現(xiàn)、原因和修法。第一種是輸出波形頂部和底部被削平。原因是電路起振后幅度超過(guò)了運(yùn)放的輸出擺幅或者二極管限幅閾值設(shè)置得太高。解決辦法減小Rg的值把起振增益降下來(lái)或者把限幅二極管換成導(dǎo)通電壓更低的小信號(hào)鍺管。第二種是正負(fù)半周不對(duì)稱。在低頻段多半是電容漏電或偏置電流問(wèn)題在高頻段多半是運(yùn)放壓擺率不夠?qū)е仑?fù)半周斜率跟不上。用OPA2134時(shí)這個(gè)問(wèn)題不明顯但如果換成LM324或普通TL072到了幾百kHz就會(huì)看到負(fù)半周頂部被“削掉一角”。第三種是頻率隨溫度漂移。這是RC振蕩器的固有特性因?yàn)殡娮韬碗娙荻加袦仄禂?shù)。想改善就選溫漂系數(shù)低的元件電阻用金屬膜電容用C0G或聚丙烯電位器用線繞或?qū)щ娝芰系?。?shí)際做下來(lái)環(huán)境溫度從25℃升到40℃時(shí)1kHz檔位頻率漂移大約0.5%低頻段更小高頻段因?yàn)镃值很小受雜散電容影響會(huì)稍大一點(diǎn)約1%。6. 實(shí)測(cè)效果、STM32驗(yàn)證和后續(xù)升級(jí)6.1 各頻段實(shí)測(cè)情況整個(gè)電路調(diào)通之后我用示波器對(duì)六個(gè)頻段做了粗略實(shí)測(cè)。輸出幅度基本穩(wěn)定在3Vpp左右低頻段波形比高頻段更干凈高頻段能看到一點(diǎn)點(diǎn)由于二極管限幅引起的底噪但整體可用。頻段設(shè)置頻率實(shí)測(cè)頻率輸出幅度波形評(píng)價(jià)11Hz1.03Hz3.1Vpp干凈250Hz49.7Hz3.0Vpp干凈3500Hz508Hz3.0Vpp干凈45kHz5.12kHz3.0Vpp干凈550kHz49.6kHz2.9Vpp輕微毛刺6500kHz512kHz2.7Vpp可用高頻衰減高頻段幅度下降的主要原因是運(yùn)放開環(huán)增益在高頻段逐漸下降以及二極管結(jié)電容對(duì)反饋網(wǎng)絡(luò)的影響。如果想要平坦度更好可以在輸出端加一級(jí)寬帶放大器做AGC補(bǔ)償?shù)话銓?shí)驗(yàn)需求下這個(gè)幅度波動(dòng)完全可以接受。6.2 用STM32 ADC驗(yàn)證正弦波質(zhì)量文氏橋的輸出用來(lái)測(cè)試STM32的ADC采樣效果非常順手。接線時(shí)把正弦波輸出經(jīng)過(guò)一個(gè)1kΩ電阻和0.1μF電容組成的RC低通濾波后送到STM32的ADC引腳避免直接連接時(shí)的高頻噪聲混疊。低頻段比如1kHz用ADC以20kHz采樣率采一組數(shù)據(jù)在串口助手里看數(shù)值能明顯看出正弦變化。需要注意的是如果想用STM32 ADC直接采樣1MHz正弦波F103系列1MSPS的采樣率幾乎到極限一個(gè)周期只能采到一個(gè)點(diǎn)波形重建效果很差。這個(gè)時(shí)候可以改用高頻ADC外置芯片或者只關(guān)注幾百kHz以下的頻段。STM32平臺(tái)本身更適合用來(lái)做DDS信號(hào)源配合一個(gè)外部DAC比如AD9833能穩(wěn)定輸出到幾十MHz但那是另一個(gè)項(xiàng)目了。用ADC驗(yàn)證時(shí)還有個(gè)實(shí)用技巧把采集到的數(shù)據(jù)通過(guò)串口傳到電腦直接用Python的numpy和matplotlib做FFT諧波分析能算出THD。我測(cè)了1kHz檔位算出來(lái)THD約1.5%和示波器FFT的讀數(shù)對(duì)得上。這說(shuō)明這臺(tái)模擬振蕩器的輸出質(zhì)量已經(jīng)能勝任不少測(cè)試場(chǎng)景。6.3 進(jìn)階方向AGC低失真改造與DDS備選如果想進(jìn)一步降低失真可以把二極管限幅換成JFET自動(dòng)增益控制。方案是用一個(gè)JFET比如2SK30A代替一個(gè)反饋電阻的一部分配合運(yùn)放整流得到一個(gè)與輸出幅度成正比的直流電壓去控制JFET的柵極電壓讓JFET工作在線性可變電阻區(qū)。這個(gè)方案能實(shí)現(xiàn)幾乎無(wú)失真的AGC失真度可以做到0.1%以下代價(jià)是電路多了整流、濾波、積分控制回路調(diào)試難度明顯增加。想追求更高的頻率精度和掃頻能力就直接切到DDS方案。DDS芯片配合STM32或者純FPGA頻率分辨率和穩(wěn)定度不是模擬振蕩器能比的但它的輸出是階梯狀波形必須經(jīng)過(guò)橢圓低通濾波器才能得到平滑正弦波濾波器設(shè)計(jì)又是一門學(xué)問(wèn)。我的看法是這兩種方案不沖突。文氏橋適合做低失真連續(xù)可調(diào)的模擬信號(hào)源DDS適合做頻率精準(zhǔn)的數(shù)字信號(hào)源。你先用手頭這臺(tái)文氏橋把運(yùn)放反饋、RC網(wǎng)絡(luò)和信號(hào)調(diào)理的基本功練扎實(shí)再去做DDS會(huì)順手很多。踩過(guò)這一輪坑之后我最大的感受是RC橋式振蕩器這個(gè)電路網(wǎng)上到處都有但真正要做到寬頻率范圍好用細(xì)節(jié)全在選型和調(diào)試?yán)?。不要把“電路?jiǎn)單”和“容易做出來(lái)”劃等號(hào)。如果你也打算自己搭一臺(tái)我的建議是從10kHz-100kHz這個(gè)中頻段開始調(diào)它沒(méi)有高頻那么嬌氣也沒(méi)有低頻那么考驗(yàn)?zāi)托恼{(diào)通之后再往兩頭擴(kuò)展會(huì)順很多。