Part Number: TM4C1294NCPDT
Hello e2e,
Here our customer is using TM4C1294 as I2C master in product, they found an issue about i2c recover from busy status, the issue detail is below.
TM4C1294 I2C master communicate with a MCU I2C slave device, sometimes the MCU slave data is not ready, the I2C bus goes busy, TM4C1294 use I2CMasterBusBusy API checks the status and reply with busy, in this condition, the SCL is low, TM4C1294 Reg I2CMCS and I2CMBMON show the bus is busy, later the slave MCU data is ready, but TM4C1294 is still in busy status, later TM4C1294 send STOP command with I2C_MASTER_CMD_BURST_SEND_ERROR_STOP, but TM4C1294 I2CMasterBusBusy still shows the bus is busy.
in order to repeat the issue easily, customer tried to set a break point in slave MCU i2c interrupt, once TM4C1294 I2C send command to slave, the slave MCU will halt in I2C interrupt, and I2C bus goes busy, SCL will be low, then repeat the process yellow background marked above, the bus can not recover, in this condition, customer continue run slave mcu and remove the i2c interrupt break point, but the i2c bus still can not be recovered.
the only way to recover i2c bus is that customer have to re-initialized TM4C1294 I2C module so far, customer want to know that what should they do in this condition to recover the I2C bus without re-initialized TM4C1294 I2C module.
thanks in advance.
YAN