miércoles, 31 de octubre de 2012

"Divide y reinarás": regla de oro

En la electrónica digital es muy importante tener en cuenta esta regla:"Divide y reinarás", que es un principio de Nicolas de Maquiavelo  expresada en su famosa obra "El príncipe"
Veamos, por ejemplo, uno de los laboratorios propuestos:

 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,  Demultiplexaje, y adquirir destreza en la aplicación del sintetizador de sonido ISD1964.

El estudiante tiene la tendencia de implementar en su totalidad el circuito final sin ni siquiera efectuar  la simulación antes de montar los componentes en el  protoboard.  La decepción casi siempre es el de ver que el montaje no funciona.  

Lo recomendable es dividir el proyecto de laboratorio e ir simulando y probando por partes, para que al llegar al montaje final podamos tener la satisfacción de verlo funcionando perfectamente: Ese es el "Dividir para vencer y reinar"

Desde luego,desde un principio es indispensable el esquema general en bloques de lo que tenemos que hacer, pero lo menos recomendable es implementar todo el circuito, sino trabajar por partes con paciencia y calma. Los abuelos decían que "del afán no queda sino el cansancio"


Para nuestro caso serían los siguientes pasos:
1. Implementemos en el protoboard  dos circuitos astables con 555, uno LENTO y otro RAPIDO 
    verificando su perfecto funcionamiento.
2. Implementemos un MUX de 2 entradas/1 salida, ya sea programándolo en una GAL, con su esquemático   
    ecuación Booleana o tabla de verdad y efectuemos su respectiva simulación en el Isplever. Programemos   
    GAL22V10 con solo el MUX y montemos en el protoboard los dos 555,la GAL con el MUX 2/1 y 
    utilicemos un interruptor de un Dip-Switch para seleccionar el 555 lento o el 555 rápido para el parpadeo 
    de un Led de prueba.  Si no disponemos de la GAL o de su programador, se puede utilizar uno de los 
    cuatro MUX 2/1 provistos por el integrado TTL 74LS157. Simule en ALTERA antes de montar en el
    protoboard.  Esto le permite lograr claridad en los conceptos teóricos e ir a la fija cuando implemente en
    el protoboard. Verifiquemos que el    multiplexaje es exitoso antes de seguir con el tercer paso.
3. Luego procedemos a Demultiplexar. Para ello con la misma GAL implementamos el DEMUX por su
   esquemático, ecuaciones Booleanas o Tabla de verdad en el ISPlever,efectuando su simulación respectiva,
    actualizando su mapa de fusibles (archivo JEDEC), para montar la GAL22V10 en el protoboard, con el
    MUX 2/1 y el DEMUX 1/4. Desde luego que los conceptos teóricos deben estar super claros, para
    entender a cabalidad lo que se está haciendo. Utilice tres leds por separado:rojo,verde y azul, y no por
    ahora el LED  RGB. Esto nos permite trabajar los Leds ánodo o cátodo común según nos convenga.
    Si en lugar de GAL quiere trabajar lógica discreta cableada puede utilizar el integrado 74LS139 o el
    74LS154 como DEMUX 4/1. Hay que tener claro el funcionamiento de los  Decodificadores, que a la
    vez son Demultiplexores para ponerlos a trabajar. Si no se comprende la teoría es imposible aplicarla. Si
    está trabajando en discreto puede efectuar la simulación en ALTERA.
    Utilice otros dos interruptores del Dip-Switch  como selectores S1 y S0, llamando S2 al interruptor del
    MUX. Verifique que hasta acá el circuito funcione exitosamente.
4. Ahora si trabaje el LED RGB. Identifique si es de cátodo o de ánodo común.Según el caso,puede que se
     necesiten o no tres INVERSORES a las salidas del DEMUX.
5. Por último implemente el chip de sonido. Las entrada de dirección A3 = 0, debe fijarla a tierra,por
    cuanto sólo se trabajan los 3 bits menos significativos. Es obvio que S2 S1 S0 deben estar puenteados
    con las entradas A2 A1 A0 del ISD1964 para poder grabar y reproducir los mensajes solicitados.
    Retire las resistencias de 10 K a Vcc  y las conexiones a tierra que tenía en el protoboard donde está
    manejando el chip de sonido, y deje solamente los conectores al S2 S1 S0.

Querido lector:  créame que es mejor ir despacio y caminar seguro hasta llegar a la meta, que acelerar al máximo, fracasar al final y tener que volver a comenzar.  No olvide: "para vencer hay que dividir e  ir por partes". Si Ud. aplica esta regla seguramente va a ser un vencedor en sus laboratorios. ¡Exitos!.

martes, 30 de octubre de 2012

Función lógica con Decodificadores o con Multiplexores: Análisis de casos

1.  Utilizando  un decodificador 74154  y una  compuerta adicional  implemente un circuito lógico que detecte los números primos del 0 al 15.  Un número primo es aquel que es divisible por si mismo y por la unidad. Se supone que el 1 no es primo, entonces los primos del 0 al 15 son: 2,3,5,7,11 y 13. Un Led con ánodo a Vcc, o con cátodo a tierra, debe encender sólo cuando en un Dip-Switch de 4 interruptores se coloque el binario de un número que sea primo.

La tabla de verdad del 74154 se muestra a continuación:



( a )¿Qué compuerta hay que colocar a la salida del decodificador? ¿ De cuántas entradas es la compuerta ?
( b ) Dibuje el circuito lógico.

2.¿ Si se desea utilizar 2 decodificadores 74154 para detectar los números primos del 0 al 31 como se implementaría el circuito lógico ?  ¿Aparte de los dos decodificadores qué compuertas se requieren ahora ? ¿ De cuántos interruptores es el Dip-Switch ?

3. ¿Con 4 decodificadores se pueden detectar los primos desde el 0 hasta el 127 ? ¿Como se implementa el circuito ? ¿ Qué compuertas se requieren ahora ? ¿ De cuántos interruptores es el Dip-Switch  para esta situación ?

4. La gráfica muestra la configuraciones de pines y la tabla de verdad del Multiplexor 74LS151 de 8 entradas/1 salida. El integrado dispone de una entrada de habilitación S activo con nivel bajo.
¿Si se desea detectar los números primos con dos Multiplexores 74LS151, como se implementa el circuito lógico ?   ¿ Qué compuerta adicional se requiere ?

5. ¿Si se desea detectar los números primos con sólo un  Multiplexor 74LS151, como se implementa el circuito lógico ?   ¿ Qué compuerta adicional se requiere ?






jueves, 25 de octubre de 2012

El ejemplo de Helen Keller


Muchas veces nos quejamos que el tiempo no nos alcanza para cumplir con todas nuestras obligaciones académicas por el gran número de asignaturas que se están cursando en el semestre; que hay que darle prioridad al trabajo sobre el estudio, pues el desempeño laboral es el que nos permite cubrir los gastos de la universidad; que ya se ha hecho todo lo posible pero la tarea solicitada es imposible de lograr porque es muy larga, que son demasiados laboratorios para el tiempo que se tiene para presentarlos, que los programas en el computador se bloquean, que Internet está muy lento, etc,etc. Cuando escucho de mis estudiantes este tipo de expresiones, viene a mi recuerdo la imágen de Helen Keller y de su maestra y amiga Anne Sullivan.
Invito al estimado lector a que conozca la vida de estas extraordinarias mujeres en http://es.wikipedia.org/wiki/Helen_Keller
Seguramente después de conocer esta hermosa historia "nos quejaremos menos y haremos más"  y jamás volveremos a decir "no se puede; eso es imposible; no podemos dedicarle mas tiempo  al diseño o al laboratorio,  o en el caso de nosotros los profesores expresiones como  "con esos estudiantes  se hace muy complicada mi labor como docente", "ellos no quieren trabajar", etc.

En líneas generales, los retos que nos presenta la vida se pueden clasificar en fáciles, difíciles e imposibles.
Quienes abordan los fáciles llevan una vida cómoda, pero aburrida. Los que abordan los difíciles llevan una vida penosa, aunque satisfactoria. Los que abordan los imposibles son los que dejan huella.

Una película completa sobre la vida de helen Keller, llamada "El milagro de Anne Sullivan", ( 1h:46 min),blanco y negro, se puede encontrar  en : http://youtu.be/ZI33k0pFtWU

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.
...................................................................................................................................................................