发送从机设备地址,有ACK响应,继续发送寄存器地址,此时无ACK响应
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好,您详细说一下吗? 是每个寄存器地址发送完之后都收不到ACK吗?
时序附上我这边看下。
从机地址1000000,最后一位为0,说明是写。
然后我看了下ACK之后,寄存器地址为0x00,可是这个寄存器是只读寄存器。0x00-0x03都是只读寄存器。您尝试配置其他可写的寄存器再试试呢 。
读的时序是:SA(W) + REG + SA(R),所以是先发送写的地址,之后再发送读地址。尝试过所有寄存器地址,都是NACK
那如果先写,后读的话。时序应该这样的: Start--slave address(W)——ACK——RegisterAddress---ACK---data---ACK---Repeat start———slave address(R)--ACK--Register address--ACK---Data---NACK---Stop
那目前先不说写完后读的时序 ,只是先进行写的时序,从机地址Start--slave address(W)——ACK——RegisterAddress---ACK---data---ACK-这个过程,再Register Address之后就没有收到ACK对吧?
另外,就是HDC2080上电稳定之后,至少需要等3ms的delay,在进行I2C通讯。这个上电时序保证了吗?
是发送Register Address之后就无应答了,确保是上电稳定之后再通讯的,目前板子没有跑程序,就只是在测试I2C通讯
如果上电没问题,那么建议在从机地址收到ACK之后,先写0x0E=00,使得器件进入normal operation mode。
麻烦您写0x0E地址之后,把时序附上,我这边再看下。
早上好!
上图是往0x0E中写0x00的时序图,仍然是寄存器无ACK应答,电路图也附上,请帮忙看看,谢谢!
SDA和SCL都通过上拉电阻上拉到VDD了吗?这两个引脚是开漏输出,需要上拉。
已经上拉了的,I2C总线上挂了几个从设备,其他通讯都是正常的,可以排除I2C的问题,实在是不知道为啥了....
是的,一般从机地址能收到ACK的话,不会因寄存器地址收不到ACK的。
总线上挂接了几个从设备?方便断开下,单独测试下HDC2080吗?因为I2C总线受电容负载的限制,如果从机数比较多,再加上layout的寄生电容大致容性负载过大,也是会导致通信问题的。
这是我们其他芯片关于hdc2080的I2C读代码,我看了好像没有发送寄存器地址,感觉很奇怪
这个应该是不对的,没有寄存器地址,怎么去读取寄存器的值。
并且数据手册中也给出读写时序:
您改一下从机地址再试试,比如将ADDR接到VDD。