那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

以高速AD9361芯片為例進行數據接口邏輯代碼的編寫

FPGA之家 ? 來源:時沿科技 ? 作者:ShownSun ? 2021-06-07 14:34 ? 次閱讀

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

2 AD93612.1 芯片簡介

AD9361是一款面向3G和4G基站應用的高性能、高集成度的射頻RF)Agile Transceiver捷變收發器。該器件的可編程性和寬帶能力使其成為多種收發器應用的理想選擇。該器件集RF前端與靈活的混合信號基帶部分為一體,集成頻率合成器,為處理器提供可配置數字接口,從而簡化設計導入。

AD9361接收器LO工作頻率范圍為70 MHz至6.0 GHz,發射器LO工作頻率范圍為47 MHz至6.0 GHz,涵蓋大部分特許執照和免執照頻段,支持的通道帶寬范圍為200 kHz以下至56 MHz,整體結構圖如圖 1 AD9361整體結構圖所示。

43a3fe12-c69f-11eb-9e57-12bb97331649.png

圖 1 AD9361整體結構圖

? 集成12位DACADC的RF 2 × 2收發器

? TX頻段:47 MHz至6.0 GHz

? RX頻段:70 MHz至6.0 GHz

? 支持TDD和FDD操作

? 可調諧通道帶寬:《200 kHz至56 MHz

? 雙通道接收器:6路差分或12路單端輸入

? 出色的接收器靈敏度,噪聲系數為2 dB (800 MHz LO)

? RX增益控制

o 實時監控和控制信號用于手動增益

o 獨立的自動增益控制

? 雙發射器:4路差分輸出

? 高線性度寬帶發射器

o TX EVM:≤?40 dB

o TX噪聲:≤?157 dBm/Hz本底噪聲

o TX監控器:動態范圍≥66 dB,精度=1 dB

? 集成式小數N分頻頻率合成器

? 2.4 Hz最大本振(LO)步長

? 多器件同步

? CMOS/LVDS數字接口

2.2 參數配置

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

在進行數據驗證時,也可以使用測試模式,對收發數據進行驗證以保證系統的正確性。另外,還可以對輸入時鐘進行延時調節或者通過SelectIO的delay、delayctrl功能對時鐘信號進行微調,以滿足時序要求。

芯片數據時鐘與數據之間的時序可靠性也可以通過芯片內部的延時寄存器0x006、0x007進行條件,以此達到要求,具體的SPI配置寄存器時序如圖 3 AD9361 寄存器配置接口SPI時序所示。此方面不是本文重點,不做展開,更多內容參考官方data sheet。

本小節使用的數據接口參數:LVDS、FDD、DDR,對應的時序邏輯也是根據該參數進行設計。

2.3 引腳

RX數據時序接口如下:

43f14bae-c69f-11eb-9e57-12bb97331649.png

43fc1e62-c69f-11eb-9e57-12bb97331649.png

443c27c8-c69f-11eb-9e57-12bb97331649.png

4466a57a-c69f-11eb-9e57-12bb97331649.png

TX數據時序接口如下:

447336be-c69f-11eb-9e57-12bb97331649.png

448b42a4-c69f-11eb-9e57-12bb97331649.png

44991082-c69f-11eb-9e57-12bb97331649.png

44a3d8c8-c69f-11eb-9e57-12bb97331649.png

2.4 接口時序

以下使用的數據接口參數:LVDS、FDD、DDR,根據不同的通道數可以得到不同的數據時序,用戶在解析數據時只要按照對應的結構進行拼接即可。

3 參考代碼3.1 SelectIO配置

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

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

由于芯片內部寄存器0x006、0x007可以確保時鐘與數據滿足時序要求,所以不需要延時模塊,以節約FPGA邏輯資源。

3.2 數據解析

//-------------------------------------------------------------------

// 用于將接收時鐘與數據進行單端與差分的變換

//-------------------------------------------------------------------

selectio_ip u_selectio_ip (

// From the system into the device

.DATA_IN_FROM_PINS_P (ad_rx_data_in_p),

//從AD接收端接收到的單端數據與標志

.DATA_IN_FROM_PINS_N (ad_rx_data_in_n),

//從AD接收端接收到的單端數據與標志

.DATA_IN_TO_DEVICE (ad_rx_data),

//將AD接收端接收到的數據與標志轉換為單端數據

// From the device out to the system

.DATA_OUT_FROM_DEVICE (ad_tx_data),

//將要發送的DA數據與標志轉換為單端數據

.DATA_OUT_TO_PINS_P (ad_tx_data_out_p),

//發送端的單端DA數據與標志

.DATA_OUT_TO_PINS_N (ad_tx_data_out_n),

//發送端的單端DA數據與標志

.CLK_TO_PINS_P (ad_fb_clk_p),

//將AD接收端的輸入時鐘用于發射時鐘

.CLK_TO_PINS_N (ad_fb_clk_n),

//將AD接收端的輸入時鐘用于發射時鐘

.CLK_IN_P (ad_data_clk_p),

//AD接收端的單端輸入時鐘

.CLK_IN_N (ad_data_clk_n),

//AD接收端的單端輸入時鐘

.CLK_OUT (ad9361_data_clk),

//將AD接收端的差分輸入時鐘轉變為單端時鐘

.CLK_RESET (reset),

//用于AD輸入時鐘的復位,高有效

.IO_RESET (reset)

//用于單端、差分變換的復位,高有效

);

//-------------------------------------------------------------------

//發送數據的生成

//-------------------------------------------------------------------

assign ad_tx0_msb_q=ad_tx0_data[23:18];

assign ad_tx0_lsb_q=ad_tx0_data[17:12];

assign ad_tx0_msb_i=ad_tx0_data[11:06];

assign ad_tx0_lsb_i=ad_tx0_data[05:00];

assign ad_tx1_msb_q=ad_tx1_data[23:18];

assign ad_tx1_lsb_q=ad_tx1_data[17:12];

assign ad_tx1_msb_i=ad_tx1_data[11:06];

assign ad_tx1_lsb_i=ad_tx1_data[05:00];

reg [13:0] ad_tx_data;

//-------------------------------------------------------------------

//選擇要發送的I與Q數據

//-------------------------------------------------------------------

always @(posedge ad9361_data_clk or posedge reset) 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數據

//-------------------------------------------------------------------

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};

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    456

    文章

    51189

    瀏覽量

    427291
  • 發射器
    +關注

    關注

    6

    文章

    856

    瀏覽量

    53651

原文標題:FPGA實現AD9361數據接口邏輯

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用ADS8513芯片進行數據采集,0~4V回讀數據對應的十六進制是如何計算的?

    我在使用ADS8513 芯片進行數據采集。按照手冊,選擇輸入量程0~4V,但是通過SPI讀回的數據,與手冊上描述的范圍不一致。 請問,0~4V回讀
    發表于 01-14 06:45

    使用1.8V FPGA和DAC5662進行數據傳輸的問題求解

    目前在做一個涉及使用1.8V FPGA和DAC5662進行數據傳輸的項目,問題如下: 1. FPGA接口電平1.8V LVCMOS電平, DAC5662 數據IO電平
    發表于 12-27 08:09

    使用CAN總線進行數據采集的方法

    是汽車內部各個模塊之間進行通信的一種協議,通過它可以獲取到車輛的各種狀態信息、傳感器數據等。因此,在進行數據采集之前,需要熟悉CAN總線的工作原理、通信協議以及數據格式。 二、選擇合適
    的頭像 發表于 12-20 18:18 ?962次閱讀

    如何使用ddc進行數據分類

    不同的主題劃分為不同的類別。以下是如何使用DDC進行數據分類的步驟和注意事項: 一、了解DDC的基本原則 十進制分類 :DDC采用十進制法,將所有的知識領域分為10個大類,分別0-9的數字表示。每個大類下又細分為若干個分組,
    的頭像 發表于 12-18 15:05 ?371次閱讀

    AD9361 RF捷變收發器,評估套件和開發資源

    使其成為多種收發器應用的理想選擇。該器件集RF前端與靈活的混合信號基帶部分為一體,集成頻率合成器,處理器提供可配置數字接口,從而簡化設計導入。AD9361接收器LO工作頻率范圍70
    的頭像 發表于 12-13 15:18 ?1226次閱讀
    <b class='flag-5'>AD9361</b> RF捷變收發器,評估套件和開發資源

    如何使用SQL進行數據分析

    使用SQL進行數據分析是一個強大且靈活的過程,它涉及從數據庫中提取、清洗、轉換和聚合數據,以便進行進一步的分析和洞察。 1. 數據提取(Da
    的頭像 發表于 11-19 10:26 ?434次閱讀

    如何利用海外爬蟲IP進行數據抓取

    利用海外爬蟲IP進行數據抓取需要綜合考慮多個方面。
    的頭像 發表于 10-12 07:54 ?258次閱讀

    邏輯電路芯片-組合邏輯電路芯片-時序邏輯電路芯片

    、GPU、內存控制器等核心部件均大量使用邏輯電路芯片實現復雜的運算和控制功能。 通信設備:路由器、交換機、基站等通信設備中的信號處理、數據轉發等功能依賴于高性能的邏輯電路
    發表于 09-30 10:47

    怎么樣提高verilog代碼編寫水平?

    ? A:以下是一些提高 Verilog 代碼編寫水平的自學方法: 深入學習基礎知識:重新鞏固數字電路的基本概念,如邏輯門、組合邏輯、時序邏輯
    發表于 09-25 20:05

    基于 DSP5509 進行數字圖像處理中 Sobel 算子邊緣檢測的硬件連接電路圖

    用于存儲圖像數據和中間計算結果,Flash 用于存儲程序代碼和固定參數。 顯示模塊:可以選擇 LCD 顯示屏或其他顯示設備,通過合適的接口(如 RGB、LVDS 等)與 DSP5509 連接,
    發表于 09-25 15:25

    FPGA的高速接口應用注意事項

    、LVDS高速接口等,FPGA需要實現相應的關鍵技術支持數據傳輸。 布線與布局 : 時鐘信號布線:FPGA和高速DAC的時鐘信號必須保證
    發表于 05-27 16:02

    一種連接數據轉換器和邏輯器件的高速串行接口—JESD204介紹

    JESD204是一種連接數據轉換器(ADC和DAC)和邏輯器件的高速串行接口,該標準的 B 修訂版支持高達 12.5 Gbps串行數據速率(
    的頭像 發表于 04-19 16:20 ?2044次閱讀

    AD9361和AD9371里接收機的性能有哪些不同呢?

    話說,如果使用CMOS工藝的話,零中頻的閃爍噪聲會比較大,如果使用SiGe和BiCMOS工藝的話,閃爍噪聲就會小很多[1]。所以,我就打算看看AD9361和AD9371這兩個芯片的工藝。
    的頭像 發表于 04-17 11:22 ?3394次閱讀
    <b class='flag-5'>AD9361</b>和AD9371里接收機的性能有哪些不同呢?

    AD9361 BBPLL鎖相環失鎖(Z706)

    各位好! 我在嘗試用FPGA直接配置AD9361,但是BBPLL一直失鎖,具體問題如下: 這是9361配置表,在9361初始化時,index一直卡在24,說明BBPLL失鎖,觀察spi讀寫 可以看到sdi值一直
    發表于 03-25 16:14

    AD9361接收器簡述的應用及功能解析——chiptuo(芯片拓展者)

    ADI AD9361是一款高性能、高度集成的RF捷變收發器?。該器件的可編程性和寬帶能力使其成為多種收發器應用的理想選擇。該器件集RF前端與靈活的混合信號基帶部分為一體,集成頻率合成器,處理器提供可配置數字接口,從而簡化設計導
    的頭像 發表于 02-28 11:30 ?1.5w次閱讀
    <b class='flag-5'>AD9361</b>接收器簡述的應用及功能解析——chiptuo(<b class='flag-5'>芯片</b>拓展者)
    百家乐官网真人投注网站| 新世纪百家乐娱乐城| 八大胜娱乐场| 百家乐买隔一数| 新利88国际娱乐网| 百家乐之对子的技巧| 巴林左旗| 布加迪百家乐的玩法技巧和规则| 百家乐官网香港六合彩| 大发888娱乐场解码器| 百家乐官网真人赌场娱乐网规则 | 做生意布局风水| 巴里| 百家乐的桌布| 百家乐官网技巧论坛| 大发888娱乐成| 7位百家乐官网扑克桌| 汝城县| 破战百家乐的玩法技巧和规则| 百家乐官网单人操作扫描道具| 博彩e族777| 真人百家乐策略| 赌场百家乐官网信誉| 大发888开户| 百家乐游戏玩法规则| 太阳城百家乐官网客户端| 大发888怎么下载安装| 百家乐视频双扣下载| 太阳城百家乐官网分析解码| 大发888客服咨询电话| 致胜百家乐官网的玩法技巧和规则 | 捕鱼棋牌游戏| 视频百家乐游戏| 百家乐官网赌博策略大全| 上海博彩生物科技有限公司| 云鼎百家乐程序开发有限公司| 百家乐官网软件稳赚| 德州扑克游戏| 百家乐赢钱秘籍鹰| 电玩百家乐官网的玩法技巧和规则| 紫金县|