SLAZ763 July 2025 MSPM0H3216
I2C Module
Functional
I2C SDA may get stuck to zero if we toggle ACTIVE bit during ongoing transaction.
If ACTIVE bit is toggled during an ongoing transfer, its state machine will be reset. However, the SDA and SCL output which is driven by the I2C controller will not get reset. There is a situation where SDA is 0 and I2C controller has gone into IDLE state, here the I2C controller won't be able to move forward from the IDLE state or update the SDA value. I2C Target's BUSBUSY is set (toggling of the ACTIVE bit is leading to a start being detected on the line) and the BUSBUSY won't be cleared as the I2C controller will not be able to drive a STOP to clear it.
Do not toggle the ACTIVE bit during an ongoing transaction.