Informations- und Kommunikationstechnik

Asynchrone Modulo-n-Zähler

Modulo ist der Rest einer mathematischen Division zweier Zahlen. In der Programmiertechnik kann man mit mod sehr leicht bestimmen, ob eine Zahl n gerade oder ungerade ist. Ist das Ergebnis n mod 2 = 0, so ist n gerade, sonst ungerade. Modulo-n-Zähler arbeiten kontinuierlich bis zu dem durch n vorbestimmten Wert, wo sie entweder zyklisch neu beginnen oder auf einen externen Reset warten.

Ein BCD-Zähler ist folglich ein Modulo-10-Zähler, der von n = 0 bis n = 10 hoch zählt und dort das Zählende erreicht. Bei einem Modulo-n-Zähler gibt n die Anzahl der anzuzeigenden Zählstufen an. Die Anzeige 0 stellt die 1. Stufe dar. Optimal sind Modulozähler, die bei zyklischer Zählweise nach n−1 direkt auf 0 gesetzt werden und n nicht als kurzzeitigen Rückstellimpuls (Spike) ausgeben. Erfolgt der Reset ausschließlich extern, muss der Modulo-n-Zähler mit der Anzeige n−1 stehen bleiben.

Modulo-5-Zähler

Ein beim Dezimalwert 5 zurücksetzender Dualzähler benötigt drei Speicher-Flipflops und arbeitet zyklisch von 0 ... 7. Er ist nach dem letzten anzuzeigenden Dualwert 100 mit dem Folgewert 101 auf 000 zu setzen. Die am Ausgang um 10 ns kurzzeitig erscheinende Rückstellkombination kann in elektronischen Steuerschaltungen von Nachteil sein.

asynchr. Modulo-5-Zähler

Das Bild zeigt einen mit D-Flipflops erstellten asynchronen Modulo-5-Zähler. Das in Zeitdiagramm der Simulationsschaltung zeigt beim 1 MHz Takt deutlich den kurzzeitig anliegenden Löschimpuls mit dem Dualwert 101. Da die Speicher Low aktive Clear-Eingänge haben, besteht die Steuerschaltung aus einem NAND Gatter, das die Ausgangspegel Q0 und Q2 auswertet.

In Anlehnung an den modifizierten asynchronen BCD-Zähler kann auch die Schaltung des Modulo-5-Zählers so optimiert werden, dass beim Rücksetzen der Spike-Impuls vermieden wird. Das folgende Bild zeigt die Schaltung mit drei JK-Master-Slave Flipflops und Zeitablaufdiagramme der Schaltungssimulation.

asynchr. Modulo-5-Zähler

Die Eingangspegel werden auf der positiven Taktflanke in den Master M eingelesen und nach der fallenden Taktflanke vom Slave S ausgegeben. Die beiden ersten JK-MS-Flipflops sind als normale asynchrone Zählerstufen geschaltet. Der dritte Speicherbaustein wird vom Eingangstakt gesteuert und sein Q-nicht Signal bildet den J-Pegel der ersten Speicherstufe. Solange die Ausgangspegel Q0 und Q1 ungleich 1 (High) sind, bleibt der Pegel Q2-nicht auf High und das Flipflop wird nicht gesetzt. Das Eingangs-FF befindet sich mit J = K = 1 im Togglemodus.

Nach dem dritten Takt wechselt der Ausgang des UND Gatters auf High und der Master des FF-III liest auf der positiven 4. Taktflanke die Veränderungen ein. Das FF-III wird gesetzt und sein Q-nicht Ausgang und damit auch der J-Eingang des FF-I wechselt auf Low. Das FF-I kann den Togglemodus nicht fortsetzen und speichert seinen Low Ausgangspegel. Die positive Flanke des 5. Takts schaltet nur das FF-III um und nach der fallenden Taktflanke beginnt der Zählzyklus sogleich mit dem Dualwert 000. Der J-Eingang des FF-I hat wieder High Pegel, der aber erst mit der positiven 6. Taktflanke die beiden ersten Flipflops erneut in ihren Togglemodus versetzt.

Modulo-60-Zähler

Zur Steuerung elektronischer Digitaluhren eignen sich Modulo-60-Zähler, die bis 59 zählen und mit dem 60. Takt erneut mit 0 beginnen. Ein asynchron arbeitender Dualzähler mit sechs Speicher-Flipflops würde nach dem 63. Takt erneut mit 0 beginnen. Eine Steuerschaltung muss ihn schon zu Beginn des 60. Zähltakts durch Reset auf 0 setzen.

Bei 7-Segment-Anzeigeelementen ist es sinnvoll einen Modulo-10-Zähler und einen davon gesteuerten Modulo-6-Zähler zu verwenden. Der schon beschriebene BCD-Dekadenzähler SN 7490 ist dazu besonders geeignet, denn er enthält zwei getrennt nutzbare DIV 2 und DIV 5 Teiler mit eigenen Rückstelleingängen. Ein SN 7490 ist als BCD-Zähler zu schalten und liefert die Einerstelle von Sekunden oder Minuten. Die höchste Stellenzahl Q3 gibt als MSB den Eingangstakt zum zweiten SN 7490 weiter, der ebenfalls als BCD-Zähler geschaltet ist. Sein Reset auf 0 erfolgt beim Umschalten auf dual 0110 (dezimal 6). Dazu werden die erstmals gemeinsam auftretenden High Pegel der Ausgänge Q1 und Q2 genutzt, die mit einem Reset-Eingangspaar verbunden sind.

Intern ist ein SN 7490 aus vier JK-Master-Slave Flipflops mit zusätzlichen Steuerschaltungen aufgebaut. Das Bild zeigt eine vereinfachte Nachbildung mit vier SN 7476 JK-Master-Slave Flipflops. Beim SN 7490 sind die Reseteingänge R01 und R02 des NAND Gatters zur freien Beschaltung ebenso herausgeführt wie die Takteingänge des FF I und FF II. Aus dem Zeitablaufdiagramm ist zu erkennen, dass die folgende Schaltung einen Modulo-6-Zähler darstellt.

asynchr. Modulo-6-Zähler

Die gleiche Schaltung kann mit den Ausgängen Q0 bis Q3 als Modulo-10-Zähler genutzt werden. Die Reset-Eingänge R01 und R02 werden dann mit keinen der Ausgänge verbunden, sondern erhalten Low Pegel. Der Modulo-10-Zähler erzeugt keinen Reset-Spike.

Der Digitaluhr fehlt noch ein Stundenzähler. Bei zwei 7-Segmentanzeigen bieten sich auch hierzu SN 7490 JK-Master-Slave Flipflops an. Die Reset-Schaltung muss anders als bei der Minutenzählung die Einer- und die Zehneranzeige auswerten. Der Reset erfolgt bei dezimal 24, wo der Ausgang Q1 der Zehnerstufe und Q2 der Einerstufe High Signal aufweisen. Bei High aktivem Reset sind diese Ausgangspegel von einem UND Gatter auszuwerten. Bei Low aktivem Reset müsste ein NAND Gatter den Reset-Impuls an die R01 und R02 Eingänge beider Zähler-ICs geben.

asynchr. 0 bis 23 Stundenzähler

Die Funktionskontrolle erfolgte im Simulationsprogramm mit einer Schaltungserweiterung um 7-Segmentanzeigen. Der Reset-Impuls bei dezimal 24 ist zu kurz, um wahrgenommen zu werden. Die Anzeige springt von 23 auf 00 und beginnt einen neuen Zyklus.