(Yo soy principalmente de un fondo de software y acaba de empezar a trabajar en una plataforma embebida. Discúlpeme si esta es una pregunta ingenua...)
Estoy planeando escribir un driver para una EEPROM que está conectada al MCU a través de un bus I2C. Así que estoy leyendo un tutorial sobre el bus I2C.
El tutorial dice:
Ambas líneas SCL y SDA son " drenaje abierto ". Lo que esto significa es que el chip puede hacer que su salida sea baja, pero no puede llevarlo a lo alto. Para que la línea pueda llegar a un nivel alto hay que poner resistencias de pull-up a la alimentación de 5v. Debe haber una resistencia desde la línea SCL a la línea de 5v y otra desde la línea SDA a la línea de 5v. Sólo necesitas un conjunto de resistencias pull-up para todo el bus I2C, no para cada dispositivo, como se ilustra a continuación:
La parte roja de la imagen anterior la he añadido yo. Supongo que así es toda la imagen.
Mis preguntas son:
- ¿Es correcta mi adición de la MCU roja?
- La parte en negrita el chip es el MCU rojo, ¿verdad?
- ¿Por qué es cierto que el chip no puede conducirlo a lo alto ? ¿Es así? no puede o prohibido ¿a?
- ¿Qué hace drenaje abierto ¿quieren decir en inglés sencillo?
He buscado un poco pero parece que no encuentro una explicación clara... quizás una analogía ayude.