我在对嵌入式电路板上 TPS23880器件上的 SRAM 进行编程时遇到困难。 似乎会定期错过23880的 ACK。 (通常大约是主 SRAM 代码编程的2/3)。 观察示波器上的信号、可以看到主 I2C 时钟正常、但 ACK 不显示。 从我的固件的角度来看、I2C 驱动器停止(超时)、需要进行复位。 目前、我无法解决这是硬件问题(我的上拉电阻器错误)、驱动器问题(我的固件中的时钟非常正确)还是23880中的某个问题。
此问题在我的固件状态机中很容易检测到、用于对 SRAM 进行编程。 因此、如果我可以从中间成功重新启动 I2C 编程序列、我可以恢复并完成该过程。 我是否可以通过任何方式备份到我知道已成功写入的地址、重置起始地址并从该点继续编程? 此外、是否可以通过发送数据字节块对 SRAM 进行编程、或者是否必须一次对其编程一个字节?
如果能提供有关如何确定问题根源的任何提示、也将不胜感激。 此外、在短期内启动并运行的权变措施也会有所帮助。