miércoles, 12 de diciembre de 2012

Descarga e instalación de IspLEVER classic 1.6 de Lattice Semiconductor

El IspLEVER classic 1.6 de Lattice Semiconductor lanzado en agosto del 2012  permite trabajar dispositivos lógicos programables PLD sencillos como la GAL22V10 en forma esquemática, o utilizando lenguajes de programación para  descripción de hardware HDL tales como ABEL (Advanced Boolean Expressions Language) o VHDL (Very high speed integrated circuits Hardware Description Language).

Para descargar e instalar el programa se recomienda seguir la secuencia siguiente:

1. Ir a la página de Lattice Semiconductor : www.latticesemi.com

    Se puede traducir al español.


2. Ir a PRODUCTOS....Diseño de Sofware....ispLEVER  Classic


3. Vienen indicados luego tres pasos a seguir para descargar e instalar el software. Veamos:

Como sólo se va a trabajar con la GAL22V10 sólo descargue el archivo ispLEVER Classic Base de Módulo en una carpeta que puede llamar ispLEVER 2013, por ejemplo.

4.Descomprima el archivo, y luego al dar doble click  sobre el ejecutable se inicia el proceso de instalación.Este es el PASO 2.

5. Luego hay que solicitar una licencia gratuita por un año.
Al dar doble click en página de licencias en el  PASO 3 se va a una nueva ventana donde se nos invita a que nos registremos:
Para crear una cuenta nueva  escribimos nuestro correo electrónico  y  elegimos una contraseña. Hay que tener paciencia porque hay que llenar un formulario con la información personal, etc.

Cuando ya tengamos guardado el formulario completo podemos entrar a nuestra cuenta WEB de Lattice para solicitar la licencia:

Para enviarle  su licencia LATTICE le solicita actualizar su cuenta y el HOST de su computador, así:
Para conocer su NIC HOST en Ejecutar en   Inicio  escriba CMD para abrir una ventana  de MS-DOS y luego escriba 
ipconfig / all.    Los doce caracteres alfanuméricos del hexadecimal  deben escribirse sin guiones.
Colóquelo el NIC HOST  en el espacio indicado y de Click en generar licencia.

Su licencia llega inmediatamente al correo electrónico registrado como un archivo  license.dat adjunto.

6. Si anteriormente  ya ha descargado o instalado  cualquier software ispLEVER de Lattice Semiconductor  debe borrar todas las carpetas y archivos relacionados para que no se genere ningún conflicto.


Luego, el archivo license.dat debe copiarse en la carpeta License del archivo descargado y descomprimido.


Debe dar ahora doble Click en la Aplicación remoted y reiniciar el computador.

Aparecerá instalado el programa:


Al abrir el navegador de proyectos debe estar listo para trabajar:


............................................................................................................

martes, 20 de noviembre de 2012

Evaluemos nuestros conocimientos sobre Electrónica Digital Combinacional

Estimado lector: lo invitamos a desarrollar los tres ejercicios que le presentamos a continuación: 

Esperamos haya resuelto correctamente cada uno de los 3 ejercicios propuestos.  A continuación volvemos a cada uno de ellos con su respectiva solución:

miércoles, 14 de noviembre de 2012

Unidad Aritmético Lógica: Diseño completo de una ALU de 4 bits

La unidad aritmético lógica, también conocida como ALU(siglas en inglés de arithmetic logic unit), es un circuito digital que calcula operaciones aritméticas (como  suma, resta,  etc.) y operaciones lógicas (OR, AND, XOR, etc), entre dos números binarios. Es parte fundamental de un microprocesador.

 Se recomienda consultar: http://es.wikipedia.org/wiki/Unidad_aritm%C3%A9tico_l%C3%B3gica

El método más simple y directo de diseñar un CIRCUITO LÖGICO de una ALU se muestra a continuación, tal como se plantea en el texto "Lógica Digital y diseño de Computadores" de Morris Mano para una etapa de 2 bits Ai y Bi.
EJERCICIO: Simular en ALTERA el Circuito Lógico indicado en la gráfica anterior.

El circuito debe repetirse n veces para un circuito lógico de n bits. Las cuatro compuertas generan las 4 operaciones lógicas OR, OR EXCLUSIVA, AND y NOT. Las 2 variables de selección en el Multiplexor seleccionan una de las 4 compuertas en la salida.

Al igual que el circuito lógico se puede diseñar un circuito  aritmético, en el cual además de las entradas Ai   y Bi debe tenerse en cuenta el acarreo de entrada Ci, y en su salida además de Fi, en este caso se agregaría  el acarreo  de salida Ci+1

Veamos la siguiente tabla de función para el circuito aritmético en una etapa:

S1       S0       Ci             Salida                              Descripción de la función realizada
0          0         0              Fi = Ai                               Transfiere Ai
0          0         1              Fi = Ai mas 1                     Incrementa Ai
0          1         0              Fi = Ai  mas Bi                   Suma Ai con Bi
0          1         1              Fi = Ai mas Bi mas 1          Suma Ai con Bi mas acarreo
1          0         0              Fi = Ai mas Bi´                   Suma Ai con el complemento de B
1          0         1              Fi = Ai mas Bi´ mas 1         Resta Ai menos Bi
1          1         0              Fi = Ai menos 1                  Decrementa Ai
1          1         1              Fi = Ai                                Transfiere Ai  

El diagrama para la unidad aritmética de una etapa es el siguiente:
El circuito lógico puede ser combinado en el circuito aritmético para producir una unidad lógica aritmética. Las variables de selección S1 y S0 pueden hacerse comunes a ambas secciones siempre y cuando se use una tercera variable de selección S2 para diferenciar entre los dos.

Las salidas de los circuitos lógicos y aritméticos de cada estado pasan por un multiplexor con la variable de
selección s2 . Cuando S2=0  se. selecciona la salida aritmética, pero cuando S2 = 1 se selecciona la salida lógica.

L
Al simular en Altera debemos obtener una sola caja tal como se muestra en la siguiente gráfica:
Luego se acoplan las 4 cajitas  para formar la ALU de 4 bits, tal como se muestra:
Se espera que el estimado lector  haya efectuado paso a paso la simulación de la ALU en Altera. Esto le permite una completa comprensión de este importante concepto de la Electrónica Digital.

En una forma similar a lo descrito, se ha diseñado una ALU comercial, el circuito integrado 74LS181, el cual estudiaremos a continuación, al simularlao en Altera. La mejor forma de estudiar un chip comercial antes de implementarlo en el protoboard es analizar su tabla de funcionamiento de acuerdo a su hoja de datos suministrada por el fabricante (Data Sheet)  y efectuar su simulación.
La ALU 74181 se puede trabajar con cualquiera de dos tablas de funcionamiento.Una tabla con los datos activos en nivel bajo y otra donde los datos son activos en nivel alto, tal como la que se muestra a continuación:


EJERCICIO: Simular en ALTERA el 74181 para verificar el comportamiento de las dos tablas.

domingo, 11 de noviembre de 2012

Restador binario :Análisis de casos


Se sugiere al lector imprimir para luego estudiar el artículo que se presenta como PDF en https://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r65019.PDF 

Como repaso de los circuitos estudiados hasta el momento en el curso de Digitales 1 vale la pena consultar http://lc.fie.umich.mx/~jrincon/elec3-cap7.pdf

ESTUDIO DE CASOS:

Se desea implementar un RESTADOR BINARIO A-B.  A y B son números de 4 bits cada uno, dispuestos en Dip-Switch. El resultado de la resta se viasualiza con 5 Leds, cátodo común. Cuatro Leds indican el resultado de la resta y un quinto Led,SIGNO, enciende cuando la resta es negativa. El circuito se ha compilado en Altera y su simulación indica que funciona correctamente.  Explique detalladamente su funcionamiento.

CIRCUITO LÓGICO:

SIMULACIÓN:

jueves, 8 de noviembre de 2012

Diseño de sumador paralelo de 4 bits: 7483


Iniciamos con la suma de 2 números X,Y de 1 bit cada uno: 


Luego al tener en cuenta el acarreo de entrada tendremos una tabla de verdad más completa:
Con 2 Half Adder y una compuerta OR se puede obtener el circuito lógico de un Full Adder:
Con 1 half adder y 3 full adder se construye el sumador binario de 4 bits:
Ejercicio 1: Efectuar la simulación en Altera del sumador de 4 bits, a partir del half adder, siguiendo el proceso jerárquico en el diseño.
..........................................................................................................
El sumador 7483 dispone de 4 full adder:
Su circuito aparece en el data sheet, tal como se muestra:

Ejercicio 2: Efectuar la simulación en Altera del comportamiento del sumador 7483, llamando al sumador incorporado en librería.

miércoles, 7 de noviembre de 2012

Seleccionar el menor entre dos números dados: Laboratorio

LABORATORIO: Dados dos números X  y  Y  de  4 bits cada uno  que se presentan  en un Dip-Switch, en un display de 7 segmentos debe visualizarse en hexadecimal el MENOR de los dos números,  y simultáneamente debe oirse un mensaje asociado indicando cual es el número menor.  Si los números son iguales debe encenderse el PUNTO.


Solución:
Si deseamos aplicar la ley de dividir para vencer lo primero es lograr un esquema general mental de lo que requerimos para solucionar este proyecto propuesto.

Puede ser algo así:
El lector podrá apreciar que no le damos mucha importancia al DECODIFICADOR que permita a partir de las entradas M3 M2 M1 M0  mostrar en el display de 7 segmentos el caracter respectivo en Hexadecimal.
Se supone que con una GAL22V10 manejando la respectiva tabla de verdad en Isplever facilmente lo podemos lograr. O implementando el integrado TTL o CMOS  que realice esa función. 

Copiamos de Wikipedia un display en visualización hexadecimal:


Buscando encontramos un integrado CMOS que cumple con lo que necesitamos, cuyo datasheet se muestra:
Personalmente sólo lo utilizaría sino tuviese un programador para quemar la GAL. Desde luego siempre lo mas conveniente es la lógica programable que la lógica cableada. La Gal se deja reprogramar, el Chip habría    que guardarlo para cuando se volviese a requerir.

Volviendo al esquema que inicial presentamos observamos que lo fundamental es lograr seleccionar entre los  dos números X y Y el número menor. Lo del decodificador es cuestión secundaria que se efectúa al final.

¿ Cómo seleccionar el menor entre X y Y ?   En una entrada del blog el lector podrá estudiar el integrado 7485 que es un comparador de magnitud. Ese integrado si es indispensable comprarlo pués debido a la cantidad muy grande de sumandos en sus ecuaciones Booleanas es imposible implementarlo con la Gal22V10.

Con el 7485 se puede establecer entre X y Y cuando X es menor que Y. Lo mas recomendable es simularlo, por ejemplo en Altera para familiarizarnos con el integrado y saberlo manejar con propiedad antes de comprarlo. ¿ para qué compro algo si no lo se utilizar ? Esa es la importancia de la Simulación. Primero aprendo a manejar y después compro el carro. Parece que eso es lo mas inteligente, y no comprarlo y  estrellarlo aprendiendo a conducirlo.  Muchas veces los estudiantes queman los chips por no haberlos simulado previamente. Bueno, personalmente de estudiante a mi me pasaba lo mismo; en esos tiempos no había posibilidad de efectuar simulación. De algo debe servir la experiencia. Como decía mi abuela: "La experiencia no se improvisa y se aprende de ella"

Simulemos entonces el 7485 en Altera en modo gráfico:

Se hace necesario consultar el Data Sheet del 7485 para conocer como se conectan las entradas de cascada.


Compilamos el esquemático y simulamos:

Sabiendo como trabaja el 7485 lo compramos y lo implementamos en el protoboard.  Luego requerimos multiplexar entre los números X y Y el número menor.

El integrado mas apropiado es el 74157 que es un chip que trae incorporado 4 MUX de 2 entradas / 1 salida.

Con este integrado  con  Selector = 0  podemos  hacer que M3 M2 M1 M0 = X3 X2 X1 X0  y  con  Selector = 1 hacer que M3 M2 M1 M0 = Y3 Y2 Y1 Y0.

Ahora, si Selector = salida A > B (del comparador de magnitud 7485) entonces tendremos:
                             A =  X
                             B =  Y

Si  X > Y, entonces  salida A > B = 1, y se hacemos el selector del Mux igual a la salida A > B del 7485 entonces el MUX hace que su salida M3 M2 M1 M0 sea igual a Y3 Y2 Y1 Y0, lo cual es lo que se quiere.

Si X < Y, o,  si X = Y ,  la salida A>B = 0, y el MUX hace M3 M2 M1 M0 = X3 X2 X1 X0, lo que tambien se desea.

Lo recomendable es que pruebe a nivel de simulación con Altera que esto es cierto y luego monte en el protoboard el 7485 y el 74157 y verifique con 4 leds de prueba que en M3 M2 M1 M0  aparece el MENOR  de los números X3 X2 X1 X0    y   Y3 Y2 Y1 Y0.

Para la simulación en Altera elabore un nuevo archivo gráfico tal como se muestra y efectúe su compilación:


Verifique que las formas de onda son las correctas:
Muchas veces los estudiantes argumentan "que en el tablero y en el papel todo funciona, pero en la práctica real en el protoboard la situación es muy diferente"   Personalmente insisto que la simulación es muy importante. Las ideas de los grandes hombres primero se plasmaron en un diseño, en el papel, antes de concretarse en hechos reales.  Ojalá Leonardo Da Vinci, kepler, Galileo, Newton, Einstein y demás hubiesen podido trabajar en sus diseños con las herramientas que las Tecnologías de la Información y de la Comunicación en este momento nos ofrecen. Dentro de todas esas herramientas los programas de Simulación son algo estupendo, que verdaderamente ayuda. Son suministrados por los mismos fabricantes de los dispositivos: ALTERA, LATTICE SEMICONDUCTOR, etc.

Continuando con nuestro proyecto de laboratorio, ahora implemente en el protoboard lo que ha simulado y verifique su perfecto funcionamiento.

Con un quinto Led puede probar que cuando X = Y  enciende el punto del display de cátodo común 7 segmentos.

Veamos un esquema de lo que llevamos simulado y probado hasta el momento, faltando el decodificador para visualización hexadecimal en el display de 7 segmentos y el chip de sonido ISD1964.
Una vez que hasta acá todo funciona bien, ahora sí programe, simule e implemente la GAL22V10 con el decodificador para el display 7 segmentos con visualización en hexadecimal o utilice el chip CMOS que realiza esta función.

Lo último que debe implementar es el Chip de Sonido. Es obvio que M3 M2 M1 M0 o sea los 4 bits del número MENOR seleccionado deben estar puenteados a las entradas de dirección A3 A2 A1 A0 del ISD1964 para poder reproducir los mensajes que previamente en esas respectivas direcciones deben haber sido grabados dede la dirección binaria 0000 (0) hasta la dirección 1111 (15).

En resumen los pasos que se recomiendan  a seguir son los siguientes:

1.Simular en Altera el 7485 y luego  implementarlo en el protoboard  para  verificar su perfecto comportamiento con el  Dip Switch de 8 interruptores  y 3  leds de prueba colocados a las salidas A > B, A = B, A< B.
2.  Simular en Altera adicional al comparador de magnitud 7485 el 74157 para multiplexar el número menor entre X y Y. Verifique que hasta acá todo funciona bien con el Dip Switch y los  4 leds de prueba colocados a M3 M2 M1 M0.

 Utilice la salida (A=B) del 7485 para encender el PUNTO del display 7 segmentos. Verifíquelo en el protoboard con un quinto led de prueba.
3. Programe en Isplever con GAL22V10 el decodificador para manejar los 7 segmentos a,b,c,d,e,f,g en hexadecimal.  Implemente en el protoboard y verifique su perfecto comportamiento.

4..Implemente el Chip de sonido habiendo efectuado previamente la grabación de los 16 mensajes exigidos.

                                                                       ..........¡ E X I T O S !...........

lunes, 5 de noviembre de 2012

Comparador de magnitud de 4 bits: 7485 ¿Cómo se diseña ?

Vamos a estudiar como diseñar el comparador de magnitud 7485.

Los comparadores de magnitud son circuitos que comparan el valor binario de dos números, proporcionando información de cuál es mayor, menor, o si ambos son iguales.

Veamos para dos números A y B,de 1 bit cada uno, su tabla de verdad:

      A     B            Z(A mayor B)          Z(A igual B)             Z(A menor B)

      0       0                   0                          1                            0
      0       1                   0                          0                            1 
      1       0                   1                          0                            0
      1       1                   0                          1                            0

De  la tabla, se deducen las ecuaciones Booleanas para cada salida:
                            Z(A mayor B) = A B'
                            Z(A igual B) = A' B' +  A B =  A xnor B
                            Z(A menor B) = A' B
Si ahora, tuviésemos dos bits A1,A0 y B1,B0, sin necesidad de elaborar la tabla de verdad, por simple lógica, podemos obtener las ecuaciones Booleanas:
Z(A mayor B) = A1 B1' +  (A1 xnor B1) (A0 B0' ), lo cual lo podemos interpretar así: Para que A sea mayor que B, basta que A1 sea 1 y B1 0, pero si A1 y B1 son bits iguales, ambos ceros o ambos unos, A0 debe ser 1 y B0 debe ser 0.
Z(A igual B) =  (A1 xnor B1) (A0 xor B0 ),  lo cual lo podemos interpretar diciendo que A es igual a B, siempre y cuando A1 y B1 sean bits iguales (ambos ceros o ambos unos), y así mismo A0 y B0.
Z(A menor B) = A1' B1 +  (A1 xnor B1) (A0' B0 ), es decir para que A sea menor que B, basta que A1 sea 0 y B1 sea 1, pero si A1 y B1 son bits iguales, ambos ceros o ambos unos, A0 debe ser 0 y B0 debe ser 1.
Podemos finalmente extrapolar ideas y considerar cada número A y B de 4 bits cada uno,( A3 A2 A1 A0 ), y ,( B3 B2 B1 B0 ), y por lógica deducimos las tres ecuaciones Booleanas, así:

Z(A mayor B) = A3 B3' +  (A3 xnor B3) A2 B2' + (A3 xnor B3) (A2 xnor B2) A1 B1'
 + (A3 xnor B3) (A2 xnor B2) (A1 xnor B1) A0 B0'  

Z(A igual B) = (A3 xnor B3) (A2 xnor B2) (A1 xnor B1) (A0 xnor B0)

Z(A menor B) = A3'B3 +  (A3 xnor B3) A2' B2 + (A3 xnor B3) (A2 xnor B2) A1'B1 + (A3 xnor B3) (A2 xnor B2) (A1 xnor B1) A0'B0

Es interesante darnos cuenta como se obtienen las ecuaciones, sin necesidad de manejar mapas de Karnaugh para tablas de verdad muy grandes, sólo por simple lógica, elemento fundamental  en el diseño digital.

El circuito integrado 74LS85 es un comparador de magnitud de 4 bits, cuyo diseño fué efectuado con la técnica explicada. 
Este chip dispone adicionalmente de 3 entradas de cascada, lo cual permite poder expandirlo, para aumentar su capacidad; por ejemplo para elaborar comparadores de magnitud de 8 bits.

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.