viernes, 11 de mayo de 2012

Salida Optoacoplada

En muchas ocasiones se hace indispensable, para evitar ruidos que pueden incidir en un mal funcionamiento de un circuito secuencial, el uso de un optoacoplador que aisle la carga del circuito secuencial. Para este situación es muy util implementar una salida optoacoplada con el PC817, tal como se muestra en el siguiente esquema:
Si la Entrada es 0 el relé está desenergizado y se activa el LED de potencia, y si la entrada es 1 se energiza el relé y se activa el MOTOR DC.  Como el motor funciona al crearse un campo electromagnético en el,  si no existiera el aislamiento eléctrico causará ruido y molestaría en el circuito lógico que lo está activando.

 El  Optoacoplamiento, quiere decir que el acoplamiento del motor y del LED de potencia con el circuito lógico que lo activa, se hace en forma óptica, a través del diodo infrarojo y el fototransistor que existen en el interior del chip de 4 pines PC817. Con el 0 lógico el led infrarojo no emite luz, y el fototransistor está abierto, en cambio, si se tiene un 1 lógico a la entrada, el led emite luz. y el fototransistor conduce.

Observe además que se están utilizando  tanto los contactos normalmente abiertos como los normalmente cerrados, o sea los 5 pines de que dispone el relé de 5 voltios.El diodo rectificador 1N4001 dispuesto inversamente y en paralelo con la bobina del relevo actúa como supresor de picos de corriente cotrarrestando la Ley de Lenz (  VL = - L di / dt), y evitando que el voltaje autoinducido negativo que se genera en la bobina del relevo queme el transistor 2N2222A que se está utilizando como interface entre la salida del optoacoplador y la bobina o entrada del relevo.

Mas información sobre este interesante tema del optoacoplamiento se puede obtener en http://es.wikipedia.org/wiki/Optoacoplador

Laboratorio: Contador de 2 dígitos

Se requiere diseñar e implementar un contador que inicie en 0, y al recibir una orden de inicio (START), mediante un interruptor,  cuente ascendentemente hasta el 99, con un periodo de reloj de 1 segundo.  

Al llegar al 99 debe luego contar en forma descendente, y bloquearse al llegar nuevamente al 0.

Debe visualizarse en displays de 7 segmentos el conteo establecido.

Mediante una salida OPTOACOPLADA  con relé deben manejarse un diodo LED de potencia y un motor DC.

Mientras el contador esté bloqueado en 0 o en cualquier múltiplo de 10 ( 0,10,20,30,40,50,60,70,80,90) el motor debe estar activado, y apagarse en cualquier otro número, donde debe encenderse el LED de potencia.

Se sugiere utilizar contadores 74190, decodificadores BCD a 7 segmentos (7447, o, 7448), optoacoplador de  4 pines PC817, relé de 5 voltios, GAL22V10, o, memoria EEPROM 28C64.

Presentamos una opción simulada en Altera que permite implementar los dos contadores 74190:
Obsérvese que se está usando flip-flop D en lugar de flip-flop T.
El circuito funciona perfectamente de acuerdo a lo exigido, según su diagrama de tiempos simulado:



miércoles, 9 de mayo de 2012

74190: Ejercicios resueltos


1.Para el circuito lógico mostrado,  y las entradas   START  y CLOCK  indicadas, dibuje las ondas para QD,  QC, QB y QA.

Solución:

Como la entrada START inicia en 0, hace que la entrada de carga LOAD (LDN) también esté en 0, lo cual carga en forma asíncrona lo que se tenga en las entradas de datos D,C,B,A. Como D,C,B están conectadas a tierra y A a Vcc, esto hace que el contador cargue en (0001)2 = 1 decimal. La entrada START por medio del CLRN del flip-flop T inicializa también la salida Q del flip-flop en 0, lo cual hace que cuando START pase a 1, DNUP = 0, y LDN = 1, con lo cual al siguiente flanco de subida del reloj el contador empieza a contar ascendentemente a partir de (0001)2  de donde arrancó al ser prefijado en este valor.
A la entrada del enable GN está conectada una compuerta NOR de 4 entradas que son: la salida Q del flip-flop T  que es la misma entrada DNUP,y las salidas QC,QB,QA del contador. Cuando estas 4 entradas sean todas iguales a 0, la salida de la compuerta NOR se hace igual a 1 y el contador se bloquea.
Así mismo la salida QD del contador es el CLK del flip-flop T, por consiguiente cuando QD pase de 0 a 1, el flip-flop T hace la conmutación pasando su salida Q a 1, y por consiguiente el DNUP pasa también a 1, siguiendo su conteo en forma descendente en el siguiente flanco de subida del reloj posterior..Por consiguiente después del 8 =(1000)2, que es donde QD se hace por primera vez igual a 1, el contador sigue  en conteo descendente:8,7,6,5,4,3,2,1,0,9.   Al pasar del 0 al 9, QD hace la transición del 0 al 1, y como es el clk del flip.flopT este nuevamente conmuta, pasando en esta ocasión Q del 1 al 0. Vemos que en esta situación  Q = 0, con lo cual DNUP=0, y el contador incrementa, pasando del 9 al 0. Al llegar a 0, Q=0, QC=QB=QA =0, y al estar todas las 4 entradas de la compuerta NOR en 0, su salida está en nivel alto, con lo cual el enable GN=1, y el conteo se inhibe, bloqueandose en 0.
Agrupando en el Altera las salidas del contador se encuentra en el siguiente diagrama de tiempos del comportamiento del mismo:
2.  Utilizando un contador de década 74190  y una GAL22V10  se requiere diseñar  un Contador de anillo de 10 bits, con salidas activas en nivel bajo, para efectuar el barrido de una matriz de leds de  10 columnas.
Solución:

IInicialmente mediante el Reset-Power-On, al estar el condensador descargado, se dá un 0 a la entrada de carga LDN, para que se prefije el contador asincrónicamente en (0000)2. Siendo el tiempo de carga (t = RC )  muy pequeño comparado con el periodo de reloj proporcionado por el 5555, la entrada LDN pasa rápidamente de 0 a 1, y como las entradas A=B=C=D=GN=DNUP=0, el contador incrementa cada flanco de subida del reloj hasta llegar al 9, y seguir así indefinidamente. En la GAL debe crearse el archivo JEDEC a partir de un esquemático o tabla de verdad para el decodificador:
 QD QC QB QA   S0  S1 S2 S3 S4 S5 S6 S7 S8 S9
  0     0     0     0      0    1   1    1   1   1    1   1   1   1
  0     0     0     1      1    0   1    1   1   1    1   1   1   1
  0     0     1     0      1    1   0    1   1   1    1   1   1   1
  0     0     1     1      1    1   1    0   1   1    1   1   1   1
  0     1     0     0      1    1   1    1   0   1    1   1   1   1
  0     1     0     1      1    1   1    1   1   0    1   1   1   1
  0     1     1     0      1    1   1    1   1   1    0   1   1   1
  0     1     1     1      1    1   1    1   1   1    1   0   1   1
  1     0     0     0      1    1   1    1   1   1    1   1   0   1
  1     0     0     1      1    1   1    1   1   1    1   1   1   0              



 

                              

lunes, 7 de mayo de 2012

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, 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  "con esos estudiantes  se hace muy complicada mi labor como docente"

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



sábado, 5 de mayo de 2012

Contador de década 74190

El contador 74190 responde a un diseño muy similar al 74191 con la única diferencia que cuenta en década o BCD ( del 0 al 9).
CARGA PARALELA ASÍNCRONA:
Dispone de una entrada LOAD para carga paralela asíncrona, es decir si LOAD = 0, las salidas de los flip-flops QD, QC,QB,QA  se hacen iguales a las entradas D,C,B,A (Data inputs) independientemente del reloj y de las otras entradas de control. En el gráfico de diagramas de tiempo se puede observar que al hacer Load =0, el contador se carga en el 7 decimal ( QD =0,QC=1,QB=1,QA=1).

CONTEO ASCENDENTE (COUNT UP):
Debe estar la entrada LOAD en nivel alto, la entrada  ENABLE en 0 para que el conteo esté habilitado, y además la entrada DU (Down/Up) debe estar en nivel bajo. En el gráfico podemos observar que en decimal después de que fué cargado en 7 el contador cuenta en decimal : 8, 9,0,1,2 , en cada flanco de subida del reloj, y se inhibe o bloquea en el 2.

CONTEO BLOQUEADO (INHIBIT):
Si LOAD = 1 , y CTEN (Count Enable) = 1, el contador se bloquea en el ultimo número al que hubiese llegado, sin importar en que esté la entrada Down/Up. En el gráfico observamos que el contador después de  haber llegado al 2, aunque transcurren 2 pulsos de reloj más, el conteo está inhibido, puesto que el Enable está en nivel alto.

CONTEO DESCENDENTE (COUNT DOWN):
Si LOAD =1, ENABLE =0, y DU = 1, el contador desciende cada flanco de subidaa del reloj.En el gráfico observamos que el contador después que se habilita al colocar nuevamente ENABLE =0, desciende del 2 al 1, luego pasa al 0, y sigue en forma descendente: 9,8,7.

SALIDA MAX/MIN:
Da un Nivel Alto al llegar el contador al valor más alto o máximo (9 al contar ascendentemente), permaneciendo en alto durante todo el pulso del reloj, o  al llegar el contador al valor más bajo o mínimo (0 al contar descendentemente), permaneciendo en alto durante todo el periodo del reloj.


SALIDA RIPLE CLOCK (RCO):
Detecta mediante un nivel bajo, cuando el conteo ha llegado al 9 cuando asciende, o al 0 cuando desciende, pero solamente durante el semiperiodo del reloj correspondiente al nivel bajo del mismo. Esta salida es muy útil para hacer cascada utilizando dos 74190, para que efectuén conteo de unidades y decenas,por ejemplo un contador que cuente del 0 al 99.

EJERCICIO DE APLICACIÓN:
Diseñar un circuito con un contador 74190 que inicie en 5, y al darle una órden (START) cuente ascendentemente hasta el 9, y luego lo haga descendentemente hasta llegar al 5 y bloquearse. Simular su funcionamiento en Altera.


Solución:
Se debe utilizar la entrada START por medio de un interruptor (no un pulsador), para que pase del 0 al 1, para iniciar la operación, de acuerdo al esquema mostrado a continuación:


Al analizar el circuito notamos que si la entrada START está inicialmente en CERO (a tierra) la salida Q del flip-flop está tambien en 0, lo mismo que la entrada de control LDN (LOAD), y como las entradas de datos D,C,B,A están respectivamente en 0101, ello hace que mientras permanezca LOAD = 0, al estar START =0, el contador se cargue asincrónicamente en el 5 decimal. Al pasar START al 1, moviendo el interruptor de tierra a Vcc, LOAD =1, y como la salida Q del flip-flop T está conectada a la entrada DOWN/UP (DNUP), como Q=0, así mismo DNUP=0, y cada flanco de subida del CLK (555) el contador incrementa, contando a partir del 5, 6,7,8,9. Al llegar al 9 en el conteo ascendente la salida MAXMIN (MXMN) pasa del 0 al 1, lo cual hace que se produzca un flanco de subida del flip-flop T, el cual está en Toggle(Conmutación) por cuanto su entrada T está a VCC. Esto hace que la salida Q del flip-flop pase de 0 a 1, y así mismo la entrada DNUP se hace igual a 1, con lo cual el contador a partir del siguiente flanco de subida del reloj decrementará, pasando del 9, al 8, luego al 7,  luego al 6, y después al 5. Al llegar al 5 en conteo ascendente la compuerta AND de 3 entradas detecta QC=1, QB=0, y DNUP=1. Como QB tiene un inversor, la entrada a la AND llega en nivel alto, a partir de QB. Al tener sus entradas en nivel alto, la salida de la AND tambien tiene nivel alto, y como está conectada al ENABLE (GN) el contador se bloquea en el 5. Al estar el contador incrementando DNUP=0, lo cual hace que la salida de la AND sea 0, y al contar descendentemente se puede observar que se dá la secuencia:  QD QC QB QA DNUP 
                              1     0     0     1      1
                              1     0     0     0      1
                              0     1     1     1      1  
                              0     1     1     0      1 
                              0     1     0     1      1


Cuando QC =1, QB =0, DNUP = 1, el contador a llegado al 5 descendentemente y debe bloquearse.


Al efectuar la simulación en Altera se puede observar que el circuito señalado funciona perfectamente:














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.