Contador U / D binario de 8 bits con codificador rotatorio

0

Estoy tratando de hacer un contador binario de 8 bits usando CD4516 / HEF4516 (no importa, ambos actúan igual).

Mi circuito funciona bien, excepto un error. Puedo pasar con éxito de 00000000 a 11111111 y otra vez, puedo hacer lo mismo en dirección hacia atrás.

El error solo ocurre cuando tengo 1000 en el contador inferior, voy a 0000 y vuelvo a 1000 , luego el segundo IO actúa raro.

El error no está en arduino, ni en el PISO, la identificación hace lo mismo con los LED de conexión directa.

¿Alguien tiene un ide? Gracias.

EDITAR:circuitodetrabajo:

    
pregunta Aiphee

3 respuestas

1

Hay una serie de problemas con tu diseño.

1) En general, DEBE proporcionar tapas de desacoplamiento en cada IC, especialmente cuando se utiliza una placa de pruebas. Esta debe ser una tapa de cerámica de 0.1 uF, que se ejecuta directamente de Vcc a Gnd en cada chip, con los cables de la tapa lo más cortos posible y la conexión al IC lo más cerca posible del pin. En otras palabras, no coloque la tapa en otro lugar y corra los puentes. 1 tapa por IC.

2) Igual de importante, TODAS las entradas no utilizadas deben estar conectadas a tierra o Vcc. En todas las fichas. Dejarlos flotar, particularmente con CMOS, es invitar a todo tipo de problemas extraños, intermitentes y no reproducibles. La impedancia de imputación muy alta del CMOS permite que sus entradas actúen como antenas y capten las señales que se producen en otras partes del tablero. Y cuando digo TODAS las entradas no utilizadas, incluyo, por ejemplo, los pines de entrada en la mitad no utilizada de su flip-flop, aunque eso "obviamente" no cuenta. Confía en mí en esto.

3) Deshágase de ese límite entre el reloj y los datos: está acoplando los bordes de uno a otro.

4) Ejecute sus señales desde el Arduino a la placa de pruebas a través de pares trenzados, con el otro cable en cada par conectado a tierra.

5) No use el mismo reloj para el flip-flop y los contadores a menos que sepa exactamente lo que está haciendo. Se arriesga a lo que se llama "metastabilidad". En este caso, probablemente no te quemarás, pero es una mala idea en general. Si debe hacerlo, ejecute una tercera línea para habilitar el contador y deshabilite el contador cuando actualice el flip-flop. Por supuesto, si haces eso, no es necesario que el flip-flop sea el primero, pero debes tener cuidado de no tomar atajos y cambiar el control U / D al mismo tiempo que ejecutas un comando de reloj. .

6) Con los cambios anteriores, intente nuevamente la configuración de contador "adecuada". Ejecute la primera salida de acarreo (pin 7) para el acarreo del segundo contador (pin 5), y conecte ambos relojes juntos.

    
respondido por el WhatRoughBeast
1

Hay dos formas recomendadas de conectar en cascada el 4510 en la hoja de datos y estás usando algo else:

Tenga en cuenta el uso de una compuerta OR de 2 entradas para cuando use la temporización de rizado.

    
respondido por el Spehro Pefhany
0

Su esquema no conecta la señal de acarreo como lo recomienda la hoja de datos. Así que con la especulación creo que el C.O. La señal no se está comportando como piensas, haciendo una falla.

Una pequeña lectura muestra que una restricción para el intercambio entre los modos arriba y abajo es que el reloj debe estar alto en el primer dispositivo en el modo de sincronización de ondas. Su segundo dispositivo está conectado más como un primer dispositivo. Así que veo la posibilidad de que las cosas vayan mal allí.

    
respondido por el user55924

Lea otras preguntas en las etiquetas