martes, 23 de octubre de 2012

Led RGB con Multiplexor, Demultiplexor y Sintetizador de Sonido: Laboratorio.

LABORATORIO: Por medio de dos circuito Aestables con 555, deseamos en un LED RGB, lograr la intermitencia del Led Rojo, Led Verde y Led Azul incorporados en el led RGB, tanto de una forma lenta como rápidamente.Debe haber un mensaje asociado a cada situación. Por medio de un Dip-Switch de 3 interruptores se debe seleccionar la operación así:

S2    S1    S0
 0      0      0      Led Rojo Lento
 0      0      1      Led Verde Lento
 0      1      0      Led Azul  Lento
 0      1      1      Leds apagados
 1      0      0      Led Rojo Rápido
 1      0      1      Led Verde Rápido
 1      1      0      Led Azul Rápido
 1      1      1      Leds apagados

Se pretende con este  trabajo de laboratorio manejar los conceptos de Multiplexaje y Demultiplexaje, y adquirir destreza en la aplicación del sintetizador de sonido ISD1964.

MULTIPLEXORES:
Los multiplexores son circuitos digitales combinatorios  con varias entradas y una única salida, dotados de entradas de control capaces de seleccionar una, y sólo una, de las entradas de datos para permitir su transmisión desde la entrada seleccionada hacia dicha salida.

Estos circuitos combinacionales poseen 2^n líneas de entrada de datos, una línea de salida y n entradas de selección. Las entradas de selección indican cuál de estas líneas de entrada de datos es la que proporciona el valor a la línea de salida.
Por ejemplo, la gráfica anterior presenta un Multiplexor o MUX de 2 entradas y 1 Salida, el cual dispone de una entrada de selección o de control. Es equivalente a un conmutador controlado: Si la entrada de selección sel  es 0, la salida  out es igual a la entrada de dato I0y  si la entrada de selección  sel = 1,  out se hace igual a I1. 

Un Multiplexor de 2 a 1 se implementa con 1 compuerta OR,  2 compuertas AND y 1 inversor tal como se muestra a continuación:
Si  S = 0,la salida de la primera AND es  I0,  y la de la segunda AND es 0,por consiguienteY = I0 + 0 = I0.
Si S=1,la salida de la primera AND es  0,  y la de la segunda AND es I1,por consiguiente  Y = 0 +  I1 = I1. 

Luego si I0 es la salida 3 del 555 que genera ondas de baja frecuencia y si en Y colocamos un LED con cátodo a tierra, al hacer la entrada de selección S = 0, el led debe parpadear lentamente. Si en la entrada I1 está dispuesta la salida 3 de otro circuito astable de mas frecuencia que el anterior, al seleccionar S =1, el led debe producir la intermitencia ahora de forma mucho más rápida que la anterior. 

Luego es claro que para seleccionar el Astable Lento o Rápido, requerimos de un MUX de 2 entradas/1 salida.

DEMULTIPLEXORES:

Un Demultiplexor  o un DEMUX actúa en forma inversa a como lo hace un Multiplexor.

Tal como se observa en la siguiente figura, para un MUX de 1 entrada/2 salidas,  si la entrada de selección es sel = 0, O0 = in, pero si  sel = 1, O1 = in. La única entrada in pasa a la salida O0 ó la salida O1 según se seleccione  sel con 0 ó 1.


File:Demultiplexer.png

Un MUX de 1 entrada/ 2 salidas se puede implementar como se muestra a continuación, donde A es la entrada de selección  y  IN es la entrada de dato.

Si  A = 0,  OUT 0 = IN,  pero  si  A = 1, entonces OUT 1 = IN.

El lector debe haberse dado cuenta que el circuito lógico es exáctamente igual al de un decodificador de 1 entrada de dato, con entrada de habilitación o Enable activo en nivel alto y 2 salidas activas en nivel alto.

En el decodificador  IN era la entrada de habilitación (ENABLE).

La conclusión que se obtiene es que un DECODIFICADOR con ENABLE se puede utilizar como DEMULTIPLEXOR.

El Enable en el decodificador, además de permitir la expansión del decodificador para implementar con 2 de ellos uno del doble de capacidad, es esencial para que el decodificador pueda trabajar también como demultiplexor.

En electrónica digital, en general, se puede definir un demultiplexor como un circuito combinacional que tiene una entrada de información de datos d y entradas de control que sirven para seleccionar una de las 2n salidas, por la que ha de salir el dato que presente en la entrada. Esto se consigue aplicando a las entradas de control la combinación binaria correspondiente a la salida que se desea seleccionar. Por ejemplo,en la gráfica siguiente vemos un DEMUX de 1 entrada de datos, y 4 salidas, el cual requiere de 2 entradas de selección de datos.
Si queremos que la información que tenemos en la entrada de datos, salga por la salida Y0, en la entrada de control se ha de seleccionar, S1 = 0, S0 = 0, debido a que 00  es el 0 en binario. Con S1 = 0, S0 = 1, la Entrada de Datos sale por Y1;  con S1= 1, S0 = 0, Y2  se conecta con la entrada de Datos, y si S1 S0 es 11, La Entrada de Datos que puede ser por ejemplo un tren de pulsos generado por un circuito de reloj como el 555 se conecta con la salida Y3, debido a que 11 es el 3 en Binario.




Un DEMUX de 1 entrada /4 salida se puede implementar con un DECODER de 2 entradas/4 salidas, provisto de entrada de habilitación. 

Veamos la tabla de verdad de un decodificador con Enable y Salidas activas en nivel bajo.

 Entradas            Salidas
G   B   A      Y0   Y1   Y2   Y3
0    0    0       0      1     1      1
0    0    1       1      0     1      1
0    1    0       1      1     0      1
0    1    1       1      1     1      0
1    X   X       1      1     1      1

Si cambiamos G por IN ,  B por S1  y A por S0, la tabla nos quedará asÍ:

 Entradas            Salida
IN  S1 S0      Y0   Y1   Y2   Y3
 0    0    0       0      1     1      1
 0    0    1       1      0     1      1
 0    1    0       1      1     0      1
 0    1    1       1      1     1      0
 1    X   X       1      1     1      1

Podemos concluir que si  S1 S0 = 00, Y0 = 0, que es el nivel lógico de IN, pero si S1 S0 = 00, siendo IN =1, también Y0 = 1.  Luego si S1S0 = 00, se tiene que Y0 = IN. Así mismo si S1S0 = 01, Y1 = IN,  si S1S0 = 10, Y2 = IN, y finalmente, si  S1S0 =11, entonces la salida Y3 = IN.

Podemos resumir en la siguiente tabla resumida:

S1 S0 = 00  entonces  Y0 = IN
S1 S0 = 01  entonces  Y1 = IN
S1 S0 = 10  entonces  Y2 = IN
S1 S0 = 11  entonces  Y3 = IN  

Con estas ideas del demultiplexor podemos volver al laboratorio, y vemos el esquema completo con el multiplexor:

El Led RGB trae 3 leds incorporados: RED, GREEN,BLUE, tal como se muestra.

 Puede ser de Cátodo o de Anodo común.

Respecto al sintetizador de sonido ISD1964 se direcciona con S2 S1 S0, puenteando con A2 A1 A0 respectivamente.  A3 = 0 ( tierra) por cuanto se trabajan solo los 3 bits menos significativos.

A2    A1  A0    Mensajes a grabar y reproducir:
 0      0      0      Led Rojo Lento
 0      0      1      Led Verde Lento
 0      1      0      Led Azul  Lento
 0      1      1      Leds apagados
 1      0      0      Led Rojo Rápido
 1      0      1      Led Verde Rápido
 1      1      0      Led Azul Rápido
 1      1      1      Leds apagados


Para los mensajes con el sintetizador de sonido debe disponer de un protoboard con la plaqueta con dip-switch y los pulsadores para grabar y reproducir. Recuerde que hay 2 formas de reproducir el mensaje grabado: por flanco de bajada o por nivel.

Para implementar el MUX 2 a 1  y el DEMUX 2 a 1 se puede utilizar una sóla  GAL22V10, trabajando los esquemáticos o tablas de verdad.

Si no se dispone del programador de la GAl, habría que usar lo que el comercio ofrece en TTL o en CMOS, y en lugar de programar habría que cablear más.

El chip 74157 dispone de 4 Multiplexores de 2 entradas/1 salida.

El integrado dispone de un único selector (pin 1); además, para poderlo expandir, trae una entrada de habilitación Strobe (pin 15).

El diagrama lógico del 74157 se muestra a continuación:
El integrado  74LS139 dispone de 2 DEMUX de 1 entrada/4 salidas.

Observe que las salidas del DEMUX son activas en nivel bajo. Los Leds del RGB deben ser de ánodo común.
74LS154 (74154) Pinout
Si se dispone del Decodificador/Demultiplexor  74154 también se puede utilizar como DEMUX de 1 entrada/4 salidas que es lo que se requiere en este laboratorio. Las entradas de selección D y C se llevan a tierra, y sólo se trabaja con B y A. La entrada del DEMUX  es un enable, el G1 estando G2 tambien a tierra. Como G1 es activo en nivel bajo, niega la entrada. Sólo se utilizan las salidas del "0", del "1" y del "2" del decodificador. Las demás no se conectan porque no se necesitan. Con la salida "0" se maneja el Led Rojo, con "1" el led verde y con la "2" el led azul del led  tricolor RGB.

Si tenemos D C B A = 0 0 0 0, por ejemplo, entonces la entrada por G1 se invierte y sale por "0" también negada.Luego si entra un CERO por "0" sale tambien un CERO y si entra un UNO sale un UNO lógico. Si el Led tiene su ánodo a Vcc se enciende con el CERO y se apaga con el UNO.  Como las otras salidas "1" y "2" permanecen en UNOS no se deben encender los Leds verde y azul, sino sólamente el LED rojo a la salida "0", pero siempre y cuando los Leds sean de configuración Anodo Común.

Dejamos al lector con esta animación que encontramos en Wikipedia, la cual ilustra muy bien los conceptos de Multiplexaje y Demultiplexaje que hemos estado estudiando:


Para el caso mostrado, el MUX  conmuta 5 entradas a 1 salida; el DEMUX hace lo contrario, la entrada la conmuta a 5 salidas.








Decodificadores con entrada de habilitación

Supongamos que diseñamos  un decodificador de 2 entradas B, A y con 4 salidas Y0,Y1,Y2,Y3, el cual dispone además de una entrada de habilitación (Enable): G. Veamos cual es la función de esa entrada de habilitación.


En la hoja de datos ( data sheet)  del chip se tendría una tabla de funcionamiento, con niveles lógicos altos y
bajos, (HIGH y LOW), como se muestra a continuación:

 INPUTS        OUTPUTS

G   B   A      Y0   Y1   Y2   Y3
L    L    L       L     H    H     H
L    L    H      H     L     H     H
L    H    L      H     H     L     H
L    H    H      H     H     H     L
H    X   X       H     H     H    H


La Tabla de verdad en Lógica Positiva (H=1, L=0)  es la siguiente:


 Entradas            Salidas
G   B   A      Y0   Y1   Y2   Y3
0    0    0       0      1     1      1
0    0    1       1      0     1      1
0    1    0       1      1     0      1
0    1    1       1      1     1      0
1    X   X       1      1     1      1

Interpretando la tabla de verdad deducimos que para que el decodificador trabaje generando un CERO en la respectiva salida, la entrada de habilitación debe estar también a tierra ( G = 0). Si G = 1, todas las 4 salidas Y0,Y1,Y2,Y3 quedan en nivel alto,o UNOS, indicando  que el decodificador está deshabilitado.

Las ecuaciones Booleanas serán:     Y0' =G' B' A'  de donde Y0 = G + B + A (Aplicando teorema de De Morgan).

Así mismo:  Y1' =G' B' A   de donde Y1 = G + B +  A'
                   Y2' =G' B A'   de donde Y2 = G + B' + A
                   Y3' =G' B  A   de donde Y3 = G + B' + A'

La siguiente gráfica muestra un decodificador de 2 entradas/4 salidas con Enable, donde el Enable ahora se denomina E, las entradas A1 y A0, y las salidas ahora se llaman 0o,01,02,03.
Para implementar el circuito  lógico requerimos de 4 compuertas NAND de 3 entradas cada una, tal como se muestra, teniendo en cuenta que en una compuerta NAND sólamente cuando todas sus entradas están en nivel alto su salida es de nivel bajo.
Con  dos  decodificadores de 2 entradas /  4 salidas como el diseñado podemos implementar un decodificador de 3 entradas/ 8 salidas,  utilizando la entrada de habilitación o  Enable como el bit mas significativo. Podemos hacer  G = C.

Veamos la nueva tabla:

C  B  A     Y0   Y1  Y2   Y3   Y4   Y5   Y6   Y7
0   0   0      0      1     1      1     1       1     1      1  
0   0   1      1      0     1      1     1       1     1      1  
0   1   0      1      1     0      1     1       1     1      1  
0   1   1      1      1     1      0     1       1     1      1  
1   0   0      1      1     1      1     0       1     1      1  
1   0   1      1      1     1      1     1       0     1      1  
1   1   0      1      1     1      1     1       1     0      1  
1   1   1      1      1     1      1     1       1     1      0  

Observe que  si  puenteamos  B y  A en los decodificadores,  y  utilizamos un inversor conectado al Enable del segundo decodificador ( salidasY4,Y5,Y6,Y7), estando  C  directamente a la entrada G del primer decodificador que maneje las salidas Y0,Y1,Y2,Y3,logramos implementar  el decodificador de 3entradas/ 8 salidas, que nos permite encender de uno a la vez, 8 LEDS en configuración Anodo Común, tal como se muestra en la siguiente figura:
Este decodificador de 3 entradas/8 salidas trabaja en forma similar a como lo hace el 74138:

Verificamos que se cumple la tabla de Verdad :

                      ENTRADAS                                              SALIDAS      

                        C    B    A                      Y0     Y1     Y2     Y3     Y4       Y5     Y6     Y7
                         0    0     0                      0       1       1        1       1        1        1       1   
                         0    0     1                      1       0       1        1       1        1        1       1
                         0    1     0                      1       1       0        1       1        1        1       1   
                         0    1     1                      1       1       1        0       1        1        1       1
                         1    0     0                      1       1       1        1       0        1        1       1
                         1    0     1                      1       1       1        1       1        0        1       1
                         1    1     0                      1       1       1        1       1        1        0       1
                         1    1     1                      1       1       1        1       1        1        1       0        
  

Una  conclusión muy importante  que obtenemos es que: La entrada de habilitación es la que nos permite efectuar  la expansión.   

EJERCICIO:
Diseñe un decodificador con 2 entradas de habilitación , 2 entradas / 4 salidas, de tal manera que con 4  de estos decodificadores  se puede implementar uno mas grande de 4 entradas / 16 salidas.

(a) Elabore su tabla de verdad, teniendo en cuenta que sus dos entradas de habilitación G1 y G2 son activas en nivel bajo  y sus cuatro salidas Y0,Y1,Y2,Y3 también son activas en nivel bajo.


(b) Escriba las 4 ecuaciones en Suma de Productos.

(c) Utilizando 4 compuertas NAND de 4 entradas y 4 inversores dibuje el circuito lógico. 


(d) Si se requiere implementar un decodificador de 4 entradas D,C,B,A   y  16 salidas activas en nivel  Bajo Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10,Y11,Y12,Y13,Y14,Y15 , indique gráficamente como se implementa el decodificador 4/16 usando cuatro decodificadores de 2/4 por Usted diseñados y  2  inversores adicionales.

Solución:

(a) Tabla de verdad:

 Entradas            Salidas
G1  G2    B   A      Y0   Y1   Y2   Y3
0     0       0    0       0      1     1      1
0     0       0    1       1      0     1      1
0     0       1    0       1      1     0      1
0     0       1    1       1      1     1      0
0     1      X   X       1      1     1      1
1     0      X   X       1      1     1      1
1     1      X   X       1      1     1      1

(b) Las ecuaciones Booleanas las obtenemos a partir del CERO lógico así:

Y0' = (G1' G2' B' A' ), de donde Y0 = G1 + G2 + B + A ( Aplicando Teorema de De Morgan)
Y1' = (G1' G2' B' A ), de donde Y1 = G1 + G2 + B + A'
Y2' = (G1' G2' B A' ), de donde Y2 = G1 + G2 + B' + A
Y3' = (G1' G2' B A ), de donde  Y3= G1 + G2 + B' + A'  

( c ) Circuito lógico:
( d ) Decoder 4 a 16  implementado con 4 decoder de 2 a 4:

El lector puede apreciar la importancia de las entradas de habilitación. Entre más "ENABLE" posea el decodificador mayor posibilidad de expansión se puede lograr.

martes, 16 de octubre de 2012

Pongamos a prueba nuestros conocimientos: Mapas de Karnaugh, Decodificadores, Codificadores de prioridad.



SOLUCIÓN:
1.( a )  En el Mapa de Karnaugh lo conveniente es hacer valer las 2 condiciones de indiferencia como   UNOS, con lo cual podemos obtener 2 octetos. Luego tendremos F = A'  +  C ' .
( b ) En producto por sumas, tomamos el cuarteto central de ceros, y obtenemos:  F´ = CA, y al aplicar el Teorema de De Morgan, entonces:  F = ( C A )' = C '  +  A' , que es la misma expresión Booleana que ya habiamos obtenido por Suma de Productos.
( c ) En lenguaje ABEL la ecuación se escribe:   F = ! A #  ! C;  o bien, F = ! C #  ! A; por cuanto es Conmutativo.
( d ) El circuito lógico es solamente una OR  de dos entradas, y dos INVERSORES para C y A respectivamente.
( e ) La función se puede implementar con solo una compuerta NAND:     F = ( C.A)' = C' + A'.

2.( a ) 
Decodificador de 3 entradas C,B,A;   SALIDAS: Y0,Y1,Y2,Y3,Y4,Y5,Y6,Y7

Tabla de verdad:     C    B    A     Y0    Y1      Y2      Y3     Y4     Y5   Y6     Y7
                               0    0     0      0       1         1         1        1        1     1        1
                               0    0     1      1       0         1         1        1        1     1        1
                               0    1     0      1       1         0         1        1        1     1        1
                               0    1     1      1       1         1         0        1        1     1        1 
                               1    0     0      1       1         1         1        0        1     1        1
                               1    0     1      1       1         1         1        1        0     1        1
                               1    1     0      1       1         1         1        1        1     0        1
                               1    1     1      1       1         1         1        1        1     1        0 
( b ) Ecuaciones:
                              Y0 ' = ( C' B' A' ), luego Y0 = C + B + A
                                                                     Y1 = C + B + A'
                                                                     Y2 = C + B' + A
                                                                     Y3 = C + B' + A'
                                                                     Y4 = C' + B + A
                                                                     Y5 = C' + B + A'
                                                                     Y6 = C' + B' + A
                                                                     Y7 = C' + B' + A'
3.  Codificador de Prioridad:
3.    




lunes, 15 de octubre de 2012

Solicitud de atención en clínica: Codificador de prioridad con Sonido.

Vamos a proceder como trabajo de Laboratorio a diseñar e implementar un codificador de prioridad que permita prestar atención a pacientes en un piso de una clínica que suponemos dispone de 5 habitaciones. Las habitaciones están numeradas del 1 al 5, y al oprimir un pulsador debe aparecer en un display el número de la habitación  y mediante el sintetizador de sonido ISD1964  se  debe escuchar a través de un parlante desde qué habitación se solicita la atención. La prioridad está en la habitación 1, luego le sigue en prioridad la 2, luego la 3, luego la 4, siendo la 5, la que menos prioridad tiene en ser atendida.

Veamos la tabla de verdad para el codificador de prioridad (priority encoder) requerido, donde disponemos de 5 entradas para los pulsadores,  y  de 10 salidas ( 3 salidas A2,A1,A0 para direccionar el chip de sonido, y las 7 salidas de los leds del Display Anodo Común).

P1    P2     P3     P4     P5         A2     A1    A0      a      b     c      d      e      f        g
 0      X       X       X       X           0       0       1      1       0      0     1      1      1       1    
 1      0       X       X       X           0       1        0      0       0     1      0      0      1       0
 1      1       0       X       X            0      1        1       0       0      0     0     1       1      0 
 1      1      1         0       X           1       0        0      1       0      0     1     1       0       0
 1      1      1        1        0           1       0        1       0       1     0     0      1      0       0
 1      1      1        1        1           0       0        0       1       1     1     1      1      1       1

Vamos a interpretar esta tabla de verdad. La primera fila nos dice que si P1 = 0, no importa si los otros pulsadores se están accionando o no, porque P1 tiene la prioridad, y en las salidas generamos en A2 A1 A0 el código 001 para direccionar el chip de sonido y poder grabar y luego reproducir el mensaje "Se solicita atención sala 1". Las otras salidas generan el caracter 1  en el display de 7 segmentos, ánodo común. La segunda fila nos dice que si P1 no está accionado, o sea P1 = 1, si P2 = 0 ( pulsador normalmente abierto oprimido para fijar la entrada a tierra o 0 voltios), entonces sin importar los demás pulsadores P3,P4,P5 si están oprimidos o no, se genera en las entradas de dirección A2 A1 A0 el código 010, y en el display de 7 segmentos los bits correspondientes para visualizar el 2.

Si quisieramos obtener las ecuaciones Booleanas para las salidas,necesitariamos Mapas de karnaugh de 5 variables, el cual se elabora con dos mapas de 4 variables tal como el mostrado a continuación:


Si, utilizando el programa LOGICAID, elaboramos un Mapa de Karnaugh similar al anterior para hallar la ecuación para la salida A2  encontramos:
A2  =  P1 P2 P3 P4' + P1 P2 P3 P5' .

Como es dispendioso (aunque no difícil) obtener las ecuaciones por Mapas de karnaugh, programamos la GAL22V10 manejando con el Isplever en la opción ABEL-HDL la tabla de verdad.

Equations

   Truth_Table   ( [P1,P2,P3,P4,P5] -> [ A2,A1,A0,a,b,c,d,e,f, g ])
                         [ 0, .X., .X., .X.,.X.] ->  [ 0,  0, 1,  1, 0, 0,1,1,1,1 ];
                         ...........................................................................
                          [ 1,  1,  1,    1,    1] ->  [0,  0, 0,  1, 1, 1,1,1,1,1 ];

Observe que en ABEL la condición de indiferencia se escribe .X. ( una X dentro de 2 puntos).

En la última fila de la tabla podemos observar que si ningun pulsador está oprimido se genera el código A2 A1 A0 = 000, donde no hay mensaje alguno grabado, y el display tendrá todos sus 7 leds apagados.

El bit de dirección A3 para el chip de sonido hay que fijarlo a tierra, para que solamente funcionen los 3 bits menos significativos. 

Al accionar cualquier pulsador debe activar el nivel bajo para el codificador de prioridad y a la vez activar el PLAYE del sintetizador de sonido.

Observe el diagrama para el pulsador P1, entendiéndose que para cada pulsador es un diagrama similar:
Si deseamos, en lugar de la GAL podemos utilizar un codificador de prioridad TTL como el integrado 74LS148 o su equivalente  9318:
Veamos su tabla de verdad:

El lector podrá observar que como sus salidas son activas en nivel bajo, y  si no queremos invertir A2,A1,A0, podemos entonces hacer P1 = 6 (pin 3), P2 = 5 (pin 2), P3 = 4 (pin 1), P4 = 3 (pin 13) y P5 = 2 (pin 12).

Desde luego que A2,A1,A0 debe ir al chip de sonido y a la vez a un decoficador BCD a 7 segmentos como el integrado TTL 74LS47 para la visualización en el display de ánodo común.




El diagrama completo se muestra a continuación:
No siempre tenemos a la mano el SuperproZ para programar la GAL.  Es entonces cuando se hace útil otras alternativas, como la mencionada de Lógica Cableada.










domingo, 14 de octubre de 2012

Sintetizador de sonido ISD1964: Laboratorio con Dip-Switch de 4 interruptores para grabar y reproducir 16 mensajes

El Sintetizador de sonido ISD1964 permite ser direccionado para grabar audio y luego reproducirlo en cada dirección de la memoria EEPROM interna donde fué grabado el mensaje.Como viene en encapsulado SOIC de montaje superficial, se elaboró,  mediante una tarjeta de circuito impreso,una adaptación a DIP para poder trabajarlo en la protoboard colocándole todos los elementos requeridos para su óptimo funcionamiento.Requiere de un micrófono ELECTRE polarizado, y Speaker de 16 ohmios, sirviendo los parlantes utilizados para Multimedia. La siguiente presentación en Power Point, describe resumidamente su arquitectura y forma de utilizarlo. ISD es la sigla de INFORMATION  STORE DEVICE  (Dispositivo para almacenar Información). Se pueden grabar y reproducir 16 mensajes de 4 segundos cada uno, para un total de 64 segundos, de ahí deriva el 64 en su rótulo. 













Los pines S0 (Start Input) y E0 (End Input) no se encuentran puenteadas en la plaqueta,por consiguiente hay que cablear externamente en el protoboard, y así mismo S1 con E1, S2 con E2, y S3 con E3. Quedan entonces sólo 4 pines de entradas de dirección que las podemos denominar A3,A2,A1 y A0, con los cuales podemos establecer las 16 direcciones: desde 0000 hasta 1111, donde en cada dirección podemos grabar y reproducir un mensaje de 4 segundos de duración, siempre y cuando se coloque una  resistencia de 80 KiloOhmios, como Rosc, y se pueda establecer la frecuencia de muestreo apropiada. En la plaqueta se dispone de una resistencia ya incorporada de 100 kilo-ohmios, con lo cual aumenta un poco el tiempo del mensaje a grabar pero disminuye así mismo la calidad del audio grabado. No se pudo obtener la resistencia de 80 K para montaje superficial. Para grabar se activa el pulsador REC habiendo seleccionado previamente la dirección y se habla a través de un micrófono ELECTRE sin pasarse de los 4 o 5 segundos . El Led con ánodo a Vcc, se debe encender mientras se está grabando.   Para escuchar lo grabado, en la misma dirección, se oprime el pulsador PLAYE (play Edge) o PLAYL (play Level). Un pulsador permite la reproducción por el flanco (se oprime y se suelta) y el otro pulsador lo hace por el nivel (debe permanecer el pulsador todo el tiempo oprimido en nivel bajo).

LABORATORIO:  Se trata mediante un Dip-Switch de 4 interruptores direccionar y grabar 16 mensajes.
 Al direccionar 0000 se debe grabar la palabra CERO en español e inglés, con 0001 la palabra UNO, y así sucesivamente hasta en 1111 grabar y reproducir la palabra QUINCE.




NOTA IMPORTANTE: HAGA EL PUENTE ENTRE A3 CON  A3, A2 CON A2, A1 CON A1 Y A0 CON A0. INDISPENSABLE PARA GRABAR EN TODAS LAS DIRECCIONES.

Veamos una fotografía del montaje realizado en el protoboard:

 .................................................................................................................................................................
Nota: El creador de este blog agradece públicamente a JOSE MIGUEL CEBALLOS FORERO y a su empresa KANANCE INGENIERIA de Mosquera,Cundinamarca, con su  excelente grupo de trabajo( Yamit, Michel, Edwin, Diego, Pedro, Yaneth),  por la colaboración en la importación del Chip, diseño, elaboración y pruebas de la tarjeta que nos permite trabajar con este interesante sintetizador de sonido. Los estudiantes de la asignatura DIGITALES 1, UAN,Bogotá,  están muy interesados en visitarlos y  aprender de su experiencia y conocimientos.
...................................................................................................................................................................


miércoles, 3 de octubre de 2012

Contador decodificado : Laboratorio.

Un decodificador, o  DECODER ( en inglés), como su nombre lo indica, descifra un "código". Analice el gráfico siguiente que presenta claramente la idea:
Como laboratorio, vamos a utilizar 2 GAL 22V10 para implementar un contador de anillo de 16 bits.

Utilizando un 555 como reloj, en una GAL1  implementamos un contador binario ascendente  de 4 bits, que cuente del 0 al 15 (desde 0000 hasta  1111 en binario), y aprovechando su versatilidad obtenemos las salidas Y0,Y1,Y2,Y3,Y4 y Y5, del decodificador.

Con la GAL2  elaboramos la otra parte del decodificador de 4 entradas, o sea las 10 salidas restantes (Desde Y6  hasta Y15).


Observe que las salidas Q3,Q2,Q1 y Q0 del contador de 4 bits, van conectados a los pines 4,6,8,y 10, de ambas GAL (Las entradas D,C,B y A del decodificador).

Para trabajar con el Isplever de Lattice Semiconductor para la GAL1  primero elabore el contador de 4 bits mediante tabla de estados manejando los flip-flops Q3,Q2,Q1 y Q0 como salidas modo registro,buffer:  ISTYPE 'reg,buffer'. Compile y elabore el archivo en ABEL-HDL, y genere el respectivo símbolo esquemático (una cajita con su entrada de reloj (Clock) y  sus 4 salidas:Q3,Q2,Q1 y Q0).  No es conveniente desde ya efectuar los enlaces (link) para crear el mapa de fusibles, sino que este paso lo dejamos para el final, cuando ya esté terminada la GAL con su contador y sus salidas del decodificador Y0,Y1,Y2,Y3,Y4 y Y5.   Para agregar al contador la parte del decodificador desde Y0 hasta Y5, elabore en la misma GAL22V10 ahora una tabla de verdad con entradas D,C,B,A y salidas Y0,Y1,Y2,Y3,Y4,Y5, salidas combinatorias: ISTYPE 'com,buffer'. Recuerde que el Isplever entiende el símbolo :> para la tabla de estado y  ->  para la tabla de verdad, aunque se denomina igual:  Truth_table. Genere el símbolo esquemático para el decodificador parcial Y0...Y5, y  luego cree un nuevo archivo esquemático final, donde se llaman los símbolos (cajitas) tanto del CONTADOR como del DECODER, para que les coloque las entradas : Clock, D,C,B,A  y las salidas: Q3,Q2,Q1,Q0,Y0,Y1;Y2,Y3,Y4,Y5. y compile este archivo final.
Ahora si se efectuan los enlaces (Link) y se indaga por la capacidad de la GAL para implementar lo requerido (Fit), para crear, ahora sí, el mapa de fusibles y el Chip Report, donde se presenta la configuración de pines definitiva. Desde luego que lo mas importante de todo es el archivo JEDEC (mapa de fusibles) de la GAL1, pues es el que nos exige el superpro Z para poder programar la GAL.

 Si se pretende cablear, en el archivo esquemático final, las salidas del contador Q3,Q2,Q1,Q0 con las entradas D,C,B,A, para no hacerlo manualmente en el protoboard, es probable que al compilar el esquemático se genere error al efectuar la opción FIT y no nos pueda crear el mapa de fusibles.Ello es debido a la imposibilidad de la GAL, de acuerdo a su arquitectura, para llevar las salidas del contador a la entradas del decodificador.  Para conocer estos detalles, es muy conveniente estudiar la arquitectura de la GAL ( está muy bien explicado en los capítulos 7 y 11 del libro de Digitales, Thomas Floyd, 7a.Edición).


Para la GAL2, es mucho mas sencillo el procedimiento, pues solo se requiere elaborar la tabla de verdad del decodificador con entradas: D,C,B,A y en este caso las 10  salidas combinatorias Y6,Y7,Y8,Y9,Y10,Y11,Y12,Y13,Y14,Y15.   Desde luego que hay que cablear en el protoboard D,C,B,A  a las salidas del contador Q,Q2,Q1,Q0 de la primera GAL.


Sería preferible, por consumo de corriente, que los veinte leds ( 4 del contador  y  16 del decodificador) estén en ánodo común y no en cátodo común, o sea que los leds en lugar de encender con los UNOS se encendieran con los CEROS lógicos.   


Muchas veces se requiere manejar buffer three-state ( tres estados) no inversores con el fin de amplificar corriente sin variar los niveles lógicos. 

El buffer de 3 estados se llama así porque al trabajar como un switch o interruptor a la salida además del CERO y UNO lógicos se puede tener un tercer estado de ALTA IMPEDANCIA (circuito abierto) dependiendo de una entrada de habilitación llamada ENABLE.


En el dibujo vemos que si B (Enable) vale un UNO lógico, el buffer se comporta como una compuerta YES, cumpliendo con su función amplificadora de corriente, pero si B = 0, la salida es ALTA IMPEDANCIA comportándose como un circuito abierto.

El buffer puede tener su entrada de control o Enable activo con nivel bajo tal como se observa en la siguiente gráfica:


En este caso, cuando el ENABLE = 0, el buffer se comporta como interruptor cerrado (compuerta YES), y cuando el ENABLE = 1, el buffer se comporta como interruptor abierto ( ALTA IMPEDANCIA).

A nivel comercial existen varias referencias de buffer no inversores de 3 estados, como el chip 74LS125: 


El  74LS244 ( 8 buffer con Smith Trigger incorporado para arreglar la forma de onda) se muestra a continuación:

Observe que el pin 1 dispone del ENABLE en nivel bajo para manejar 4 buffer, y el pin 19 maneja los otros cuatro buffer.

Para el laboratorio presente del contador decodificado es conveniente colocar buffer a las salidas del contador Q3,Q2,Q1,Q0 para manejar las entradas del decodificador D,C,B,A tanto de la GAL1 como de la GAL2, para amplificar corriente, y el contador no se bloquee o se altere en su secuencia, por problemas de carga.

Se recomienda, además,  para las salidas del decodificador, utilizar dos barras de 8 leds cada una, similares a la mostrada en la siguiente gráfica:
Para las salidas del contador utilizar otra barra de 4 leds:
                                                            
Con dos barras de Leds de 10 pines cada una, se tendría el número preciso de Leds requeridos.

Estas barras se pueden montar con facilidad en el protoboard y los leds consumen mínima corriente, y no causan problema por carga en la GAL. Desde luego lo recomendable es siempre usar para cada led su respectiva resistencia ( 220 ohmios, 1/4 watio). Para nuestro caso requerimos 20 resistencias.

Recuerde además que el 555 está trabajando en la primera Gal como Astable (generador de pulsos):


La frecuencia se calcula por la fórmula:  f (clk) = 1,44 / ( R1 + 2 R2). C

En caso de que el lector desease utilizar lógica cableada en lugar de la programación de las GAL, debe usar un contador comercial de 4 bits, por ejemplo, el 74LS93  y decodificarlo con un 74LS154.

El  74LS93 es un contador asíncrono implementado con 4 flip-flops J-K. 

Se puede trabajar con 3 o 4 bits, por ello dispone de 2 entradas de reloj CP1 y CP0.  Para trabajarlo con 4 bits que es nuestro caso, se conecta Q0 a CP1  y se introduce la señal astable del 555 por la entrada CP0.   MR1 y MR2 deben estar a tierra.
En lugar de CP1 y CP0 las entradas de reloj se pueden llamar CKB y CKA,  y en lugar de MR1 y MR2 las entradas para resetear el contador se denominan R0(1) y R0(2), tal como lo muestra el Data Sheet de un fabricante del integrado.Asi mismo las salidas del contador se llaman QD,QC,QB,QA en lugar de Q3,Q2,Q1,Q0, donde Q3=QD es el bit más significativo y Q0=QA corresponde al bit menos significativo.

El  74LS154 decodifica   QD,QC,QB,QA a 16 salidas activas en nivel bajo.

El 74LS154 ( de 24 pines)  dispone  de 4 entradas y 16  salidas, y   obedece la siguiente tabla de verdad:

 

74LS154 (74154) Pinout
Las salidas QD,QC,QB,QA del contador deben estar puenteadas con las entradas D,C,B,A del decodificador.



  

  









martes, 2 de octubre de 2012

¿Que tanto sabemos ?




SOLUCIONES:
1.   D             2. D             3. C             4. C              5. A    
6. D             7. A             8. D             9. A              10. B