新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的AD9910控制設(shè)計(jì)

基于FPGA的AD9910控制設(shè)計(jì)

作者: 時(shí)間:2011-03-21 來(lái)源:網(wǎng)絡(luò) 收藏

其中,SCLK用于輸出數(shù)據(jù)交換的控制時(shí)鐘,CS為片選信號(hào),IO_RFSET控制DDS的系統(tǒng)復(fù)位,SDIO是數(shù)據(jù)傳輸線,IO_UPDATE使能DDS內(nèi)部各寄存器數(shù)據(jù)更新,PROFILE用來(lái)選擇八個(gè)相位/頻率寄存器中的一個(gè),OSK用來(lái)選擇DDS的輸出鍵控模式,MASTER_RESET用來(lái)清除所有存儲(chǔ)單元,并且把寄存器設(shè)為默認(rèn)值,PWRDWNCTL用來(lái)選擇是否使用外部使能控制,不使用時(shí)置為0,這里設(shè)置為0,PLL_LOCK用來(lái)指示鎖相環(huán)的鎖定狀態(tài)。另外,由于未采用多芯片數(shù)據(jù)通信,所以需將與同步信號(hào)相關(guān)的引腳懸空,例如7、8、9、10和53引腳。
根據(jù)需要有4種工作模式可供選擇,分別是單音模式、RAM調(diào)制模式、Digital ramp modulation模式和并行數(shù)據(jù)端口調(diào)制模式。這里選用最基礎(chǔ)的signal-tone單音工作模式。
對(duì)的17個(gè)寄存器進(jìn)行設(shè)置,這里使用了AD9910的評(píng)估軟件對(duì)寄存器參數(shù)進(jìn)行設(shè)置,只需要在評(píng)估軟件中輸入目標(biāo)參數(shù),軟件將自動(dòng)給出寄存器中的值,這樣減小了工作量。根據(jù)需要,這里僅對(duì)其中的3個(gè)寄存器進(jìn)行設(shè)置,分別是地址為0X01、0X02的控制寄存器和地址為
0X0E的單音模式profile。而其他的寄存器均使用默認(rèn)值,因此無(wú)需設(shè)置。
對(duì)AD9910的軟件控制流程圖如圖3所示。

本文引用地址:http://m.butianyuan.cn/article/187577.htm


首先,對(duì)系統(tǒng)進(jìn)行初始化,對(duì)FPCA的各控制信號(hào)進(jìn)行復(fù)位操作,使能CS信號(hào)。
其次,對(duì)3個(gè)主要的寄存器進(jìn)行設(shè)置。設(shè)置地址為0X01的寄存器CFR2,共32位,這里只需要使能第24位單音模式profile的幅度值,默認(rèn)值為0,這里設(shè)為1,其余均使用默認(rèn)值,因此地址為0X01寄存器的內(nèi)容為0X01_40_08_20。
地址為0X02的寄存器CFR3主要用來(lái)設(shè)置PLL和VCO的參數(shù)。其中,第26位到第24位用來(lái)選擇PLL VCO參考時(shí)鐘的頻帶,這里選擇820~1 150 MHz的VC05,因此為101;第8位是PLL使能的選擇,默認(rèn)值為0,這里選擇使能1;第7位到第1位這7 bit數(shù)據(jù)是PLL倍頻器的倍頻系數(shù),默認(rèn)值
為0000000b,這里對(duì)外部時(shí)鐘進(jìn)行40倍頻,因此,設(shè)置為0101000b。其余各位均使用默認(rèn)值。所以,地址為0X02寄存器的內(nèi)容為0X1D_3F_41_ 50。
對(duì)地址為0X0E的單音模式profile進(jìn)行設(shè)置,它是用來(lái)控制DDS的幅度、相位和頻率。其中第61位到第48位這14位用來(lái)設(shè)置幅度值,根據(jù)需要在評(píng)估軟件中輸入所需幅度值可以直接查看寄存器中相應(yīng)位的值,這里使用默認(rèn)值00_1000_1011_0101b;第47位到第32位這16位用來(lái)設(shè)置相位偏移量,這里仍舊使用默認(rèn)值0X0000;低32位是用來(lái)設(shè)置頻率控制字的值,頻率控制字,其中,fout為輸出頻率,N為頻率控制字的位數(shù),位數(shù)越大輸出頻率的分辨率越高,fc為系統(tǒng)時(shí)鐘1 GHz,這里輸出頻率為50 MHz,對(duì)應(yīng)的頻率控制字為214748365,因此對(duì)應(yīng)位的值設(shè)置為0X0CCC_CCCD。地址為0X0E寄存器的內(nèi)容為0X0885_0000_0CCC_CCCD。
最后,結(jié)束IO_UPDATE的操作動(dòng)作,完成一次完整的設(shè)置過(guò)程。
對(duì)寄存器的讀寫操作是通過(guò)向輸入端口SDIO發(fā)送8位指令來(lái)實(shí)現(xiàn)的,這8位中,最高位為讀寫指令,1為讀操作,0為寫操作,低5位用來(lái)選擇在通信周期時(shí)選通哪個(gè)寄存器進(jìn)行數(shù)據(jù)的傳輸,控制寄存器的內(nèi)容,如表1所示。


對(duì)AD9910讀寫操作時(shí),需要注意AD9910的時(shí)序要求。對(duì)于串行I/O端口的各種控制信號(hào)之間的有4種基本的時(shí)序關(guān)系,分別是串口寫時(shí)序,時(shí)鐘在低電平停止;三線串口讀時(shí)序,時(shí)鐘在低電平停止;串口寫時(shí)序,時(shí)鐘在高電平停止;兩線串口讀時(shí)序,時(shí)鐘在高電平停止。這里采用第一種時(shí)序關(guān)系,時(shí)序圖如圖4所示。


在SCLK上升沿,寫入數(shù)據(jù)有效,控制SCLK信號(hào)的產(chǎn)生。具體寫入數(shù)據(jù)的程序代碼(使用Vefilog HDL編寫)如下所示:

該指令用于對(duì)地址為0X01的控制寄存器CFR2進(jìn)行寫操作。鑒于的高速處理能力,在程序設(shè)計(jì)時(shí)需要注意一些特殊的時(shí)序要求,如以下幾個(gè)方面。
1)AD9910開(kāi)始工作時(shí)必須先將其復(fù)位,復(fù)位時(shí)間保持1 000個(gè)系統(tǒng)工作周期。
2)如果系統(tǒng)工作需要多次使用I/O_UPDATE,要注意I/O_UPDATE引腳置1的時(shí)間控制,這關(guān)系到系統(tǒng)能否順利設(shè)置各個(gè)寄存器。



關(guān)鍵詞: FPGA 9910 AD 控制設(shè)計(jì)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉