unnamed user
Does the micro-controller on GT4 do I2C clock stretching?
Quote
Chris T
Yes. After host sending data byte to slave, the slave (In this case, Cirque device) will send ACK bit acknowledging the byte and acknowledging that the slave device is ready for the next byte.  As per the I2C protocol, if the slave device is not ready to respond, the slave can perform clock stretching, where the slave holds the clock low until it is ready to respond.  In some case, when Cirque device is not ready to ACK the last byte, it needs more time, so it is performing clock stretching where it holds the clock low until it is ready to ACK.  The master has to wait for the clock to be released again and the ACK will be sent.  Sometimes host processor is not waiting long enough for the ACK to be sent, it will time out and abort the I2C transaction. This will cause I2C communication failure.
Quote