关注、星标公众,直达精彩内容

公众号:ZYNQ

作者:watchman

AD9361功能介绍

上次我们介绍了AD9361的配置,代码,采样,脚本转换,软件使用等等,今天我们来调试并使用ila抓取实测数据,使用matlab分析其原因。

传送门:

AD9361的配置,代码,采样,脚本转换,软件使用

另外,我也整理了一份AD936x资料。

免费共享 | AD936x 相关资料吐血整理

AD9361功能简介

窄带方案采用的是一个厂商的MINITRX-Z开发平台,该平台硬件框图如下:


该平台采用AD9361作为射频收发器,工作频率范围是70M—6G;FPGA通过SPI对AD9361进行配置。

AD9361框图如下图所示:


TX信号路径


RX信号路径


调试目标

  1. 打通TX到RX数据通路:在FPGA侧加入调制信号S1,经数据接口传输至AD9361变成成射频信号RF1通过ANT发出;接收端收取RF1信号变成基带信号通过数据接口传输到FPGA。

  2. 配置9361修改射频参数。

调试过程和结果

测试方法

对比法

开发板原始工程测试

测试条件

开发板原始程序设置——RX端接收信号,经过AD9361转换成基带信号传输至FPGA,FPGA侧不做任何处理,直接将信号给到TX数据接口,传回AD9361转换成射频信号经过ANT端发出。

开发板原始程序测试连线示意图如下:


原始程序设置接收和发射频率都为1G,接收增益为10dB,设置方法如下:


信号源发出频率为1G的调制信号给到开发板RX1接口,TX1连接频谱仪,在频谱仪观察结果如下:


在开发板直接生成调制信号,测试TX

测试条件

不用信号源提供调制信号,在FPGA中做一个调制信号,AD9361配置与原始工程一致。

测试连线示意图:


在FPGA侧生成4倍上采样的BPSK调制信号,经过时钟速率为30.72M的传输口进入AD9361,在频谱仪上观察到的波形信号带宽为7.5M左右,幅度在-15dbm

开发板自发自收测试,测试TRX环路

测试条件

AD9361设置成FDD模式,采用2.1.2用例中的调制信号由TX链路发出,RX接收TX信号解调成基带信号传输至FPGA,我们在FPGA侧抓取接收的信号仿真频谱。

测试连线示意图:


在VIVADO工具抓取的ila数据,转换成十进制数据用matlab仿真频谱如下:


可以看出,频谱带宽在7.5M左右,基本与用例中TX频谱基本能对应。由测试用例结果来看,开发板发射至接收链路基本打通。

AD9361射频参数配置方法

AD9361的配置通过AD936X Evaluation工具进行

收发频率以及接收增益设置

需要说明的是,在合佳兴提供的原始程序中,频率和接收增益被拉出来单独设置。

设置方法:打开工程目录 MiniTRX-Z_prj_2016.3_v1.2\src下的usb30_top.v文件,修改如下寄存器。原始程序设置接收和发射频率都为1G,接收增益为10dB。


事实上,原始工程中将频率和增益设置都进行简化了,下面对频率设置做简单说明。

设置收发频率步骤:

  1. 确定本振频率LO,本例中本振频率为1000M HZ;

  2. 由0x005寄存器确定TX和RX VCO分频系数,本例中0x005=11,即TX和RX VCO分频系数Divider Value=2,确定F_RFPLL=LO*2^(Divider Value+1)=8000M


  3. 确定   F_ref  。本项目采用外部时钟40M,由0x2AB[D0]=1,0x2AC[D7]=1,确定F_ref=40*2=80M

  4. 确定频率控制字。整数由11位二进制数确定,前三位存入0x232[D2:D0],后八位存入0x231[D7:D0];小数部分由23位二进制数确定,由高位到低位,分别存入0x235[D6:D0]、0x234[D7:D0]、0x233[D7:D0]。对应关系如下:


本例中N_integer  =8000/80=100=0x64,即寄存器0x231的值为64;N_Fractional  =0。

由Evaluation生成的脚本转换成工程代码

  1. 《AD936X Evaluation使用说明》中提到生成AD9361配置脚本,后缀为.txt文件。

  2. 通过bit_convert工具将.txt转换成.v格式脚本。


  3. 用.v后缀脚本中的函数替换原工程中-lut.v中的函数,如下图。


  4. 保存工程,在VIVADO中综合并执行。

采样率不一致问题

本工程在调试过程中,我们发射的是4倍上采样后的信号,在接收端收到的数据需要5.5倍下采样才能还原。开发板的数据链路如下:


确认AD9361数字滤波器,在TX端插值系数和RX端抽取系数设置是对应的。

发现采样率问题,首先怀疑数字滤波器发射端内插系数和接收端抽取系数相同。本工程数字滤波器设置如下,确认发射端和接收端数字滤波器对应。


本工程通过寄存器0x00A=09设置DAC=0.5*ADC,寄存器说明如下:


测量FPGA和AD9361数据传输的时钟

FPGA和AD9361数据传输示意图如下:


DATA_CLK 和FB_CLK时钟频率相同,幅度不一致。

DATA_CLK

FB_CLK

同一工程,FPGA侧接收到I0与I1数据,I1能通过5.5倍上采样解析,I0不能通过5.5倍解析

FDD模式下,发射和接收时序图如下:



I0/I1(对应T1和T2)选择由TX_FRAME决定,我们在工程中直接将i0赋值给i1,是否会有问题?


I0和I1接收到的数据量不一样

下图是ila抓取的log,fp列中0/1指示FPGA接收R1(i0/q0)和R2(i1/q1)路数据,红色框部分R1多了一个数据。导致数据解析下来,R1和R2路数据量不一致。


Matbab读取的解析数据:


在VIVADO工具下观察时序图,fp指示的是RX_FRAM,由时序图可以看出,fp不是严格的周期信号,i1和i0信号也不是按照例中的时序图进行传输的。


ila抓取TX端数据分析

测试目的

抓取进入AD9361前的数据(即TX数据)分析,可以确定采样率偏差是否由AD9361的处理导致的。

分析结果

TX端数据频谱看与RX端接收数据频谱基本一致,但是按照5.5倍或4倍采样无法解析数据。

TX端数据仿真频域波形如下:


TX端数据5.5倍相关解析结果如下:


TX端数据4倍相关解析结果如下:


分析加入调制信号到ila抓取TX端数据链路:


4倍上采样原始信号经过双边沿变单沿后抓取,以4倍采样无法还原信号。

未完待续

太难了。。。原创不易,摸索更不易,如果对您有帮助,欢迎点赞,在看,转发也是对作者的支持与厚爱,感谢!

‧  END  

推荐阅读:ZYNQ 学习专辑

关注视频,直达精彩内容

2dpsk调制解调实验matlab_ila抓取数据,matlab分析,调试AD9361信号通路相关推荐

  1. Fiddler不能抓取数据原因分析Windows11

    Windows11下载Fiddler不能抓取数据除了常见的添加证书.设置系统代理外,还有个原因是Intrernet Explorer. Fiddler配置一切正常后使用Chrome.Edge.Fire ...

  2. 2dpsk调制解调实验matlab_【无线通信篇】你知道ASK调制吗?

    1.ASK信号的调制原理 数字信号对载波信号的振幅调制称为振幅键控,即ASK. 在2ASK调制系统中,数字信息只有0和1两种,所调制的载波信号的幅度变化状态也只有两种:无载波输出时代表发送0:有载波输 ...

  3. Fiddler抓取数据并分析(完整的配置教程) 1

    一.Fiddler 现在的移动应用程序几乎都会和网络打交道,所以在分析一个 app 的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助.对于HTTP包来说,已经有很多种分析的方 ...

  4. Fiddler抓取数据并分析(完整的配置教程)

    一.Fiddler 现在的移动应用程序几乎都会和网络打交道,所以在分析一个 app 的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助.对于HTTP包来说,已经有很多种分析的方 ...

  5. python怎么编写wireshark抓的包_使用Wireshark 抓取数据包

    Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一  ...

  6. 西电B测——基于simulink的2PSK和2DPSK调制解调系统实现

    这是学校的B级测试实验,仅供学习交流使用 误码率曲线绘制需要用到bertool工具: bertool工具教程: 通信专业Simulink---画误码率曲线(使用bertool工具)_Enpiyahh的 ...

  7. MATLAB实现2psk,2dpsk调制解调

    目录 2psk 设计流程 代码 结果 2dpsk 设计流程 代码 结果 2psk 设计流程 (1)利用rand随机产生一组元素为10的数字序列. (2)根据2psk调制原理画调制信号. (3)根据相干 ...

  8. excel抓取数据_抓取具有要求的excel在线只读文件

    excel抓取数据 In a previous article https://medium.com/@hanqi_47643/scraping-excel-online-read-only-file ...

  9. 朋友开网店 做个抓取数据的小程序

    朋友开网店需要填充初期的数据.  专门做了一个抓取数据的小程序.分享一下. private void button1_Click(object sender, EventArgs e)         ...

最新文章

  1. HTML锚点为什么叫hash,javascript – jQuery this.hash行为在页面锚点链接
  2. toolbar menu 字体颜色和大小
  3. python填写excel-python读写Excel
  4. 四十四种Javascript技巧大全
  5. 结婚被要求写代码,到底是怎么回事。
  6. oracle+行换列,Oracle的数据表中行转列与列转行的操作实例讲解
  7. python如何给一组数据打标签_给数据集打标签python代码实现(1)
  8. js获取本月或指定月份的最后一天
  9. 【java】java 使用 Unsafe CAS 实现数据递增 打印重复问题
  10. 基于智能网卡的vhost-user优化接收方法-学习笔记
  11. 在ubuntu上安装微博AIR
  12. (转)金融从业人员的核心竞争力在哪里?
  13. 2022电大国家开放大学网上形考任务-健康评估非免费(非答案)
  14. 数学基础类:如何求矩阵的特征值和特征向量
  15. 【LLS-Player】ninja : rtdSDK构建
  16. spring事务管理器的源码和理解
  17. 黑马VUE快速入门笔记
  18. CVBS转BT656/601,GM7150,国产视频解码芯片
  19. 永恒之蓝黑脏牛提权范围
  20. Qt-OpenCV学习笔记--人脸识别

热门文章

  1. linux 转码软件,分享|Linux 桌面中 4 个开源媒体转换工具
  2. css无效 https_【CSS非全解02】CSS基础-文档流
  3. pytest allure测试报告_用Pytest+Allure生成漂亮的HTML图形化测试报告
  4. word转chm_如何免费在线将图像转换为Word?
  5. ugui unity3d 仪表盘_Unity3D---UGUI---UI创建以及Canvas设置
  6. python 如何安装软件包故障_Python安装软件包出错
  7. php fpm子进程数配置,php-fpm进程管理方式以及子进程数量配置原则详解
  8. oracle的count的null为0,count(字段)不统计null值
  9. java 基础类型 包装类型
  10. HTTP MIME Types