Asynchroner Rück- und Vorwärts Zähler

Hallo,

die Schaltung: http://i.imgur.com/iYTJ2i8.png

Ich versuche mit T-FF mit Master Slave einen Asynchronen Zähler zu basteln der Vorwärts sowie rückwärts zählt. Problem ist, an sich funktioniert dieser, jedoch zählt er immer das gegenstück von dem anderen. Es sind ja 16 zahlen die ich anzeigen lassen kann (0 - 15). Und wenn beim vorwärts zählen die 5 dran ist, wird beim rückwärtszählen die 10 gewählt.
Allerdings möchte ich es so haben, dass wenn ich die 5 Zähle, dass ich beim rückwärtszähle bei der 5 Weiter mache. Also 5->4->3->Auf Vorwärts wechseln->4->5->6.

Gruß.

Hallo Fragewurm,

Der Link geht nicht !!

MfG Peter(TOO)

Servus,                                                                                  

der Link führt leider nicht dahin, wo er hinführen soll.

MfG
J

So jetzt, der hat das „g“ bei png nicht als Link hinzugefügt :confused:

http://i.imgur.com/iYTJ2i8.png

Hi,

kann es sein, dass nicht die Zählreihenfolge das Problem, das du uns beschreiben willst, ist, sondern dass beim Umschalten zwischen den Zählrichtungen sich der Zählerstand ungewollt ändert?

Grüße, Uwe

Hallo Fragewurm,

reale Gatter haben Laufzeiten und diese Laufzeiten sind nicht konstant, sondern von Gatter zu Gatter unterschiedlich. Zudem ändern sich diese auch noch mit de Belastung, Temperatur, Betriebsspannung usw.

Und dann darfst du deinen Inverter nicht vergessen!

BTW: Es wäre jetzt wesentlich einfacher, wenn du deine Gatter irgendwie durchnummeriert hättest!

Deshalb bin ich jetzt zu faul, weiter darauf einzugehen was in deiner Schaltung ab geht :frowning:

MfG Peter(TOO)

Ich finde mein Problem nicht… wenn ich auf der 9 stehe und umschalte… passiert nichts und ich kann ohne probleme runter zählen. Irgendwie ändert er beim wechseln der richtung immer nur die LED’s dort, die ab dem letzten Signal anliegen…

mmh :frowning:

Err0815: Syntax Error
Ich weiß immer noch nicht, was du sagen willst. Beim Umschalten passiert nichts, aber beim Wechsel der Richtung (=Umschalten?!?) passiert was Falsches? Oder erst beim Zählen?

Wie auch immer, mindestens ein Problem hast du mit Sicherheit mit der Schaltung:
Bei jedem Wechsel des Richtungssignals werden die Takteingänge der letzten 3 FFs invertiert. Logisch, dass dabei auch positive Taktflanken entstehen und FFs ungewollt umkippen können. Und wenn ein FF umkippt, kann das folgende FF auch kippen.

Grüße, Uwe

Und wie sorge ich dafür das dies nicht passiert?.. Ich verstehe nicht wieso das so ist.

Hallo,

… Ich verstehe nicht wieso das so ist.

Das ist jetzt schlecht. Das sind Grundlagen der Digitaltechnik und ich wüsste jetzt nicht, wo ich anfangen muss, das zu erklären. Mein Hinweis von vorhin sagt eigentlich alles.

Und wie sorge ich dafür das dies nicht passiert?

Einen umschaltbaren asynchronen Zähler habe ich noch nie gesehen und ich vermute, dass das auch gar nicht geht. Aber mit synchronen Zählern geht das.

Grüße, Uwe

Habe das hier gefunden: http://www.elektronik-kompendium.de/sites/dig/021003…

Da soll es gehen. Für mich sieht das problem bei mir so aus, das dort wo das Signal anliegt und ich dann Umschalte, die Signale weiter geleitet werden und alle folgenden Ausgänge invertiert werden wieder. Deswegen klappt es ja auch wenn die Zahl 9 gebildet wird, also 0 0 0 1. Da liegt nirgends mehr ein Signal an wo dahinter was invertiert werden kann.

Hallo Fragewurm,

Und wie sorge ich dafür das dies nicht passiert?.. Ich
verstehe nicht wieso das so ist.

Du musst dich von der idealisierten Form der Schaltelemente lösen!

Wenn sich die Eingänge eine Gatters ändern, dann ändert sich der Ausgang erst zeitlich verzögert.

 +-----+
 | |
A --+-----------| |
 | | | C
 | +----+ | & +-----
 | | | B | |
 +-+ -1 +----+ | 
 | | | |
 +----+ +-----+

Theoretisch ist C immer 0, egal welchen Zustand A hat.

Wenn A = 0 ist, ist B = 1 und C = 0.
Wenn nun A auf 1 wechselt wir B erst verzögert = 0.
Das UND-Gatter hat also kurzzeitig an beiden Eingängen eine 1 anliegen und C wird auch kurzzeitig 1 …

Dies kann dann vom T-Flip-Flop als Impuls ausgewertet werden.

Je nach Logikfamilie liegt die Schalzeit bei etwa 3-15ns.

Der Fachbegriff ist Glitch:
http://de.wikipedia.org/wiki/Glitch_(Elektronik)

MfG Peter(TOO)

Peter, danke dir :smile:
Doof ist, das LogicSim keine gatterlaufzeiten hat… zumindestens glaub ich das…

Gruß.

Hallo Peter und Fragewurm,

ich muss den Peter korrigieren: Das hat nichts (oder zumindest nicht primär etwas) mit Gatterlaufzeiten zu tun, es ist viel trivialer. Der in http://www.elektronik-kompendium.de/sites/dig/021003… als „Steuerschaltung“ gekennzeichnete Block ist zusammen mit dem globalen Inverter ein lupenreiner Multiplexer. Der schaltet entweder den Q- oder den nQ-Ausgang auf den Takteingang. Diesen Multiplexer kann man übrigens auch durch ein einfaches Exclusive-Or ersetzen, das macht die Sache vielleicht noch deutlicher. Spätestens nach dem zweiten Umschalten der Richtung hat sich dabei eine gültige Taktflanke am folgenden FF ergeben, ganz ohne dass der Eingangstakt sich geändert hat und ohne dass ein Glitch dabei eine Rolle spielt. (Der könnte auch noch dazu kommen, aber selbst wenn man den z. B. mit einem Tiefpass entschärft, würde der Zähler dieses Verhalten zeigen.)

Es gibt genau zwei Situationen, bei denen ein 1-maliges Richtungsumschalten keine Zählerstandesänderung ergibt:
Wenn der Zählerstand 111x ist und von Abwärts auf Aufwärts geschaltet wird, und
wenn der Zählerstand 000x ist und von Aufwärts auf Abwärts geschaltet wird,
denn dann bekommen alle FFs die inaktive positive Taktflanke. Wobei hier ein Glitch auch wieder in die Suppe spucken könnte. Aber spätestens beim nächsten Richtungsumschalten geht dann ein munteres Umkippen der FFs los, denn dann bekommen alle FFs die aktive negative Flanke und dazu zeitverzögert ggf. das Umkippen des vorhergehenden FFs…

Grüße, Uwe