赞
踩
关注、星标公众号,直达精彩内容
公众号:ZYNQ
作者:watchman
上次我们介绍了AD9361的配置,代码,采样,脚本转换,软件使用等等,今天我们来调试并使用ila抓取实测数据,使用matlab分析其原因。
传送门:
AD9361的配置,代码,采样,脚本转换,软件使用
另外,我也整理了一份AD936x资料。
免费共享 | AD936x 相关资料吐血整理
窄带方案采用的是一个厂商的MINITRX-Z开发平台,该平台硬件框图如下:
该平台采用AD9361作为射频收发器,工作频率范围是70M—6G;FPGA通过SPI对AD9361进行配置。
AD9361框图如下图所示:
TX信号路径
RX信号路径
打通TX到RX数据通路:在FPGA侧加入调制信号S1,经数据接口传输至AD9361变成成射频信号RF1通过ANT发出;接收端收取RF1信号变成基带信号通过数据接口传输到FPGA。
配置9361修改射频参数。
对比法
测试条件:
开发板原始程序设置——RX端接收信号,经过AD9361转换成基带信号传输至FPGA,FPGA侧不做任何处理,直接将信号给到TX数据接口,传回AD9361转换成射频信号经过ANT端发出。
开发板原始程序测试连线示意图如下:
原始程序设置接收和发射频率都为1G,接收增益为10dB,设置方法如下:
信号源发出频率为1G的调制信号给到开发板RX1接口,TX1连接频谱仪,在频谱仪观察结果如下:
测试条件:
不用信号源提供调制信号,在FPGA中做一个调制信号,AD9361配置与原始工程一致。
测试连线示意图:
在FPGA侧生成4倍上采样的BPSK调制信号,经过时钟速率为30.72M的传输口进入AD9361,在频谱仪上观察到的波形信号带宽为7.5M左右,幅度在-15dbm
测试条件:
AD9361设置成FDD模式,采用2.1.2用例中的调制信号由TX链路发出,RX接收TX信号解调成基带信号传输至FPGA,我们在FPGA侧抓取接收的信号仿真频谱。
测试连线示意图:
在VIVADO工具抓取的ila数据,转换成十进制数据用matlab仿真频谱如下:
可以看出,频谱带宽在7.5M左右,基本与用例中TX频谱基本能对应。由测试用例结果来看,开发板发射至接收链路基本打通。
AD9361的配置通过AD936X Evaluation工具进行
需要说明的是,在合佳兴提供的原始程序中,频率和接收增益被拉出来单独设置。
设置方法:打开工程目录 MiniTRX-Z_prj_2016.3_v1.2\src下的usb30_top.v文件,修改如下寄存器。原始程序设置接收和发射频率都为1G,接收增益为10dB。
事实上,原始工程中将频率和增益设置都进行简化了,下面对频率设置做简单说明。
设置收发频率步骤:
确定本振频率LO,本例中本振频率为1000M HZ;
由0x005寄存器确定TX和RX VCO分频系数,本例中0x005=11,即TX和RX VCO分频系数Divider Value=2,确定F_RFPLL=LO*2^(Divider Value+1)=8000M
确定 F_ref 。本项目采用外部时钟40M,由0x2AB[D0]=1,0x2AC[D7]=1,确定F_ref=40*2=80M
确定频率控制字。整数由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。
《AD936X Evaluation使用说明》中提到生成AD9361配置脚本,后缀为.txt文件。
通过bit_convert工具将.txt转换成.v格式脚本。
用.v后缀脚本中的函数替换原工程中-lut.v中的函数,如下图。
保存工程,在VIVADO中综合并执行。
本工程在调试过程中,我们发射的是4倍上采样后的信号,在接收端收到的数据需要5.5倍下采样才能还原。开发板的数据链路如下:
发现采样率问题,首先怀疑数字滤波器发射端内插系数和接收端抽取系数相同。本工程数字滤波器设置如下,确认发射端和接收端数字滤波器对应。
本工程通过寄存器0x00A=09设置DAC=0.5*ADC,寄存器说明如下:
FPGA和AD9361数据传输示意图如下:
DATA_CLK 和FB_CLK时钟频率相同,幅度不一致。
FDD模式下,发射和接收时序图如下:
I0/I1(对应T1和T2)选择由TX_FRAME决定,我们在工程中直接将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信号也不是按照例中的时序图进行传输的。
测试目的:
抓取进入AD9361前的数据(即TX数据)分析,可以确定采样率偏差是否由AD9361的处理导致的。
分析结果:
TX端数据频谱看与RX端接收数据频谱基本一致,但是按照5.5倍或4倍采样无法解析数据。
TX端数据仿真频域波形如下:
TX端数据5.5倍相关解析结果如下:
TX端数据4倍相关解析结果如下:
4倍上采样原始信号经过双边沿变单沿后抓取,以4倍采样无法还原信号。
太难了。。。原创不易,摸索更不易,如果对您有帮助,欢迎点赞,在看,转发也是对作者的支持与厚爱,感谢!
‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧ END ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧
推荐阅读: ZYNQ 学习专辑Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。