The open-collector adds inconveniences like requiring an external pull-up resistor and slows down the throughput. Why did the I2C designers choose to use open-collector/open-drain?
Electronic – Why does the I2C interface use the open-collector/open-drain
i2copen-collectoropen-drain
Related Topic
- Electronic – Open drain concept in I2C bus
- Electronic – 2C lines use open drain driver instead of tri-state drivers
- Electronic – Why we don’t use pull down resistors for implementing I2C protocol ? And why resistance value varies in I2C depending on its speed
- Electrical – connecting Open drain and Push pull outputs to drive the same pin
- Electrical – I2C Communication Open drain benefits vs Push pull
- Electronic – When using an open-drain output to drive an NPN transistor, can the base resistor be replaced by a pull-up
Best Answer
Open drain allows there to be multiple masters on the same bus. If two masters try to transmit at the same time with push-pull drivers, they can damage each other, and even if they don't it's hard to tell which master will win. Open drain acts as a "wired AND", which makes it easy to share the line and arbitrate collisions. CAN does something similar, although the physical layer is differential instead of single-ended.
In I2C in particular, open drain allows the receiver to stretch the clock by holding it low when the receiver needs more time to process the data. Whether this is a bug or a feature is a matter of opinion.