In sprz335h (TMS320C6672 Silicon Errata) Usage Note 6 describes how to clear a I2C bus hang that can occur when a master is reset in the middle of a I2C transaction.
It is said there that "An I2C master must generate up to 9 clock cycles ..." and so on,
but the details of such an impelmentation using the TMS320C6672 as master are not described.
Questions:
Is it possible at all implementing such an I2C bus clear using the TMS320C6672 as master (I found no hints using SDA and SCL as gpio)?
Or are there additional hardware design measures neccesarry to accomplish such a task with the TMS320C6672?
Excerpt from sprz335h (TMS320C6672 Silicon Errata)
Usage Note 6 I2C Bus Hang After Master Reset Usage Note
Revision(s) Affected: 1.0, 2.0
Details: It is generally known that the I2C bus can hang if an I2C master is removed from the bus
in the middle of a data read. This can occur because the I2C protocol does not mandate
a minimum clock rate. Therefore, if a master is reset in the middle of a read while a
slave is driving the data line low, the slave will continue driving the data line low while it
waits for the next clock edge. This prevents bus masters from initiating transfers. If this
condition is detected, the following three steps will clear the bus hang condition:
1. An I2C master must generate up to 9 clock cycles.
2. After each clock cycle, the data pin must be observed to determine whether it has
gone high while the clock is high.
3. As soon as the data pin is observed high, the master can initiate a start condition.