低温-20℃情况下I2C报错,常温没问题,每台机器出现的概率100%
1、示波器接SDA B\SCL B端发现SDA信号没有应答位错误。主机发送数据给从机后,应答位SDA没有释放的动作,波形上没有应答为之前的主机释放从机拉低的尖峰动作。
2、示波器探头点到SDA A端,I2C报错就会消失;探头一松开,I2C报错就会出现;探头再一点上去,I2C就又会报错。所以SDA A\SCL A端的错误波形无论如何都抓不到。
3、SDA A芯片脚上无论焊接一端浮空的线或者一端浮空的电容,低温下I2C报错消失,用电烙铁取下后,报错现象永久消失。
4、通过增加芯片所在板和主板之间的FPC排线长度;增大SDA A\SCL A端的上拉电阻为10k;SDA A\SCL A端加一个10pF的对地电容。这三个措施的任意一个都可以解决低温下I2C报错的问题。
请问一下,以上低温下I2C报错的原因是什么?
TCA9803缓冲区的B侧连接了哪些其他设备/外围设备?是否有TCA39306/PCA9306/TCA9406/TCA9416/等无源电平转换装置。?
我们如何确定TCA9803将巴士保持在锁定状态?客户如何确定TCA9803是问题所在,而不是缓冲器B侧的其他设备?
B侧只接了一个传感器,没有接任何其他器件。
1.A侧是ARM,B侧是传感器,中间就接了一个TCA9803。一般情况下我们的项目是A直接连B,但此项目1.8V的i2c不够,所以就加了9803,这种项目我们每年会做几十万台机器,没有出现过低温下i2c报错。但加上了9803的几十台机器100% i2c报错。
2.我们其他部门之前也用了这个器件做隔离,也说低温下器件很敏感,后面取消9803,直接用串阻连接在一起就好了。
3.我们的这个9803在单独一个板子上,A侧ARM在一个板子上,B侧传感器在另一个板子上,只有在9803这个板子上的I2C数据线上飞线或者焊接,然后把飞线取下来后,问题就不复现了。而在其他两块板子上焊接器件,取下来后,低温问题现象依旧复现。