33 votos

Cómo invertir una señal digital

Necesito una manera 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í. Las tensiones con las que estoy trabajando son inferiores a 5V.

0 votos

Tratamiento detallado de un inversor BJT: _Proyecto MoHAT de la Sección 2 de EE 307_ - "El propósito de esta página es guiar a aquellos interesados en las operaciones fundamentales de un inversor BJT."

38voto

lillq Puntos 4161

O, ya que estás hablando de señales digitales de todos modos, utilizas un inversor.

introducir descripción de la imagen aquí

A es la entrada (para compuertas con más entradas que será A, B, C, etc.), Y es la salida. Si no complica tu esquema demasiado, coloca el símbolo con la entrada a la izquierda.

Nexperia tiene inversores de una sola compuerta. Sólo cuatro conexiones: fuente de alimentación, tierra, entrada y salida.

También se puede hacer con un transistor y dos resistencias. Es un esquemático simple, pero aún tienes que hacer algunos cálculos simples. Tendrás exactamente las mismas conexiones que con el inversor.
Por cierto, un PNP es una opción, pero más a menudo se utilizará un NPN.

editar (en respuesta a tu comentario)

introducir descripción de la imagen aquí

Si la señal de entrada es alta, fluirá corriente a través de R2 y la unión base-emisor 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 para que la salida sea 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 sin 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 se carga a través de R1, lo que resultará en una pendiente exponencial con una constante de tiempo R1C. Cuando la salida se vuelve baja, el capacitor se descargará a través de una resistencia mucho más baja y la pendiente será mucho más pronunciada. No obtendrás esta diferencia con compuertas CMOS, que tienen capacidades de fuente/drenaje simétricas.

La versión del transistor también consumirá (una pequeña) corriente cuando esté alto. La versión CMOS solo tendrá una pequeña corriente de fuga tanto cuando esté alto como cuando esté bajo.

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

0 votos

Definitivamente podría estar confundido aquí, pero un NPN se enciende cuando se suministra energía a la compuerta y un PNP se apaga cuando se suministra energía. Tiene sentido usar un NPN para la amplificación de la señal, pero no causaría que la señal se invierta. ¿Qué piensas?

3 votos

Los gates son para MOSFETs, no para BJTs. Los NFETs se encienden y los PFETs se apagan. Pero debes asegurarte de que el source esté conectado correctamente. Un NPN y un PNP son BJTs y requieren un poco más de matemáticas para asegurarte de que funcionen correctamente.

0 votos

Cuando se trata del NXP, tienes muy poco margen de libertad. Hay restricciones como el timing, fan-in, fan out, márgenes de ruido de entrada, glitches, etc. En ese caso, es mucho más fácil usar un transistor. Simplemente porque no estás limitado por esas restricciones.

27voto

RelaXNow Puntos 1164

Sí, esto se puede lograr con un solo transistor y una resistencia, pero existen chips diseñados específicamente para invertir señales digitales. Curiosamente, se llaman invertidores. Por ejemplo, revisa el 74HC04. Eso te da seis invertidores separados en un solo paquete de 14 pines. También hay invertidores individuales (y otras pequeñas compuertas lógicas) disponibles en paquetes pequeños SOT-23, que es el mismo paquete en el que vienen los transistores individuales.

No hay muchas razones para intentar hacer tu propio inversor, pero sí, es posible.

Agregado en respuesta al comentario:

Como dije, un solo transistor bipolar se puede usar como base para un simple inversor. Como mínimo, necesitas el transistor y una resistencia de base. Por completitud, también agregaré una resistencia de carga de salida, que debes asumir que se necesita a menos que sepas que lo que se conecte a la salida proporcionará la carga necesaria. No hay nada de mágico en un transistor PNP en particular. Un NPN también se puede usar perfectamente. Así es como se usaría cada uno:

Nota que cada uno tiene 4 conexiones: alimentación, tierra, entrada y salida. La diferencia entre los dos es en qué dirección carga la entrada y en qué dirección la salida se conduce activamente en lugar de ser arrastrada pasivamente por la carga. Si no te importan estos problemas, entonces los dos circuitos son funcionalmente equivalentes.

Sin embargo, esto es más fácil:

También es más rápido, consume menos potencia en estado estable, tiene una mayor impedancia de entrada y es más pequeño. Tiene las mismas cuatro conexiones que los invertidores anteriores. Puertas individuales como esta están disponibles en paquetes SOT-23, que es el mismo paquete en el que vienen los transistores individuales. Esto solo requiere una parte externa, el capacitor de derivación. No necesita una resistencia de carga ya que su salida conduce activamente en ambas direcciones.

Realmente, para la inversión general de señales digitales, hacer tu propio inversor es absurdo para aplicaciones normales.

Comentario fuera de tema sobre dibujo de esquemas:

El script realmente son solo tres líneas. Aquí está el archivo completo:

@echo off
rem
rem   MAKE\_SCHEM\_GIF
rem
rem   Crea un archivo GIF de esquema filtrado agradable a partir de la salida cruda de Eagle
rem   /temp/a.tif. El archivo GIF resultante será /temp/b.gif y será
rem   en escala de grises.
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 muy específico, pero funciona lo suficientemente bien para el propósito. En Eagle exporto el esquema a un archivo de imagen \temp\a.tif, ejecuto el script que crea \temp\b.gif. La configuración de exportación de imágenes en Eagle es 600 DPI y monocromo. Realmente, eso es todo. Probablemente suena más complicado de lo que es.

1 votos

@MattRuwe sería "suficiente", pero el punto de Olin es que un chip dedicado funcionaría mejor (el tiempo de subida y bajada sería más simétrico). Un PNP puede "subir" a Vdd, pero necesitas algo para bajarlo de nuevo cuando el PNP deja la salida flotando. Ese "algo" creará asimetría en el tiempo de subida/bajada, según su impedancia.

0 votos

Entendido, tiene sentido

1 votos

¿Cómo es que tu esquema se ve más bonito que el mío? :-)

9voto

Duncan C Puntos 482

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

Encontré este hilo porque quería cablear un "Mochila Digital LCD" más antiguo a un Arduino. El Arduino emite señales seriales positivas, y la mochila digital quiere señales invertidas. Las versiones más nuevas del controlador LCD tienen un jumper invertido/no invertido, pero el mío no. De manera similar, es posible generar señales seriales invertidas a través de software, pero implica ejecutar una biblioteca no estándar. Quería usar los comandos estándar Serial.write.

Inicialmente conecté uno de los 4 NORs en una puerta NOR cuádruple CMOS 4001 como inversor, pero eso ocupa mucho espacio en mi protoboard, y como se supone que se deben conectar todas las entradas no utilizadas a tierra, implica mucha conexión de cables. (Creo que necesitaba conectar todos los pines excepto 3 de los 14 pines en el paquete; todo excepto las salidas en los 3 NORs no utilizados.)

Quería una solución más fácil de cablear. Utilicé el circuito proporcionado por @stevenvh.

Linked here:

enter image description here

Estoy trabajando con lógica CMOS de 5V a 9600 baudios, por lo que la impedancia de entrada es muy alta y la corriente es muy baja. Dado que estoy solo cambiando a 9600 baudios, no creo que el comportamiento asimétrico del inversor basado en transistor me perjudique mucho.

Descubrí que una resistencia de 100K en la entrada (R2 en el diagrama de stevenvh) funcionaba, y utilicé una resistencia de 3.3k como resistencia pull-up en R1. Según mis cálculos (I=V/R, 5/3300) esta configuración consumirá <= 1.5 mA en el estado ON (algo menos debido a la resistencia interna del transistor). Quizás conecte un potenciómetro y vea qué tan grande puede ser la resistencia con la que puedo salirme y aún así hacer que el LCD reciba una señal.

4voto

numberwhun Puntos 801

Aquí te mostramos cómo hacerlo a la manera CMOS:

esquemático

simula este circuito – Esquemático creado usando CircuitLab

La tensión del riel de alimentación puede ser tan alta como desees mientras sea más baja que la tensión de ruptura de la compuerta.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X