精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AD9361芯片進行數(shù)據(jù)接口邏輯代碼的編寫

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-01 09:59 ? 次閱讀

FPGA實現(xiàn)AD9361數(shù)據(jù)接口邏輯

1 引言

??

本文通過以高速AD9361芯片為例進行數(shù)據(jù)接口邏輯代碼的編寫,利用SelectIO IP快速高效完成芯片驅(qū)動的生成。

2 AD9361

2.1 芯片簡介

??AD9361是一款面向3G和4G基站應(yīng)用的高性能、高集成度的射頻(RF)Agile Transceiver捷變收發(fā)器。該器件的可編程性和寬帶能力使其成為多種收發(fā)器應(yīng)用的理想選擇。該器件集RF前端與靈活的混合信號基帶部分為一體,集成頻率合成器,為處理器提供可配置數(shù)字接口,從而簡化設(shè)計導(dǎo)入。AD9361接收器LO工作頻率范圍為70 MHz至6.0 GHz,發(fā)射器LO工作頻率范圍為47 MHz至6.0 GHz,涵蓋大部分特許執(zhí)照和免執(zhí)照頻段,支持的通道帶寬范圍為200 kHz以下至56 MHz,整體結(jié)構(gòu)圖如圖 1 AD9361整體結(jié)構(gòu)圖所示。

8538d894-f8d4-11ec-ba43-dac502259ad0.png圖 1 AD9361整體結(jié)構(gòu)圖

?集成12位DACADC的RF2×2收發(fā)器
? TX頻段:47MHz至6.0GHz
? RX頻段:70MHz至6.0GHz
?支持TDD和FDD操作
?可調(diào)諧通道帶寬:<200?kHz至56?MHz
??雙通道接收器:6路差分或12路單端輸入
??出色的接收器靈敏度,噪聲系數(shù)為2?dB?(800?MHz?LO)
??RX增益控制
??o?實時監(jiān)控和控制信號用于手動增益
??o?獨立的自動增益控制
??雙發(fā)射器:4路差分輸出
??高線性度寬帶發(fā)射器
? o TX EVM:≤?40?dB
? o TX噪聲:≤?157?dBm/Hz本底噪聲
? o TX監(jiān)控器:動態(tài)范圍≥66?dB,精度=1?dB
??集成式小數(shù)N分頻頻率合成器
??2.4?Hz最大本振(LO)步長
??多器件同步
??CMOS/LVDS數(shù)字接口

2.2 參數(shù)配置

??用戶可以根據(jù)自己的需求將數(shù)據(jù)接口通過SPI配置成LVDS或CMOS接口,也可以還可以選擇FDD或TDD工作方式,以及數(shù)據(jù)速率可以選擇SDR或DDR。只需要通過配置軟件設(shè)置即可,如圖 2 AD9361數(shù)據(jù)接口配置參數(shù)所示,詳細的配置教程見AD936x Evaluation Software 詳細配置。

856799c2-f8d4-11ec-ba43-dac502259ad0.png圖 2 AD9361數(shù)據(jù)接口配置參數(shù)

??在進行數(shù)據(jù)驗證時,也可以使用測試模式,對收發(fā)數(shù)據(jù)進行驗證以保證系統(tǒng)的正確性。另外,還可以對輸入時鐘進行延時調(diào)節(jié)或者通過SelectIO的delay、delayctrl功能對時鐘信號進行微調(diào),以滿足時序要求。芯片數(shù)據(jù)時鐘與數(shù)據(jù)之間的時序可靠性也可以通過芯片內(nèi)部的延時寄存器0x006、0x007進行條件,以此達到要求,具體的SPI配置寄存器時序如圖 3 AD9361 寄存器配置接口SPI時序所示。此方面不是本文重點,不做展開,更多內(nèi)容參考官方data sheet。

85b42b70-f8d4-11ec-ba43-dac502259ad0.png圖 3 AD9361 寄存器配置接口SPI時序

??本小節(jié)使用的數(shù)據(jù)接口參數(shù):LVDS、FDD、DDR,對應(yīng)的時序邏輯也是根據(jù)該參數(shù)進行設(shè)計。

2.3 引腳

RX數(shù)據(jù)時序接口如下:

85d1b58c-f8d4-11ec-ba43-dac502259ad0.png860712b8-f8d4-11ec-ba43-dac502259ad0.png863ccc6e-f8d4-11ec-ba43-dac502259ad0.png86711b2c-f8d4-11ec-ba43-dac502259ad0.png

TX數(shù)據(jù)時序接口如下:

86a379e6-f8d4-11ec-ba43-dac502259ad0.png86cc8d18-f8d4-11ec-ba43-dac502259ad0.png870eaf68-f8d4-11ec-ba43-dac502259ad0.png873fefd8-f8d4-11ec-ba43-dac502259ad0.png

2.4 接口時序

??以下使用的數(shù)據(jù)接口參數(shù):LVDS、FDD、DDR,根據(jù)不同的通道數(shù)可以得到不同的數(shù)據(jù)時序,用戶在解析數(shù)據(jù)時只要按照對應(yīng)的結(jié)構(gòu)進行拼接即可。

878a9344-f8d4-11ec-ba43-dac502259ad0.png圖 4 AD9361接收數(shù)據(jù)路徑 87b87d04-f8d4-11ec-ba43-dac502259ad0.png圖 5 AD9361發(fā)射接口路徑

3 參考代碼

3.1 SelectIO配置

??根據(jù)以上對AD9361的了解,就可以輕松的配置SelectIO IP的GUI界面了。芯片既包括發(fā)射模塊TX又包括接收模塊RX,所以IO類型選擇chip to chip。

87e13d5c-f8d4-11ec-ba43-dac502259ad0.png圖 6 SelectIO配置界面1

??根據(jù)上述參數(shù)配置部分,自然就選擇DDR。數(shù)據(jù)接口包括時鐘CLK、Frame對齊信號與差分數(shù)據(jù)端Data[05:0],要同時對Frame與Data信號進行時序解析,所以端口寬度設(shè)置為7.

8821c7dc-f8d4-11ec-ba43-dac502259ad0.png圖 7 SelectIO配置界面2

??由于芯片內(nèi)部寄存器0x006、0x007可以確保時鐘與數(shù)據(jù)滿足時序要求,所以不需要延時模塊,以節(jié)約FPGA邏輯資源。

89403afe-f8d4-11ec-ba43-dac502259ad0.png896cb93a-f8d4-11ec-ba43-dac502259ad0.png

3.2 數(shù)據(jù)解析

//-------------------------------------------------------------------
//用于將接收時鐘與數(shù)據(jù)進行單端與差分的變換
//-------------------------------------------------------------------
selectio_ipu_selectio_ip(
//Fromthesystemintothedevice
.DATA_IN_FROM_PINS_P(ad_rx_data_in_p),
//從AD接收端接收到的單端數(shù)據(jù)與標志
.DATA_IN_FROM_PINS_N(ad_rx_data_in_n),
//從AD接收端接收到的單端數(shù)據(jù)與標志
.DATA_IN_TO_DEVICE(ad_rx_data),
//將AD接收端接收到的數(shù)據(jù)與標志轉(zhuǎn)換為單端數(shù)據(jù)
//Fromthedeviceouttothesystem
.DATA_OUT_FROM_DEVICE(ad_tx_data),
//將要發(fā)送的DA數(shù)據(jù)與標志轉(zhuǎn)換為單端數(shù)據(jù)
.DATA_OUT_TO_PINS_P(ad_tx_data_out_p),
//發(fā)送端的單端DA數(shù)據(jù)與標志
.DATA_OUT_TO_PINS_N(ad_tx_data_out_n),
//發(fā)送端的單端DA數(shù)據(jù)與標志
.CLK_TO_PINS_P(ad_fb_clk_p),
//將AD接收端的輸入時鐘用于發(fā)射時鐘
.CLK_TO_PINS_N(ad_fb_clk_n),
//將AD接收端的輸入時鐘用于發(fā)射時鐘
.CLK_IN_P(ad_data_clk_p),
//AD接收端的單端輸入時鐘
.CLK_IN_N(ad_data_clk_n),
//AD接收端的單端輸入時鐘
.CLK_OUT(ad9361_data_clk),
//將AD接收端的差分輸入時鐘轉(zhuǎn)變?yōu)閱味藭r鐘
.CLK_RESET(reset),
//用于AD輸入時鐘的復(fù)位,高有效
.IO_RESET(reset)
//用于單端、差分變換的復(fù)位,高有效
);

//-------------------------------------------------------------------
//發(fā)送數(shù)據(jù)的生成
//-------------------------------------------------------------------
assignad_tx0_msb_q=ad_tx0_data[23:18];
assignad_tx0_lsb_q=ad_tx0_data[17:12];
assignad_tx0_msb_i=ad_tx0_data[11:06];
assignad_tx0_lsb_i=ad_tx0_data[05:00];
assignad_tx1_msb_q=ad_tx1_data[23:18];
assignad_tx1_lsb_q=ad_tx1_data[17:12];
assignad_tx1_msb_i=ad_tx1_data[11:06];
assignad_tx1_lsb_i=ad_tx1_data[05:00];

reg[13:0]ad_tx_data;

//-------------------------------------------------------------------
//選擇要發(fā)送的I與Q數(shù)據(jù)
//-------------------------------------------------------------------
always@(posedgead9361_data_clkorposedgereset)begin
if(reset)
ad_tx_data<=0;
??else?if((ad_tx_frame_reg==0)&&(ad_tx_frame==1))
???ad_tx_data<={ad_tx_frame,ad_tx0_msb_q,ad_tx_frame,ad_tx0_msb_i};
??else?if((ad_tx_frame_reg==1)&&(ad_tx_frame==1))
???ad_tx_data<={ad_tx_frame,ad_tx0_lsb_q,ad_tx_frame,ad_tx0_lsb_i};
??else?if((ad_tx_frame_reg==1)&&(ad_tx_frame==0))
???ad_tx_data<={ad_tx_frame,ad_tx1_msb_q,ad_tx_frame,ad_tx1_msb_i};
??else?if((ad_tx_frame_reg==0)&&(ad_tx_frame==0))
???ad_tx_data<={ad_tx_frame,ad_tx1_lsb_q,ad_tx_frame,ad_tx1_lsb_i};??
?end?

//-------------------------------------------------------------------
//選擇接收的I與Q數(shù)據(jù)
//-------------------------------------------------------------------
?always?@(posedge?ad9361_data_clk?or?posedge?reset)?begin
??if(reset)?begin
???ad_rx0_msb_i<=0;
???ad_rx0_msb_q<=0;
???ad_rx0_lsb_i<=0;
???ad_rx0_lsb_q<=0;
???ad_rx1_msb_i<=0;
???ad_rx1_msb_q<=0;
???ad_rx1_lsb_i<=0;
???ad_rx1_lsb_q<=0;???
??end
??else?if((ad_rx_frame_reg==0)&&(ad_rx_frame==1))?begin
???ad_rx0_msb_i<=ad_rx_data[05:0];
???ad_rx0_msb_q<=ad_rx_data[12:7];
??end
??else?if((ad_rx_frame_reg==1)&&(ad_rx_frame==1))?begin
???ad_rx0_lsb_i<=ad_rx_data[05:0];
???ad_rx0_lsb_q<=ad_rx_data[12:7];
??end
??else?if((ad_rx_frame_reg==1)&&(ad_rx_frame==0))?begin
???ad_rx1_msb_i<=ad_rx_data[05:0];
???ad_rx1_msb_q<=ad_rx_data[12:7];
??end
??else?if((ad_rx_frame_reg==0)&&(ad_rx_frame==0))?begin
???ad_rx1_lsb_i<=ad_rx_data[05:0];
???ad_rx1_lsb_q<=ad_rx_data[12:7];
??end?
?end
?
?wire?[23:0]??ad_rx0_fifo_data;
?wire?[23:0]??ad_rx1_fifo_data;
?assign?ad_rx0_fifo_data={ad_rx0_msb_q,ad_rx0_lsb_q,ad_rx0_msb_i,ad_rx0_lsb_i};
?assign?ad_rx1_fifo_data={ad_rx1_msb_q,ad_rx1_lsb_q,ad_rx1_msb_i,ad_rx1_lsb_i};

原文標題:FPGA實現(xiàn)AD9361數(shù)據(jù)接口邏輯

文章出處:【微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:彭靜

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1626

    文章

    21665

    瀏覽量

    601809
  • 芯片
    +關(guān)注

    關(guān)注

    453

    文章

    50391

    瀏覽量

    421786
  • 數(shù)據(jù)接口
    +關(guān)注

    關(guān)注

    1

    文章

    78

    瀏覽量

    17829
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4746

    瀏覽量

    68348
  • AD9361
    +關(guān)注

    關(guān)注

    8

    文章

    34

    瀏覽量

    37070
收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于AD9361的抗阻塞能力的實測

    在窄帶應(yīng)用中,零中頻軟件無線電芯片已經(jīng)非常流行,其代表是ADI公司的AD9361
    的頭像 發(fā)表于 05-26 10:17 ?2351次閱讀

    AD9361接收IQ軌跡圖質(zhì)量

    ,矩形窗(Rectangle)成型發(fā)射 2. 朋友測試——(某公司使用AD9361自己做的板子測試) 其他說明:測試之前,我已經(jīng)完成芯片的數(shù)字接口測試,即在基帶芯片發(fā)射隨機
    發(fā)表于 08-20 07:43

    ad9361 lvds接口調(diào)試

    AD9361 lvds模式接口。之前用ad9361時至調(diào)試了cmos接口,現(xiàn)在調(diào)試一下lvds模式。接口模式 : 2r2t每個通道
    發(fā)表于 08-30 11:49

    AD9361無發(fā)射信號

    TX1通道接到頻譜儀上沒有任何的信號輸出 AD9361我配置的是單通道、LVDS輸出,DATA_CLK,F(xiàn)B_CLK也都有輸出,數(shù)字接口部分我參照AD9361的IP核編寫的TX_FRA
    發(fā)表于 09-25 14:19

    AD9361數(shù)字CMOS接口時序問題

    AD9361在1R1T傳輸時,當RX_FRAME和TX_FRAME信號為高電平時(即電平模式),AD9361數(shù)據(jù)收發(fā)并口傳輸時序圖? 數(shù)據(jù)手冊中并口的timming使用的是pulse
    發(fā)表于 12-19 09:25

    請問如何將多片AD9361芯片進行相位同步

    如何將多片AD9361芯片進行相位同步,技術(shù)文檔有說通過sync管腳進行MCS同步,但是僅僅只針對數(shù)據(jù)時鐘完成同步。個人理解
    發(fā)表于 12-25 11:42

    請問如何在VC++下使用IIO類庫API函數(shù)通過PC的網(wǎng)口對AD9361進行配置編程

    AD9361,并且通過網(wǎng)口接收雷達回波數(shù)據(jù),也就是一個發(fā)送功能一個接收功能,現(xiàn)在有下面幾個問題:1)是否IIO類庫提供了API函數(shù)集,支持一些芯片的直接訪問,比如可以直接對AD9361
    發(fā)表于 01-07 10:11

    AD9361 FDD模式?jīng)]有任何輸出

    AD9361采用官網(wǎng)zynq7000 no os版本驅(qū)動程序進行配置,芯片初始化完成,并且寄存器回讀正確,配置AD9361在FDD模式下工作,ad9
    發(fā)表于 01-14 09:10

    AD9361 Datasheet

    AD9361 Datasheet 射頻芯片中的佼佼者 性能很好
    發(fā)表于 06-06 10:29 ?0次下載

    基于 ZYNQ系列 SoC和AD9361實現(xiàn)的簡易頻譜分析儀

    本文設(shè)計了基于ZYNQ系列SoC(System on chip)和AD9361實現(xiàn)的簡易頻譜分析儀,頻譜數(shù)據(jù)可以通過串口發(fā)送給上位機,并在上位機中通過MATLAB進行數(shù)據(jù)處理和分析。
    的頭像 發(fā)表于 04-11 10:42 ?1.4w次閱讀

    基于FPGA對零中頻射頻收發(fā)器AD9361進行配置

    無人機機載數(shù)據(jù)鏈設(shè)備的系統(tǒng)架構(gòu)如圖1 所示。首先,F(xiàn)PGA 通過EMIF 接收DSP 的高清壓縮視頻、通過UART 接收飛控計算機的遙測數(shù)據(jù),壓縮后的視頻數(shù)據(jù)和遙測數(shù)據(jù)在FPGA 組幀
    的頭像 發(fā)表于 04-17 15:32 ?2w次閱讀

    基于ADI AD9361模塊AD-FMCOMMS3-EBZ搭建的AD9361 RF收發(fā)測試平臺案例

    AD9361芯片工作頻率范圍為70 MHz至6 GHz,涵蓋大部分特許執(zhí)照和免執(zhí)照頻段,通過對AD9361自身可編程改變采樣速率、數(shù)字濾波器和抽取參數(shù),使該芯片支持的通道帶寬范圍為低于
    的頭像 發(fā)表于 03-09 11:47 ?6304次閱讀

    以高速AD9361芯片為例進行數(shù)據(jù)接口邏輯代碼編寫

    本文通過以高速AD9361芯片為例進行數(shù)據(jù)接口邏輯代碼編寫
    的頭像 發(fā)表于 06-07 14:34 ?6788次閱讀
    以高速<b class='flag-5'>AD9361</b><b class='flag-5'>芯片</b>為例<b class='flag-5'>進行數(shù)據(jù)</b><b class='flag-5'>接口</b><b class='flag-5'>邏輯</b><b class='flag-5'>代碼</b>的<b class='flag-5'>編寫</b>

    AD9361數(shù)據(jù)路徑在低電壓差分信號(LVDS)模式下運行

    接下來將介紹AD9361數(shù)據(jù)路徑在低電壓差分信號(LVDS)模式下運行。AD9361數(shù)據(jù)接口使用并行總線(P0和P1)在
    的頭像 發(fā)表于 04-25 15:51 ?6147次閱讀
    <b class='flag-5'>AD9361</b><b class='flag-5'>數(shù)據(jù)</b>路徑在低電壓差分信號(LVDS)模式下運行

    ad9361接收電平范圍

    AD9361是一種寬頻帶軟件可定義收發(fā)器芯片,由ADI(Analog Devices Inc.)公司研發(fā),可用于各種射頻(RF)應(yīng)用。它是一種全集成的射頻收發(fā)器,實現(xiàn)了收發(fā)器功能。在這篇文章中,我們
    的頭像 發(fā)表于 12-26 15:49 ?3047次閱讀