Cómo invertir una señal digital

28

Necesito una forma de invertir una señal digital, es decir, si la entrada es alta, quiero que la salida sea baja y si la entrada es baja, quiero que la salida sea alta.

Creo que esto se puede lograr con un solo transistor PNP, pero quería verificarlo aquí. Los voltajes con los que estoy tratando son menores a 5V.

    
pregunta Matt Ruwe

4 respuestas

32

O, ya que está hablando de señales digitales de todas formas, utiliza un inversor .

Aeslaentrada(parapuertasconmásentradasqueseránA,B,C,etc.),Yeslasalida.Sinocomplicademasiadosuesquema,coloqueelsímboloconlaentradaalaizquierda.

NXPtiene inversores de una puerta . Solo cuatro conexiones: alimentación, tierra, entrada y salida.

Se puede hacer con un transistor y dos resistencias, sin embargo. Es un esquema simple, pero todavía tienes que hacer unos cálculos simples. Tendrá exactamente las mismas conexiones que con el inversor.
Por cierto, un PNP es una opción, pero más a menudo se usará un NPN.

editar (vuelve a tu comentario)

Si la señal de entrada es alta, fluirá corriente a través de R2 y la unión del emisor-base del transistor (base, no puerta). Esta corriente se amplificará y la corriente del colector a través de R1 causará una caída de voltaje, por lo que la salida será baja. Entrada alta, salida baja.
Si la señal de entrada es baja, no habrá corriente de base ni corriente de colector. Sin corriente a través de R1 significa que no hay caída de voltaje, por lo que la salida estará en + V. Entrada baja, salida alta.

Esto ya lleva un poco más lejos, pero como dije en el comentario a sandun , la salida es altamente asimétrica. Si la salida está conectada a un capacitor, un nivel de salida alto significaría que el capacitor está cargado a través de R1, lo que resultará en una pendiente exponencial con una constante de tiempo R1C. Cuando la salida baja, el condensador se descargará a través de una resistencia mucho menor y la pendiente será mucho más pronunciada. No obtendrá esta diferencia con las puertas CMOS, que tienen capacidades de fuente / sumidero simétricas.

La entrada de la versión del transistor también consumirá (una pequeña) corriente cuando está alta. La versión CMOS solo tendrá una pequeña corriente de fuga tanto cuando sea alta como baja.

En general, la puerta lógica integrada es la ganadora.

    
respondido por el stevenvh
21

Sí, esto se puede lograr con un solo transistor y resistencia, pero hay chips diseñados específicamente para invertir señales digitales. Por extraño que parezca, se les llama inversores . Echa un vistazo a la 74HC04, por ejemplo. Eso le da seis inversores separados en un solo paquete de 14 pines. También hay inversores individuales (y otras puertas lógicas pequeñas) disponibles en paquetes pequeños SOT-23, que es el mismo paquete que los transistores individuales.

Hay pocas razones para intentar hacer su propio inversor, pero sí, es posible.

Agregado en respuesta al comentario:

Como dije, se puede usar un solo transistor bipolar como base para un inversor simple. Como mínimo, necesita el transistor y una resistencia de base. Para completar, también agregaré una resistencia de carga de salida, que debe asumir que es necesaria a menos que sepa que lo que se conectará a la salida proporcionará la carga necesaria. No hay nada de magia en un transistor PNP en particular. También se puede usar un NPN. Aquí es cómo se utilizarían cada uno:

Tengaencuentaquecadaunotiene4conexiones:alimentación,conexiónatierra,entradaysalida.Ladiferenciaentrelosdosesladirecciónenlaquecargalaentradayladirecciónenlaquelasalidaseactivadeformaactivafrentealacargapasiva.Sinoleimportanestosproblemas,entonceslosdoscircuitossonfuncionalmenteequivalentes.

Sinembargo,estoesmásfácil:

También es más rápido, toma menos energía de estado estable, tiene una impedancia de imputación más alta y es más pequeño. Tiene las mismas cuatro conexiones que los inversores anteriores. Puertas simples como esta están disponibles en paquetes SOT-23, que son los mismos transistores individuales que entran. Esto solo requiere una parte externa, la tapa de derivación. No necesita una resistencia de carga ya que su salida se activa de forma activa en ambas direcciones.

Realmente, para la inversión general de señales digitales, crear su propio inversor es una tontería para las aplicaciones normales.

Fuera del tema aparte sobre el dibujo esquemático:

El script es en realidad sólo tres líneas. Aquí está el archivo completo:

@echo off
rem
rem   MAKE_SCHEM_GIF
rem
rem   Creates a nicely filtered schematic GIF file from the raw Eagle output
rem   /temp/a.tif.  The resulting GIF file will be /temp/b.gif, and will be
rem   gray scale.
rem
image_filter /temp/a.tif /temp/b.img -shrink 5
image_copy /temp/b.img /temp/b.gif -form -gray
image_disp /temp/b.gif -zoom 1 -dev medium

Es un script puntual muy específico, pero funciona lo suficientemente bien para este propósito. En Eagle, exporto el esquema al archivo de imagen \ temp \ a.tif, ejecuto el script que hace \ temp \ b.gif. La configuración del Águila para la exportación de imágenes es de 600 ppp y monocromo. Realmente, eso es todo lo que hay que hacer. Probablemente suene más complicado de lo que es.

    
respondido por el Olin Lathrop
8

Aquí hay algunos valores de resistencia que funcionan para las señales CMOS:

Encontré este hilo porque quería conectar una "mochila digital LCD" más antigua a un Arduino. El Arduino emite señales seriales positivas y la mochila digital quiere señales invertidas. La versión más nueva del controlador LCD tiene un puente invertido / no invertido, pero el mío no. De manera similar, es posible generar señales seriales invertidas a través del software, pero implica ejecutar una biblioteca no estándar. Quería usar los comandos estándar Serial.write .

Inicialmente conecté uno de los 4 NOR en una compuerta NOR cuádruple 4001 CMOS como inversor, pero eso ocupa mucho espacio en mi tablero, y como se supone que debes atar todas las entradas no utilizadas al suelo, implica Mucho cableado. (Creo que necesitaba conectar todos menos 3 de los 14 pines del paquete; todo menos las salidas de los 3 NOR no utilizados).

Quería una solución más sencilla de cablear. Usé el circuito provisto por @stevenvh.

Vinculado aquí:

Estoy tratando con la lógica de 5 V CMOS a 9600 baudios, por lo que la impedancia de entrada es muy alta / la corriente es muy baja. Como solo estoy cambiando a 9600 baudios, no creo que el comportamiento asimétrico del inversor basado en transistores me haga mucho daño.

Encontré que funcionaba una resistencia de 100K en la entrada (R2 en el diagrama de stevenvh), y usé una resistencia de 3.3k como la resistencia de pull-up en R1. Según mis cálculos (I = V / R, 5/3300), esta configuración dibujará < = 1.5 mA en el estado ENCENDIDO (algo menos debido a la resistencia interna del transistor). Es posible que conecte una olla y vea cómo Una resistencia grande que puedo usar con un LCD aún tiene una señal.

    
respondido por el Duncan C
4

Así es como lo haces de la manera CMOS:

simular este circuito : esquema creado usando CircuitLab

El voltaje del riel de alimentación puede ser tan alto como desee siempre que sea más bajo que el voltaje de ruptura de la puerta.

    
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas