Unregelmäßiges Verhalten vom 16-Bit-Zähler-IC SN74LV8154 [Duplikat]

Meine Testschaltung ist unten gezeigt. Ich habe verschiedene Konfigurationen ausprobiert, bekomme aber immer wieder Sprünge in den Ausgabezahlen. Scheint wiederholbar und konsistent zu sein. Zum Beispiel tritt der erste Sprung immer bei 7k-8k-Zählungen auf. Ich habe einen anderen Beitrag gesehen, in dem das Problem bei der Filterung der Stromversorgung zu liegen schien. Ich habe viele verschiedene Filterkappen an meinem Reglerausgang, dem Registertaktsignal und dem Zähltaktsignal ausprobiert. Ratschläge wären an dieser Stelle sehr willkommen.

Geben Sie hier die Bildbeschreibung ein

Der Arduino-Code kann hier überprüft werden

Arduino-Ausgang:

Geben Sie hier die Bildbeschreibung ein

AKTUALISIEREN

Scope-Trace für RCLK-Eingabe:
Geben Sie hier die Bildbeschreibung ein

Scope-Trace für CLKA-Eingabe:
Geben Sie hier die Bildbeschreibung ein

5V-Versorgung bei laufendem 555:
Bildbeschreibung hier

5V-Versorgung ohne laufenden 555:
Geben Sie hier die Bildbeschreibung ein

AKTUALISIEREN

Habe versucht, den Zählerchip durch einen neuen zu ersetzen, und das gleiche Ergebnis wie zuvor. Als ich das Eingangssignal auf 10 Hz verlangsamte, konnte ich auch sehen, dass der erste Sprung zwischen der Dezimalzahl 8114 und 8150 stattfand. Der erste Dezimalwert nach dem Sprung war 16390, fast genau das Doppelte!

00011111 10110010 Dezimal: 8114 <-- Zähler vor Fehler

00011111 11100100 Dezimal: 8164 <-- Erwartete Anzahl nach Fehler

01000000 00000110 Dezimal: 16390 <-- Aktueller Zählerstand

Mein erster Instinkt ist zu fragen, ob Sie ein Oszilloskop haben, damit Sie sehen können, was genau an den Eingängen Ihres Zählers vor sich geht.
@Felthry Ja, ich habe ein Zielfernrohr. Die Eingänge sehen für mich ziemlich gut aus. Schöne Rechteckwellen (5 V pp) auf CLKA und RCLK. Mir ist aufgefallen, dass beim Betrieb des 555 ein Rauschen von 10 kHz in der Versorgung auftritt. Versucht zu filtern, aber konnte es nicht vollständig loswerden. Ich bin mir nicht sicher, ob das das Problem sein könnte oder nicht.
Wenn es die Stromversorgungsfilterung wäre, würde sie nicht warten, um zu einer bestimmten Zählung zu gelangen. Stimme @ Felthry zu, ich würde mir die Integrität digitaler Signale ansehen.
Hast du schon mal versucht, dem Reglerausgang einen Elektrolyt hinzuzufügen? 10uF-100uF sollten funktionieren
@johnger Ja, zusätzlich zur 0,1-uF-Kappe am Ausgang habe ich einen 100-uF-Elektrolyt ausprobiert. Es schien nicht zu helfen.
Es ist unklar, woher Sie wissen, dass das Problem in der Schaltung liegt? .... vielleicht liegt es an deinem Programm
Die Inhalte der unteren und oberen Register sind bei Ihren Lesevorgängen verdächtig ähnlich. Wie liest du den Zähler? Zeig uns den Code.
Gibt es aus Neugier einen Grund, den 555 nicht durch einen Arduino PWM-Ausgang zu ersetzen? Und 74HC-Teile spielen besser mit dem CMOS-Atmel-Chip.
@Russell Code ist oben gepostet
@Towne Ich bastle an diesem Punkt hauptsächlich mit einer bestimmten Schaltung im Hinterkopf. Ich hatte nicht daran gedacht, ein PWM-Signal für die Registeruhr zu verwenden, aber ich kann es versuchen. Danke für den Vorschlag.
Es ist sehr schade, dass ich Ihnen allen sagen muss, dass ich die Drähte für die Bits 5 und 6 vertauscht hatte! Das war die Quelle des Problems. Unordentliche Steckbretter und die Tendenz, einfache Probleme zu übersehen, sind ein Rezept für viel Mühe und Ärger. Lektion gelernt!

Antworten (1)

Ich sehe 3 Bedenken in Ihrem Schaltplan:

  • Erstens und am meisten benötigt: Es gibt keine Entkopplung für den 555-Timer.

    Die bipolare (dh nicht CMOS) Version des 555-Timers ist berüchtigt für hohe Stromspitzen, wenn ihr Ausgang den Zustand ändert, was eine lokale Stromschienenentkopplung erfordert.

    Nicht alle 555-Datenblätter haben die gleichen Entkopplungsempfehlungen, aber das alte Datenblatt von National Semiconductor (und einige andere) sagen:

    Eine angemessene Umgehung der Stromversorgung ist erforderlich, um die zugehörige Schaltung zu schützen. Das empfohlene Minimum ist 0,1 μF parallel zu 1 μF elektrolytisch.

    Diese Empfehlung stammt wahrscheinlich aus der Zeit vor MLCC-SMD-Keramikkondensatoren, und ein einzelner 1uF-MLCC könnte meiner Meinung nach ausreichen.

    Das aktuelle TI-Datenblatt sagt:

    Ein Bypass-Kondensator wird dringend von VCC zum Erdungsstift empfohlen; Keramikkondensator 0,1 μF ist ausreichend.

    Je nachdem, welchen Empfehlungen Sie folgen, müssen diese ein oder zwei Kondensatoren innerhalb weniger Millimeter vom IC angebracht werden, um maximale Wirksamkeit zu erzielen.

  • Zweitens gibt es auch keine Entkopplung für die anderen ICs. Diese vorherige Frage, die bereits als Duplikat gekennzeichnet ist, hebt hervor, dass der 74LV8154 aufgrund fehlender Entkopplung von Stromschienenspitzen betroffen sein kann:

    Binärzähler (SN74LV8154) springt (interne Bits scheinen zu kippen)

    Auch hier werden unmittelbar neben diesen ICs Entkopplungskondensatoren benötigt.

  • Schließlich haben Sie den beiden Taktsignalen Kondensatoren hinzugefügt. Ich sehe nicht, wie das hilfreich wäre, und ich würde sie entfernen.

Insgesamt ist es also der oben verlinkten Frage sehr ähnlich, aber der 555-Timer in Ihrem Design ist ein spezifisches Problem, da dieses Gerät für seine hohen Stromspitzen bekannt ist, die sich auf die Stromschiene zu den anderen Geräten in Ihrem Design auswirken die fehlende Entkopplung. Auch wenn das Hinzufügen einer Entkopplung neben dem 555 Ihr Problem zu lösen scheint , fügen Sie die Entkopplung auch neben den anderen ICs hinzu.

Ich habe versucht, 0,1-uF-Keramik parallel zu 10-uF-Elektrolyt an den Stromanschlüssen aller IC-Chips in der Schaltung zu platzieren, und sogar den 555-Timer durch einen CMOS 555 ersetzt. Das Ergebnis war immer noch dasselbe. Vielleicht ist es ein Problem mit meinem Code (ich habe es oben gepostet, falls es dich interessiert). Angesichts der Tatsache, dass es bis zu 8k korrekt zählt, scheint es mir jedoch unwahrscheinlich, dass etwas mit der Arduino-Schleife nicht stimmt.
@Qubit1028 - Danke für das Update hier und in der Frage - Glückwunsch zum Finden der Ursache. Die offensichtliche Empfindlichkeit gegenüber dem Zählwert (die Sie jetzt durch die Fehlverdrahtung des Zählers erklärt haben) wurde nicht mit den Bedenken in meiner Antwort erklärt. Ich hatte also erwartet, dass dies nur der erste Schritt war, aber es ist sinnvoll, die Bedenken auszuräumen, die zuerst gesehen werden konnten , z. B. Logikstörungen, die durch Rauschspitzen von einem bipolaren 555 verursacht werden, haben vielen Menschen Probleme bereitet. Selbst wenn Sie die Hauptursache jetzt gefunden haben, bleiben die obigen Empfehlungen IMHO bestehen, um zukünftige Probleme zu vermeiden :-)