jueves, 26 de abril de 2012

Rediseño del contador 74LS191 (Ingeniería Inversa)

Se trata de lograr las ecuaciones Booleanas que correspondan al circuito lógico, para lo cual requerimos sus características, segun su Data Sheet:
Su diagrama lógico es el siguiente:

Sus formas de Onda o diagramas de tiempo, describen su funcionamiento:
Su circuito lógico corresponde a:
Vamos a efectuar el rediseño, por partes, siguiendo la "regla de oro" en la Electrónica: "DIVIDE Y REINARAS"


Lo primero que hacemos es suponer que el contador fuese solo ascendente, y  de 3 bits:
Su tabla de estado es:
ESTADO PRESENTE     ESTADO SIGUIENTE
     QC QB QA                       QC QB QA
      0     0     0                           0    0     1
      0     0     1                           0    1     0
      0     1     0                           0    1     1
      0     1     1                           1    0     0
      1     0     0                           1    0     1
      1     0     1                           1    1     0
      1     1     0                           1    1     1
      1     1     1                           0    0     0

 Como observamos en el diagrama lógico que el flip-flop utilizado es T ( J-K puenteado) su Tabla de Excitación es la siguiente:

ESTADO PRESENTE     ESTADO SIGUIENTE  ENTRADAS DE LOS FLIP-FLOPS
     QC QB QA                       QC QB QA                  T(QC)       T(QB)       T(QA)
      0     0     0                           0    0     1                        0               0                1
      0     0     1                           0    1     0                        0               1                1
      0     1     0                           0    1     1                        0               0                1
      0     1     1                           1    0     0                        1               1                1
      1     0     0                           1    0     1                        0               0                1
      1     0     1                           1    1     0                        0               1                1
      1     1     0                           1    1     1                        0               0                1
      1     1     1                           0    0     0                        1               1                1
Nos interesa obtener las ecuaciones de los 3 flip-flops:
T(QC) = QC´QB QA + QC QB QA = (QC´ + QC) ( QB QA ) = QB QA
T(QB) = QC´QB´QA + QC´QB QA + QC QB´QA + QC QB QA =  QB´QA (QC´+ QC) +
 QB QA ( QC´+ QC) = QB´QA + QB QA = (QB´+ QB) QA = QA
T(QA) = 1

Resumiendo:     T(QC) = QB QA
                         T(QB) =       QA
                         T(QA) =           1
Extrapolando ideas podemos razonadamente suponer que T(QD) = QC QB QA, para el contador sincrónico ascendente de 4 bits.
Luego las ecuaciones del contador de 4 bits nos quedarían así:
                         T( QA) = 1
                         T (QB) = QA
                         T (QC) = QA QB
                         T(QD) =  QA QB QC
Aplicando luego nuevamente sólo lógica podemos pensar que si el contador fuese descendente las ecuaciones serían:
                         T( QA) = 1
                         T (QB) = QA´
                         T (QC) = QA´ QB´
                         T(QD) =  QA´ QB´ QC´
Para que el contador sea UP/DOWN (Ascendente/Descendente) se requiere multiplexar de 2 a 1, y la entrada Down/Up, que llamaremos DU y correspondiente al pin 5 del chip, será la entrada de selección en cada multiplexor: Entonces las ecuaciones para el contador de 4 bits UP/DOWN nos quedan así:
                         T( QA) = 1
                         T (QB) = QA  DU´ + QA´ DU
                         T (QC) = QA QB DU´ + QA´QB´ DU
                         T(QD) =  QA QB QC DU´ + QA´ QB´QC´ DU

Podemos verificar que si DU = 0, (DU´ = 1), entonces tendremos:
                         T( QA) = 1
                         T (QB) = QA
                         T (QC) = QA QB
                         T(QD) =  QA QB QC
,lo cual corrobora que si DU = 0, el 74191 cuenta ascendentemente.

Si por el contrario, DU = 1, (DU´ = 0), las ecuaciones serían las del contador descendente.
Regresando al diagrama lógico, podemos verificar que las ecuaciones de entrada de los flip-flops T, corresponden al circuito mostrado en el esquema que presenta el fabricante, aunque presentan sólo alguna diferencia porque aún no hemos tenido en cuenta la entrada del ENABLE, o sea la entrada G,correspondiente al pin 4 del circuito integrado.

Observando la gráfica de Diagramas de tiempo, vemos que si G = 0, el contador está habilitado, y en cambio si G =1 se bloquea.
Esta situación nos lleva a modificar las ecuaciones, quedando así:
                         T( QA) =
                         T (QB) = QA  DU´ +  QA´ DU
                         T (QC) = QA QB DU´ + QA´QB´ DU
                         T(QD) =  QA QB QC DU´ + QA´ QB´QC´ DU 
Podemos verificar que si G = 0, (G´= 1), y las ecuaciones quedan iguales a como estaban, y en cambio, si G=1,(G´=0), y todas las entradas de los flip flops T quedan iguales a cero, y por consiguiente por más que llegue el flanco de subida del reloj, las salidas de los flip flops no cambian, bloqueándose o inhabilitándose el contador. 

Ahora si podemos verificar que las ecuaciones y el circuito lógico son totalmente coherentes.


Volviendo al diagrama de tiempos podemos observar que el contador dispone de una entrada de carga, LOAD, que de acuerdo a su diagrama de conexión corresponde al pin 11 del chip.

La carga o prefijación es asíncrona, es decir, independientemente del reloj, si LOAD = 0, los bits correspondientes en las entradas de datos paralelos DATA D, DATA C, DATA B y DATA A, se fijan en las salidas de los flip-flops QD, QC,QB,QA,  sin importar si ha llegado o no el flanco de subida del CLOCK.

Se pide al lector que deduzca las ecuaciones Booleanas para manejar las entradas asincrónicas o de control PRESET y CLEAR de los flip-flops T. Se puede observar en el diagrama lógico que el circuito es repetitivo, o sea basta deducirlo una vez y se aplica para los 4 flip-flops.


Adicionalmente, falta encontrar las ecuaciones Booleanas que describen los circuitos lógicos para las salidas del 74191:MAX/MIN  y RIPPLE CLOCK. 









lunes, 16 de abril de 2012

Direccionamiento de memoria 28C64 y contador de anillo para Matriz de LEDs: Estudio de casos

Para el direccionamiento de la memoria EEPROM AT28C64 se requiere un contador que permita generar los caracteres U, A, N, blanco, en forma cíclica indefinida, al manejar las 7 filas de una matriz de LEDs, el cual debe estar sincronizado con un contador de anillo , activo por nivel bajo, que aterrice los cátodos de los Leds por columnas, cada centésima de segundo, para lograr la persistencia de la imágen por visualización dinámica.

¿Si se elabora un contador binario del 0 al 80 con una Gal, habría que elaborar con otra Gal el contador de Anillo para las 5 columnas, usando el mismo reloj con el 555?

¿Es posible con una sóla GAL22V10 manejar la memoria y el contador de anillo sincronizadamente ? ¿ Cómo se diseña e implementaría el circuito completo con una sola GAL?

Este caso se estudiará el martes 17 de abril en clase. Da nota adicional en el tercer corte, para el estudiante o el grupo de trabajo que presente una buena solución a este interrogante.


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