Confundido entre push-pull y drenaje abierto

3

Estoy planeando usar un expansor de puerto basado en i2c (anteriormente estaba usando el GPIO de atmega328P) para entradas y salidas. En una búsqueda digital, encontré MCP23008, MCP23009 y MCP23017 como posibles reemplazos. De estos tres, solo el MCP23017 es push-pull. Otros dos son de drenaje abierto. Tengo la certeza de que push pull puede ser fuente activa y sumidero y el drenaje abierto no puede ser fuente activa. No estoy muy seguro de cómo afecta esto a mi caso de uso y, por lo tanto, necesito un consejo experto.

Aquí está el caso de uso:

Se supone que SS1 y TRIAC1 van en GPIO del puerto de expansión. Se supone que SS1 debe leerse digitalmente y TRIAC1 debe manejarse ALTO o BAJO.

¿Por lo tanto, importa si uso un drenaje abierto o un tipo de empuje? Si es así, ¿cuál es la mejor opción? Además, quiero mantener el componente a un mínimo. Ex: quiero conducir el controlador triac directamente por el expansor de puerto en lugar de usar otro transistor. Por lo tanto, ten esto en cuenta también.

Nota: Ambos circuitos se replicarán de 4 a 10 veces en la PCB y, por lo tanto, el requisito de expansión de puerto.

    
pregunta Whiskeyjack

1 respuesta

4

El drenaje push-pull o abierto es relevante solo para los puertos de salida. Así que para el pin SS1, no importa.

Sin embargo, para conducir el cable TRIAC1, dado el esquema que proporcionó, es obligatorio que use push-pull. Si utiliza drenaje abierto, TRIAC1 se arrastra a tierra (con estado lógico 0) o no está conectado (con estado 1). En ambos casos, el LED optotriac no se enciende y el triac no se dispara. Si utiliza push-pull, puede generar corriente en el led (con estado 1) para que esté bien.

Ahora, habría formas de hacerlo funcionar también con salidas de drenaje abierto, sin usar más componentes: si conecta el ánodo del led a + 3.3V y el cátodo a la resistencia y luego a la salida TRIAC1 de En la MCU, puede utilizar tanto el sistema push-pull como el de drenaje abierto, como desee. En ambos casos, podrá encender la luz configurando la salida en el estado lógico 0 y apagándola configurándola en 1.

    
respondido por el dim

Lea otras preguntas en las etiquetas