Cómo encadenar puertas lógicas de transistores

He estado tratando de construir algunos circuitos que usan puertas lógicas, sin usar chips prefabricados. Mi objetivo principal es mejorar mi comprensión del tema, pero sería bueno hacer algo útil en el proceso.

Después de muchos intentos fallidos y buscar en Google, llegué a esta pregunta , que funciona muy bien. Pero siento que el consumo de corriente será muy alto (¿ya que los inversores básicamente enviarán una carga de corriente a tierra cuando estén bajos?). Esto es especialmente cierto si desea utilizar muchas puertas.

Me parece que necesita 'recuadro negro' las puertas lógicas para que pueda encadenarlas tanto como quiera sin mucha preocupación. Los inversores hacen esto, pero a costa de la corriente. ¿Hay una mejor manera? ¿Aprender la física dura detrás de esto es la única forma de hacer realmente circuitos lógicos complejos, así que me estoy saliendo de mi profundidad? Tengo una sólida comprensión de las puertas en sí mismas, y ya diseñé mis circuitos como puertas puras, pero la implementación física real es muy diferente.

Entonces, mi pregunta sería: ¿Existe una forma simple y efectiva de bloquear las puertas lógicas RTL para que puedan encadenarse?

Editar: acabo de recordar que NOR se puede usar para construir otras puertas, así que supongo que la solución sería un diseño para una puerta NOR que pueda tratarse como modular.

RTL se remonta al DEC PDP8, donde los contadores BCD eran de $200 bitsavers.trailing-edge.com/pdf/dec/handbooks/… más bitsavers.trailing-edge.com/pdf/dec/handbooks
Si solo desea conectar muy fácilmente la puerta lógica, pruebe CMOS ...
@ jbord39 O incluso NMOS. Más fácil de construir y el consumo de energía está limitado por su elección de resistencia.

Respuestas (4)

RTL no es demasiado difícil, pero eso tampoco significa que sea trivial. Si quieres, echa un vistazo a dos de mis respuestas: (1) construir un sumador completo ; y, (2) nand con led . Pero en esos casos decidí mantener las cosas realmente simples y no hacer un diseño serio. Has mencionado RTL. Así que intentemos un diseño RTL aquí.

Comencemos mirando el siguiente ejemplo tomado de una de mis publicaciones anteriores:

esquemático

simular este circuito : esquema creado con CircuitLab

Tendremos que decidir sobre un rango de voltajes de entrada que se considerará un "0" lógico y otro rango de voltajes de entrada que se considerará un "1" lógico. Obviamente, estos rangos no deberían superponerse y probablemente debería haber una brecha entre ellos.

Sin embargo, antes de ir allí, el circuito anterior presenta un problema de diseño. Si asumimos que ambas entradas (A y B) están en el voltaje de entrada más alto permitido que todavía se considera un "0" lógico, entonces está bastante claro que también habrá una pequeña corriente de base presente y que esta corriente será amplificada por el β de q 1 para convertirse en una posible corriente de colector que reduce el voltaje del colector. Esto hace que el circuito sea mucho menos diseñable, especialmente porque el valor de β varía en las partes incluso dentro de la misma familia. Necesitamos algo presente para hacer que el circuito dependa menos del valor de β . (También necesitaremos algo para hacer que el circuito sea menos dependiente de las variaciones de la corriente de saturación [que afecta V B mi ], también. Pero eso se sacudirá en el proceso).

Una forma de lograr esto es agregar una resistencia de base a tierra (o un voltaje aún más bajo). Algo como esto:

esquemático

simular este circuito

(He mostrado este circuito con R D ir a tierra Un diseño también podría considerar la idea de atarlo a un riel negativo. Pero no hay necesidad, por ahora.)

El circuito anterior, con el agregado R D resistencia base, mejora enormemente las cosas, ya que nos permite desviar pequeñas corrientes base lejos del BJT. Proporciona un grado adicional de libertad de diseño que nos resultará útil tener.


Entonces. ¡Diseñemos RTL!

Comenzaremos asumiendo un solo riel de voltaje de V C C = 5 V . Digamos también que un BAJO se considera cualquier voltaje de 0 1 V y que un ALTO se considera cualquier voltaje de 3 5 V . Entonces, V L O METRO A X = 1 V (obviamente, cuanto más bajo mejor) y V H I METRO I norte = 3 V . Supongamos también que desea que la salida pueda controlar hasta seis entradas a la vez. (Es muy importante establecer algunas reglas como esta si vas a diseñar algo).

Para un diseño, necesitamos descubrir las peores situaciones y diseñar para esos casos. (Si hacemos eso, el resto solo será mejor). Los dos peores casos posibles son:

  1. Donde están las dos entradas V L O METRO A X y no se puede permitir que la salida se hunda debajo V H I METRO I norte cuando se enfrenta a una carga completa de seis entradas. (Estas entradas adicionales intentarán arrastrar hacia abajo la salida y debemos asegurarnos de que la salida no se pueda arrastrar hacia abajo V H I METRO I norte , incluso entonces.)
  2. Donde una de las entradas está en 0 V y el otro esta en V H I METRO I norte y donde la salida debe ser forzada a continuación V L O METRO A X sin ninguna otra carga de salida añadida. (Sin entradas añadidas, el transistor debe por sí mismo ser capaz de bajar la salida a continuación V L O METRO A X . Agregar carga solo ayudaría y queremos una situación en el peor de los casos en la que no haya ninguna ayuda adicional).

Para abordar estos detalles, voy a incluir algunas cosas que sé sobre los BJT de señal pequeña. En términos generales, sus corrientes de colector aumentarán en un factor de 10 por cada 60 mV cambiar en V B mi . (Teniendo en cuenta algunas variaciones térmicas razonables, cada factor de 10 podría ser para cualquier lugar desde 50 70 mV cambiar en V B mi .)

Quiero q 1 estar muy cerca de APAGADO en el caso (1) anterior, configurando R C lo suficientemente bajo en valor como para que pueda levantar seis cargas de entrada sin dejar que el colector se hunda debajo V H I METRO I norte . Esto significa que el voltaje base debe ser lo suficientemente bajo para lograr ese estado APAGADO . tambien quiero q 1 estar muy cerca de ON en el caso (2) anterior. Esto significa que un ligero cambio para una de las entradas, simplemente pasando de V L O METRO A X a V H I METRO I norte (justo 2 V cambio), mientras que al mismo tiempo la otra entrada intenta oponerse a este cambio por sí misma pasando de V L O METRO A X a 0 V y arrastrar hacia abajo contra esa escasa elevación, debería ser suficiente para causar q 1 para pasar de APAGADO a ENCENDIDO .

Me he mantenido completamente alejado de decidir los valores de resistencia hasta este punto. Pero ahora voy a elegir un valor para R y basar todo lo demás en esa elección. voy a establecer R = 39 k Ω . Puedes elegir otra cosa, si quieres. Solo lo elijo para mantener la corriente de la fuente de alimentación semi-baja .

Para una pequeña señal BJT, es más o menos el caso de que las corrientes del colector sean de decenas de nanoamperios si puedo mantener V B mi < 400 mV . Y ese tipo de corrientes de colector son lo suficientemente bajas como para considerar que el BJT está APAGADO . Del mismo modo, si permito V B mi sea ​​el doble de grande, entonces la corriente del colector será 10 [ 800 mV 400 mV 60 mV ] veces más, o alrededor de 4 millones de veces!! O, bien en las decenas de miliamperios. Creo que puedo considerar que está ENCENDIDO . (Incluso teniendo en cuenta los problemas térmicos, debería ser un factor de 500k y aún en el rango de miliamperios, independientemente).

Entonces, digamos que quiero que el voltaje de Thevenin sea más bajo que V T H O F F = 400 mV para APAGADO y ser aproximadamente el doble, o alrededor V T H O norte = 800 mV para ENCENDIDO . la ecuacion es:

V T H = V A R D + V B R D R + 2 R D

Esto se resuelve para el caso (1) anterior como:

R D V T H O F F R 2 ( V L O METRO A X V T H O F F ) = 13 k Ω

Sin embargo, para el caso (2) anterior, es:

R D V T H O norte R V H I METRO I norte 2 V T H O F F = 22 k Ω

Usaré el valor estándar de R D = 18 k Ω .

Lo único que queda por hacer es preocuparse por R C . Aquí, debe ser lo suficientemente fuerte (un valor más bajo es más fuerte) para que pueda levantar seis cargas cuando q 1 está APAGADO y lo suficientemente débil como para que cuando q 1 está ENCENDIDO que cae suficiente voltaje para permitir que el colector caiga por debajo V L O METRO A X .

Cuando q 1 está APAGADO y cargado como se indica en el caso (1) anterior, entonces:

R C R ( V C C V H I METRO I norte ) 6 ( V H I METRO I norte V T H O norte ) 5.9 k Ω

voy a establecer R C = 4.7 k Ω como valor estándar. Resulta que esto también es lo suficientemente bueno como para que si tanto como I C 1 mamá que también cumpliremos con los requisitos para el caso (2). Así que hemos terminado.


Aquí está el diseño del circuito resultante:

esquemático

simular este circuito

Teniendo en cuenta lo anterior, me imagino V T H O F F 480 mV cuando ambas entradas están en V L O METRO A X y eso V T H O norte 720 mV cuando una entrada está en V H I METRO I norte y el otro está en el suelo. Esto debería proporcionar suficiente margen para una operación razonable.

Creo que encontrará que esto funciona bien con hasta seis cargas en la salida y funciona en los rangos que he discutido.

La siguiente imagen muestra cuatro trazas que cubren el caso (1) y el caso (2) arriba, con la salida cargada y descargada. El eje x es el voltaje en la entrada A, o V A . El eje y es el voltaje de salida. Las curvas sin carga se etiquetan comenzando con "U" y las curvas cargadas se etiquetan comenzando con "L". Las huellas con V B = 0 V están etiquetados con "0V" y trazas con V B = 1 V están etiquetados con "1V" en sus nombres.

ingrese la descripción de la imagen aquí


Sumador más completo aquí:

ingrese la descripción de la imagen aquí

Gran respuesta, gracias! Creo que puedo implementar esto, pero me pierdo bastante en la explicación que diste. Principalmente, los voltajes de "bajar" y "subir" me confunden, aunque creo que podría ser un problema semántico. Por ejemplo, cuando agrega RD para filtrar parte de la corriente a tierra y minimizar la cantidad de corriente a través de Q1, dice que es "posible corriente de colector que reduce el voltaje del colector". ¿Qué significa esto exactamente? ¡Gracias de nuevo!
@Nathan El contexto es que ambas entradas son BAJAS, pero con el voltaje de diseño más alto para BAJO (1 V). Esto producirá una pequeña corriente de base. Si la ganancia de corriente del BJT es suficiente, la corriente del colector será lo suficientemente alta como para causar una caída de voltaje suficiente en RC como para que el voltaje del colector disminuya. Esto es lo que quise decir con "la corriente del colector reduce el voltaje del colector". Sucede si se hace posible demasiada corriente de colector debido a una beta demasiado alta. Entonces, incluso una pequeña corriente de base puede ser un problema y la salida será BAJA en lugar de ALTA, como debería ser.
Ok, creo que puedo ver esto aquí en este simulador: tinyurl.com/hzzpslo Si ajusta el potenciómetro hacia arriba y hacia abajo, puedo ver que Vce cae repentinamente a 22k, como calculó: ¿es este el efecto al que se refiere con el tirando hacia abajo de la tensión del colector? Supongo que esto se debe efectivamente a la caída de la resistencia entre el colector y el emisor.
@Nathan Sí, eso es a lo que me refería. Un diseño artesanal para la producción como una familia de productos RTL implicaría aún más trabajo de diseño. Pero esto da una idea de ello. DTL pronto se hizo cargo. Luego TTL. Entonces aún mejor con schottky, y así sucesivamente desde entonces. Pero cuando los BJT eran muy escasos y las resistencias muy baratas, RTL era el camino. (Ahora, los BJT son a menudo más baratos que una resistencia barata y muy abundantes. Por lo tanto, nadie lo haría de esta manera ahora).
Ok, ahora lo entiendo :) He podido implementar uno de mis circuitos más simples completamente en el simulador, así que intentaré ordenar algunas partes y hacerlo de verdad. ¡Gracias por su ayuda!
@Nathan Genial. Creo que deberías tener buena suerte. Agregaré un esquema rápido de un sumador completo, solo por diversión. Búscalo en la parte inferior. Si esto ha ayudado, también podría seleccionarlo como respuesta.
@jonk: He visto un diseño de sumador completo inversor de dos transistores usando la lógica de umbral (use una red de suma de voltaje para determinar si dos de las tres entradas son altas, y luego use otra para determinar si la suma de las entradas más el doble del la salida de la primera etapa fue 3)? Me pregunto cómo se compara la practicidad de tales cosas con la de los circuitos con más componentes. Incluso si se necesitara agregar un transistor adicional en las entradas o salidas, el circuito de dos transistores solo necesitaría cuatro o cinco transistores.
@supercat Me enfoqué en dos cosas: (1) Demasiados diseños "tontos" (el OP se refiere a uno de esos) flotando sin un intento real de un diseño real ; y (2) ilustrar cómo se podría realizar un diseño generalizado para una puerta lógica. En ningún momento se trató de cómo implementar un sumador en el menor número de dispositivos activos. Su último punto sobre mantener limpias las entradas y salidas y optimizar las partes internas es bueno. Pero no habría ayudado al OP. En ese momento, lo más claro posible era mejor. Dicho esto, me gustaría ver su intento de responder a su pregunta. lo disfrutaría
OH DIOS MÍO, literalmente compré como 700 transistores justo antes de leer esto y no puedo ESPERAR para jugar con ellos. Ya hice una puerta NAND con solo 1 transistor PNP, un componente con el que nunca había hecho nada hasta este momento. TYSM
@NipDip Necesitará un poco de corriente si va a intentar la lógica RTL. Es un poco hambriento de poder. Ese sumador completo es de 7-8 mA por sí mismo. Alrededor de 40 mW. Y eso es solo un sumador de un bit. Para 8 bits se estará moviendo hacia los 350 mW. Dos circuitos integrados TTL 74181 serían aproximadamente el 10% de esa potencia. Solo para dar un ejemplo. Entonces, está viendo un consumo de energía de aproximadamente 10X sobre TTL. O peor. Con 700 BJT, ¿quizás más de 3 A? ¡Los mejores deseos, sin embargo!
No planees usarlos todos a la vez, ¡pero gracias por el consejo! Estoy usando solo un soporte de batería promedio de 3 V para probar rn pero planeo construir un proyecto más grande más adelante

Debe analizar detenidamente los circuitos equivalentes funcionales dentro de los chips de puertas lógicas bipolares básicas. Estos le mostrarán que para lograr un control de salida de baja impedancia para una puerta, es necesario diseñar con una etapa de salida push-pull. Esto es necesario para poder controlar las entradas de más de una o dos puertas en cascada. Además, cuando se hace esto, los valores de la resistencia interna necesarios para producir la lógica de puerta funcional se pueden hacer más grandes para reducir mucho el consumo de corriente.

Tenga en cuenta que el uso de chips lógicos bipolares para construir computadoras y dispositivos electrónicos de antaño consumía grandes cantidades de corriente. ¡No era raro ver sistemas con fuentes de alimentación de 60 o 100 amperios! A medida que los sistemas se volvieron más complejos y exigieron más puertas, apareció una mejor tecnología para salvar el día. Los primeros transistores NMOS permitieron construir puertas que prácticamente no requerían corriente de polarización de entrada. A esto le siguió rápidamente CMOS, que mezcló dispositivos PMOS y NMOS para crear puertas lógicas que tenían pocas resistencias de desperdicio de energía en el interior y reducían la energía inactiva en órdenes de magnitud.

Después de experimentar un poco más con sus puertas de transistores bipolares, es posible que desee considerar hacer que sus puertas discretas de bloque de construcción usen componentes de tipo alternativo en un intento de duplicar parte de la tecnología que rápidamente desplazó los viejos conceptos lógicos utilizados en DTL y RTL.

Eso es realmente útil, gracias. No me había dado cuenta de la antigüedad de RTL; supongo que es natural que sea ineficiente. Es hora de volver a buscar en Google, ahora tengo algunas buenas palabras clave :)

Aquí hay un buen artículo sobre lógica RTL: https://en.wikipedia.org/wiki/Resistor%E2%80%93transistor_logic

Recomiendo leer la sección Limitaciones sobre fan-in y fan-out así como inmunidad al ruido. Si sus puertas deben ser modulares, el nivel bajo de una salida debe ser inferior al umbral de una entrada para dejar cierto margen de inmunidad al ruido y para que una salida controle una, dos o tres entradas de otras puertas. El nivel alto de una salida debe ser superior al umbral de una entrada con espacio para inmunidad al ruido y conexión de varias puertas. Si conecta varias puertas en una cadena de inversores, los niveles lógicos no deberían degradarse a lo largo de la cadena. Un oscilador de anillo de tres, cinco o siete inversores es una buena prueba, compare las salidas usando un osciloscopio de dos canales.

Aquí hay algunos cálculos y valores de resistencia: http://www.play-hookey.com/digital_electronics/rtl_gates.html

La minicomputadora PDP-8, lanzada en 1965, usó DTL ( lógica de diodo-transistor ) contenida en docenas de módulos Flip Chip de la serie R de DEC. Por ejemplo, la tarjeta R121 era un conjunto de puertas NAND. En esta página se muestra una lista de las tarjetas de la serie R. A continuación se muestra el esquema de la tarjeta R121 que muestra los circuitos DTL:

ingrese la descripción de la imagen aquí

Tenga en cuenta que usó rieles de alimentación tanto positivos (10v) como negativos (-15v), casi toda la energía extraída del suministro negativo. Esta tarjeta en particular consumió 0.4 mA a 10v y 20 mA a -15v. 0v se consideró un '1' lógico y -3v un '0' lógico y se ejecutó a velocidades de hasta 2 MHz.

Los esquemas de las otras tarjetas (inversores, flip-flops, etc.) se pueden encontrar buscando en Google el número de tarjeta de la serie R.