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

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

我们先看官方文档是怎么描述的
在这里插入图片描述
在这里插入图片描述
006用来调整收数据接口的延时,高4bit表示时钟延时,低4bit表示数据延时。

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

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

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

第一步:设置0x3F4寄存器值为0x5B,此时AD9361会在接收数据端口产生一个单音信号。如下图所示:
在这里插入图片描述
接下来不断调整006寄存器的值,直到FPGA收到正确的单音信号为止,说明006寄存器的值设置正确了。实际工程中,会不断调整006的值,找到能正确收到单音信号的最大值和最小值,然后取用中间值。比如设置为0x04和0x08都能正常工作,则取0x06为最佳。

第二步:将0x3F4值设置为0,0x3F5设置为1,此时AD9361工作在回环模式(发送给AD9361的数据会直接输出到接收数据端口),如下图所示。
在这里插入图片描述
因为前面我们已经调整好了收数据端口,所以不断调整007的值,直到收端口正确收到发端口发送的数据,则说明发端口的时序也调整到位了。和收端口一样,也要取中间值。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰冻土卫二

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值