I am reading this TI I2C App Note for understanding the I2C operation and need to understand how Multi master I2C will operate.
I was not able to understand this para in the app note, "Since no device may force a high on a line, this means that the bus will never run into a communication issue where one device may try to transmit a high, and another transmits a low, causing a short (power rail to ground). I 2C requires that if a master in a multi-master environment transmits a high, but see's that the line is low (another device is pulling it down), to halt communications because another device is using the bus. Push-pull interfaces do not allow for this type of freedom, which is a benefit of I 2C. "
This is the first para of Section 1.1 Open-Drain for Bidirectional Communication
I have some doubts :
I was not able to understand this para in the app note, "Since no device may force a high on a line, this means that the bus will never run into a communication issue where one device may try to transmit a high, and another transmits a low, causing a short (power rail to ground). I 2C requires that if a master in a multi-master environment transmits a high, but see's that the line is low (another device is pulling it down), to halt communications because another device is using the bus. Push-pull interfaces do not allow for this type of freedom, which is a benefit of I 2C. "
This is the first para of Section 1.1 Open-Drain for Bidirectional Communication
I have some doubts :
- I don't understand how they are saying Open drain is better than push pull config? Can someone give an example? And when they say two devices start communicate at the same time, how is this possible? Two devices can't communicate at the same time, right? And are the two devices slaves? or masters?
- Please provide an example how push pull is dangerous when compared to Open drain in I2C?