杜 佳
(南華大學電氣工程學院,湖南衡陽 421001)
正弦波信號發生器廣泛應用于電子電路、自動控制、軍工航天領域,是電子技術領域基礎電子儀器之一,在高頻電子領域通常作為載波信號,是一種不可缺少的信號源和激勵源。直接數字頻率合成(DDS)技術由于其結構簡單、輸出頻率精度高等優點被廣泛應用于信號發生電路中。實驗室常用的模擬信號發生器通常輸出頻率在1 MHz或幾百kHz以下,且頻率精確度不高,幅值輸出不精確,無法滿足高頻精密信號激勵源需求,實際應用中存在諸多不足[1-4]。
本文采用基于DDS技術的AD9859集成電路,并且結合基于VGA技術的壓控增益放大器AD8336來研究設計一種寬帶幅值穩定且數控可調的正弦波信號發生器。DDS技術是一種新型的頻率合成技術,其生成頻率具有很高的精度,采用該技術可提高頻率的精確度,并且其具備頻率可編程功能,可快速輸出任意設定的頻率,實現頻率連續可調,常用于各類數字信號發生器設計之中。AD8336是壓控增益放大器,可通過外部電壓值調節內部運放的增益倍數,實現輸入信號的放大與縮小的目的。本文采用STM32微控制器作為核心控制單元,通過按鍵輸入設定正弦波頻率以及幅值,并采用峰值檢測電路實時監測輸出波形幅值,調節壓控增益倍數,實現了輸出頻率在10 kHz~10 MHz范圍內連續可調,幅值在0~5VPP連續可調且誤差小于1%的正弦波信號。輸出阻抗匹配50Ω,可滿足眾多高頻應用[2,5]。
為實現幅值自動穩定的信號發生器設計指標,設計由STM32F103C8T6單片機為核心主控,根據設定的頻率將頻率調諧字(FTW)通過串口寫入AD9859,并根據壓控增益放大電路的輸出信號幅值調節AD8336的增益倍數,整個系統達到閉環控制,使得輸出幅值達到設定幅值,硬件系統可分為以下幾個部分:DDS信號發生電路,AD8336壓控增益放大電路、峰值檢測電路以及STM32核心電路。系統總設計如圖1所示。
圖1 信號發生器總體設計
該系統需要+1.8 V、+3.3 V、±9 V直流電壓供電,其中+1.8 V為AD9859的供電,+3.3 V為主控STM32供電,±9V則作為AD8336運放供電電壓。本設計的供電電源采用變壓器將220 V市電轉雙12 V降壓后,經過LM7809、LM7909得到±9 V直流電,再經過LM7805、ASM1117-3.3、ASM1117-1.8得到+3.3 V、+1.8 V。該系列芯片具有輸出紋波低、封裝小、效率高、價格低廉等優點,廣泛應用于各類集成電路供電模塊中,由于該部分是常見電路,不再具體介紹該部分電路。
AD9859內部集成10 bit高速DAC,最高主頻可達400 MHz,最大輸出頻率200 MHz正弦波,內部可編程DDS具有32位頻率調諧字(FTW),可通過四線SPI串口與MCU進行通信。AD9859的外圍電路如圖2所示,其輸出為兩路180°反相信號,通過一個1∶1的變壓器可將兩路差分信號轉為單路輸出,如圖3(a)所示。DDS信號的模擬輸出,其本質是D/A轉化,因此輸出波形本質上呈現階梯狀,包含各種高次諧波分量,必須通過低通濾波器才能得到平滑的正弦波曲線,圖3(b)所示為7階橢圓濾波電路圖[3]。
圖2 AD9859外圍設計電路
圖3 差分轉單路輸出和橢圓濾波電路
DDS核心是精確輸出各個所需的頻率點,DDS的輸出頻率f0來自系統時鐘(CLOCK),頻率調諧字(FTW)的范圍決定于累加器的位數(AD9859累加器最大值為232),輸出頻率與頻率調諧字的計算方式如下[5]。
AD9859內部有多個寄存器,MCU通過SPI總線將頻率控制字等數據寫入對應寄存器來達到改變輸出頻率的目的,主要使用到的寄存器如表1所示,程序初始化頻率輸出為10 kHz。
表1 AD9859主要使用到的寄存器及初始化值
DDS芯片AD9859的供電電壓為+1.8 V,其輸出頻率的幅值通常為幾百mV,為了實現幅值可調,需要加以合適增益倍數的放大電路,但是AD9859不同頻率輸出的幅值不固定,頻率越高,輸出幅值越小且不呈線性關系,為了使輸出幅值穩定,需要一個增益可調的放大電路設計。
AD8336是ADI公司設計的一款基于VGA技術的放大器集成電路,VGA內置一個-60 dB的衰減器,在其前有一級最大可配置26 dB的前置放大器,其后接一固定34 dB增益的放大器,使得總增益范圍從-14~46 dB或0~60 dB連續可調的目的[6]。如圖5所示,GPOS和GNEG是外部電壓增益控制引腳,之間的壓差為VGAIN,從圖4可以知道,控制電壓VGAIN的范圍為-0.7~+0.7 V,控制增益變化為-14~46 dB(以前置運放增益12 dB來計算)。一般的單片機或者DAC芯片的輸出電壓都是正電壓,因此在GNEG腳設定一個0.9 V的電壓偏移,使得控制電壓范圍從0.2~1.6 V連續可調。
圖4 AD8336增益與外部電壓曲線
圖5 AD8336應用電路
DAC芯片采用12位精度AD5320,采用+2.7~+5.5 V單電源供電,3 V時功耗僅有115μA,內置精密輸出放大器,能夠實現軌對軌輸出。同時其采用三線串口控制接口,最高可工作在30 MHz的時鐘速率,可快速響應輸出電壓配置。
峰值檢測電路是廣泛應用的基本電路,其可以檢測一個任意波形的最搞峰值Vpeak,圖6所示為理想峰值檢測保持電路的輸入波形(淺色)與輸出波形(深色)的關系圖。而最簡單的峰值檢測電路僅由一個二極管和一個電容器構成,如圖7所示,但由于電容容易漏電,峰值會持續下降,不能有效保持峰值輸出,同時由于二級管管壓降的影響,導致輸出出峰值低于輸入電壓最高值,誤差來源于二極管正向導通壓降。
圖6 理想的峰值檢測電路曲線
圖7 簡易峰值檢測電路
圖8 所示為由雙電壓跟隨器構成的峰值檢測電路,待測信號由同相輸入端輸入,當Vi>Vo,且Vi大于二極管壓降時,D1、D2、D3導通,給電容C1充電。當輸入Vi<Vo時,二極管D1、D2、D3截至,阻斷電流回流,電容上的電壓得到保持。后級運放充當跟隨器輸出到單片機做AD檢測。同時Q1和Q2作為放電三極管,當MCU檢測完峰值數據后,只需要一個高電平驅動,就可以復位電容C1為下一輪測量做準備[7]。其PSPICE仿真如圖9所示[8]。
圖8 峰值采樣保持電路
圖9 控制臂拓撲優化結果
圖9 PSPICE仿真
控制器采用Cortex-M3內核的STM32F103C8T6處理器,該處理器最高時鐘頻率72 MHz,集成了豐富如SPI、I2C等外設總線以及GPIO接口,非常適合本設計的通信方式。系統軟件采用C語言開發設計,設定頻率及幅值數據通過矩陣按鍵方式輸入,MCU根據設定好的頻率,通過給AD9859串口發送指令和頻率調諧字(FTW),使AD9859產生一路正弦波信號。通過ADC讀取輸出端經峰值檢波電路的輸出電壓,不斷反饋調節AD8336的增益電壓,實現負反饋調節,最終使得輸出趨于穩定,同時OLED屏幕上顯示實時頻率及幅值,程序設計流程如圖10所示。
圖10 控制臂二次設計模型
圖10 程序設計流程
在設置好的頻率下,表2所示為對應示波器顯示頻率,表3所示為輸出幅值測試結果,波形如圖11所示。
表3 輸出電壓幅值測試表
從測試結果來看,從10 kHz到10 MHz一共測試了10組數據,輸出電壓都設定為5Vpp,其頻率輸出精度誤差均小于0.02%,輸出電壓的幅值誤差都小于1%。
圖11所示為部分實測數據圖,分別是10 kHz、100 kHz、1 MHz以及10 MHz頻率下示波器測得的波形,其中10 kHz輸出時,由于輸出頻率范圍較寬,波形受到輸出端電容耦合的影響,使得波形產生細微畸變,后續研究可以在輸出部分增加輸出耦合電容分組選擇器來幫助進一步完善。
圖11 部分實測波形
數據結果與預設有一些差別,但兩者誤差并不大,其主要誤差來源由以下原因:
(1)頻率誤差主要來源于晶振誤差,引起系統時鐘偏差;
(2)幅值誤差來受峰值檢測輸出ADC檢測精度影響;
(3)幅值誤差來源于DAC調節壓控增益放大器的輸出精度不高;
(4)手工布線精度、手工焊接元器件質量不高,進而影響頻率精度以及幅值精度;
(5)芯片工作時間長引起芯片散熱溫漂影響頻率和運放幅值精度;
(6)單輸出耦合電容容易影響寬頻帶信號輸出。
本文基于AD9859、AD8336和STM32芯片設計了一款寬帶、幅值連續可調的信號發生器;采用STM32作為核心主控通過串口通信方式驅動AD9859,并利用峰值檢測電路實時監測輸出幅值反饋調節AD8336的模擬增益控制電壓,實現了10 kHz~10 MHz頻率連續可調、幅值0~5VPP連續可調的正弦波信號發生器。經實驗驗證,該信號發生器的頻率和輸出幅值穩定性和精度都較高,達到設計要求。后續研究可以改進輸出端的耦合電容部分,增加分組網絡,可將頻率進一步分段,不同頻率段使用不同的耦合電容,使得輸出波形完美無失真。