Tengo entendido que las líneas I2C usan resistencias pull-up para elevar pasivamente el bus a nivel lógico alto porque los controladores usados en el bus son controladores activos, es decir, colector abierto / drenaje abierto. Dado que los controladores de colector abierto / drenaje abierto pueden conducir la línea baja pero no alta, se mitiga el problema de la contención del bus.
Sin embargo, mi pregunta es: ¿por qué el protocolo I2C usa estos controladores en lugar de los controladores de tres estados? Si tiene varios controladores de salida triestados conectados al mismo bus, siempre que las señales de habilitación para los triestados sean mutuamente excluyentes, no deberíamos poder ocuparnos de la contención del bus y también lograr tiempos de aumento más rápidos en comparación ¿A topologías de colector abierto / drenaje abierto?