当前位置:首页 > > ZYNQ


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_CLKFB_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倍采样无法还原信号。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭