I2C通信,有时会出现主机收不到从机ACK响应的情况,这时SDA线也会被拉死(低电平),大家给支支招啊!

babaluosha   2009-4-25 15:23 楼主
I2C通信,有时会出现主机收不到从机ACK响应的情况,这时SDA线也会被拉死(低电平),大家给支支招啊!

回复评论 (13)

上拉电阻我也接了。
点赞  2009-4-25 15:31
I2C器件我只挂了一个
点赞  2009-4-25 15:36
上拉电阻应该是接多大?我接的是1K的电阻。
点赞  2009-4-25 16:02
我用逻辑分析仪钩了一下,在写的时候莫名还会出现读的操作。看来三星写的I2C驱动也好烂啊!
点赞  2009-4-25 16:03
是不是时序有问题啊,你把timeout设置大点看看,再找原因
点赞  2009-4-25 17:00

7楼 gtt 

超时时间是3000MS
点赞  2009-4-25 17:07
抓一下I2C的时序看一下吧,主送的时序没有问题的话,没有应答很可能是从的问题。
点赞  2009-4-27 11:58
确定I2C的几个寄存器设置没有问题?
点赞  2009-4-27 12:12
我用逻辑分析仪抓I2C总线分析了一下。奇怪的是在主I2C发出了从I2C的地址后,接着又发了一个地址(起始位都抓到了),这个地址跟从I2C器件的地址对不上,所以从I2C不回ACK。但奇怪的是,我代码里面没有发两次I2C地址的情况存在啊!逻辑分析仪有问题?我的程序逻辑那个地方有问题?
点赞  2009-4-27 12:24
uping
点赞  2009-4-27 14:14
有逻辑分析仪应当很好调试,对照时序去观测波形.如果怀疑分析仪问题可用示波器看看.估计还是时序不对的可能性较大.
点赞  2009-4-27 14:52
帮顶,一般先检查配置是否正确,再是地址,时序,有示波器查应该不难
点赞  2009-4-27 15:48
奇怪的是,主I2C会发两次I2C地址出来,不知道为什么会这样,我的程序不应该有这样的操作啊。
点赞  2009-4-27 15:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复