I2C通信,有时会出现主机收不到从机ACK响应的情况,这时SDA线也会被拉死(低电平),大家给支支招啊!
我用逻辑分析仪钩了一下,在写的时候莫名还会出现读的操作。看来三星写的I2C驱动也好烂啊!
是不是时序有问题啊,你把timeout设置大点看看,再找原因
抓一下I2C的时序看一下吧,主送的时序没有问题的话,没有应答很可能是从的问题。
我用逻辑分析仪抓I2C总线分析了一下。奇怪的是在主I2C发出了从I2C的地址后,接着又发了一个地址(起始位都抓到了),这个地址跟从I2C器件的地址对不上,所以从I2C不回ACK。但奇怪的是,我代码里面没有发两次I2C地址的情况存在啊!逻辑分析仪有问题?我的程序逻辑那个地方有问题?
有逻辑分析仪应当很好调试,对照时序去观测波形.如果怀疑分析仪问题可用示波器看看.估计还是时序不对的可能性较大.
帮顶,一般先检查配置是否正确,再是地址,时序,有示波器查应该不难
奇怪的是,主I2C会发两次I2C地址出来,不知道为什么会这样,我的程序不应该有这样的操作啊。