D Flip Flop Toggle -- Q in Hex Inverter in D, instabiler Ausgang, Hilfe

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ich habe die obige Schaltung erstellt. Es gibt im Wesentlichen einen Schalter, der normalerweise hoch ist. Ich drücke einen Knopf. Mit einem NTE4049T-Hex-Inverter erstelle ich einen Übergang von niedriger zu hoher Flanke. Dies liefert den clk-Eingang an ein 74HCT175 D-Flip-Flop. Alles läuft auf TTL, 5 Volt. Der Ausgang des D-Flipflops wird in einen weiteren NTE4049T-Hex-Inverter eingespeist, um dann den D-Eingang des Flipflops zu speisen.

Idealerweise würde ich beim Drücken der Taste ein Umschalten der Q-Ausgangsleitung erstellen.

Dies geschieht nicht. Tatsächlich gibt es am Signalausgang eine gewisse Oszillation, aber keinen endlichen Zustandsübergang.

Mir ist klar, dass dies auf kontinuierliches Umschalten / schlechtes Design zurückzuführen ist. Wie wird dieses Problem gelöst? Wenn ich den Ausgang des D-Flip-Flops mit einem anderen Flip-Flop verkettete, das ebenfalls mit derselben Flanke getaktet wird, um dann einen invertierten Ausgang für das erste Flip-Flop zu erzeugen, würde das die Zustandsoszillationen lösen? Könnte ich die Ausgabe durch eine Reihe von Puffern leiten, um eine Zeitverzögerung zu erzeugen?

Das erste Bild ist die Wellenform des Schalters mit dem RC-Netzwerk. Es gibt einen sofortigen Abfall, wenn der Schalter gedrückt wird. Dieser Abfall durch einen Inverter führt dazu, dass mein clk-Signal hoch geht.

Die Bilder unten zeigen eine Hochpegelansicht des Q-Signalausgangs sowie ein vergrößertes Bild am Ende, wo das Q-Signal dann wieder niedrig wird. Ich glaube, in diesem Heckteil lädt sich der Kondensator auf. Ich bin mir nicht sicher, warum es dazu führen würde, dass das d-Flip-Flop erneut auslöst. Es sollte keine steigende Flanke geben?

Die hellblaue Linie repräsentiert das Taktübergangssignal auf dem Flip-Flop. Die gelbe Linie stellt das D-Signal dar, das in das Flipflop eingespeist wird. Die dunkelblaue Linie stellt das Q-Signal des Flip-Flops dar, kurz bevor es in den Inverter geht. Der invertierte Ausgang speist das Flipflop wieder mit einem D.

Wie wird so ein Problem in der Praxis gelöst, wenn ich es im obigen Design nicht lösen kann? Danke

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Suche nach "Schalterentprellung" - mechanische Schalter schalten nicht sauber, die Kontakte klappern einige ms herum. Das kannst du in deinem Trace sehen. Erstmal sortieren und schauen was dann passiert :)
Wandeln Sie Ihre Wechselrichter in Schmitt-Trigger-Wechselrichter um. Wenn Sie beispielsweise 74LS04 verwenden, verwenden Sie 74LS14. Schmitt-Trigger bieten Schalterentprellung.
@StainlessSteelRat Sie benötigen immer noch ein RC-Netzwerk - wenn Sie sich Jeffreys hervorragende Spuren (+1 dafür) ansehen, sind die Sprünge tief genug, um zu bewirken, dass sich die Ausgabe trotz der zusätzlichen Margin-Hysterese ändert. Ein guter Link: pubweb.eng.utah.edu/~cs5780/debouncing.pdf
Ich hatte tatsächlich einen Kondensator in der Schaltung als RC-Netzwerk. Auf dem obigen Bild war es nicht zu sehen. Ich werde ein Bild der ausgelösten Wellenform vom Schalterdruck bearbeiten und posten. Der Grund, warum ich die Kappe nicht in das Diagramm aufgenommen habe, war, dass ich dachte, dass es in dieser Version meines Schaltungstests keine Rolle spielt. Mit der Kappe erfolgt der Spannungsabfall durch das Drücken des Schalters sofort, gefolgt von einem allmählichen Spannungsaufbau im Laufe der Zeit (ca. 0,3 Sekunden). Der Spannungsabfall von der Schalterpresse durch einen Wechselrichter erzeugt meine Uhr.
Vielen Dank für die Bearbeitung - versuchen Sie, entweder die Kondensator- oder Widerstandswerte um den Faktor 10 zu reduzieren. Die RC-Konstante ist wahrscheinlich zu hoch, sodass sich der Eingang des Wechselrichters zu lange in einem undefinierten Bereich befindet.

Antworten (1)

Um die Kommentare ein wenig auszufüllen, besteht das Problem (vermute ich) darin, dass Ihre entprellende RC-Schaltung die falsche Größe hat. Mit C = 3.3   μ F Und R = 100   k Ω ergibt eine Zeitkonstante von 0,33   S . Ihre Spuren zeigen, dass Sie beim Schließen des Schalters eine schöne saubere Kante erhalten (wie Sie es erwarten würden). Wenn Sie den Schalter loslassen, beginnt der Kondensator aufzuladen. Verwenden der Gleichung v C = v ich N ( 1 e T R C ) , können Sie neu anordnen, um zu finden T = R C ln ( 1 v C v ich N ) . Mit den Werten von v ICH L = 1   v (maximaler logischer LOW-Eingang) und v ICH H = 4   v (minimaler logischer HIGH-Eingang) aus dem Datenblatt des Wechselrichters zeigt, dass sich der Eingang des Wechselrichters in einem undefinierten Zustand befindet ( v ICH L < v ich N < v ICH H ) für etwa 460 ms. Dies stimmt damit überein, dass Sie einen zusätzlichen Übergang am Mittelpunkt der Hinterkante sehen. Versuchen Sie, den Wert von beiden zu reduzieren R oder C um den Faktor 10 und verwenden Sie idealerweise auch einen Schmitt-Trigger-Eingangsinverter, wie in den Kommentaren vorgeschlagen.

Danke schön. Ich werde versuchen, was du sagst. Ich habe 0,33 sowie etwa 5 RC (1,65) berechnet, um die Obergrenze aufzuladen - was wahrscheinlich viel zu lang ist. Ich werde die Werte reduzieren und einen Schmit-Trigger-Wechselrichter bekommen.