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:
In der Welt der Elektronik geben Taktgeber elektrische Impulse in einer bestimmten Frequenz ab und sind damit im elektronischen Rechenwerk unerlässlich. Die meisten Steuerungs- und Schaltvorgänge im Rechenwerk sind taktgesteuert.
Es gibt viele Umsetzungformen, von der einfachen Blinkschaltung bis zum Schwingquarz-Oszillator, je nach erforderlichem Einsatzzweck.
Für meine vorgestellten Bastelprojekte verwende ich meinen Aufbau aus dem Beitrag „LED dimmen mit NE555 PWM“ als Taktgeber. Doch wie schon im letzten Beitrag angesprochen, möchte ich heute einen alternativen Taktgeber aus einem tollen Projekt von Ben Eater vorstellen.
Ben Eater ist in der Community bekannt für sein großartiges Project „Build an 8-bit computer from scratch“ und seine zugehörigen, sehr empfehlenswerten Tutorial-Videos auf Youtube hierzu. Er beschreibt den Aufbau eines 8-Bit-Computers auf dem Steckbrett unter Verwendung einfacher Logikbausteine mit Taktgeber, Register, Arithmetisch-logischer Einheit (ALU), RAM, Register, usw. Schaut es Euch mal an, es lohnt sich!
Ich stelle hier seinen Aufbau eines Taktgebers vor, welcher sich sehr gut für weitere Bastelprojekte eignet. Er verwendet hierbei ebenfalls den bekannten Baustein NE555 und nutzt diesen innerhalb seiner Schaltung auf drei verschiedene Arten.
Die Taktfrequenz kann stufenlos zwischen knapp einem Hertz bis auf ein paar hundert Hertz eingestellt werden. Es gibt auch die Möglichkeit zum Umschaltung in einen manuellen Modus, um jeden Taktzyklus per Tastendruck auszulösen.
Bitte vergesst bei den Bausteinen 74LS08, 74LS04 und 74LS32 nicht, VCC (Pin 14) und GND (Pin 7) anzuschliessen, dies ist auf dem Schaltplan nicht sofort ersichtlich.
Nachfolgend seht Ihr meinen Aufbau. Ich kann diese Schaltung nur empfehlen, gerade die feine Frequenzeinstellung und die Möglichkeit zum manuellen „Durchsteppen“ der Schaltung hat mir sehr gefallen.
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.
Im letzten Teil habe ich den Aufbau eines 1-Bit Speichers (Flipflop) aus diskreten Bauelementen (Transistoren, Widerstände, etc.) dargestellt. In diesem Teil geht es um die erste Realisierung eines solchen Aufbaus mit einer integrierten Schaltung.
Zum Einsatz kommt hier eine integrierte Schaltung aus der 74xx-Familie, dessen Geschichte bis in die 1970er-Jahre zurückreicht. Genauer geht es hier um die Schaltung 74xx00, ein 2-fach NAND-Gatter. Zum Einsatz kommt die High speed CMOS-Version mit der Kennung „HC“, also der Baustein „74HC00“. Dieser kann mit einer Versorgungsspannung von 2-6 V betrieben werden.
Der folgende Schaltplan zeigt den Aufbau eines 2-Bit Speichers mit diesem Baustein. Ähnlich wie schon beim Aufbau aus dem ersten Teil werden die jeweiligen Zustände mittels verschiedenfarbiger LEDs dargestellt. Die erste Speicherstelle (Register 1) wird durch eine rote LED, die zweite (Register 2) durch eine grüne LED repräsentiert. Der jeweils zweite stabile Zustand („Reset“) wird wie zuvor durch eine gelbe LED angezeigt. Auch hier werden die jeweiligen Zustände mittels der Taster „Set“ und „Reset“ umgeschaltet.
Den Aufbau auf dem Steckbrett habe ich direkt mit zwei Bausteinen vorgenommen, um direkt einen 4-Bit Speicher für die folgenden Aufbauten zur Verfügung zu haben. Wie man jetzt schon gut erkennen kann, wäre der Aufbau dieser Schaltung nur mit diskreten Bauelementen allein bereits jetzt schon sehr umfangreich. Im nächsten Teil wird der (Einzelteil-) Umfang noch weiter reduziert.
Dies ist Teil 1 meiner neuen Reihe, welche sich künftig rund um das Basteln mit integrierten Schaltungen dreht.
Zu Beginn geht es um den Aufbau einer sogenannten bistabilen Kippstufe, das Flipflop. Diese Schaltung kann die Datenmenge von einem Bit über eine unbegrenzte Zeit speichern und ist ein unverzichtbares Bauelement innerhalb von Schaltungen der Digitaltechnik von der Quarzuhr bis hin zum Mikroprozessor. Im Besonderen ist dieser elementare 1-Bit-Speicher das Grundelement der statischen Speicherbausteine (SRAM) im Computer.
In diesem Artikel erfolgt der Aufbau zum besseren Verständnis mittels diskreten Bauelementen.
Im wesentlichen besteht die Schaltung aus zwei NAND-Gattern, dessen Eingabezustände über zwei Taster (Set und Reset) mittels Transistoren angesteuert werden. Die Ausgabe erfolgt über zwei LEDs. Der erste stabile Zustand des Ausgangssignals wird mit der roten LED, der zweite mit der gelben LED dargestellt. Wird die Taster „Set“ gedrückt, leuchtet die rote LED auf (die gelbe LED verlischt). Beim Drücken der Taste „Reset“ verlischt die rote LED (und die gelbe LED leuchtet auf).
Auf dem Steckbrett habe ich noch eine 7-Segment-Anzeige ergänzt, welche eine „1“ beim ersten Ausgabezustand und ein „-“ beim zweiten Ausgabezustand anzeigt.
Im nächsten Teil wird für diesen Aufbau eine integrierte Schaltung zum Einsatz kommen.