主题中讨论的其他器件:TM4C123
您好、e2e、
在这里、我们的客户使用 TM4C1294作为产品中的 I2C 主设备、他们发现了一个有关 i2c 从繁忙状态恢复的问题、问题详细信息如下。
TM4C1294 I2C 主器件与 MCU I2C 从器件通信、有时 MCU 从器件数据未就绪、I2C 总线变为繁忙状态、TM4C1294使用 I2CMasterBusy API 检查状态并使用 Busy 进行回复、在这种情况下、SCL 为低电平、 TM4C1294寄存器 I2CMCS 和 I2CMBMON 显示总线繁忙、稍后从 MCU 数据就绪、但 TM4C1294仍处于繁忙状态、 稍后 TM4C1294发送带有 I2C_MASTER_CMD_BURST_SEND_ERROR_STOP 的 STOP 命令、但 TM4C1294 I2CMasterBusy 仍然显示总线繁忙。
为了轻松地重复该问题、客户尝试在从 MCU i2c 中断中设置断点、一旦 TM4C1294 I2C 向从器件发送命令、从 MCU 将在 I2C 中断中停止、I2C 总线变为繁忙状态、SCL 将为低电平、 然后重复上面标记的过程黄色背景、总线无法恢复、在这种情况下、客户继续运行从 MCU 并删除 i2c 中断断点、但 i2c 总线仍然无法恢复。
恢复 i2c 总线的唯一方法是、客户到目前为止必须重新初始化 TM4C1294 I2C 模块、客户想知道在这种情况 下应该如何恢复 I2C 总线而不重新初始化 TM4C1294 I2C 模块。
提前感谢。
Yan