datasheets.com EBN.com EDN.com EETimes.com Embedded.com PlanetAnalog.com TechOnline.com  
Events
UBM Tech
UBM Tech
Welcome Guest Log In | Register

Troubleshooting I2C Bus Protocol

Authored on: Oct 31, 2009 by Mariajose Perez Ferrando

Technical Paper / Application Report

0 1
More InfoLess Info
When using the I2C bus protocol, the designer must ensure that the hardware complies with the I2C standard. This application report describes the I2C protocol and provides guidelines on debugging a missing acknowledgment, selecting the pullup resistors, or meeting the maximum capacitance load of an I2C bus. A conflict occurs if devices sharing the I2C bus have the same slave address. This paper provides solutions to this conflict by using the devices' features or external components.

Please disable any pop-up blockers for proper viewing of this paper.

1 comment
write a comment

No Avatar

nikiname Posted Jan 20, 2012

Assume a microcontroller master and one or more I2C slaves. A possible lock-up condition not addressed in the paper occurs when the slave never gets the falling edge of SCL during the ACK bit (the 9th bit). The slave is busy driving SDA low (outputting an aknowledge), but the SCL line stays high. It is now impossible to create a start (or end) condition since SDA is low (still being driven by the slave). An extra SCL pulse is required to get the slave out of the acknowledge state and to release the bus. This requires extra checking and logic on the master side to detect and recover. This scenario is espcially possible where the I2C slave is on the other end of a cable that can be unplugged by a user. Disconnecting the cable during the ACK bit results in the lock-up.

reply

Please Login

You will be redirected to the login page

×

Please Login

You will be redirected to the login page

×

Please Login

You will be redirected to the login page