viernes, 5 de abril de 2013

Contador descendente prefijado con Gal22V10 en ABEL

Ejercicio:  Diseñar un contador que inicie en 9 decimal, y al recibir una órden cuente en forma descendente hasta llegar a cero, en donde se bloquea, y se genera un pulso negativo para disparar un 555 como Monoestable no redisparable. Al finalizar el tiempo del monoestable (10 segundos) el contador debe estar nuevamente tal como al principio para poder repetir la operación. Durante los 10 segundos que se active el monoestable debe funcionar un motor DC de 5 voltios que debe estar optoacoplado para evitar ruidos que incidan en una falla en el circuito.

Solución: Trabajamos con ISPlever clasicc 1.6 para generar el contador por tabla de estado en lenguaje ABEL:
Verificamos su comportamiento simulando sus formas de onda:

Observamos que debido al Reset Power On disponible en la GAL22V10 los flip-flops inician en nivel bajo, y en el primer flanco de subida de reloj al estar la entrada Inicio = 0, el contador permanece en 9 decimal, y luego al pasar Inicio a 1, se da el conteo en forma descendente.

Se genera símbolo esquemático para seguir trabajando el ejercicio esquemáticamente y obtener la salida para disparar el monoestable y resetear el astable:


Debido a que el contador por defecto inicia resetaeado hay que usar Or de 3 entradas tal como se muestra para generar el Trigger para evitar que el monoestable se dispare desde el principio.

Se puede simular para verificar el buen comportamiento de lo requerido:

 Como el Monoestable es no Redisparable no importa el "Glitch" que se observa en la onda del trigger.

Podemos proceder entonces al diseño LINK y FIT que nos garantice que la GAL22V10 puede cumplir con lo exigido. 
El Chip Report nos indica como debemos efectuar la implementación de la GAL en el protoboard:
A las salidas del contador se coloca el decodificador 7447 ó 7448 para manejar el display de 7 segmentos de Anodo o Cátodo común que se disponga.


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