I2C通信出错,但是查不出是什么原因
时间:10-02
整理:3721RD
点击:
调试摄像头,直接接到插座上可以正常,但是通过20mm的FPC延长线再连接就会出现I2C通信错误,找不到从设备。怀疑是线太长导致寄生电容过大,但是示波器测量波形,接了延长线和没接I2C波形一样,延长线两边的波形也完全一样。把延长线的I2C断开,接了两条短线,还是一样I2C出错,波形也看不出问题。后来换了条短FPC,就可以正常工作了。请高人分析一下到底是什么原因导致I2C出错。
那根排线有问题。
换根好的。
你的PCB上肯定不止IIC总线,你检查一下别的信号线,电源地线之类的。从你的描述上看,不一定是IIC总线的问题。
也想知道到底是啥原因?
试过了,从400K降到100K。
将速度降低再试试
建议系统的排查下电源,时钟方面是否有影响。
I2C工作的前提是电源,MCLK、RESET、PWDN等都正常。
测一张波形来看看 记住上升沿一定要展开。
你的I2C是GPIO仿的还是硬的,400k对于2cm应该没有多大的影响,建议你在host端等ack的时候,稍微延一段时间,基本上是几个ms就可以了,具体要试。出现这种情况一般都是slave端反应慢导致的。
还有一种情况是,你的camera是ldo供电,还是自身供电,如果是自身供电,有可能是驱动能力有问题,可以试试提高驱动电压。
就是I2C的问题,从设备没有ack。
可以看波形,是不是因为ack出现问题。
估计是这个问题
建议你在host端等ack的时候,稍微延一段时间,基本上是几个ms就可以了,具体要试。出现这种情况一般都是slave端反应慢导致的。
FPC供电么?是不是供电偏低造成的?
驱动能力不够吧,把上拉电阻改小试试