¿Cómo 'desmultiplicar' un pin de tres estados?

Me gustaría usar un solo pin (búfer de tres estados, lógica de 3,3 V en caso de que esto sea importante) para controlar dos MOSFET de canal P como interruptores de lado alto. Solo uno de ellos estará 'encendido' en cualquier momento. Cuando el pin está en el estado de alta impedancia (hi-Z), me gustaría que ambos estuvieran apagados.

La solución que se me ocurrió es subir el estado hi-Z (a 0.2*Vcc, ver comentarios) y usar dos comparadores (tipo de colector abierto) para controlar los FET cuando el pin está en el estado Lo o High:

esquemático

simular este circuito : esquema creado con CircuitLab

Me pregunto: ¿hay un enfoque mejor, más fácil o más elegante para esto? ¿Es esta solución adecuada para cambios rápidos?

Honestamente, la intención de este circuito es clara y el recuento de partes no es terrible. Lo mantendría a menos que tenga una restricción de espacio de PCB que requiera que lo reduzca. Incluso entonces, solo trataría de seleccionar partes más pequeñas.
La detección de tres estados puede ser de interés.
@Jens Si un pin IO en una MCU se deja flotando a voltaje medio, podría dañar el pin debido al consumo excesivo de corriente en el búfer de entrada. Consulte ti.com/lit/an/scba004d/scba004d.pdf . Debe asegurarse de que las resistencias de polarización dejen el voltaje del pin no excitado por encima del VIH (normalmente, 2,0 V o 0,7*VCC).
@ user96037 Buen punto. Mi MCU tiene VIH(min)=0.75VCC y VIL(max)=0.25VCC. Entonces, un divisor de 4:1 o 1:4 / mantener el pin en 0.2VCC o 0.8VCC debería evitar la corriente excesiva en el pin y los comparadores pueden usar un divisor de 1:4:1 para la ventana.

Respuestas (2)

Hmm, tal vez esto no es más elegante por decir...

Esto se puede resolver haciendo un inversor basado en PMOS y un inversor basado en NMOS. Un inversor basado en NMOS invertirá un voltaje alrededor del voltaje de umbral para el NMOS, este voltaje será diferente para el inversor basado en PMOS. Si tanto los transistores NMOS como los PMOS tienen un umbral inferior a la mitad de VDD, obtendrá un rango de voltaje intermedio donde ambos se están invirtiendo. Eso significa que en los siguientes casos ninguna de las salidas está activada.

Aquí hay una solución que solo requiere 4 transistores:

ingrese la descripción de la imagen aquí

Aquí está el enlace si quieres interactuar con él. Sus salidas no son dos transistores P-mos, pero esto se puede resolver agregando un quinto transistor.

La razón por la que decidí compartir este esquema es que tal vez su construcción tenga un espacio limitado, entonces esta podría ser una buena solución.


El gráfico superior es el voltaje en las puertas de los transistores más a la izquierda.
El gráfico central es el voltaje a través de la carga superior.
El gráfico inferior es el voltaje a través de la carga inferior.

Un esquema, con 5 transistores, que funciona "más o menos" como lo describiste, se vería así:

ingrese la descripción de la imagen aquí

Aquí está el enlace para este esquema.


El gráfico superior es el voltaje en las puertas de los transistores más a la izquierda.
El gráfico central es el voltaje a través de la carga superior.
El gráfico inferior es el voltaje a través de la carga inferior.


Aquí está la parte "ish" de arriba:

Bleh, me acabo de dar cuenta de que esto solo funciona si su pin de salida está dentro de la etapa de voltaje de salida VDD. Entonces, este diseño no funcionará con 12 V, ya que su pin probablemente solo esté entre 0 y 3.3/5 V. Oh, bueno.


Editar

Aquí hay un esquema... que hará lo que quieras, pero honestamente, es más complicado que tu solución. A menos que haga su propio ASIC personalizado con estos transistores y resistencias internas/fuentes de corriente.

ingrese la descripción de la imagen aquí

Aquí está el enlace para este esquema que


El gráfico superior es el voltaje en las puertas de los transistores más a la izquierda.
El gráfico central es el voltaje a través de la carga superior.
El gráfico inferior es el voltaje a través de la carga inferior.

Con esta solución, funciona con 3,3 V y utiliza los inversores lógicos también como desplazadores de nivel.

Pero si yo fuera tú, iría con la solución que se te ocurrió por tu cuenta. Pero con LM393 en lugar de LM319 porque soy un tacaño y LM393 tiene un tamaño algo más pequeño (menos pines).

Pero si lo que necesita es alta velocidad, entonces LM319 es el trabajo para usted, obviamente, o mi solución de transistor/resistencia con 1 kΩ en lugar de los 10k/100k que tienen ahora.

Gracias por la sugerencia. Me gusta la simetría: los umbrales Vgs de los dos transistores izquierdos 'codifican' la ventana del comparador y los transistores del medio reemplazan las salidas de colector abierto :) Probablemente valga la pena decir que, en términos absolutos, los valores máximos de umbral Vgs de los transistores izquierdos deben ser inferior al Vcc/2 mínimo de la entrada!
No sé si esto es legítimo... simulación . ¿Qué opinas?
@Jens " Si los transistores NMOS y PMOS tienen un umbral inferior a la mitad de VDD, obtendrá un rango de voltaje intermedio donde ambos se están invirtiendo ". Meh, fui descuidado al decir el Vcc/2. Oh bien. Esa simulación no es tonta en absoluto, definitivamente la probaría en una placa de pan si fuera tú. - Esta es probablemente la " peor " pregunta que he respondido. Peor en el sentido de que la persona que hizo la pregunta tenía dos respuestas mejores que la mía.

Inspirada en la respuesta de Harry, aquí hay una solución que requiere 3 resistencias y un transistor BJT (más los dos MOSFET de canal N habituales y pull-ups para controlar los MOSFET de canal P). Los voltajes de entrada y salida son independientes, por ejemplo, puede controlar 12 V desde una MCU de 3,3 V o 5 V desde una lógica de 5 V:

esquemático

simular este circuito : esquema creado con CircuitLab

El enlace de simulación anterior no funcionará, haga clic aquí en su lugar

Notas:

  1. En el estado Hi-Z, R1/R2 aumenta el voltaje de entrada y debe ajustarse para que "Prueba" sea

    (a) lo suficientemente más bajo que el voltaje de umbral de la puerta de M1 para mantenerlo cortado. Para 2N7000 , debe ser inferior a 0,8 V; y

    (b) más bajo que el VIL máximo del pin para evitar corrientes excesivas en el controlador. Para ESP8266 , esto es 0,25*Vcc, o menos de 0,825 V cuando se ejecuta a 3,3 V.

  2. En el estado ALTO, el voltaje de salida del pin debe ser lo suficientemente mayor que el umbral de la puerta de M1. Para un 2N7000 , esto debería ser de al menos 3V. Los voltajes ligeramente más bajos probablemente también funcionarán.

  3. El voltaje conmutado (aquí: 12 V) debe ser suficiente para encender completamente M3/M4. Para el FQP27P06 , necesitará alrededor de 8V. Seleccione MOSFET de nivel lógico si necesita cambiar voltajes más bajos.

  4. Para Q1, casi cualquier NPN servirá (por ejemplo, 2N3904 o BC547). Los pull-ups R3..R5 pueden ser de 10K, menos si necesita cambiar a frecuencias más altas.


Para un interruptor lateral bajo, deshágase de M3/R3 y M4/R4 y conecte su carga directamente a M1 y M2, probablemente actualizándolos a algo más adecuado:

esquemático

simular este circuito

El enlace de simulación anterior no funcionará, haga clic aquí en su lugar.