¿Podría alguien explicar cómo el drenaje abierto io actúa como bidireccional? Si es en realidad bidireccional o puede actuar solo como entrada o salida a la vez.
¿Podría alguien explicar cómo el drenaje abierto io actúa como bidireccional? Si es en realidad bidireccional o puede actuar solo como entrada o salida a la vez.
La línea se lee a través de una entrada de alta impedancia. La línea está controlada por el mosfet interno de n canales y la resistencia de pull-up. Al apagar el mosfet, libera la línea por lo que es una entrada pasiva. Cuando enciende el fet, intenta forzar la línea baja, pero sigue leyendo la entrada para verificar si la línea es lógica baja o no.
Depende del dispositivo en cuestión. Si está hablando de un microcontrolador o un chip que utiliza comunicaciones I2C, el chip puede monitorear la línea para ver cuál es el nivel lógico actual y controlar esa línea LO para señalar. otros dispositivos.
Sin embargo, hay búferes de drenaje abierto donde el búfer puede conducir la línea LO pero no puede monitorear la línea para leer su "nivel lógico actual".
Tomemos el ejemplo de un microcontrolador. Puede configurar el pin como salida y el LO activado para indicar a otros dispositivos en el bus o puede establecer el pin como entrada y leer el nivel actual en el bus. Ambas acciones son posibles en un solo pin, en lugar de requerir pines separados para entrada y salida.
Si, junto al drenaje abierto, también se puede leer su pin, entonces puede usarlo como entrada al no habilitar la salida FET.
Esto se hace comúnmente para la comunicación multipunto como i2C y Dallas / Maxim 1-wire.
Lea otras preguntas en las etiquetas open-drain io