文獻標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.175047
中文引用格式: 張步高,馬希直. 基于AD9910的信號源實時顯示系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2018,44(8):94-97,101.
英文引用格式: Zhang Bugao,Ma Xizhi. Design of signal source real-time display system based on AD9910[J]. Application of Electronic Technique,2018,44(8):94-97,101.
0 引言
隨著電子技術(shù)的發(fā)展,要求信號的頻率越來越高且準(zhǔn)確穩(wěn)定。MAX038芯片僅可以滿足一些低頻率的需求,晶體振蕩器雖然具有高準(zhǔn)確度和高穩(wěn)定度,但其頻率變化范圍很小且頻率值不高,這些都很難滿足在通信、測控等電子系統(tǒng)的需求[1-3]。而AD9910是一款采用ADI公司的DDS(Direct Digital Synthesizer)專利技術(shù)的直接數(shù)字頻率合成器芯片,它集成了14位數(shù)/模轉(zhuǎn)換(DAC),可以形成數(shù)字可編程、高頻模擬輸出的頻率合成器,能夠產(chǎn)生頻率為400 MHz的正弦波形。用戶可以訪問用于控制DDS的信號控制參數(shù):頻率、相位和幅度。這款DDS使用32位累加器,可提供快速跳頻和頻率調(diào)節(jié)分辨率。其采樣率為1 GS/s,調(diào)節(jié)分辨率為0.23 Hz[4]。
1 系統(tǒng)方案設(shè)計
整個系統(tǒng)由STM32F103RCT6模塊、AD9910模塊、12864顯示模塊、按鍵模塊等構(gòu)成,如圖1所示。
下面分別對各個模塊功能進行說明:STM32F103RCT6模塊,該模塊主要接收按鍵模塊輸入,控制AD9910產(chǎn)生所需頻率和12864實時顯示頻率;AD9910模塊,產(chǎn)生準(zhǔn)確穩(wěn)定的正弦波;按鍵模塊,通過按鍵輸入實現(xiàn)頻率調(diào)整;12864模塊,實時顯示AD9910產(chǎn)生的頻率,方便用戶查看。
2 硬件設(shè)計
該系統(tǒng)電路原理圖和PCB圖都通過Altium Designer14軟件繪制,下面分別對各個模塊的硬件設(shè)計進行說明。
2.1 STM32F103RCT6模塊
STM32F103RCT6是意法半導(dǎo)體公司基于ARM CM3內(nèi)核的STM32系列中的一個產(chǎn)品,目前性價比很高。基于STM32F103RCT6芯片的控制模塊包括最小系統(tǒng)(電源電路、時鐘電路、復(fù)位電路、啟動電路和JTAG下載電路)、與其他模塊的接口電路和調(diào)試顯示電路等,這里主要給出該模塊與其他模塊的接口部分,如圖2所示。
2.2 AD9910模塊
AD9910支持4種工作模式:單頻調(diào)制模式、RAM調(diào)制模式、數(shù)字斜坡調(diào)制模式、并行數(shù)據(jù)端口調(diào)制模式。對于本系統(tǒng),采用單頻調(diào)制模式即可達到要求。依據(jù)單頻調(diào)制模式,AD9910芯片的主要外圍電路為:電源分組、參考時鐘、單頻控制接口、外部環(huán)路濾波器、輸出低通濾波器。除電源分組以及其他一些無連接引腳和電源引腳外,相關(guān)電路如圖3所示[5-6]。
需要說明一點的是,圖3去掉了后續(xù)電路,與IOUT為互補輸出,若想要其輸出,其后續(xù)電路與IOUT后續(xù)電路完全一樣。
下面分別對各部分進行說明:
(1)電源分組:對于典型應(yīng)用,具體可分為4類:3.3 V數(shù)字、3.3 V模擬、1.8 V數(shù)字和1.8 V模擬。本文選擇了常用的AMS117系列兩個1.8 V芯片和一個3.3 V芯片,都通過5 V進行轉(zhuǎn)化得到所需電壓。其中兩個1.8 V芯片分別為1.8 V數(shù)字和1.8 V模擬,3.3 V芯片為3.3 V模擬,通過10 μH電感得到3.3 V數(shù)字。且數(shù)字地與電源地相連,模擬地通過10 μH電感與電源地相連。對于有較高性能要求的應(yīng)用可能需要增加電源隔離元件。
(2)參考時鐘:由DDS的原理可知,整個DDS系統(tǒng)在一個統(tǒng)一的時鐘信號即采樣時鐘下工作,該時鐘的質(zhì)量決定了最終輸出波形頻率的精度、穩(wěn)定度以及輸出信號的相噪[7]。由于有源晶振比無源晶振信號質(zhì)量好,更加穩(wěn)定,故選擇40 MHz的有源晶振。值得注意的是,有源晶振輸出端要根據(jù)需要串聯(lián)一個阻值合適的電阻,一是為了減少諧波,二是為了阻抗匹配。如在調(diào)試過程中發(fā)現(xiàn)無必要串聯(lián)電阻,可用0 ?贅電阻代替。使用有源晶振輸入對于AD9910來說屬于單端信號源輸入,由AD9910官方資料進一步得知,REF_CLK/兩個輸入引腳前端都要接一個0.1 μF電容,且還要接地。
(3)單頻控制接口:實現(xiàn)單頻控制需要的引腳很少,相關(guān)引腳如下所述:
①MASTER_RESET引腳:該引腳為主機復(fù)位引腳,高電平有效。即在編程時對AD9910初始化時要進行一段時間的復(fù)位。
②串行I/O引腳:其中SCLK為串行時鐘,CS為片選信號,SDIO為串行數(shù)據(jù)輸入/輸出。主要實現(xiàn)配置AD9910寄存器的作用。
③I/O_UPDATE引腳:該引腳為輸入/輸出更新引腳。主要用于將I/O端口緩沖器中寫入的數(shù)據(jù)傳輸?shù)接行Ъ拇嫫鳌?/p>
④PROFILE[2:0]引腳:Profile是一個包含DDS信號控制參數(shù)的獨立寄存器,AD9910共有8個Profile寄存器,每個Profile都能單獨訪問。即利用3個外部引腳(PROFILE[2:0])可選擇想要的profile。
(4)外部環(huán)路濾波器:該部分主要是確定圖3的R10、C32和C33這3個參數(shù),在AD9910官方資料中提供了相關(guān)計算公式,但計算公式是建立在已知反饋分配系數(shù)(N)、鑒相器增益(KD)以及VCO增益(KV)的基礎(chǔ)上,再由目標(biāo)開環(huán)帶寬(fOL)和相位余量來得出濾波器元件值。這樣會帶來一個問題就是求得的元件值可能不是常用值,無法購得??梢岳肁DI提供的PLL環(huán)路濾波器工具[8]來進行選擇。
在該工具中,R37、C13和C15分別對應(yīng)圖3的R10、C32和C33。由于本文選擇的是40 MHz的晶振,想要達到1 GHz的系統(tǒng)時鐘,故倍頻因子為25。相位余量與ICP編程值(該值等于鑒相器增益KD)根據(jù)需要進行下拉選取。在DESIGN中選擇相關(guān)參數(shù)后,CUSTOM中對應(yīng)位置自動顯示DESIGN參數(shù)或由其參數(shù)計算出的其他參數(shù)。然后選擇R37、C13和C15參數(shù),該工具中內(nèi)置了一些參數(shù)可以下拉選擇。本文選擇R37為1 kΩ,C13為680 pF,C15為22 pF。這些數(shù)值在圖3中都有所體現(xiàn)。
(5)輸出低通濾波器:為了過濾高頻干擾信號,需要在AD9910輸出端接一個低通濾波器,可以利用濾波器設(shè)計軟件Filter Solution設(shè)計出400 MHz的低通濾波器,在實際調(diào)試中發(fā)現(xiàn)使用低通濾波器后,輸出波形更加平滑穩(wěn)定。
2.3 12864模塊與按鍵模塊
12864模塊為晶聯(lián)訊液晶模塊,本文在PCB設(shè)計中將12864模塊和按鍵模塊與STM32F103RCT6模塊集成在一起,AD9910模塊單獨為一塊PCB,并且為了節(jié)省空間,將STM32F103RCT6芯片放在12864模塊下面。12864模塊與按鍵模塊原理圖分別如圖4、圖5所示。
3 軟件設(shè)計
軟件設(shè)計總體思路是先對各個模塊初始化,輸出顯示初始頻率,然后讀取鍵值,由鍵值確定下一步輸出頻率,再控制12864實時顯示。軟件流程圖如圖6所示。
3.1 AD9910串行編程
由于本設(shè)計采用的是單頻模式,本文僅對本系統(tǒng)涉及的AD9910寄存器進行說明,如下所述:
控制功能寄存器1(CFR1)-地址0x00:將反Sinc濾波器使能位置1。
控制功能寄存器3(CFR3)-地址0x02:根據(jù)需求配制7位REFCLK PLL反饋分步器的分頻模數(shù),即N[7:1];PLL使能位置1;3位選取REFCLK PLL的電荷泵電流值(詳見表1),即ICP[21:19];3位選取REFCLK PLL VCO的頻段,即VCO SEL[26:24]。
單頻寄存器Profile 0-地址0x0E:該寄存器涉及AD9910輸出正弦波振幅、相位偏移以及頻率參數(shù)的配置。
AD9910的一個串行通信周期可分為兩個階段。第一個階段是指令階段,將指令字節(jié)寫入AD9910。指令字節(jié)包含要訪問的寄存器地址以及定義即將進行的數(shù)據(jù)傳輸是讀操作還是寫操作,對本系統(tǒng)來說,全部為寫操作。第二個階段寫入周期指從串行端口控制器向串行端口緩沖器傳輸數(shù)據(jù)。傳輸?shù)淖止?jié)數(shù)取決于訪問的寄存器。具體一個串行通信周期程序如下程序所示:
片選信號CS要在通信周期開始前拉低,結(jié)束后拉高。但要注意的是,寫入周期結(jié)束后,編程數(shù)據(jù)駐留在串行端口緩沖器中,處于無效狀態(tài),需要輸入/輸出更新引腳I/O_UPDATE產(chǎn)生一個上升沿將端口緩沖器中寫入的數(shù)據(jù)傳輸?shù)接行Ъ拇嫫?,且脈沖寬度必須大于1個SYNC_CLK周期,其中SYNC_CLK由四分頻電路對系統(tǒng)時鐘分頻后獲得。從IO_UPDATE=0到IO_UPDATE=1,即實現(xiàn)上升沿效果。由于STM32F103RCT6最大時鐘頻率為72 MHz,故可以直接將I/O_UPDATE拉低。AD9910串行端口支持最高有效位(MSB)優(yōu)先和最低有效位(LSB優(yōu)先)兩種數(shù)據(jù)格式,此功能由控制寄存器1(0x00)中的位0控制,默認(rèn)格式是MSB優(yōu)先,一般不做修改。由串行I/O時序得出其寫入數(shù)據(jù)程序,如下程序所示:
其中SID代表SDIO。
基于發(fā)送函數(shù)和一個完整串行通信周期,便可對AD9910的寄存器進行配置,本文將控制寄存器1中的反Sinc濾波器使能位置1,以避免頻譜失真。控制寄存器2中全部取缺省值。將控制寄存器3中的PLL使能位置1,啟動AD9910內(nèi)部鎖相環(huán)??刂萍拇嫫?中的VCO SEL[26:24]等于PLL環(huán)路濾波器工具中的VCO Band Seclection值,ICP[21:19]等于PLL環(huán)路濾波器工具的Icp值在表1中的對應(yīng)值,N[7:1]等于PLL環(huán)路濾波器工具中的Frequency Multiplication Factor值。其中VCO SEL[26:24]使用PLL_Loop_Filter_Tool.xls工具會自動幫助選取合適頻段,按給定值配置即可。在配置寄存器和查看寄存器內(nèi)部值時可以使用ADI公司的AD9910 Evaluation Software軟件來輔助設(shè)計。
在配置了控制寄存器后,需要將初始振幅比例因子、相位偏移字、頻率調(diào)諧字寫入Profile0,進行初始輸出波形振幅、相位以及頻率的設(shè)置。其中振幅比例因子越大,輸出振幅越大。本系統(tǒng)中相位偏移字設(shè)置為0,即無相位偏移。頻率調(diào)諧字由以下公式計算得到:
得到頻率調(diào)諧字后轉(zhuǎn)化為對應(yīng)字節(jié)數(shù)據(jù)發(fā)送到寄存器Profile0即可輸出所需要的頻率。需要說明的是,AD9910支持多種模式,由于其他模式未進行配置,在AD9910數(shù)據(jù)源優(yōu)先級的機制下自動選擇有效的Profile寄存器。
3.2 按鍵與12864軟件設(shè)計
按鍵處理的特別之處在于采用一種新型按鍵掃描程序[9],無死循環(huán)延時等待機制。經(jīng)過對該算法的研究,發(fā)現(xiàn)該算法可以同時適用分散引腳以及上拉、下拉兩種方式的按鍵,且支持長按模式。下面僅列出其核心算法:
12864LCD顯示的中英文字符點陣取自字庫芯片GT20L16S1Y,具體顯示時根據(jù)AD9910實時頻率以及編輯位置取相關(guān)字符點陣進行顯示。
4 實物系統(tǒng)驗證
基于上述硬件設(shè)計與軟件設(shè)計,設(shè)計出該信號源系統(tǒng),為了驗證該信號源所產(chǎn)生的信號實際效果,通過示波器采集其輸出波形數(shù)據(jù),其中示波器最大采樣率為1 GSa/s,帶寬為100 MHz。如圖7的50 MHz波形和圖8的100 MHz波形,輸出波形準(zhǔn)確穩(wěn)定,達到預(yù)期效果。
5 結(jié)論
本文通過對AD9910信號源實時顯示系統(tǒng)硬件設(shè)計與軟件設(shè)計的分析,設(shè)計出了準(zhǔn)確穩(wěn)定的信號源系統(tǒng),并且方便調(diào)節(jié)和擴展,讀者可根據(jù)需要配置相關(guān)寄存器即可實現(xiàn)調(diào)幅、調(diào)相以及其他模式的波形輸出。本文在調(diào)試過程中進行過雙頻頻移鍵控的擴展,得到的效果很好。該系統(tǒng)實現(xiàn)的可調(diào)高頻信號源可以滿足大部分的工程應(yīng)用,具有較高的實用價值。
參考文獻
[1] 曾興雯,劉乃安,陳建,等.高頻電子電路[M].北京:高等教育出版社,2009.
[2] 李俊,譚秋林,崔永俊,等.基于AD9910的高頻多模式信號發(fā)生器的設(shè)計[J].電視技術(shù),2012,36(9):51-54.
[3] 孫偉超,汪定國,吳忠德.基于AD9910的調(diào)頻信號發(fā)生器設(shè)計[J].國外電子測量技術(shù),2011,30(10):76-79.
[4] Analog Devices Inc.AD9910 datasheet[EB/OL].(2017-02-23)[2017-12-10].http://www.analog.com/media/en/tech-nical-do-cumentation/data-sheets/AD9910.pdf.
[5] 楊小勇,毛瑞娟,許林華.基于FPGA的AD9910控制設(shè)計[J].電子設(shè)計工程,2011,19(2):150-153.
[6] 黃智偉.鎖相環(huán)與頻率合成器電路設(shè)計[M].西安:西安電子科技大學(xué)出版社,2008.
[7] 時慧.基于AD9910的線性調(diào)頻信號發(fā)生技術(shù)[J].科技信息,2010(17):423-426.
[8] Analog Devices Inc.AD9910[EB/OL].[2017-12-10].http://www.analog.com/cn/products/rf-microwave/direct-digital-synthesis/ad9910.html#product-overview.
[9] LoriQian.新型的按鍵掃描程序[EB/OL].(2012-06-30)[2017-12-10].http://www.doc88.com/p-9992776518685.html.
作者信息:
張步高,馬希直
(南京航空航天大學(xué) 機電學(xué)院,江蘇 南京210016)