【應(yīng)用筆記】用Cyclone V FPGA配置AD9361
掃描二維碼
隨時隨地手機(jī)看文章
傳統(tǒng)的射頻收發(fā)器硬件架構(gòu)由分立的LNA,Mixer,VGA,ADC/DAC,IQ調(diào)制器和射頻頻綜等芯片組成。AD9361是一款面向3G和4G基站應(yīng)用的高性能、高集成度的射頻RF Transceiver。該器件的可編程性和帶寬能力使其成為多種收發(fā)器應(yīng)用的理想選擇。單一芯片最大可完成2T2R通道的射頻及中頻處理。
Intel FPGA作為一種可編程邏輯器件,具有豐富的邏輯資源包括嵌入式存儲器,數(shù)字信號處理模塊,高速收發(fā)器,高速IO管腳等,可以方便實現(xiàn)各種外圍器件的配置和數(shù)字信號處理。.
本文介紹采用cyclone V FPGA完成9361的配置,在 FPGA中通過SPI接口完成對 AD9361一系列寄存器的配置,從而使得 AD 9361 在配置的模式和參數(shù)下正常工作。
AD9361評估軟件配置說明
AD9361的配置是通過SPI接口讀寫內(nèi)部寄存器實現(xiàn),而寄存器配置參數(shù)包含在AD9361評估軟件release出的InitScrip文件中。
1、打開9361評估軟件如下圖所示
2、點擊Run ProjectWizard,彈出的界面可以選擇射頻輸入輸出口,本設(shè)計中單芯片實現(xiàn) 1T1R,均選擇 2A端 口,根據(jù)板卡原理圖的設(shè)計配置如下:
3、點擊Next,進(jìn)行參考時鐘設(shè)置,本方案外部時鐘30.72M(19~50M)連接至XTAL_N,為了達(dá)到最佳性能,BBPLL和TX/RX SYNTH的參考輸入時鐘范圍是35~80M,所以BBPLL Input Scale和RFPLL Input Scale均為2x,本方案沒有使用DCXO,可以不用設(shè)置。
4、點擊Next,進(jìn)入下一界面。設(shè)置接口速率和通道帶寬,如果要設(shè)計的帶寬和數(shù)據(jù)速率相同,用戶可以直接使用Standard里的模板,也可以選擇Cutom自定義參數(shù)。在自定義的情況下,輸入接口數(shù)據(jù)速率和通道帶寬后,軟件會自動得出ADC CLK和DAC CLK,以及相應(yīng)的抽取插值倍數(shù)。需要注意的是ADC CLK范圍是10.5M~672M,在不超過范圍的情況下,ADC CLK的頻率越高越好。本方案收發(fā)數(shù)據(jù)速率為30.72M,參考設(shè)計中TX,RX射頻帶寬為18M,用戶可根據(jù)自身使用情況進(jìn)行修改。
5、點擊Next進(jìn)入RX濾波器參數(shù)設(shè)置界面。只要在上個界面中設(shè)定好接口數(shù)據(jù)速率和帶寬,軟件會自動設(shè)置好濾波器參數(shù)。紅線為模擬濾波器響應(yīng),綠線為數(shù)字濾波器響應(yīng),白線為兩者級聯(lián)的響應(yīng)。其中數(shù)字濾波器的系數(shù)由用戶根據(jù)自己需求通過matlab生成。
6、點擊Next進(jìn)入TX濾波器參數(shù)設(shè)置界面,與RX濾波器參數(shù)設(shè)置相同。
7、點擊Next進(jìn)入數(shù)字接口設(shè)置界面,本方案硬件采用CMOS,Dual Port FDD全雙工模式(收發(fā)各12比特),雙邊沿采樣。
8、點擊Next進(jìn)入接口相關(guān)設(shè)置界面。下圖中上方的相關(guān)設(shè)置可以取反時鐘相位,交換IQ順序,交換通道,推薦不更改。下方的Delay Cell Control可以調(diào)整數(shù)據(jù)管腳和時鐘之間的延時,從而得到一個好的采樣窗口。
9、點擊Next進(jìn)入ENSM設(shè)置界面,可以對TDD/FDD進(jìn)行設(shè)置。參考設(shè)計中設(shè)置為FDD模式,ENABLE和TXNRX獨立控制收發(fā)。
10、點擊Next進(jìn)入增益控制設(shè)置界面,可以設(shè)置為AGC自動模式,也可以設(shè)置為MGC手動模式。推薦用戶在前期測試自己的板卡時設(shè)置為MGC模式,參考設(shè)計中采用MGC模式。
11、點擊Finish,回到主界面。然后點擊左邊Receive,設(shè)置接收本振,參考設(shè)計中默認(rèn)設(shè)置為1950M,也可在程序中通過ISSP動態(tài)修改。右上方可以設(shè)置初始增益值,也可在ISSP中實時修改。
12、點擊左方的Transmit,設(shè)置發(fā)射本振,參考設(shè)計中的默認(rèn)頻率為1950M,也可通過ISSP實時修改。TX1/2Attenuation可以設(shè)置TX端的初始衰減值(0~89.75dB),也可在ISSP中動態(tài)修改。
13、設(shè)置完成后回到主界面,在此界面可以保存和讀取該軟件的project文件。點擊右上角的Create Init Script,在隨后彈出的小窗口選擇Low Level Scripting(文件保存類型選擇為.txt)可以生成對應(yīng)當(dāng)前配置的完整配置參數(shù)文本。
14、生成的寄存器配置文件.txt 格式如下,可以明確看出配置流程。
FPGA 設(shè)計流程
FPGA 內(nèi)部主要完成三大功能,分別是 AD 9361 配置,收發(fā)數(shù)據(jù)處理和外部功放的配置。
-
AD 9361 配置
根據(jù)上述 AD9361 軟件配置流程14中生成的 Init Scrip文件,將 AD9361的配置流程通過22個狀態(tài)機(jī)來實現(xiàn),分別為IDLE→(CONFIG_PART1)→BBPLL SET(CONFIG_PART2)→TX FILTER SET(CONFIG_PART3)→RX FILTER SET(CONFIG_PART4)→PARALLEL PORT SET(CONFIG_PART5)→AUXDAC AUXADC SET(CONFIG_PART6)→CONTROL OUT SET(CONFIG_PART7)→GPO SET(CONFIG_PART8)→ENSM SET(CONFIG_PART9)→RFVCO SET(CONFIG_PART10)→MIXER SUBTABLE SET(CONFIG_PART11)→RX GAIN TABLE(CONFIG_PART12)→RX MANUAL SET(CONFIG_PART13)→RX BB FILTER TUNE SET(CONFIG_PART14)→TX BB FILTER TUNE SET(CONFIG_PART15)→RX TIA SET(CONFIG_PART16)→TX 2NDFILTER SET(CONFIG_PART17)→ADC TUNE SET(CONFIG_PART18)→TX QUAD CAL SET(CONFIG_PART19)→TX ATT SET(CONFIG_PART20)→RSSI POWER MEASURE SET(CONFIG_PART21)→END ENABLE SET(CONFIG_PART22).
一般工作模式下,以上狀態(tài)機(jī)均根據(jù) Init Scrip文件中寄存器配置流程和順序進(jìn)行跳轉(zhuǎn),每個狀態(tài)里面實現(xiàn)本模塊的寄存器配置,而且每個狀態(tài)模塊內(nèi)部也是通過狀態(tài)機(jī)實現(xiàn),基本結(jié)構(gòu)為 RESET→CONFIGURE DATA→WAIT→END ,有些模塊內(nèi)部包含延遲等待的信息,需要有 WAIT 狀態(tài)。
2. 收發(fā)數(shù)據(jù)處理
FPGA 和 AD9361 之間采用 CMOS Dual PORT全雙工模式,雙邊沿采樣DDR。即 FPGA 和 AD9361 之間收發(fā)均為12bit并行數(shù)據(jù),DDR模式。因此在 FPGA 內(nèi)部需要實現(xiàn) DDR 數(shù)據(jù)和 SDR 數(shù)據(jù)的轉(zhuǎn)換。具體地,發(fā)射端由NCO 產(chǎn)生 CW 信號,頻率可通過頻率控制字實時改變。產(chǎn)生的 CW 信號先經(jīng)過數(shù)字增益模塊,然后通過 DDRIO 模塊轉(zhuǎn)換成 DDR 格式輸出給 AD9361。接收端通過 DDRIO 將接收到的 AD9361 數(shù)據(jù)轉(zhuǎn)換成 SDR 格式后,通過 RX FRAME 信號將 IQ 分開。





