电路设计论坛
直播中

李超

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

AD5667RBRMZ-1REEL7对于command无应答是怎么回事?

AD5667RBRMZ-1REEL7, AD5667R
   

I2CStart();
acktest1 = I2CWrite(0x0F<<1);
acktest2 = I2CWrite(0x20);
acktest3 = I2CWrite(0x00);
acktest4 = I2CWrite(0x03);
I2CStop();

现在碰到的情况是只有i2c写入从机地址0x0F<<1时才会有应答acktest1  = 0x01;
写入command命令或者是别的任何byte都是没有应答。
例如上面的程序中只有acktest1  = 0x01;其余的acktest2 、acktest3、acktest4均无数据。

回帖(1)

刘洋

2024-7-5 17:25:38
根据您提供的信息,您正在使用AD5667RBRMZ-1REEL7设备,并通过I2C通信协议进行通信。您遇到的问题是在写入从机地址0x0F<<1时有应答,但在写入命令或其它任何字节时没有应答。以下是一些建议和可能的原因:

1. 检查I2C通信线路:确保I2C数据线(SDA)和时钟线(SCL)连接正确,并且没有受到干扰。

2. 检查I2C设备地址:确保您使用的从机地址(0x0F<<1)是正确的,并且与AD5667RBRMZ-1REEL7设备的地址匹配。

3. 检查I2C通信速率:确保您的I2C通信速率与AD5667RBRMZ-1REEL7设备支持的速率相匹配。如果速率过高或过低,可能导致通信失败。

4. 检查命令格式:确保您发送的命令格式正确。根据您的描述,您正在发送0x20、0x00和0x03作为命令。请查阅AD5667RBRMZ-1REEL7的数据手册,以确保这些命令是有效的。

5. 检查I2C通信协议:确保您的I2C通信协议实现正确。例如,您需要在发送命令之前发送从机地址,然后在发送命令后发送数据。同时,确保在每次通信结束时发送I2CStop()。

6. 检查硬件问题:如果以上步骤都无法解决问题,可能是AD5667RBRMZ-1REEL7设备本身存在问题。您可以尝试更换设备或联系制造商寻求技术支持。

7. 使用调试工具:如果可能的话,使用I2C调试工具(如逻辑分析仪或I2C分析器)来观察通信过程中的信号,以便更好地了解问题所在。

通过以上步骤,您应该能够找到问题的原因并解决通信问题。如果问题仍然存在,请考虑联系AD5667RBRMZ-1REEL7的制造商或寻求专业技术支持。
举报

更多回帖

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