ADI 技术
直播中

李远恒

7年用户 181经验值
私信 关注
[问答]

AD9361 SPI读回来的数据是0xFF

最近在调9361的时候,发现在用SPI读寄存器标志,确认BBPLL是否锁定时,发现SPI读回来的数据是0xFF,感觉SPI读取存在问题,于是将其他程序屏蔽,保留DCXO部分的配置,并回读寄存器0x002的值,因为程序没有配置0x002,所以理论上读回来的值应该是0x5F。而实际结果读回来的值是0xAF,观察波形发现SPI_DO的数据变化是根据时钟的下降沿改变的,这是为什么?(使用的默认的4线SPI),下面是在线仿真波形,

查SPI接口时序,说SPI_CLK上升沿到SPI_DO的上升沿的时间 tCO 最小值为3ns,最大8ns,所以我上面遇到的情况明显有问题,可是怎么才能调节这个时间呢?

回帖(7)

李海

2019-2-27 14:51:14
从时序来看, 0000 0000 0000 0010 是读0x002寄存器 (1byte),时序是对的, SPI_DO收到的数据波形也是对的,但是与SPI_CLK对齐来看是1010 1111, 说明SPI_CLK的时序太超前了, 应该将SPI_CLK时序往后延半个周期. 另外, 最后SPI_ENB 拉高的位置要在最后一个时钟下降沿之后
举报

李远恒

2019-2-27 15:08:02
引用: msvsudsdf 发表于 2019-2-27 17:25
从时序来看, 0000 0000 0000 0010 是读0x002寄存器 (1byte),时序是对的, SPI_DO收到的数据波形也是对的,但是与SPI_CLK对齐来看是1010 1111, 说明SPI_CLK的时序太超前了, 应该将SPI_CLK时序往后延半个周期. 另外, 最后SPI_ENB 拉高的位置要在最后一个时钟下降沿之后 ...

可是从时序上看,SPI_DI 跟SPI_CLK的时钟上升沿是对齐的,如果把SPI_CLK时序后延半个周期,SPI_DI那里的时序不就不对了吗?
举报

李海

2019-2-27 15:17:39
引用: zsqzsqzs 发表于 2019-2-27 17:41
可是从时序上看,SPI_DI 跟SPI_CLK的时钟上升沿是对齐的,如果把SPI_CLK时序后延半个周期,SPI_DI那里的时序不就不对了吗?

SPI_CLK上升沿最好是能采到SPI_DI的数据的高低电平期间,有助于正确判决。两个信号上升沿对齐虽然也可以,但不是最佳方式。
举报

李万寿

2019-2-27 15:36:06
也遇到了类似的问题,读出要么全0要么全1,时钟和数据的沿并没有对齐,不知道为什么?也有疑问,Tco 和Thzm这两个时间可调么?Tco必须小于8ns么?
1 举报
  • 张冠群: 你好,问题解决了不?可以向你请教吗?

更多回帖

发帖
×
20
完善资料,
赚取积分