AD9361纯逻辑控制从0到1连载9-调整数据和时钟的相位关系

有人私信问我,为什么按照我的文章配置AD9361,明明初始化配置成功了,收发数据都不正常。因为错误的可能性各种各种,这个问题不太好回答。但假如一切都代码都是正确的,硬件也是正常的,那极有可能是006寄存器和007寄存器的值需要做调整。

我们先看官方文档是怎么描述的
在这里插入图片描述
AD9361纯逻辑控制从0到1连载9-调整数据和时钟的相位关系_第1张图片
006用来调整收数据接口的延时,高4bit表示时钟延时,低4bit表示数据延时。

007用来调整发数据接口的延时,高4bit表示时钟延时,低4bit表示数据延时。

我们知道信号要被时钟边沿被正确采样,那在时钟边沿之前一段时间以及之后一段时间都必须保持稳定,边沿之前的时间叫建立时间,边沿之后的时间叫保持时间时间。006寄存器就是用来调整收数据接口的时钟和相位关系,以满足FPGA的建立保持时间要求。而007寄存器用来调整发数据接口的时钟和相位关系,以满足AD9361的建立保持时间要求。那要如何设置这两个值呢?

如果你有耐性,看文件《AD9361BISTFAQ.pdf》,就能找到答案。如果不想看,就按照我下面的方法和步骤。

第一步:设置0x3F4寄存器值为0x5B,此时AD9361会在接收数据端口产生一个单音信号。如下图所示:
AD9361纯逻辑控制从0到1连载9-调整数据和时钟的相位关系_第2张图片
接下来不断调整006寄存器的值,直到FPGA收到正确的单音信号为止,说明006寄存器的值设置正确了。实际工程中,会不断调整006的值,找到能正确收到单音信号的最大值和最小值,然后取用中间值。比如设置为0x04和0x08都能正常工作,则取0x06为最佳。

第二步:将0x3F4值设置为0,0x3F5设置为1,此时AD9361工作在回环模式(发送给AD9361的数据会直接输出到接收数据端口),如下图所示。
AD9361纯逻辑控制从0到1连载9-调整数据和时钟的相位关系_第3张图片
因为前面我们已经调整好了收数据端口,所以不断调整007的值,直到收端口正确收到发端口发送的数据,则说明发端口的时序也调整到位了。和收端口一样,也要取中间值。

链接:https://pan.baidu.com/s/1QFf-576UAVBNP5XrA5V72Q
提取码:27ok
–来自百度网盘超级会员V3的分享

你可能感兴趣的:(AD9361纯逻辑控制,AD9361,AD9363,SDR,软件无线电)