We had Freescale's P2020 processor to communicate with UCD90102A, had found sometimes the I2C BUS was locked by UCD90102A.
The detailed process like below:
1. P2020 send address/R/W commands, UCD90120A ACK to it.
2. UCD90120A is busy ( internal process,maybe A/D process and so on ), then pull low the SCL.
3. P2020 is waiting, but has one external interrupter came and interrupted I2C process.
4.UCD90120A data ready then release the SCL controlling, and pull low the SDA, waiting CLOCK from P2020.
5.P2020 is busy, pull low the SCL.
6.P2020 completed other process and try to communicate with UCD90102A.
7. Found I2C bus error, then release 9 clocks to UCD90120A, try to recovering I2C.
8. But UCD90120A did not response it.