Ayuda con simulación de un contador.

Hola, estoy aprendiendo a usar Proteus y trato de realizar un contador sincrono ascendente-descendente, que cuente hasta 22. lo he diseñado como un contador normal de 6 bits, la idea que tengo es que al llegar a (10111) el contador se reinicie, por medio de una compuerta, volviendo a 0. el problema esta en que cuenta hasta (10011) o 19 y se queda atrapado en un bucle entre el 16 y el 19. Probé reiniciarlo usando un comparador y contó bien una vez luego se encasillo de nuevo. si no lo hago reiniciarse, el cuenta normal. y todavía debo hacerlo descendente... se me tranco el serrucho. tiene el añadido de que se puede escoger el numero por donde se quiere que comience. agradezco su ayuda.
 

Adjuntos

  • contador.rar
    25.7 KB · Visitas: 10
Así sin ver el esquema porque no tengo instalado proteus (ni intención de instalarlo tampoco) huele a que tu contador no es síncrono en realidad y las puertas reseteadoras se disparan cuando al pasar del 19 al 20, es decir 10011 a 10100 hay un momento de indefinición en el que se activa el bit 2 antes de borrarse el 0 y el 1 y a su vez el circuito de reset llega de los bits 0 al 4 pero antes de llegar al 5, como ya no es la condición de reset, deja de resetear y se queda a 1.


Y si no es eso, será otra cosa.

Huele a que no es síncrono, o puede que simule mal, no sé.
 
Bienvenido al mundo real!... Aunque sea a traves de una simulación.

Empecemos con reconectar el reset R4 , que veo que en la deseperación lo soltaste.

Tu problema es que estás haciendo un reset asincrónico y deberías saber que los sistemas asincrónicos acostumbran dar dolores de cabeza con los aleatorios (riesgos, hazards)

Las entradas de U24 (Q4,/Q3,Q2,Q1,Q0) no cambian instantáneamente de estado.
Esta diferencia de tiempo depende del tipo de compuerta, de como esté montado el circuito y en este caso, del modelo que utilice el simulador.

En la realidad son retardos de nanosegundos, pero suficientes para volverte loco. Aca, el problema pasa en que cuando la cuenta pasa de 15 a 16, hay un instante en que Q0=Q1=Q2=Q3=/Q4=Q4=1 y eso te dispara un pulso de reset.

Como lo solucionamos? hay distintas formas y todas lógicamente implican mayor complejidad.
- Una criticable pero simple y efectiva es insertar un filtro RC que nos coma esos pulsos indeseables.
resetasincro.jpg

- Una mas refinada sería usar monoestables.
- Otra , hacer todo sincrónico.
Y la lista puede seguir y dependerá del circuito...
 
Arriba