jueves, 12 de abril de 2012

LABORATORIO: Caracteres con matriz de leds y memoria EEPROM

Se trata de obtener por pantallazos en una matriz de leds de 7 filas, 5 columnas   los caracteres que se muestran:
  Las 7 filas de la matriz, se conectan a 7 salidas de la memoria EEPROM 28C64, a través de buffer tree-state, circuito integrado 74LS244.  Los cátodos de los leds, en las columnas se manejan a través de un contador de anillo de 5 bits, activo por nivel bajo.   Sólo una columna se energiza cada vez, pero al hacer la secuencia del contador de anillo muy rápidamente cada 0,01 segundo, el ojo humano, por la persistencia de la imágen en la retina, ve todas las 5 columnas como si estuvieran todas energizadas, y pareciese que todos los Leds que generan el caracter estuvieran encendidos, pero en realidad sólo se estan encendiendo columnna por columna, de acuerdo al CERO que envía el Contador de Anillo a todos los 7 leds de cada columna y aterrizarlos.  Por medio de la memoria se envían los UNOS para que se enciendan los leds requeridos para que vaya formando el caracter. Por ejemplo, para formar la U, inicialmente la memoria debe enviarle a los leds de la primera columna 1111110, luego 0000001 a la segunda columna al tiempo que se energiza esa columna por el contador de anillo, después eso mismo a la tercera y cuarta columna a medida que el contador de anillo se desplaza, y al final a los 0,05 segundos, cuando se energiza la quinta columna, la más a la derecha, la memoria debe enviar nuevamente 1111110,  y esto debe  hacerlo repetitivamente unas 20 veces, para que el caracter, en este caso la U se observe durante 1 segundo ( 0,05 * 20 = 1). Luego se continúa en igual forma con los otros dos caracteres, la A y la N, dejando en blanco durante 1 segundo el display, y luego seguir la secuencia  desplegando el mensaje UAN blanco, UAN blanco,.. indefinidamente. El 74244 ademas de suministrar buena corriente a los leds de la matriz, protege a los transistores MOSFET de la memoria de una sobrecorriente que pudiese estropearlos.



lunes, 9 de abril de 2012

Matriz de LEDS: 7 filas, 5 columnas

Una matriz de 7 por 5,  consiste en un arreglo de 35  LEDs que pueden ser encendidos y apagados individualmente utilizando un circuito adecuado. Se puede visualizar  como una  pantalla de pocos pixeles en los cuales se pueden presentar gráficos y textos, tanto estáticos como en movimiento. 
Conexión
El siguiente gráfico presenta una matriz de 5×7 LEDs, donde las columnas corresponden a los cátodos (deben ir conectados a tierra) y las filas corresponden a los ánodos (deben ir conectados a voltaje).
diagrama de pines catados en columna
Matriz de 5×7 con columnas de cátodos
Para encender un LED específico debe ubicarse la interesección entre la columna y la línea correspondiente. Por ejemplo, para encender el LED que se muestra en la figura siguiente, la columna 3 (C3) debe ser conectada a tierra (a través de una resistencia de 220 ohm) mientras que la fila 5 (R5) es conectada a voltaje (5v).
dotmatrix
El siguiente video muestra los dígitos en un contador descendente:  http://youtu.be/VjinnOytc3o







miércoles, 28 de marzo de 2012

Ejercicios Resueltos sobre Contadores Sincrónicos con Flip-Flops T


 EJERCICIO 1:   Analizar el siguiente circuito efectuando su simulación en Altera:


Observando el circuito deducimos: T(QA) = 0,  T(QB)= 1,  T(QC) = QB.

La simulación en Altera es la siguiente:


  

Lo que corresponde a un contador que hace la secuencia 0,2,4,6,0,2,4,6,... tal como se muestra al agrupar las salidas:

EJERCICIO 2: Diseñar utilizando 4 flip-flops T un contador ascendente que efectúe la secuencia 0,4,8,12,0,4,8,12,...

Se elabora una tabla de Estado y luego una Tabla de Excitación con los Flip-Flops T:
                                ESTADO PRESENTE               ESTADO SIGUIENTE              ENTRADAS DE F.F.
                                      Q3 Q2 Q1 Q0                     Q3* Q2*  Q1*  Q0*           T(Q3) T(Q2) T(Q1) T(Q0)
                                        0   0    0    0                      0      1      0      0               0         1        0         0
                                        0   1    0    0                      1      0      0      0               1         1        0         0
                                        1   0    0    0                      1      1      0      0               0         1        0         0
                                        1   1    0    0                      0      0      0      0               1         1        0         0
Se deduce:  T(Q3)=Q2,   T(Q2)=1, T(Q1)=0, T(Q0)=0. Lo cual  lleva al siguiente circuito,donde las entradas asincrónicas Clear y Preset de de cada flip-flop T las dejamos al aire, porque no interesan para este caso:
Al simularlo en Altera verificamos que se cumple lo exigido:






 









viernes, 23 de marzo de 2012

Estudio de casos:Contador sincrónico con GAL

Se requiere diseñar e implementar con una GAL 22V10 un contador  binario ascendente del 0 al 20.

  1. ¿Por qué no se puede implementar con la GAL un contador Asincrónico ?
  2. ¿ Como se diseña el contador sincrónico?
  3. ¿ Qué tipo de flip flop se debe utilizar, S-R, J-K, T  o  D ?
  4. ¿ En qué forma puede ayudar el Logicaid en el diseño ?
  5. ¿Cómo se procede con el ispLever para efectuar la simulación ?
Tema de clase: Viernes 23 de marzo.








miércoles, 14 de marzo de 2012

Estudio de casos: Comparador de Igualdad mediante Ecuación Booleana

Independientemente de como se diseñe un comparador de igualdad de 3 bits, ya sea con tabla de verdad, ecuaciones Booleanas o editor esquemático dibujando las compuertas lógicas, al crearse el Mapa de Fusibles para la GAL, el ispLEVER cuando efectúa la compilación, presenta junto al Reporte de Configuración de Pines del CHIP, las 2 ecuaciones reducidas para las salidas del comparador, tal como se presenta en la siguiente imágen:
¿COMO SE PUEDE VERIFICAR QUE LAS 2 ECUACIONES BOOLEANAS MOSTRADAS POR EL ispLEVER CORRESPONDEN A UN COMPARADOR DE 3 BITS ?   ¿ CUAL SERÍA EL ESQUEMÁTICO REDUCIDO SI SE ELABORA EL COMPARADOR  DE 3 BITS CON GRÁFICO DE COMPUERTAS LÓGICAS ?    

TEMÁTICA PARA ANALIZAR  EN LA CLASE DEL VIERNES 16 DE MARZO.
:

viernes, 9 de marzo de 2012

Estudio de casos: Comparador de 3 bits

Con ispLEVER se diseña un comparador de 3 bits, de acuerdo al archivo creado en ABEL-HDL siguiente:

Esta tabla está incompleta.... ¿ Hasta qué número llega, antes del END del programa ?  

¿ Es posible que corresponda a un comparador ?  ¿Por qué ?  

¿ Es posible que el usuario pueda asignar los pines a su voluntad a la GAL y el programa compile sin ningún problema, generando  el archivo Jedec y el reporte de configuración de pines del chip ?






martes, 6 de marzo de 2012

Tutorial con ispLEVER: codificador de prioridad con registro de almacenamiento con GAL22V10

Se recomienda al lector en el blog  www.digitales1uan.blogspot.com  repasar los conceptos fundamentales respecto al uso del ispLEVER al estudiar el tutorial para obtener las compuertas lógicas con la GAL22V10.

En este nuevo tutorial se va a presentar, a manera de ejemplo, como elaborar un codificador de prioridad para un teclado implementado con 5 pulsadores activos por nivel alto, y adicionalmente en la misma GAL22V10  implementar un registro de almacenamiento con 3 flip flops D que obedecen el flanco de subida del reloj. 

Lo primero que debemos analizar es si la capacidad de la GAL nos permite realizar el circuito que deseamos trabajar: recordemos que la GAL22V10 dispone de 10 salidas que son compartidas como entradas, y de 22 entradas, 10 de ellas compartidas como salidas, y una entrada en el pin 1 que es compartida como entrada de reloj para un circuito secuencial, como el registro que deseamos implementar.

La pregunta es: ¿ se puede con la GAL22V10 trabajar 10 pulsadores con las entradas del 0 al 9, y a la vez un registro con 4 flip flops D ? 

El codificador de prioridad en este ejemplo  lo trabajamos por tabla de verdad en ABEL y el registro con el editor esquemático. 

Se recomienda crear el mapa de fusibles y el archivo JEDEC sólo en el circuito final que integre tanto al codificador como el registro, para que no se vaya a presentar conflicto en la configuración de pines. Si se utiliza el pin 1 como entrada de un pulsador en el codificador,por ejemplo, al elaborar el mapa de fusibles del coder  y  luego en el registro como ese pin es la entrada de reloj se puede producir un conflicto y el computador se puede bloquear. El orden con que se hagan las cosas no es tan importante, siempre y cuando el mapa de fusibles se elabore solo al final con todo lo que la GAL va a contener.

Veamos el   programa para el codificador de prioridad, donde las entradas las denominamos P0,P1,P2,P3 y P4 de acuerdo a los pulsadores correspondientes a las teclas de los números del 0 al 4. Para la asignación del código binario correspondiente se ha dispuesto de las salidas Y2,Y1,Y0.  Se hace indispensable una cuarta salida SG (señal de grupo) que pase de 0 a 1 cuando cualquier tecla o pulsador se active, para que sea la entrada de CLK para el registro con los flip flops D.


En el navegador del ispLEVER este archivo, que salvamos como coder.abl debe compilar sin presentar ningún error. Inmediatamente generamos su símbolo esquemático.

Procedemos luego, con el editor esquemático a dibujar los tres flip flops D:



Compilamos el archivo del gráfico y generamos su símbolo esquemático.

Vamos ahora a integrar los dos archivos: el coder y el registro. Para ello creamos un archivo esquemático nuevo que lo salvamos como gal.
La salida SG del coder se conecta externamente al CLK del registro, mediante un jumper (puente), debido a que internamente la arquitectura de la GAL no lo permite hacer.

Al compilar este nuevo archivo esquemático no debe aparecer error. 

Procedemos a efectuar su simulación, dibujando para el CLK una señal arbitraria, pero en la realidad debe ser la misma señal SG:


Luego si hacemos la actualización de todos los archivos esquemáticos, los enlaces LINK y   la capacidad de la GAL mediante  FIT design .

Al crear el mapa de fusibles se genera el reporte del chip con su configuración de pines:
 

La GAL queda lista para programarla con el Superpro Z mediante el archivo JEDEC: