Confundido entre push-pull y open-drain

Estoy planeando usar un expansor de puertos basado en i2c (anteriormente estaba usando GPIO de atmega328P) para entradas y salidas. En una búsqueda de digikey, encontré MCP23008, MCP23009 y MCP23017 como posibles reemplazos. De estos tres, solo MCP23017 es push-pull. Otros dos son de desagüe abierto. Entiendo que push pull puede generar y hundir activamente y el drenaje abierto no puede generar activamente. No estoy muy seguro de cómo afecta esto a mi caso de uso y, por lo tanto, necesito el asesoramiento de un experto.

Aquí está el caso de uso:

Interruptor de sentido y triac

Se supone que SS1 y TRIAC1 van en GPIO del expansor de puertos. Se supone que SS1 se lee digitalmente y se supone que TRIAC1 se conduce ALTO o BAJO.

Como tal, ¿importa si uso drenaje abierto o tipo push-pull? En caso afirmativo, ¿cuál es la mejor opción? Además, quiero mantener el componente al mínimo. Por ejemplo, quiero conducir el controlador triac directamente por el expansor de puertos en lugar de usar otro transistor. Por lo tanto, tenga esto en cuenta también.

Nota: Ambos circuitos se replicarán de 4 a 10 veces en la PCB y, por lo tanto, se requerirá el expansor de puertos.

Respuestas (1)

Push-pull o drenaje abierto es relevante solo para los puertos de salida. Entonces, 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 usa drenaje abierto, TRIAC1 se conecta a tierra (con estado lógico 0) o se desconecta (con estado 1). En ambos casos, el LED optotriac no se encendía y el triac no se disparaba. Si usa push-pull, puede enviar corriente al led (con el estado 1), por lo que está bien.

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

Gracias tenue. Acerca de la solución que mencionó, ¿es bien aceptada en la industria o es simplemente una solución alternativa? La placa puede colocarse en entornos eléctricamente ruidosos.
Esta no es una solución alternativa, es una solución real y, a menudo, la eligen los diseñadores. La ventaja frente a push-pull es que tiene más flexibilidad para el voltaje de suministro del led. Por ejemplo, podría suministrar +5 V al LED y el expansor, incluso si se alimenta con 3,3 V, podría absorber corriente y suministrar al LED +5 V. Y también puede tener diferentes suministros para diferentes pines de salida. Sin embargo, debe verificar la calificación máxima en los pines GPIO del chip (en este caso, +5.5V).
@Whiskeyjack Se necesita el push-pull si tiene una conmutación de alta frecuencia, porque genera, de lo que se hunde; también toma la carga capacitiva, el LED se apagaría más rápido. En tu caso es irrelevante lo que vas a usar. Además, es bastante imposible que un entorno ruidoso induzca tal corriente para encender el LED.