Part Number:DS90UB948-Q1
主机串行器使用UB947,在947 IIC 读取948 数据时,947 第一帧 IIC数据在 948 IIC 接口能够看到,但是947在传输第二帧数据给948时,948 IIC接口隔了很长时间才看到,在948接口出现第二帧数据前,947因为等待超时 947 IIC总线拉高了,947 因此没有收到后面948的ACK,所以通信出现了异常。请问这是什么原因导致的 947 到 948 这种偶发的数据延迟?有什么办法解决?
Kailyn Chen:
您好,I2C 的上拉电阻阻值是多大的?可以附上您的电路看下吗?
,
shoujie zhang:
948 I2c上拉电阻是4.7k到3.3V
,
shoujie zhang:
947 I2C上拉电阻是4.7K上拉到1.8V
,
shoujie zhang:
测试948的I2C时钟大约是73kHz
,
Kailyn Chen:
您好,我想和您确认下,I2C的程序是不是参考了其他I2C 程序? 因为即使接收端948很长时间才收到数据,但是根据I2的协议,发送端应该会继续工作,一直发送数据的。但是SMbus是不一样的,首先它对timeout有时间要求,其次无论是在主控端或从机端,其频率处于Lo电平时的最长持续时间不得超越限制。 I2C的话timeout时间没有要求。所以我担心您是不是参考了SMbus的程序进行对应的更改的。