Quantcast
Channel: Ciencia, inventos y experimentos en casa
Viewing all articles
Browse latest Browse all 116

Tutorial Electrónica Básica. Cap. 18. Puertas LÓGICAS

$
0
0


Mis redes sociales:
Facebook :  100ciaencasa
Instagram:  Fotos, esquemas, dibujos...


ÍNDICE

1. Rincón de la teoría
      1.1 Sistemas de numeración: Decimal, binario, hexadecimal...
      1.2 Álgebra de Boole
             1.2.1 Qué es el álgebra de Boole
             1.2.2 Semejanza del álgebra de Boole con los interruptores
             1.2.3 Gracias al álgebra de Boole tenemos electrónica avanzada
             1.2.4 Teoremas principales del álgebra de Boole
             1.2.5 Simplificación y síntesis de expresiones lógicas
      1.3   Conceptos básicos de electrónica digital

2. Puertas lógicas
     2.1 Definición y conceptos básicos
     2.2 Las familias TTL y CMOS
     2.1 NOT
     2.2 OR
     2.3 AND
     2.4 NOR
     2.5 NAND
     2.6 XOR
     2.7 XNOR

3. Algunos circuitos basados en puertas lógicas
     3.1 Codificador
     3.2 Decodificador
     3.3 Multiplexor
     3.4 Demultiplexor
     3.5 Sumadores y restadores
     3.6 Contadores
     3.7 Registros de desplazamiento
     3.8 Unidades aritmético-lógicas
     3.9 Memorias
     3.10 Microcontrolador

4. Ejemplo de circuito digital usando puertas lógicas. Secuenciador 10 LEDs

5. El vídeo




1. Rincón de la teoría

De haber "rincón de la teoría", siempre la pongo al final del vídeo o del artículo. En esta ocasión mejor al principio, porque la vamos a necesitar para entender mejor el funcionamiento de las puertas lógicas.

NOTA: La función "exponente" no está implementada en blogger (que yo sepa), por lo que para expresar una potencia, por ejemplo, "2 elevado a 10" lo escribiré así: 2^10


1.1 SISTEMAS DE NUMERACIÓN: DECIMAL, BINARIO, HEXADECIMAL...

El sistema romano de numeración no se aviene bien con las estructuras, con las matemáticas, la informática, la electrónica, etc. En este sistema, el valor de una cifra no se deduce de forma sencilla, por lo tanto no se puede usar un algoritmo sencillo para saber qué cifra representa un número.

Por contra, están los sistemas de numeración posicionales, como nuestro sistema decimal, en donde cada dígito tiene un valor según la posición que ocupa, y un algoritmo sencillo nos permite saber el valor de un número.

El algoritmo es así: De derecha a izquierda, cada dígito es igual a ese dígito multiplicado por la potencia de 10 elevada a (la posición que ocupa - 1). 
Eso se hace con cada uno de los dígitos de la cifra, y se suman todos los valores obtenidos, dando el número resultante.

Por ejemplo, en el número 375 hay tres dígitos: "3", "7" y "5".

De derecha a izquierda:

Primer dígito: 5 x 10^0 = 5 x 1  = 5
Segundo dígito: 7  x 10^1  = 7  x 10 = 70
Tercer dígito: 3  x 10^2 = 3 x 100 = 300

Ahora sumamos los tres números obtenidos: 300 + 70 + 5 = 375.

Este tipo de numeración posicional, estructurado, permite trabajar con los números de forma muy "geométrica" y lógica.

Para entender como se forman los números en un sistema posicional es útil recordar ese mecanismo de engranajes que son los contadores clásicos, por ejemplo los cuentavueltas de los antiguos reproductores de "cassettes" así como los cuenta-kilómetros de los vehículos.




Fig 1. Contador mecánico basado en engranajes: Esencia del concepto de sistema de numeración posicional


La rueda del dígito menos significativo (la de la derecha, la de las unidades) empieza a girar. Pasa del 0 al 1, después al 2, al  tres, y así hasta llegar hasta el 9. Ya no podemos contar más con esa rueda porque el 9 es el último dígito. ¿Qué hacemos? Pues avanzamos esa rueda... y vuelve al cero, pero esa rueda lleva un mecanismo que hace avanzar una posición a la rueda que hay a su izquierda (el segundo dígito, las decenas) que ahora pasa de 0 a 1. Por lo tanto, el nuevo número formado "10" nos permite seguir contando con la rueda de las unidades hasta llegar a 19, y se repite el proceso para continuar en "20" y así...

En un sistema de numeración posicional hay un concepto llamado "base", que es el número de dígitos existentes en ese sistema. El proceso anterior de los engranajes nos ayudará a entender cualquier sistema de numeración sea la base que sea, por ejemplo:

- el sistema binario (base 2, sólo dos dígitos: 0 y 1), 
- el sistema octal (base 8, ocho dígitos: 0, 1, 2, 3, 4, 5, 6, 7) 
- y el sistema hexadecimal (base 16, con 16 dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)

En teoría, no hay límite en cuanto a la base que puede tener un sistema de numeración, pero en la práctica, los más utilizados son los tres anteriores y por supuesto, nuestro sistema base 10.

Para cada base, sólo tenemos que pensar que esos engranajes, esas ruedas, en lugar de llevar 10 dígitos, llevarán 2, 8 ó 16 respectivamente. Y que cada vez que una rueda llega al final, comienza de nuevo con el cero, empujando una posición a la rueda de su izquierda. Si por ejemplo, en base 10, tenemos el número 0999999 y avanzamos una posición, todos los engranajes pasan a 0 excepto el dígito de más a la izquierda que pasa de 0 a 1, esto es: 1000000, un millón.

El concepto elegancia no sólo se aplica a la moda y al vestir. También en ingeniería y matemáticas se llama elegante a un método o algoritmo que permite hacer las cosas con gran facilidad y versatilidad. Un sistema de numeración posicional es ciertamente un invento elegante.


SISTEMA DE NUMERACIÓN BINARIO

El sistema binario funciona exactamente igual que el decimal que acabamos de ver, sólo que en vez de haber 10 dígitos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) pues hay sólo dos dígitos (0 y 1).

Nos será de gran utilidad recordar el mecanismo contador de ruedas.

Así, para expresar del 0 al 9 en binario, lo haríamos así


0 -> 0000
1 -> 0001
2 -> 0010
3 -> 0011
4 -> 0100
5 -> 0101
6 -> 0110
7 -> 0111
8 -> 1000
9 -> 1001

Y, ¿Porqué el binario es tan relevante en electrónica, y también lo es en informática?

Por sus dos únicos dígitos 0 y 1, que por analogía pueden asociarse así:



Hay componentes eléctricos y electrónicos que pueden hacer analogía del 0 y del 1 por su forma de funcionar: Sólo pueden estar en uno de dos estados posibles bien diferenciados:



Encendido

Apagado. 


Ejemplos de algunos de estos componentes:

- Interruptores: On / Off
- Transistores: En corte / En saturación
- Relés: En reposo / Excitado
- Tiristores: En reposo / Disparado
- Flip Flop: En un estado / En el otro estado


Fig 2. Concepto booleano del 0 y el 1 desde la perspectiva electrónica.































Y aquí es donde entramos en el Algebra de Boole, en el punto siguiente



1.2 ÁLGEBRA DE BOOLE

1.2.1 Qué es el álgebra de Boole

Es una rama de las matemáticas que se encarga del estudio de la lógica combinatoria. Las variables booleanas sólo pueden tener dos estados:

                                     0 (Falso)
                                     1 (Verdadero)

En cuanto a las operaciones (funciones) que se pueden hacer con esas variables tenemos las siguientes.



1) Función NOT

- También conocida como negación, inversión o complemento

- En qué consiste:
En invertir el valor de la variable. Si era cero, pasará a ser 1. Si era 1 pasará a ser 0. Esta operación NOT actúa sobre una sola variable. Todas las demás funciones que veremos a continuación lo hacen sobre dos o más variables.

- El operador de una función NOT:
Es la palabra NOT. Entre paréntesis se encierra la variable a ser negada

Supongamos la variable booleana A = "Está lloviendo"
Así que NOT(A)  = A' = "No está lloviendo"
La forma de representar una variable negada es añadir un apóstrofe a su derecha: A'. También se puede subrayar la variable por arriba de ella.

La negación de una negación es una afirmación, por lo tanto:
NOT(A') = A   (No es cierto que no esté lloviendo = Está lloviendo)
Esta propiedad es conocida como "Ley de Involución".

- Tabla de la verdad para la función NOT:
La tabla de la verdad es una herramienta para mostrar todas las posibles combinaciones de una función sobre un grupo de variables. Como en este caso de la función NOT se trabaja con sólo una variable y sólo hay dos estados posibles, la tabla contiene sólo dos valores, los siguientes:


Fig 3. Tabla de la verdad para la función NOT

2) Función OR

- OR, la disyuntiva "O" en inglés. También se le conoce como suma lógica 
o suma booleana y como disyunción.

- En qué consiste:
Simula ser un circuito en paralelo de dos o más interruptores, por lo tanto, esta función opera sobre dos o más variables.

- El operador se escribe como el signo "+", ejemplos:

X = A + B (dos variables)

X = A + B + C  (tres variables)

Para que X sea cierta será suficiente con que al menos una variable sea cierta. Como veis, en esta operación hay analogía con los circuitos en paralelo, pues basta con que un solo interruptor de las ramas en paralelo esté cerrado (activado) para que el conjunto conduzca.

- Tabla de la verdad
¿Qué valores puede tomar la expresion A + B?
La tabla de la verdad nos lo dice:




Fig 4. Tabla de la verdad de la función OR


Ahora, como hay dos variables (A y B), hay 2^2 combinaciones, es decir, cuatro. Por eso en la tabla hay cuatro filas, cubriendo todas las combinaciones posibles. Sólo si A y B son falsas el resultado A+B será falso.


3) Función AND

- AND de "Y" en inglés. Multiplicación, producto lógico, conjunción.

- En qué consiste:
Simula ser un circuito de dos o más interruptores en serie. Por lo tanto, esta función opera sobre dos o más variables.

- El operador AND se escribe como "x", como "*" o como un punto, igual que la multiplicación "tradicional". Ejemplo:

X = A * B

X será cierta sólo si ambas variables son ciertas. Falsa en otro caso. Este es un comportamiento totalmente asimilable a un circuito en donde hayan dos o más interruptores en serie: Solo conduce la corriente si TODOS están cerrados.

Fig 5. Tabla de la verdad de la función AND


4) Función XOR

- Función "OR exclusiva"

- En qué consiste: El resultado es verdadero sólo si las variables A y B son distintas entre sí. Falso en cualquier otro caso. La naturaleza de esta función hace que sea obligatorio el uso de dos variables y sólo dos variables.

El símbolo de la operación "OR exclusiva" suele ser un signo (+) encerrado dentro de un círculo, pero por no poder representar ese carácter en blogspot, utilizaré el símbolo "arroba": @

- Ejemplo: X = A @ B


Fig 6. Tabla de la verdad de la función XOR


Las cuatro anteriores son las cuatro funciones básicas. Existen más funciones, pero son combinaciones de las 4 anteriores y las veremos en el punto 2 cuando veamos las puertas lógicas.



1.2.2 SEMEJANZA DEL ÁLGEBRA DE BOOLE CON LOS INTERRUPTORES

Parece trivial que haya analogía entre estas operaciones booleanas y el comportamiento de los circuitos paralelo y serie, pero realmente este es un hecho de gran trascendencia

Gracias a esto, se puede dotar de "lógica" a los circuitos electrónicos. Y el único límite a la complejidad de esos circuitos es el de la capacidad del ser humano que los diseñe.


1.2.3 GRACIAS AL ÁLGEBRA DE BOOLE...

El álgebra de Boole permite hacer circuitos "lógicos", y con éstos se hacen los ordenadores. La informática ha sido capaz de modificar profundamente tanto nuestra vida cotidiana como el ámbito de la investigación, en una carrera de avances que, de momento, no parece tener fin:

- Equipamiento electrónico avanzado en medicina, 
- informática e internet, 
- industria audiovisual moderna, 
- tratamiento digital de la información, 
- avances en biología, 
- telecomunicaciones fiables y estables, 
- videojuegos, 
- vehículos con cada vez más prestaciones, 
- meteorología fiable...

Nada de esto sería posible sin el álgebra de boole, en la cual se basan todos los adelantos en electrónica/informática.


1.2.4 TEOREMAS PRINCIPALES DEL ÁLGEBRA DE BOOLE

No voy a profundizar en la parte más teórica, pues es muy extensa y escaparía al propósito de este tutorial.

Al igual que ocurre con el álgebra "numérico" o "tradicional", se cumplen varias leyes básicas. No es por rizar el rizo, pero aquéllos que estén interesados en diseñar circuitos lógicos deben conocer estas leyes (y muchas otras) para poder cumplir el importante objetivo de tomar una expresión algebraica compleja y simplificarla (hacerla mas reducida). Con esto se consigue hacer lo mismo con menos operaciones (menos componentes electrónicos) o, lo que es lo mismo, con menos dinero, volumen y peso.

Otro objetivo para facilitar el diseño de un circuito electrónico gracias a la aplicación de estas leyes es conseguir, por ejemplo, sustituir una función OR por una función AND, o viceversa. Resulta que los circuitos comerciales llevan varias puertas, pero son todas del mismo tipo. Hay circuitos con varias funciones OR, y otros con varias funciones AND. Los fabricantes tienen grandes dificultades en hacer circuitos con mezcla de puertas. Si conseguimos, mediante la aplicación de estas leyes, convertir la expresión lógica a sólo funciones AND (en vez de una mezcla de AND y OR) necesitaremos sólo un tipo de circuito integrado de funciones AND en lugar de dos integrados, uno AND y otro OR.

Algunas de las principales leyes del Álgebra de Boole son:

1) Ley CONMUTATIVA en dos variables:
En la función OR:  A + B  =  B + A
En la función AND:  A * B  =  B * A

2) Ley ASOCIATIVA con tres variables:
En cuanto a la función OR o suma: (A + B) + C  =  A + (B  + C)
En cuanto a la función AND o producto: (A * B) * C  =  A * (B * C)

3) Ley DISTRIBUTIVA con tres variables
Respecto a distribuir el producto sobre la suma: A * (B + C)  = A*B + A*C
Respecto a distribuir la suma sobre el producto: A + (B * C)  = A+B * A+C

4) Ley de IDEMPOTENCIA
Para la suma (OR)  A + A = A
Para el producto (AND) A * A = A

5) Ley de ABSORCIÓN
A + A * B  = A
A * A + B = A

6) Elementos NULOS:
A + 1 = 1
A * 0 = 0

7) Ley de INVOLUCIÓN
Dos negaciones son una afirmación
(A')' = A
Demostración:
A = Llueve
A' = No llueve
(A')' =  Es FALSO que NO llueve = Llueve = A

8) Ley de MORGAN
El complemento de la suma es igual al producto de los complementos
(A + B)' = A' * B'
El complemento del producto es igual a la suma de los complementos
(A * B)' = A' + B'

Esta  ley es bastante útil para conseguir sustituir una función AND por otra OR (o viceversa) y así utilizar puertas del mismo tipo (todas AND o todas OR).

Por ejemplo, tenemos la expresión X = (A + B) + (C' * D)
Necesitamos dos OR y una AND (dos circuitos integrados, ya lo veremos...)
Aplicando la  ley de Morgan:
(A + B) + (C' * D) = (A + B) + (C' + D)'
Ahora son tres funciones OR, con lo cual necesitamos sólo un integrado.


1.3 CONCEPTOS BÁSICOS DE ELECTRÓNICA DIGITAL

En esta rama de la electrónica nos vamos a encontrar conceptos (a menudo en inglés) que conviene tener claros. Muchos de estos conceptos también se emplean en informática:

- Bit: Es la cantidad más pequeña de información. No confundir con "byte", que es una unidad mayor. Un bit puede tomar dos estados como en el álgebra de Boole: 0 (falso) o 1 (verdad). Bit es la contracción de las dos palabras Binary Digit

- LSB y MSB: Nos encontraremos a menudo con estas dos expresiones. Son respectivamente las iniciales de: Less Significant Bit y More Significant Bit. Se refiere a los bits de los extremos derecho e izquierdo (respectivamente) en una cifra.

- Byte:  Es un conjunto de bits, usualmente 8. A nivel electrónico se pueden manipular bits individuales de uno en uno, pero a nivel informático la información se suele manejar (como mínimo) en grupos de 8 bits (byte) aunque en determinados contextos se pueda manipular bit a bit tal como es el caso del código máquina, el lenguaje ensamblador y otros entornos de programación avanzada...

Con un Byte de ocho bits se pueden representar 2^8 (256) estados distintos, desde el 00000000 hasta el 11111111 (0-255).

Hay múltiplos para el byte, igual que los hay para las unidades de longitud, masa, presión, etc. 

El prefijo "kilo" indica multiplicar por 1000, o lo que es lo mismo multiplicar por la tercera potencia de 10. Pero en electrónica digital no estamos en base 10, sino en base dos (binario). La cifra más "parecida" en base 2 para expresar 1000 es: Dos elevado a 10, que es 1024. Este es el "misterio" de porqué 1K bytes son 1024 bytes y no 1000.

Así que los múltiplos del byte son:















Word: Palabra. Las dos unidades de información anteriores, bit y byte, son fundamentales, pero un sistema electrónico o informático maneja la información en agrupaciones de bits de diferente tamaño según la arquitectura con la que está hecho ese sistema. En informática, tradicionalmente se han usado 8, 16, 32, 64 y 128 bits. Es decir: 1, 2, 4, 8 y 16 bytes.

En electrónica también es así, pero hay circuitos muy sencillos con tamaño de palabra mas reducido, como 4 bits, 2 o incluso un sólo bit, como una lista.

Esto quiere decir que, por ejemplo, en una arquitectura de 8 bits, cuando se lee un dato de la memoria, se leen 8 bits, es decir, un byte (aunque sólo nos interese, por ejemplo, el bit número 3 de ese byte).

- ASCII: Iniciales de "American Standard Code for Information Interchange"
Es un código que se creó a principios de los años 60 para poder representar todos los caracteres o letras del alfabeto latino. Sigue utilizándose en la actualidad tanto en ordenadores como en circuitos electrónicos.

Un código ASCII es un byte o número de 8 bits, por lo que se pueden representar 256 símbolos. Este código ha sufrido numerosas revisiones, modificaciones y versiones desde su creación. En la actualidad el mas usado es el ASCII extendido, que abarca las 256 combinación (Las primeras versiones de ASCII sólo usaban las primeras 127 combinaciones)

El código ASCII está distribuido así:

Códigos 0 al 31:  Caracteres de control, no imprimibles, para manipular el texto, por ejemplo, salto de carro, avance de línea, retroceso, delete (borrar), activar/desactivar mayúsculas...

Códigos 32 al 126: Son los caracteres imprimibles: Letras mayúsculas, minúsculas, números y algunos signos de puntuación. El primero de ellos, el código 32, es el espacio en blanco (barra espaciadora). Por extraño que pueda parecer, en informática se considera al espacio en blanco un carácter imprimible.

Código 127: Del (Delete: Borrar)

Códigos 128-255: Es la parte extendida del ASCII, añadida después de su creación en los años 60. También son caracteres imprimibles como: Letras de otros idiomas distintos al latín, más signos de puntuación, y caracteres gráficos que sirven para, en modo texto, hacer gráficos con mas o menos "presencia".  Por ejemplo, con los siguientes caracteres, en modo texto se pueden hacer tablas, marcos, etc:


201 ╔ 
205 ═ 
203 ╦ 
187 ╗ 
186 ║ 
200 ╚
202 ╩
188 ╝
206 ╬

En un ordenador se puede imprimir directamente un carácter ASCII pulsando la tecla ALT y (sin soltarla) tecleando el código ASCII deseado en el teclado numérico (no en el teclado alfanumérico). Al soltar la tecla ALT, el carácter se imprimirá.

- Lógica positiva o negativa: Normalmente se asume que un nivel de tensión positiva de unos 5 voltios equivale a un 1 lógico, mientras que la ausencia de esa tensión (o un valor cercano a cero o "masa") equivale al 0 lógico. Esta sería la lógica positiva, que es la más común.

Hay circuitos que asumen lo contrario: Un tensión positiva de 5 voltios será entendida como un 0 lógico, y la ausencia esa tensión (masa) se traducirá como un 1 lógico: Lógica negativa.

- Reset: Inicialización. Muchos circuitos necesitan la facultad de poder ser puestos a cero y quedar en las condiciones iniciales. Suelen tener un pin o terminal dedicado a esto. A veces hay que introducir un pulso positivo para producir un reset. A veces es al revés: El pin está continuamente polarizado a 5 voltios y cuando cesa la alimentación se produce el reset.

- Enable/Disable: Disponible/No disponible. Este concepto también toma forma de terminal o pin en un circuito. Según se introduzca o no una determinada señal, el circuito estará disponible o no. Esto es útil cuando hay muchos circuitos interconectados y no se desea que uno de ellos realice una acción indeseada por una señal eléctrica que no iba dirigida a él y que sin embargo le llega de alguna manera.

- Input/Output: Entrada/Salida. A un dispositivo le puede entrar información, o bien puede salir de ella. Hay dispositivos que tienen pines en común para ambas tareas de entrada/salida. Hay otros en que los pines son exclusivos para cada una de las dos funciones.

- Read/Write: Lectura/Escritura. Concepto estrechamente relacionado con el anterior. Una lectura en un dispositivo consiste en sacar (output) información de ese dispositivo. Análogamente, la escritura supone introducir (input) información.

- CLK, CLOCK: Reloj, oscilador. Muchos circuitos necesitan una señal (normalmente onda cuadrada) para sincronizar las operaciones entre todos sus circuitos. Se conoce con este nombre no sólo al circuito que genera esta señal sino también a la señal misma. Los circuitos que necesitan reloj reciben el nombre de síncronos. Los que funcionan sin reloj, según el ritmo al que van sucediendo los eventos, se llaman asíncronos.

- CARRY OUT: Es el acarreo o "me llevo una" de la suma. También se usa para otras operaciones además de la suma. Se trata de una variable lógica (Puede ser verdad o falsa, no admite más valores). 

Los circuitos tienen una capacidad de proceso. Por ejemplo, algunos sólo pueden manejar 8 bits. Cuando esta cifra se rebasa y es necesario un noveno bit, aparece la condición "Carry Out" con lo cual el sistema "sabrá" que debe activar otro dispositivo para ampliar la capacidad. Esto no siempre es así, porque no todos los circuitos tienen esta función "carry out" y simplemente realizan operaciones erróneas (que el diseñador del circuito deberá prever).



2. Puertas lógicas

2.1 DEFINICIÓN Y CONCEPTOS BÁSICOS

Todo lo que acabamos de ver tiene un reflejo en un componente electrónico llamado puerta lógica. Para cada operación (Not, Or, And...) existe una puerta lógica con el mismo nombre.

El valor 0 (falso) se representa con una tensión entre 0 y 0.5 voltios aprox.
El valor 1 (verdadero) se representa con una tensión del orden de 3-5 voltios

Las puertas lógicas tienen forma de chip o circuito integrado.

Podemos encontrarnos con muchos tipos de chip, pero hay dos clases:

1) Chips sencillos, de baja escala de integración, con unas pocas puertas lógicas. Nosotros podemos interconectar esas puertas lógicas usando los pines del chip y hacer circuitos sencillos. En estos circuitos todas las puertas son del mismo tipo. Es decir, no hay chips sencillos con un "surtido" de puertas. Son todas AND, todas OR, todas NOT o todas XOR... de modo que si necesitamos 4 tipos de puerta, necesitaremos 4 circuitos integrados distintos aunque sólo usemos una de las varias puertas que lleva cada uno. Por eso es tan importante dominar el Álgebra de Boole a la hora de diseñar circuitos lógicos. Un ejemplo de este tipo de chip sería el circuito integrado 4011 que lleva 4 puertas lógicas NAND en su interior.


Fig 7. Circuito 4011, con cuatro puertas NAND


2) Chips con circuitos más o menos complejos, con media-alta densidad de componentes. Estos circuitos realizan operaciones complejas y las conexiones y la configuración ya están hechas en su interior. Estos circuitos si suelen tener puertas de diverso tipo, dada su complejidad. Nosotros no tenemos más que proporcionarles las tensiones y señales que necesitan algunos de sus pines, y el circuito nos devolverá los resultados en otros pines. Ejemplo de uno de estos circuitos sería una "sencilla" unidad aritmético-lógica como el integrado 40181:


Fig 8. Unidad aritmético-lógica 40181 (AllDataSheet)


Las puertas lógicas se representan con un símbolo igual o parecido a éste:


Fig 9. Símbolo de una puerta lógica

En el dibujo anterior (Fig 9) reconocemos los tres elementos implicados:

1. La propia puerta

2. Las entradas (A y B) que contienen las tensiones lógicas que representan el cero o el uno, falso o verdadero. En el punto siguiente (2.2) veremos las tensiones que corresponden al cero y al uno.

3.La salida, que contiene la señal procesada por la puerta, también tendrá una tensión correspondiente a nivel 0 o nivel 1.



2.2 LAS FAMILIAS TTL y CMOS

La familia TTL

Sobre el año 1965 comenzó a fabricarse esta familia de puertas lógicas, basadas en "lógica transistor-transistor" o en inglés "Transistor-Transistor Logic (TTL)" con transistores bipolares, que a día de hoy siguen utilizándose ya que ofrecen buenas características de velocidad de proceso y disipación de energía para muchas aplicaciones.

Reconoceremos un integrado como TTL cuando su código empieza por 74. Por ejemplo, el 7408 lo es. Concretamente contiene cuatro puertas AND. A veces aparecen dos letras delante del código: Se refiere al fabricante. Por ejemplo, en el código SN7408, las letras iniciales "SN" indican que el fabricante es "Texas Instrument".

El código de un integrado TTL también puede contener letras en medio del mismo, lo que representa una mejora. Por ejemplo, el integrado SN74LS08 también contiene 4 puertas AND, pero las letras LS indican: "L" Low-power (bajo consumo) y la letra "S" nos dice que utiliza diodos Schotkky que le confiere mayor velocidad de proceso.

La popular serie 74 no sólo consta de puertas lógicas "sueltas", también se fabrican flip-flops, registros, contadores, memorias, multiplexores, circuitos aritméticos, codificadores, etc que igualmente están basados en puertas lógicas, pero son más complejos...


Fig 10. Circuito integrado de la serie TTL. Este modelo 7400 contiene cuatro puertas NAND
Las tensiones de trabajo de esta familia TTL son:

Alimentación (+)  = 5  Voltios

Para las entradas:
Nivel 1 (verdad) : 2 - 5 voltios
Nivel 0 (falso)    : 0 - 0.8 voltios

Para la  salida:
Nivel 1 (verdad) : 2.4 - 5 voltios
Nivel 0 (falso)    : 0 - 0.4 voltios

Cualquier tensión intermedia entre las citadas supone una indeterminación que producirá resultados impredecibles. Ejemplo: Una tensión de 1.3 voltios en una entrada excede al valor máximo para el nivel lógico 0 (0.8 Volt) pero no llega al mínimo para el valor lógico 1 (2 Volt)


La familia CMOS

El nombre proviene de "Complementary Metal-Oxide Semiconductor" y se utilizan transistores NMOS y PMOS de efecto de campo en lugar de los bipolares de la familia anterior TTL

Esta tecnología fue desarrollada por FairChild Semiconductor aunque fue la empresa RCA la que introdujo CMOS al mercado con otra serie que también se haría muy popular: La serie 4000.

Un ejemplo de circuito integrado CMOS de la serie 4000 es el 4049 que contiene seis buffers inversores (función NOT), circuito que por cierto se utilizó en el "Circuitos Útiles 8. Diapasón Electrónico" para, con una de sus puertas, hacer un reloj (oscilador).

CMOS es tecnología más moderna que TTL y tiene ventajas sobre aquélla: 

1. El consumo es mucho menor,
2. es más inmune al ruido, 
3. permite mayor escala de integración, 
4. es más fácil de construir. 

Por contra, su velocidad de operación es menor que la TTL, aunque esto puede cambiar ya que las investigaciones para mejorar CMOS son constantes

... y empezamos con las puertas:


2.1 PUERTA LÓGICA NOT

También se conoce como inversora. 

Tiene una única entrada, y una única salida.
La operación que realiza es entregar a su salida la señal de la entrada pero invertida (negada). Si entra un 0 sale 1. Si entra un 1 sale 0.

El siguiente dibujo Fig 11 muestra:
- El símbolo usado para la puerta NOT
- La tabla de la verdad para la puerta NOT
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas NOT


Fig 11. La puerta lógica NOT


2.2 PUERTA LÓGICA OR

Es la puerta sumadora.

Como mínimo tiene dos entradas (puede tener más) y una salida.
La operación entrega a la salida un nivel 1 si al menos una de las entradas es nivel 1. Sólo cuando todas las entradas sean 0, la salida también será 0.

El siguiente dibujo muestra:
- El símbolo usado para la puerta OR
- La tabla de la verdad para la puerta OR
- El circuito paralelo equivalente
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas OR


Fig 12. La puerta OR




2.3 PUERTA LÓGICA AND

Es la puerta producto, multiplicación

Igualmente, tiene como mínimo dos entradas, pero puede tener más.
También tiene una salida que será 1 sólo cuando todas las entradas sean 1.

El siguiente dibujo muestra:
- El símbolo usado para la puerta AND
- La tabla de la verdad para la puerta AND
- El circuito paralelo equivalente
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas AND


Fig 13. La puerta AND


2.4 PUERTA LÓGICA XOR

Es la puerta "OR exclusiva"

Tiene dos entradas y una salida. La salida será 1 cuando las dos entradas sean distintas entre sí. Si las entradas son iguales la salida será 0

El siguiente dibujo muestra:
- El símbolo usado para la puerta XOR
- La tabla de la verdad para la puerta XOR
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas XOR


Fig 14. La puerta XOR


2.5 PUERTA LÓCIGA NOR


Esta función no la habíamos visto hasta ahora. En realidad se trata de dos funciones combinadas: Una puerta OR, y a su salida, una puerta NOT

Tiene al menos dos entradas y una salida. Hace lo inverso (complementario) de una puerta OR. Es decir, la negación de la suma. La salida será nivel 1 sólo si todas las entradas son 0.

El siguiente dibujo muestra:
- El símbolo usado para la puerta NOR
- La tabla de la verdad para la puerta NOR
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas NOR


Fig 15. La puerta NOR



2.6 PUERTA LÓGICA NAND

Esta función no la habíamos visto hasta ahora. En realidad se trata de dos funciones combinadas: Una puerta AND, y a su salida, una puerta NOT

Tiene al menos dos entradas y una salida. Hace lo inverso (complementario) de una puerta AND. Es decir, la negación del producto. La salida será nivel 1 sólo si alguna de las entradas es 0.

El siguiente dibujo muestra:
- El símbolo usado para la puerta NAND
- La tabla de la verdad para la puerta NAND
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas NAND

Fig 16. La puerta NAND


2.7 PUERTA LÓGICA XNOR

Esta también es una función resultado de dos funciones básicas: XOR y NOT, es decir, la negación de la función XOR. La salida será 1 cuando ambas entradas sean iguales.

El siguiente dibujo muestra:
- El símbolo usado para la puerta XNOR
- La tabla de la verdad para la puerta XNOR
- El cronograma de las señales (cómo se verían con osciloscopio)
- Un ejemplo de circuito comercial con puertas XNOR

Fig 17. La puerta XNOR



3. Circuitos basados en puertas lógicas

Con circuitos digitales no sólamente se hacen puertas lógicas. Hay todo un arsenal de circuitos (normalmente circuitos integrados), cada uno para un cometido que puede ser mas o menos trivial, pero juntando varios de ellos se hacen circuitos complejos.

Algunos de los circuitos digitales más comunes:


3.1 CODIFICADOR (ENCODER)

Es un circuito combinacional que tiene:

2^n entradas
n salidas

Codificadores usuales: 

Hay excepciones, pues hay circuitos con menos entradas que las correspondientes a 2^n, por ejemplo, un convertidor 10 a 4 (le corresponderían 2^4 = 16 entradas pero sólo tiene 10). Tal es el caso del integrado 74147, que convierte un número decimal del 0 al 9 en su equivalente binario del (000 al 1001). Este código binario es "entendible" por los circuitos, tal es la finalidad de un codificador.

En el 74147 cuando en una de sus 10 entradas (del 0 al 9) se introduce un nivel 1 de tensión, se genera en sus tres salidas una combinación de 1 y 0 correspondientes a un número binario.

Los codificadores se fabrican sin o con prioridad. Sin prioridad significa que si se introduce más de una entrada simultáneamente la salida será errónea o indeterminada. Con prioridad significa que si se pulsan dos o más entradas al mismo tiempo, la salida será la correspondiente a la entrada más alta (prioridad alta) o la correspondiente a la entrada mas baja (prioridad baja).

En la figura 18 siguiente, un codificador con las 9 entradas (10 en realidad) a la izquierda, las 4 salidas a la derecha, y su tabla de verdad en donde vemos como el número binario generado a la salida se corresponde con el número decimal de la entrada que ha sido activada a nivel 1. Os preguntaréis porque hay 9 entradas (1 al 9) y no 10 entradas (0 al 9). La razón es que la entrada 0 no es necesaria: Si ninguna de las 9 entradas tiene nivel alto, se asume que se trata del valor 0.


Fig 18. Codificador 10 a 4 y su tabla de la verdad

Los codificadores más comunes son:

De 8 a 3
De 10 a 4, llamado también Decimal a Binario (el mostrado en Fig 18)


3.2 DECODIFICADOR (DECODER)

Es el circuito inverso al anterior, el codificador. Para n entradas hay 2 elevado a n salidas. A las entradas se les aplica una combinación de 0 y 1 que se corresponden con un número BCD (código binario) y el decodificador devuelve una salida nivel 1 en el pin correspondiente a ese número. Los decodificadores más comunes son:

2 a 4
3 a 8
4 a 16

Estos circuitos se utilizan para "traducir" el binario (sistema apto para circuitos) a un sistema más manejable por los humanos, como el decimal.

El circuito integrado 7442 es un decodificador BCD a decimal. Tiene 4 entradas, por lo que puede aceptar un número binario desde 0000 a 1111 (de 0 a 15 en decimal) lo que representa 16 valores posibles. Sin embargo sólo se usan los 10 primeros valores, por eso tiene 10 salidas (del 0 al 9). 

Sólo una de las salidas estará activada para cada una de los 10 combinaciones posibles en la entrada.

Las entradas se activan cuando se les aplica tensión alta (5 voltios)
Por el contrario, las salidas normalmente están en estado alto y pasan a nivel bajo cuando están activas (lógica negativa).

En el siguiente esquema vemos el integrado 7442 y su tabla de la verdad. 
Las entradas A, B, C y D toman todos los valores posibles de 0000 a 1001 (de 0 a 9), y las salidas de Z0 a Z9 tomarán valor 0 según dichas entradas.

Fig 19. Decodificador BCD a decimal

Hay un caso especial de decodificador, que se usa para activar los displays de siete segmentos basados en LEDs. Es el decodificador BCD-Decimal o también conocido como BCD-7 Segmentos (pues 7 son los LED que conforman cada dígito de un display)

Digo que es un caso especial porque al aplicar a la entrada un número binario de 4 bits se pueden activar VARIAS salidas A LA VEZ (y no sólo una), pues para conformar un número en un display es necesario activar varios LED y no sólo uno. En el caso de querer visualizar un ocho, se activan los siete LEDs, en el caso de visualizar un 3, se activan cinco...

La figura siguiente con un 4511 de la familia CMOS (también lo hay en TTL), servirá para entender el concepto de este decodificador y el funcionamiento del display de 7 segmentos:


Fig 20. Decodificador BCD a 7 segmentos, para gestionar un display



3.3 MULTIPLEXOR (MULTIPLEXER)

Supongamos que tenemos 8 cables, y cada uno transporta "información", es decir, ceros y unos (0 voltios - 5 voltios). Cada cable transporta un bit, que según pasa el tiempo puede ser cero o uno. Entre los 8 cables se forma una cantidad de información conocida como byte. 8 bits = 1 byte.

Con 8 bits se pueden representar 2^8 (256) estados distintos, por lo que se puede representar desde el número 00000000 al 11111111 (del 0 al 255 en decimal).

Ahora bien, ¿No podríamos hacer una especie de "autopista" para hacer pasar a esos 8 bits por UN SÓLO CABLE, en fila india? Con esto, los circuitos serían más simples y baratos, pues no es lo mismo tender ocho cables que uno. En el caso de ser 64 bits (64 cables), la ventaja sería muchísimo mayor.

El componente para hacer esto se llama MULTIPLEXOR

Tiene tres grupos de terminales o patillas:

Entrada: puede tener 2^n entradas
Selección: son n terminales selección
Salida: Una

Hay multiplexores para 2-1, 4-1, 8-1, 16-1...
A veces van varios multiplexores en un mismo integrado.

En la figura 21, un multiplexor de 8 entradas (I0, I1, I2, I3, I4, I5, I6, I7). 

Para SELECCIONAR qué entrada se va a enviar a la salida Z están las tres líneas de selección S0, S1 y S2 que pueden adoptar el estado 0 o el 1.

Como S0, S1 y S3 son tres variables, los estados posibles son ocho, justo el número de entradas:

S0   S1  S2        ACCIÓN
 0    0    0  ---> Aparece en la salida Z el dato de entrada I0
 0    0    1  ---> Aparece en la salida Z el dato de entrada I1
 0    1    0  ---> Aparece en la salida Z el dato de entrada I2
 0    1    1  ---> Aparece en la salida Z el dato de entrada I3
 1    0    0  ---> Aparece en la salida Z el dato de entrada I4
 1    0    1  ---> Aparece en la salida Z el dato de entrada I5
 1    1    0  ---> Aparece en la salida Z el dato de entrada I6
 1    1    1  ---> Aparece en la salida Z el dato de entrada I7

El pin 7 de ese chip es el Strobe, que es la señal del reloj para que todo vaya acompasado y sincronizado. Cuando la señal proveniente del reloj sea nivel bajo (0) se produce la acción de traspasar una entrada a la salida, y la señal traspasada será según la combinación formada (en ese momento) por las líneas de selección S0, S1 y S2.

El chip es un 74151 (74LS151)

Fig 21. Multiplexor 74LS151 de 8 entradas.


3.4 DEMULTIPLEXOR (DEMULTIPLEXER)

Hace lo contrario que el circuito multiplexor anterior.

Le llega una línea de datos de un solo cable, y mediante n selectores distribuye los datos que le llegan a 2^n salidas.

Los  hay para 1 a 2, 1 a 4, 1 a 8, 1 a 16...
A veces van varios demultiplexores en un mismo integrado.

En la figura 22, un 74LS155, un integrado que incorpora dos demultiplexores de 1 a 4. Vemos: El símbolo para el demultiplexor, su tabla de verdad y la distribución de pines del 74LS155.


Fig 22. Demultiplexor 74LS155 dual de 1 a 4


3.5 SUMADORES Y RESTADORES (ADDER)

En esta ocasión no hablo de la suma lógica o función OR, sino de la suma en el sentido aritmético (no lógico). La suma tradicional. Hay dos tipos de sumadores: 

Semisumadores y sumadores. 

En los primeros no se tiene en cuenta el acarreo (me llevo una) de sumas anteriores. En los segundos si, y la suma es completa teniendo en cuenta el acarreo de una suma anterior, así como la generación de un posible acarreo en la operación actual.

Ejemplo de suma binaria de dos cifras de 4 bits en binario

*    * *    <-- acarreo
   1 0 1 1
   1 0 0 1
-----------
1 0 1 0 0

Para hacer estas operaciones están los sumadores. En el ejemplo se ha hecho con cifras de 4 bits, pero se pueden hacer con menos o con más bits.

En la figura 23, un circuito integrado sumador 7483 para dos cifras de 4 bits con acarreo. En este integrado hay varios grupos de pines:

- Los de alimentación + y -
- Dos grupos de 4 pines para introducir los dos números de 4 bits
- Un grupo de 4 pines para la salida sumada
- Un pin para el acarreo entrante (operación anterior)
- Un pin para el acarreo saliente (operación actual)

Uno se puede preguntar: "Si sumamos dos números de 4 bits, el resultado puede ser a cinco bits" (si hay acarreo, como ha ocurrido en el ejemplo anterior de suma). Pues bien, para eso está el pin 14 del acarreo saliente, que en realidad sería el quinto dígito (el más significativo) de la suma realizada.

Fig 23. Sumador 7483. Dos operandos de 4 bits


3.6 CONTADORES (COUNTER)

Básicamente, un contador es un conjunto de flip-flops encadenados, de modo que cuando uno de ellos pasa del 1 al 0 (hay acarreo) el flip-flop siguiente (mas significativo) avanza una posición, lo que a su vez puede producir el avance del siguiente flip-flop. Es una estructura como aquél conjunto de engranajes que los cassettes antiguos llevaban para contar las vueltas, sólo que en esta ocasión en vez de ser un ingenio mecánico con "n" engranajes, lo es con "n" circuitos flip-flop. En el contador mecánico cada rueda llevaba impresos los números del 0 al  9.  Aquí, la imaginaria rueda que es cada flip-flop sólo tiene 0 y 1, pero da igual. Harán falta más dígitos, pero con binario se puede contar igualmente hasta cualquier número.

Hay contadores de bastantes tipologías, y los hay para unos pocos dígitos o para muchos, y si un contador sólo no es suficiente para tratar con números de muchos dígitos, se pueden encadenar entre ellos, de modo que con dos contadores para 12 bits (encadenados) se puede contar (por ejemplo) a 20 bits.

En la figura 24, hay un contador para 4 bits, lo que permite contar desde un valor 0000 al 1111, (del 0 al 15 en decimal). 

Si el contador de la fig 99 en vez de ser 4 bits (4 flip-flops) fuese de 16 bits (16 flip-flops), se podría contar hasta el número 2^16 = 65535 (Y no 65536 porque también está el 0, recordad siempre esto del cero).

El circuito 4040 utilizado en el vídeo del afinador electrónico es de este tipo: Un contador, concretamente de 12 bits. Allí se utilizó como divisor de frecuencia, porque otro uso para un contador (además de contar) es como divisor de frecuencia. Si tenemos en cuenta que conforme avanzamos hacia la izquierda cada flip-flop funciona a la mitad de velocidad que el que hay a su derecha, ya tenemos el concepto de división de frecuencia:

Según la figura 24:
Al flip-flop FF1 se le aplica la frecuencia del reloj
... y sale a una frecuencia mitad por SA0
en el flip-flop FF2 la frecuencia es la cuarta parte
en el FF3 la octava parte
y en el último flip-flop, el FF4, la dieciseisava parte.

Fig 24. Contador 74393, dual de 4 bits


3.7 REGISTROS DE DESPLAZAMIENTO (SHIFT REGISTER)

Imaginemos una hilera de personas. Unas llevan un objeto en la mano (lo que representa un 1), otras no llevan nada (representa un 0). A una orden (pulso de reloj) la persona más a la derecha (entrada) recibe (o no) un objeto en su mano y le cede el objeto que llevaba previamente (si es que llevaba alguno) a la persona de su izquierda.

Y simultáneamente todas las personas hacen lo mismo:

- Ceden su objeto a la persona a su izquierda. Si no lleva nada, no le da nada.
- Toman el objeto de la persona a su derecha. Si no le dan nada, no toma nada

De este modo, los objetos (información) se van desplazando a la izquierda.
Un registro de desplazamiento hace eso con una sucesión de ceros y unos.

Hay registros de desplazamiento de muchos tipos:

1) Con una longitud de dos bits nada más... o con 128, aunque lo usual es que sean de 4 y 8 bits, especialmente de 8 por constituir un byte.

2) Los hay que desplazan a la derecha, a la izquierda, o bidireccionales.

3) Los hay "programables", de modo que pueden tener una longitud de fábrica de, por ejemplo, 64 bits, pero quizás nosotros necesitemos 34 bits nada más. Pues bien: Se le puede "decir" al circuito que se limite a esa longitud de 34 bits  (los otros 30 no se usarían).

4) La accesibidad también puede ser distinta, con entrada-salida serie, paralelo, y universales.

La utilidad de los registros de desplazamiento es muy variada:

1) Almacenar temporalmente una información
2) Secuenciadores (por ejemplo, para luces)
3) Multiplicar x 2 (Cada desplazamiento a la izquierda multiplica x 2)
4) Dividir x 2 (Cada desplazamiento a la derecha divide entre 2)
5) Puertos de salida de los microprocesadores y un largo etc...

Suelen llevar un pin Reset para poner simultáneamente todos los bits a cero y no tener que hacerlo introduciendo ceros en la entrada.

En la figura 25, un registro de desplazamiento de 8 bits


Fig 25. Registro de desplazamiento de 8 bits 74HC164


3.8 UNIDADES ARITMÉTICO LÓGICAS (ALU: ARITHMETIC LOGIC UNIT)

Realizan operaciones aritméticas básicas como sumas, restas, divisiones y también operaciones lógicas (not, or, and...). Las unidades más avanzadas son también capaces de hacer operaciones más complejas, como potencias, raíces, funciones trigonométricas, y manejar números enteros así como fraccionarios con gran precisión...

El circuito integrado CD40181 es un ejemplo de unidad aritmético lógica (UAL) o del inglés (ALU). Tiene 24 pines dispuestos en configuración DIL, dos hileras de 12 a cada lado.

Puede realizar:
- 16 operaciones matemáticas sobre 2 registros de 4 bits
- 16 funciones lógicas sobre dos variables booleanas

En la figura 26, una unidad aritmético lógica CD40181 con sus grupos de pines, clasificados por funciones:

- Alimentación
- Entrada a 4 bits operando 1 (pines 2,  23,  21 y 19)
- Entrada a 4 bits operando 2 (pines 1, 22, 20 y 18)
- Salida (pines 9, 10, 11 y 12)
- Entrada acarreo (pin 7)
- Salida acarreo (pin 16)
- Selección de modo (pin 8)
- Selección de función (pines 6, 5, 4 y 3)


Fig  26. Unidad aritmético-lógica 40181



3.9 MEMORIAS

Este dispositivo tiene una función bien clara y conocida: La de almacenar información. Sin embargo, conviene aclarar que "memorias" las hay de muchísimos tipos, y en este componente los avances son continuos, por lo que a cada poco aparecen nuevos tipos o modalidades.

Una memoria está compuesta por una estructura de 2^n celdas o posiciones de memoria, y cada una de ellas almacena un 1 ó un 0: Un bit. Estas celdas pueden ser escritas/leídas bit a bit, o pueden ir agrupadas en "palabras", que son grupos de bits. Típicamente pueden ser de 1, 2, 4 y 8 en electrónica digital sin grandes  pretensiones, pero hay memorias organizadas en palabras de 16, 32, 64, 128 e incluso más bits.

Todas  las memorias tienen dos operaciones básicas:
- Leer un dato de ellas.
- Escribir un dato en ellas

Una memoria puede ser tan pequeña como el integrado 7481 de la familia TTL que tiene tan sólo dieciséis bits (hay aplicaciones que no necesitan más), o tan grande como de varios Gigabytes como las usadas en ordenadores. Hay muchísimas arquitecturas para las memorias, muchas formas de organizar y acceder la memoria, pero tienen algo en común:  Hacen falta tres mecanismos para poder gestionarlas:

1) Dirección: Cada posición de memoria tiene una dirección, y cada dirección apunta a una sola posición de memoria. Hay veces en que la dirección es un simple número binario (memoria tipo lista),  otras veces son dos números (fila y columna para una estructura array o matricial). En cualquier caso, el número de direcciones necesarias para gestionar una memoria de tamaño 2^n elementos, es n. Por ejemplo:

2) Datos:  El el puerto o lugar por donde entra (o sale) la información hacia (o desde) la memoria. Según como sea la memoria, cada dato puede constar de 1, 2, 4, 8, 16,... etc  bits

3) Control:  Es la parte que realmente controla a la memoria. Decide  si la operación va a ser de lectura o de  escritura. También habilita o deshabilita al chip para hacer una operación.

Cada uno de los tres apartados anteriores, como se trata de un conjunto de líneas (una para cada bit), recibe el nombre de "bus". Así, está el bus de direcciones, el bus de datos, y el bus de control.

Veamos como trabaja una memoria:

OPERACIÓN DE LECTURA
1) Se envía al bus de direcciones el número correspondiente a la dirección que se desea leer.
2) El bus de control emite la orden de lectura (a la dirección del punto 1)
3) El dato es transferido desde la memoria al bus de datos, desde donde se puede llevar allá donde haga falta.

OPERACION DE ESCRITURA
1) Se envía al bus de direcciones el número correspondiente a la dirección que se desea escribir.
2) Se pone el dato a escribir en el registro de datos
3) El bus de control emite la orden "grabar" y el dato es transferido.

Los parámetros más importantes de una memoria son:

- Su capacidad. La cantidad de información que puede almacenar
- Tiempo de acceso. Parámetro muy importante. No todas las memorias son igual de rápidas. Por ejemplo, las memorias SRAM basadas en transistores son rápidas (pero ocupan bastante espacio). Las memorias DRAM por el contrario son algo más lentas, pero compensa el hecho de que a igualdad de volumen tienen más capacidad.

Las memorias pueden ser volátiles o no volátiles según se pierda o no su información cuando se interrumpe la corriente. Un ejemplo de memoria no volátil es la FLASH, como la de los Pendrive, que no necesitan alimentación para retener la información grabada en ellos y además son regrabables.

Las memorias SRAM son bastante más fáciles de manejar que las DRAM por no necesitar refresco, se accede directamente a los datos sin multiplexores, y sólo tienen tres buses de control:

- Chip Enable (CE)  Habilitar chip
- Write Enable (WE)  Escritura disponible
- Output Enable (OE)  Lectura disponible

En la figura 27, una memoria 74F189 de 64 bits con 16 palabras de 4 bits


Fig 27. Memoria 74F189 de 16 x 4 bits (64 bits)


3.10 MICROCONTROLADOR

No hay que confundir microcontrolador (µC) con microprocesador.(µP). Son similares pero hay diferencias.

Un µP (como el que llevan nuestros ordenadores) es capaz de realizar tareas muy diversas. Su unidad central de proceso (UCP o CPU) no contiene la memoria principal, ésta es externa a la CPU, así como muchos otros elementos necesarios para su funcionamiento. Un µP es muy versátil, de ahí su utilidad. Con un programa adecuado y con los periféricos necesarios puede realizar tareas tan dispares como:

- Procesar texto, gráficos, sonido, información (bases de datos)
- Gobernar un CNC o una impresora 3D, que pueden crear piezas reales
- Imprimir grandes y complejos planos
- Procesar ingentes cantidades de datos meteorológicos y emitir predicciones
- Programar a otros dispositivos (PIC's, teléfonos, otros ordenadores...)
- Gestionar un complejo sistema de alarma
- Gestionar el tráfico aéreo

Por el contrario, un µC tiene todos sus elementos (UCP, memorias y demás) integrados en un chip y está dedicado a una tarea concreta. Como contrapartida es menos voluminoso y mucho más barato que un µP. 

Por supuesto que un sistema de alarma se puede gestionar con un µP, pero sería mucho más lógico (y barato) hacerlo con un µC.

Los µC son típicos de sistemas cerrados o empotrados. Un sistema recibe el nombre de "empotrado" si el µC está alojado en el dispositivo a gobernar.

Ejemplos de dispositivos que usan un µC:
- Electrónica de un automóvil
- Piloto automático en un barco
- Control de las funciones en un TV, DVD, Vídeo, A/Acondicionado...
- Alarmas
- Inversores de onda senoidal pura
- Juguetes electrónicos complejos
- Un receptor de GPS
- Un tensiómetro digital, para medir la tensión arterial
- Incluso un horno microondas, a poco que lleve display y temporizador no mecánico, ya lleva un µC

Las partes o sub-circuitos que constituyen un µC son:

- Unidad central de  proceso
- Memorias (RAM y/o ROM)
- Unidad aritmético lógica
- Unidad de control
- Gestión de los buses: Direcciones, datos y control
- Puerto de comunicaciones
- Reloj, para sincronizar el funcionamiento
- Otros como multiplexores, codificadores, convertidores A/D, etc...

Ejemplos de microcontroladores populares, ambos programables, son:

1) Circuitos integrados de la familia PIC
2) Arduino


Fig 28. El popular y versátil microcontrolador Arduino




4. Ejemplo de circuito digital usando puertas lógicas

A continuación vamos a realizar en protoboard un sencillo circuito hecho con puertas lógicas que produce el encendido secuencial de diez diodos LED. En este circuito veremos varios conceptos:

- El uso de un circuito 555 como oscilador (reloj)
- Como proporcionar esa señal de reloj a un circuito (al CD4017)
- El uso de un contador de décadas (10 bits)
- Posibilidad de encadenar dos CD4017 para gestionar 20 LEDs

El circuito consta de dos circuitos integrados:

1) Un 555. Todas las operaciones del circuito 4017 irán "al  ritmo" de  este reloj. No será necesario cristal de cuarzo ya que la precisión y estabilidad de frecuencia en este caso no es prioritaria.

2) Un CD4017, un contador de 10 etapas que, gobernado por el circuito anterior, encenderá y apagará los LEDs en secuencia.

El esquema:


29. Secuenciador de décadas con un 4017

La frecuencia del reloj dependerá de los valores de R2 y C1 en el chip 555.
Con los valores del esquema la frecuencia es de aproximadamente 2 Hz.

Esta señal de reloj, que sale del pin 3 del 555 se introduce en el pin 14 del segundo integrado, el contador CD4017. Cada vez que a este pin 14 le llega un flanco ascendente de la señal de onda cuadrada, da un paso adelante: Apaga el diodo que actualmente esté encendido y enciende el siguiente.

Cuando se enciende el diodo final (salida O9), el siguiente pulso de reloj provoca que comience la cuenta de nuevo en la salida O0, y además la salida Carry Out (pin 12) se pone a 1, lo cual nos serviría como señal de reloj para un segundo CD4017 y así poder gestionar 20 LEDs

Los pines para encender los diodos son: 3, 2, 4, 7, 10, 1, 5, 6, 9 y 11 y en este orden (no son correlativos).

Los pines de alimentación en el 4017 son: 8 (-) y 16 (+)

El pin 13 (Disable=Deshabilitar). sirve para el caso de tener varios CD4017 en un mismo circuito. Si este pin se polariza con positivo, el CD4017 queda como "sordo", no obedece a las entradas de señal de reloj en su pin 14. De esta manera  podemos decidir cuando debe funcionar o no un CD4017. Este no es nuestro caso, así que lo conectaremos a masa.

El pin 15 (RESET, Puesta a cero). Cuando se le envía un 1 lógico (pulso de tensión positivo) este pin detiene la secuencia de los LEDs y comienza de nuevo desde el primer LED. Nosotros no usaremos el reset, lo conectaremos a masa (negativo, o nivel lógico 0).

Es posible recurrir a un truco con este pin "RESET": ¿Y si queremos hacer la cuenta no con 10 LEDs sino con, por ejemplo, seis?. Lo conseguiremos quitando los diodos 7, 8, 9 y 10 y poniendo la salida del séptimo diodo a RESET. Así, cuando le toque encenderse a este led lo que hacemos es provocar un RESET después de encenderse el sexto led, y la cuenta comienza de nuevo.

El pin 12 (CARRY OUT), que en este montaje nosotros no usamos y dejaremos al aire, sin conectar. Es el CO (Carry Out o "me llevo una"). Después de que el CD4017 ilumina el último LED (el pin 11), se produce un pulso positivo (nivel lógico 1) en este pin 12 el cual serviría como entrada de reloj para un segundo CD4017, y así poder gestionar otros 10 LEDs más, 20 en total. Como veis, un segundo CD4017 no necesitaría reloj-oscilador pues los pulsos de reloj le vendrían del carry out del primer CD4017. Muy ordenado, muy estructurado todo...




5. El vídeo






Mis redes sociales:
Facebook :  100ciaencasa

Viewing all articles
Browse latest Browse all 116

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>