新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于FPGA的AD9910控制設計

        基于FPGA的AD9910控制設計

        作者: 時間:2011-03-21 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/187577.htm


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


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


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

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



        關鍵詞: FPGA 9910 AD 控制設計

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 彩票| 衡阳县| 勐海县| 绵阳市| 阜城县| 江源县| 延吉市| 辰溪县| 怀集县| 简阳市| 高安市| 淄博市| 张家港市| 勐海县| 绵阳市| 福清市| 阿拉善右旗| 牡丹江市| 怀远县| 东港市| 浏阳市| 吕梁市| 内乡县| 句容市| 合川市| 东港市| 广昌县| 金昌市| 大名县| 黄石市| 泸水县| 论坛| 天津市| 洪泽县| 兴国县| 重庆市| 通许县| 胶南市| 启东市| 民和| 宣武区|