Comportamiento errático del contador de 16 bits IC SN74LV8154 [duplicado]

Mi circuito de prueba se muestra a continuación. Probé varias configuraciones, pero sigo teniendo saltos en los recuentos de salida. Parece ser repetible y consistente. Por ejemplo, el primer salto siempre ocurre alrededor de los conteos de 7k-8k. Vi otra publicación en la que el problema parecía estar relacionado con el filtrado de la fuente de alimentación. He probado muchas tapas de filtrado diferentes en la salida de mi regulador, la señal del reloj de registro y la señal del reloj de conteo. Los consejos serían muy apreciados en este punto.

ingrese la descripción de la imagen aquí

El código Arduino se puede revisar aquí

Salida Arduino:

ingrese la descripción de la imagen aquí

ACTUALIZAR

Rastreo de alcance para la entrada RCLK:
ingrese la descripción de la imagen aquí

Seguimiento del alcance para la entrada CLKA:
ingrese la descripción de la imagen aquí

Suministro de 5 V con 555 en funcionamiento:
descripción de la imagen aquí

Suministro de 5 V sin 555 en funcionamiento:
ingrese la descripción de la imagen aquí

ACTUALIZAR

Intenté reemplazar el chip contador por uno nuevo y obtuve el mismo resultado que antes. Además, cuando disminuí la velocidad de la señal de entrada a 10 Hz, pude ver que el primer salto ocurrió entre el decimal 8114 y el 8150. El primer valor decimal después del salto fue 16390, ¡casi exactamente el doble!

00011111 10110010 Decimal: 8114 <-- Cuenta antes de fallo

00011111 11100100 Decimal: 8164 <-- Cuenta esperada después de falla

01000000 00000110 Decimal: 16390 <-- Recuento real

Mi primer instinto es preguntar si tiene un osciloscopio, para que pueda ver qué está pasando exactamente en las entradas de su contador.
@Felthry Sí, tengo un alcance. Las entradas me parecen bastante buenas. Bonitas ondas cuadradas (5V pp) en CLKA y RCLK. Noté que cuando el 555 está funcionando, hay un ruido de 10 kHz en el suministro. Intenté filtrar pero no pude deshacerme completamente de él. No estoy seguro de si ese podría ser el problema o no.
Si fuera el filtrado de la fuente de alimentación, no esperaría a llegar a un recuento específico. De acuerdo con @ Felthry, estaría buscando la integridad de la señal digital.
¿Has probado a añadir un electrolítico a la salida del regulador? 10uF-100uF debería funcionar
@johnger Sí, además del límite de 0,1 uF en la salida, probé un electrolítico de 100 uF. No pareció ayudar.
no está claro cómo sabe que el problema está en el circuito? .... tal vez su programa es el problema
Los contenidos de los registros superior e inferior son sospechosamente similares en sus lecturas. ¿Cómo estás leyendo el contador? Muéstranos el código.
Por curiosidad, ¿hay alguna razón para no usar una salida Arduino PWM para reemplazar el 555? Y las partes 74HC jugarán mejor con el chip CMOS Atmel.
@Russell Code se publica arriba
@Towne Principalmente estoy jugando en este punto con un circuito específico en mente en el futuro. No había considerado usar una señal PWM para el reloj de registro, pero podría intentarlo. Gracias por la sugerencia.
¡Es una gran vergüenza que debo decirles a todos que tenía los cables para los bits 5 y 6 cruzados! Ese era el origen del problema. Las placas de prueba desordenadas y la tendencia a pasar por alto los problemas simples son una receta para mucho trabajo y problemas. ¡Lección aprendida!

Respuestas (1)

Veo 3 preocupaciones en su esquema:

  • Primero, y más necesario: no hay desacoplamiento para el temporizador 555.

    La versión bipolar (es decir, no CMOS) del temporizador 555 es notoria por los altos picos de corriente cuando su salida cambia de estado, lo que requiere el desacoplamiento del riel de alimentación local.

    No todas las hojas de datos de 555 tienen las mismas recomendaciones de desacoplamiento, pero la antigua hoja de datos de National Semiconductor (y algunas otras) dice:

    Es necesaria una derivación adecuada de la fuente de alimentación para proteger los circuitos asociados. El mínimo recomendado es 0,1 μF en paralelo con electrolítico de 1 μF.

    Esa recomendación probablemente fue de la era anterior a los condensadores cerámicos MLCC SMD, y un solo MLCC de 1uF podría ser suficiente en mi humilde opinión.

    La hoja de datos TI actual dice:

    Se recomienda encarecidamente un condensador de derivación desde VCC hasta el pin de tierra; el condensador cerámico de 0,1 μF es suficiente.

    Según el conjunto de recomendaciones que siga, estos uno o dos condensadores deben instalarse a unos pocos milímetros del circuito integrado, para obtener la máxima eficacia.

  • En segundo lugar, tampoco hay desacoplamiento para los otros circuitos integrados. Como ya se marcó como un duplicado, esta pregunta anterior destaca que el 74LV8154 puede verse afectado por picos de riel de alimentación, debido a la falta de desacoplamiento:

    El contador binario (SN74LV8154) salta (los bits internos parecen voltearse)

    Una vez más, se necesitan condensadores de desacoplamiento inmediatamente al lado de esos circuitos integrados.

  • Finalmente, ha agregado condensadores a las dos señales de reloj. No veo cómo eso sería útil y los eliminaría.

Entonces, en general, es muy similar a la pregunta vinculada anterior, pero el temporizador 555 en su diseño es un problema específico, ya que ese dispositivo es conocido por sus picos de alta corriente que afectarán el riel de alimentación a los otros dispositivos en su diseño, debido a el desacoplamiento que falta. Incluso si agregar el desacoplamiento junto al 555 parece resolver su problema, agregue también el desacoplamiento junto a los otros circuitos integrados.

Intenté colocar cerámica de 0,1 uF en paralelo con electrolítico de 10 uF en los pines de alimentación de todos los chips IC del circuito e incluso reemplacé el temporizador 555 con un CMOS 555. El resultado siguió siendo el mismo. Tal vez sea un problema con mi código (lo publiqué arriba en caso de que esté interesado). Sin embargo, dado el hecho de que cuenta correctamente hasta 8k, me parece poco probable que algo ande mal con el bucle de Arduino.
@ Qubit1028 - Gracias por la actualización aquí y en la pregunta - felicitaciones por encontrar la causa. La aparente sensibilidad al valor de conteo (que ahora ha explicado por el error de cableado del contador) no se explicó con las preocupaciones en mi respuesta. Así que esperaba que este fuera solo el primer paso, pero es sensato eliminar las preocupaciones que podrían verse primero, por ejemplo, los fallos lógicos causados ​​por picos de ruido de un 555 bipolar han causado problemas a muchas personas. Por lo tanto, incluso si ha encontrado la causa principal ahora, las recomendaciones anteriores siguen vigentes en mi humilde opinión, para evitar problemas futuros :-)