In Teil 3 habe ich den Aufbau eines 4-Bit-Speichers mit dem Baustein 74HC173 ausführlich beschrieben. In diesem Teil geht es nun um den Aufbau einer einfachen Einheit nach dem EVA-Prinzip (Eingabe/Verarbeitung/Ausgabe), eines grundlegenden Prinzips der Datenverarbeitung moderner Computer.
Diese Einheit soll zwei Werte aufnehmen, addieren und ausgeben – also eine Art simpler Taschenrechner (der aber nur addieren kann).
Die Eingabe erfolgt über zwei 4-Bit-Register A und B, z.B. aus der Schaltung aus Teil 3 mittels 4-D-Flipflop 74HC173. Die Eingabe erfolgt z.B. über Taster in Binärform (von 0000-1111) und wird über rote LEDs angezeigt.
Für die Verarbeitung ist der 4-Bit Volladdierer 74HC283 zuständig. Dieser nimmt die Eingabewerte aus Register A und B auf, addiert diese und gibt sie an einem 4-Bit Datenausgang wieder aus. Das binäre Ergebnis wird mit grünen LEDs angezeigt.
Die Ausgabe soll für Menschen lesbar in Dezimalform erfolgen. Für die Umwandlung des binären Ergebnisses des Volladdierers ins Dezimalformat ist der BCD zu 7-Segment-Dekoder 74HC4511 zuständig. Dessen Ausgabe erfolgt abschließend auf einem 7-Segment-Display.
Der Aufbau ist zur Verdeutlichung des Prinzips bewusst einfach gehalten. Aus diesem Grund erfolgt die Ausgabe auch nur auf einem einstelligen Display.
Wenn das Grundprinzip verstanden wurde, lässt sich die Schaltung unter Verwendung weiterer Bausteine erweitern und damit z.B. eine zweistellige Digitalausgabe realisieren, indem der Übertrag (Carry) des Volladdierers 74HC283 genutzt wird. Desweiteren können z.B. anstelle einer binären Eingabe-LED-Anzeige auch weitere Dekoder 74HC4511 mit 7-Segmentanzeigen versehen werden, um die Eingabe benutzerfreundlicher darzustellen.
Hier nun Fotos meiner Versuchsaufbauten (hier auch Kombinationen früherer Aufbauten) in verschiedenen Eingabesituationen:
Im letzten Teil wurde ein 4-Bit-Speicher (Flipflop) aus zwei integrierten Schaltungen des Typs 74HC00 (2-fach NAND-Gatter) der 74xx Reihe aufgebaut.
In diesem dritten Teil wird der Aufbau eines 4-Bit-Speichers mittels der integrierten Schaltung 74HC173 vorgenommen, ein 4D-Flipflop mit Tri-State-Ausgang. Mit diesem Speicher lassen sich bereits 16 verschiedene Zustände (2^4) speichern. Dieser IC schaltet mit einem Taktsignal, als Taktgeber kann z.B. ein NE555 verwendet werden, wie die hier gezeigte Schaltung aus dem Beitrag LED dimmen mit NE555 PWM.
Setzt man bei dieser Schaltung einen Kondensator mit größerer Kapazität ein, wird ein langsames Blinken erzeugt, was es ermöglicht, ein Einfluss des Taktgebers auf die Schaltvorgänge besser nachvollziehen zu können. Alternativ dazu stelle ich im nächsten Beitrag einen alternativen Taktgeber vor.
Nun zum Aufbau selbst. Im nachfolgenden Schaltplan zeige ich zwei Varianten auf, die Versuchsaufbauten „A“ und „B“.
Versuchsaufbau „A“ dient als einfacher, selbsthaltender Speicher, ähnlich der Schaltungen meiner bisher gezeigten Aufbauten.
Versuchsaufbau „B“ arbeitet ohne Selbsthaltung mit setzbaren Dateneingängen E1/E2 (Pin 9 und 10 „Enable Data Input“). Doch was heißt das und wo genau liegen die Unterschiede?
Vergleicht man beide Schaltpläne, erkennt man folgende Unterschiede zwischen Versuchsaufbau „A“ und „B“:
Bei Versuchsaufbau „A“ sind die Eingänge D0-D3 mit den Ausgängen Q0-Q3 verbunden, bei Versuchsaufbau „B“ nicht
Die Dateneingänge E1 und E2 wurden bei Versuchsaufbau „A“ mit GND verbunden, bei Versuchsaufbau „B“ ist dies wie CLK (Pin 7, Cp) ein weiterer Eingang
Bei Versuchsaufbau „B“ wurden Anschlüsse DA_0 bis DA_3 herausgeführt, um die Datenausgangsleitung zu zeigen. Dies wäre allerdings auch bei Aufbau „A“ schon möglich gewesen, die LEDs dienen ohnehin nur der Visualisierung.
Versuchsaufbau A
Die Selbsthaltung bei Versuchsaufbau „A“ besteht in der Kopplung der Ein- und Ausgänge. Die Dateneingänge E1 und E2 sind miteinander verbunden und werden zu GND geführt, das Eingangssignal ist damit LOW, der Dateneingang ist damit laut Datenblatt aktiv gesetzt. Was dies alles genau heißt, darauf gehe ich im weiteren Verlauf etwas später ein.
Zum Speichern eines Wertes muss einer der Taster SW1-4 gedrückt werden, die zugehörige LED leuchtet auf. Der Reset-Taster setzt wie gewohnt alles wieder zurück. Nachfolgend ein Bild des Aufbaus auf dem Steckbrett. Die gelbe lange Leitung nach rechts führt zum Taktgeber.
Wenn der Taktgeber langsam z.B. im Sekundentakt blinkt, fällt auf, dass man die Taster eine Weile gedrückt halten muss, bis die entsprechende LED dauerhaft leuchtet. Dieses Verhalten hat also offenbar etwas mit dem Taktsignal zu tun. Doch was passiert da genau?
Taktzyklus
Einfach erklärt, schaltet der Taktgeber im Wechsel ein HIGH / LOW Signal in einer bestimmten Frequenz. Dies entspricht einem Wechsel zwischen An und Aus oder 1 und 0. Geschieht dieser Wechsel ohne langsam ansteigende/abschwellende Spannung über einen bestimmten Zeitraum, spricht man von einem Rechtecksignal.
Der Baustein 74HC173 reagiert auf das Taktsignal an Pin 7 wie folgt:
Ist das Eingangssignal des Taktgebers HIGH und gleichzeitig die Dateneingänge E1 und E2 LOW (also aktiv gesetzt), werden die zu diesem Zeitpunkt an den Eingängen D0-D3 anliegenden Zustände gespeichert und auf den Ausgängen Q0-Q3 ausgegeben. War einer der Eingangswerte zu diesem Zeitpunkt HIGH, leuchtet die entsprechende LED auf.
Die gespeicherten Zustände bleiben bis zum nächsten Taktzyklus erhalten. Mit dem nächsten HIGH Impuls werden sie wieder durch die zu diesem Zeitpunkt an den Eingängen anliegenden Werte ersetzt.
Möchte man dies verhindern und die gespeicherten Zustände bis auf weiteres erhalten, setzt man die Dateneingänge E1 und E2 unmittelbar bzw. innerhalb des Zeitraumes bis zur nächsten Änderung der Eingangswerte D0-D3 auf HIGH. Die Werte bleiben nun so lange gespeichert, bis E1 und E2 wieder auf LOW gesetzt werden, unabhängig davon, wie sich die Zustände bei D0-D3 verändern sollten.
Im Versuchsaufbau „A“ sind die Dateneingänge E1 und E2 immer auf LOW, also aktiv.
Damit erklärt sich auch, warum man die Tasten je nach Taktfrequenz länger gedrückt halten muss, bis die LEDs dauerhaft leuchten. Drückt man den Taster und lässt ihn los, bevor der Taktimpuls HIGH ist, wird der anschließende Eingangswert LOW (= Taster losgelassen) gespeichert – die LED erlischt wieder.
Die Selbsthaltung ergibt sich aus der Kopplung der Datenausgänge mit den Eingängen. Wurde der Zustand einmal aufgenommen, wird die Ausgabe wieder zur Eingabe.
Versuchsaufbau B
So nützlich die Selbsthaltung hier in Verbindung mit den Tastern erscheint (einmalige Impulse werden dauerhaft gespeichert), so ist diese Form als Speicher in Computersystemen eher unpraktisch. Sinnvoller wäre es doch, im Bedarfsfall zu entscheiden, ob und wie lange Zustände gespeichert werden sollen. Genau dies erfolgt beim folgenden Versuchsaufbau „B“
In diesem Versuchsaufbau kann der Zustand der Dateneingänge E1 und E2 umgeschaltet werden (LOW: Eingang ein, HIGH: Eingang aus). Im obigen Steckbrettaufbau erfolgt dies einfach mittels Umstecken des gelben Kabels in der Mitte nach VCC oder GND (hier im Foto in GND eingesteckt). Alles weitere funktioniert so, wie bereits im Abschnitt „Taktzyklus“ beschrieben. Zudem könnte man bei dieser Schaltung auf den Reset-Taster verzichten, sofern man selbst keinen generellen „Master-Reset“ benötigt.
Für welchen Schaltungsaufbau man sich entscheidet, hängt letztendlich vom geplanten Einsatzszenario ab. In den nächsten Teilen wird es um die weitere Verarbeitung gespeicherter Zustände gehen.