Digital 0: Introducción

Bienvenidos al nuevo curso. Éste año tendréis por aquí más cosas nuevas como electrónica digital y electrónica de potencia. Otra vez más me voy a permitir el lujo de saltarme la gran mayor parte de la introducción, es decir, el porqué de las cosas, y vamos directos a aprender.

En digital, ya sabéis, las cosas funcionan mediante un estado binario: alto (1, o voltaje alto Vh, o H) y bajo (0, o voltaje bajo Vl, o L).

Lo que hacemos es combinar éstos estados que nos traen los sensores, botones o actuadores que ponemos a las entradas mediante puertas AND, OR y NOT para al final obtener el resultado que queramos. Sí, mediante éstas puertas se puede conseguir cualquier función lógica. Aunque en realidad la puerta más básica es la NOT seguida de la NAND, la más usada para simplificar.

¿Cómo conseguimos sacar ésas funciones lógicas?

En primer lugar, construiremos una tabla con todos los estados de las entradas posibles y la salida que se le atribuye a cada combinación. La tabla siempre tiene un número de filas correspondiente a una base 2, es decir, si tenemos 3 entradas, 2^3=8 filas. Ahí va el ejemplo:

Dtabla

Como podéis ver, se muestran todas las combinaciones posibles de A, B y C. Y sabemos en cada combinación cuál va a ser la salida que queremos. ¿Y ésto para qué? Bien, podéis sacar de ahí mismo la función mediante sumas de productos o productos de sumas. Ojo:

  • Mediante sumas de productos: lo que hacemos es fijarnos en los 1 de la salida, y para cada 1 hacemos el producto del estado de las entradas (normal si es 1 y negado si es 0), luego sumamos todos esos productos. De ésta forma sale enseguida que:

Dsp

  • Mediante productos de sumas: ésta vez nos fijamos en los 0 de la salida, y para cada 0 hacemos la suma del estado de las entradas (normal si es 0 y negado si es 1), el mundo al revés. Y luego se multiplican todas ésas sumas. No lo voy a hacer porque, he aquí la desventaja del método, es largo, y ya os lo podéis imaginar.

Vaya, ésto se hace demasiado largo, ahora teníamos 8 combinaciones, pero con 4 entradas serían 16 y con 5, 32, y ya mejor ni pensarlo. ¿Qué podemos hacer? Un mapa de Karnaugh. Es un método que, además de hacer la cosa más corta y visual, ya sale la función simplificada al máximo, sin añadir álgebra ni cosas extrañas que no queremos aprender. Aunque, éstos mapas siguen el código Gray, una forma de secuencia del sistema binario en el que las diferencias entre uno y el siguiente ocurren sólo en 1 de los dígitos: 00 01 11 10. Y el mapa se monta así:

DKarn

En éste caso no nos ha salido un mapa muy agraciado, y tenemos un 1 suelto por ahí sin pareja. Sí, la cosa se trata de emparejar unos, de dos en dos, o de 4, o de 8… Siempre en base 2. Y lo bonito es que, tal como dijeron los griegos y ratificaron Magallanes y Elcano sobre nuestro planeta, el mapa es esférico. Vamos a emparejar primero la tabla tal como está y luego la modifico un poco para ver cómo funciona:

DKarn2

En éste caso tendríamos dos grupos, uno de 2 y otro de 1 (es válido porque 2^0=1). Y la función se escribe: cojo un grupo, miro a los lados ¿El número de la entrada A cambia? Sí, pues lo quito, no, pues lo dejo. En éste caso no, y es 0, así que se incluye y negado. Tampoco cambia C y es 1 así que no negado. La B no entra porque cambia. Con el 1 que está sólo no nos queda más remedio que escribir las 3 entradas.

DKarn3

Ahora quizás no lo apreciáis bastante, pero os aseguro que se ha acortado bastante la cosa, sobre todo si vas a dibujar el circuito. Y ya ni digamos si vas a montarlo. Porque habéis pasado de usar unas 11 puertas a 6. Y se nota.

Ahora voy a hacerle un pequeño cambio a la tabla:

DKarn4Como veis, he añadido un 1 abajo a la derecha y los colores han cambiado. En realidad es una chapuza porque, como todos sabemos, azul + amarillo = verde. Lo que he hecho ha sido mantener la pareja de unos que ya teníamos antes, y emparejar a la vez el de abajo a la izquierda con el de abajo a la derecha. Porque cada extremo del mapa se une. Perdón por el mareo, pero lo vamos a ver de otra forma:

DKarn5

Ahora vamos a volver a nuestra tabla de antes, sin modificar. Hemos sacado la función, muy bien simplificada, con el mapa. Pero ahora queremos implementarla en un sistema real y, oh, necesitamos 3 circuitos integrados: 1 NOT, 1 AND y 1 OR. Y éso ocupa espacio y dinero. ¿Podemos hacer que funcione todo el circuito con sólo una compuerta lógica? ¡Sí! Normalmente entre NAND y NOR usamos la NAND, que se hace de la siguiente forma: negamos dos veces la función y aplicamos algo “mágico”.

Dboole

De ésta forma, si aplicamos la doble negación:

DNand

Como veis, aún se quedarían las entradas A y C negadas en la entrada, al principio.¿Usaremos NOT igualmente? No, porque podéis usar una puerta NAND uniendo sus dos entradas, convirtiéndola en una y ahí enganchando la entrada para negarla.

¿Qué hemos hecho con ésto? Pues ahora necesitamos 5 puertas, pero sólo 2 integrados. En éste caso, debido al 1 que andaba solitario (sí, estaba para molestar) necesitaremos un circuito integrado que lleve 4 NAND 2-Input y otro que lleve 3 NAND 3-Input, para éste circuito:

Dcircuito

No es lo idóneo que haya una NAND de 3 entradas por ahí, pero bueno, nos ha salido rana el ejemplo, es lo que tiene no preparárselo antes de escribir.

Y ésto va a ser todo por hoy, es la base y el pan digital de cada día. Todos los días nos toca hacer alguno de éstos en clase.