通过I2C与pcf8563实时时钟芯片通信读取时间,I2C通信偶尔出现错误问题

Part Number: TMS320F28035

在通过I2C与pcf8563实时时钟芯片通信读取时间,I2C通信偶尔出现错误,有时候会卡在NACK错误,有时候会卡在ARDY错误。在出现错误后,在读取I2C通信总线信息时,读取的信息不是正常的时间信息,而且还会乱跳。有人遇到过这样的问题吗?

  • 出现这个问题后,再次断电上电依然还是这个问题。但是大概等几个小时后又会正常。

  • 问题已经解决。是由于SDA挂死导致的。因为在调试过程中频繁的不断电在线仿真,导致有时候时钟芯片在没有完全回复完数据时程序就被擦除了,这样会导致SCL一直常高,SDA一直常低。一般情况下I2C的SDA只有在SCL为低电平的时候才能改变,为高电平的时候需要保持。对应到芯片设计上则是上升沿采样,下降沿变化。然而出现以上情况后,SCL常高、SDA常低,这样就导致I2C总线锁死了。

    确实刚开始学I2C,没想到还有这种问题,还是要多多学习啊

  • 您好,

          感谢您分享案例。