Die Kenntnis digitaler Grundfunktionen gehört zu
den Grundlagen der Elektronik und der Computertechnik. Praktische
Experimente sind dabei effektiver als trockene Theorie. Deshalb wird hier ein
System eingesetzt, mit dem man die wichtigsten Grundschaltungen für eigene
Experimente nutzen kann.
Damit der Aufbau möglichst kompakt und handlich bleibt, werden nicht die
üblichen TTL- oder CMOS-Digitalbausteine verwendet, stattdessen werden alle
Digitalschaltungen durch einen Mikrocontroller und seine Software erzeugt.
Vor dem Experimentieren wird zunächst die Platine zusammengebaut. Man
braucht einen Lötkolben und etwas Lötzinn. Die Aufbauarbeiten helfen dabei, genau
zu verstehen, wie die Teile des Systems zusammenhängen.
Der Bausatz enthält eine SMD-Platine mit dem Mikrocontroller und allen LEDs, Widerständen und Kondensatoren. Einige zusätzliche Teile müssen noch eingelötet werden. Dabei handelt es sich um zwei Steckleisten mit 2 × 10 Kontakten, zwei Tastschalter, ein Potentiometer und eine Schraubklemme für das Batteriekabel. Die Steckbrücken (Jumper) werden erst für die eigentlichen Versuche benötigt.
Abb. 1.1: Die vorbestückte Platine
Zusätzlich gibt es ein sechsfaches Kabel mit Steckbuchsen an beiden Enden, das in Einzelkabel aufgetrennt werden kann. Damit kann man auch Verbindungen zwischen entfernten Kontakten herstellen.
Abb. 1.2: Zusätzliche Bauteile
Bevor es richtig losgeht, muss gelötet werden. Man beginnt am besten mit den zwei Pfostensteckleisten mit jeweils 2 × 10 Kontakten. Wenn man sie in die Platine einsetzt, kann danach alles umgedreht und auf eine flache Oberfläche gelegt werden, damit die Kontakte gerade sitzen. Am besten lötet man zuerst nur einen Pin und kontrolliert dann noch einmal den korrekten Sitz. Notfalls kann man die Lötstelle noch einmal erhitzen und etwas korrigieren. Dann können alle Kontakte nacheinander gelötet werden.
Abb. 1.3: Eingebaute Pfostenstecker
Das ist zugleich eine gute Lötübung, falls man das noch nicht so häufig
gemacht hat. Jede Lötstelle muss richtig heiß werden, damit das Lötzinn tief in
die Bohrung fließt und den Kontaktstift völlig umhüllt. Man darf aber auch
nicht zu lange löten, damit nicht der letzte Rest des Flussmittels verdampft.
Eine gute Lötstelle erkennt man daran, dass sich das Lötzinn rund an das Metall
schmiegt und eine glatte Oberfläche bildet. Falls nötig, kann man die
Lötstellen problemlos noch mal mit etwas frischem Lötzinn nachlöten.
Nun folgten die beiden Tastschalter S1 und S2, das Potentiometer (kurz Poti) und am Ende die Schraubklemme für den Batterieanschluss. Wenn alle Teile eingelötet sind, werden von unten die kleinen Gummifüße in die passenden Löcher gesteckt. Die Platine steht damit sicher und kann den Tisch nicht verkratzen.
Abb. 1.4: Die fertig aufgebaute Experimentierplatine
Mit der Schraubklemme wird der Batterieclip angeschlossen. Das rote
Kabel ist der Pluspol, das schwarze der Minuspol. Es hat sich bewährt, das
abisolierte und verzinnte Kabelende nach hinten umzuknicken und das Kabelende
dann zusammen mit der Isolierung in der Klemme anzuschrauben. Damit erhält man
eine langlebige Verbindung und vermeidet einen Kabelbruch, der sonst nach
häufigem Biegen des Batteriekabels droht.
In der Mitte der Platine
erkennt man den Mikrocontroller MS51FB9AE, einen modernen 8051-kompatiblen
Flash-Controller. Er enthält zahlreiche Programme, mit denen er digitale Gatter
und andere digitale Schaltungen realisiert, und ersetzt damit eine große Anzahl
verschiedener digitaler Bausteine. Statt unterschiedliche ICs einzusetzen, muss
man nur die passenden Programme wählen. Dazu dienen die Jumper-Positionen A bis
D. Jumper U schaltet die Betriebsspannung ein. Auf der Platine gibt es einen
5-V-Spannungsregler HT7550 zur Stabilisierung der Betriebsspannung. Der
Controller arbeitet daher mit stabilen 5 V.
Auf der anderen Seite gibt es zehn SMD-LEDs und die zugehörigen Anschlüsse der durch den Controller gebildeten digitalen Schaltungen. Jeder Anschluss kann Eingang oder Ausgang sein, und der aktuelle Zustand wird immer durch die zugehörige LED angezeigt. Damit hat man zehn Ein-/Ausgänge, die in den Versuchen die Anschlüsse der Gatter, Flipflops oder anderer digitaler Bausteine bilden.
Abb. 1.5: Schaltplan der Platine
Dass jeder Pin sowohl Eingang
als auch Ausgang sein kann, wird durch die besonderen Eigenschaften der 8051-Controller
möglich. Die quasi-bidirektionalen Ports verwenden einen Pull-up-Strom von ca. 50 µA,
der die LEDs ausreichend hell leuchten lässt. Man darf jeden Anschluss nach
Masse kurzschließen und erzeugt damit einen logischen Zustand 0. Auch der Controller
kann jeden Pin mit seinem Open-Drain-Ausgang aktiv herunterziehen, während ein
1-Zustand hochohmig durch den internen Pull-up-Widerstand erzeugt wird. Alle
Eingänge sind TTL-kompatibel und haben eine Schaltschwelle nahe 1 V. Der
1-Zustand jedes Ausgangs wird durch die zugehörige LED auf ca. 2 V
begrenzt. Der Anwender darf jeden Pin, egal ob Eingang oder Ausgang, mit einem
Jumper an GND legen. Die Anschlüsse sind daher extrem fehlertolerant. Nur der
Anschluss externer Spannungen muss vermieden werden.
Die 8051-kompatiblen quasi-bidirektionalen
Ports sind im 1-Zustand hochohmig. Damit trotzdem steile Schaltflanken erreicht
werden, wird der Port bei jedem 0-1-Wechsel für zwei Taktzyklen, also für 0,5 µs
bei der Arbeitsfrequenz von 4 MHz, mit einem größeren Strom hochgezogen. Das
bleibt wegen der kurzen Dauer im Normalfall unsichtbar. Wenn aber in bestimmten
Situationen Pegelwechsel mit sehr hoher Frequenz auftreten, steigt der mittlere
Ausgangsstrom merklich an, was man an einer größeren LED-Helligkeit erkennt.
Die Eingänge an den Anschlüssen
A bis D sind ebenfalls im Ruhezustand hochgezogen und können durch Setzen eines
Jumpers in den 0-Zustand gesetzt werden. Damit lassen sich insgesamt 16
verschiedene Zustände einstellen, mit denen 16 unterschiedliche Grundprogramme
gewählt werden können. Der Taster S1 ist mit dem Reset-Eingang des Controllers
verbunden. Zum Starten eines ausgewählten Programms muss man deshalb kurz auf
S1 drücken. Alternativ kann man die Betriebsspannung neu einschalten.
Der Taster S2 ist fest mit P06
verbunden und hat je nach Programm unterschiedliche Funktionen. Bei vielen Programmen
gibt es einen Taktgeber und Rechtecksignale am digitalen Anschluss 9. Der
Taster dient dann dazu, diesen Takt anzuhalten. Wenn man S2 bei einem Neustart
oder einem Reset gedrückt hält, bekommt er bei einigen Programmen eine andere
Funktion. Der Zustand des Schalters erscheint dann an Pin 9 anstelle des
Taktsignals. So kann ein Zustand im laufenden Betrieb mit dem Schalter
beeinflusst werden. Der Ruhezustand ist 1, bei gedrücktem Taster erscheint
Zustand 0.
Das Poti auf der Platine hat
unterschiedliche Aufgaben. In vielen Fällen kann man damit die
Arbeitsgeschwindigkeit der digitalen Schaltungen bestimmen, sodass sich
Reaktionszeiten oder Gatterlaufzeiten direkt beobachten lassen. Zusätzlich wird
oft ein Taktsignal geliefert, das zehnmal langsamer ist als die
Arbeitsfrequenz. In anderen Fällen liefert das Poti eine einstellbare Spannung
für einen AD-Wandler oder andere Schaltungen.
Zusätzlich gibt es noch einen
Widerstand und einen Kondensator, die mit Jumpern an bestimmte Anschlüsse gelegt
werden können. Mit ihnen kann zum Beispiel ein Oszillator gebildet werden.
Ein D-Flipflop ist ein 1-Bit-Datenspeicher. Es übernimmt den Zustand des Dateneingangs D bei einem Taktimpuls an C auf den Ausgang Q. Zusätzlich gibt es oft auch noch einen invertierten Ausgang /Q. Bei einem flankengesteuerten D-Flipflop geschieht die Datenübernahme entweder bei der positiven oder bei der negativen Flanke an C. Die beiden mit dem Programm 9 erzeugten D-Flipflops reagieren auf die fallende Flanke des Taktsignals.
Abb. 11.1: Programm 9, D-Flipflop
Abb. 11.2: Ruhezustand beider Flipflops
Zusätzlich wird hier ein Taktsignal mit einstellbarer Frequenz zu Verfügung
gestellt. Es liegt diesmal parallel an den Anschlüssen 9 und 4, sodass es mit
einem Jumper an den nächstliegenden Takteingang gelegt werden kann.
Zum Test kann man die negativen Taktflanken manuell erzeugen, wie das am
linken D-Flipflop gezeigt wird. Durch das Aufstecken des Jumpers 8 wird der
D-Zustand von Q übernommen. Wenn D verändert wird, wirkt sich das erst dann auf
Q aus, wenn man C einmal öffnet und dann wieder gegen GND schließt.
Gleichzeitig erscheint an /Q immer das invertierte Q-Signal.
Abb. 11.3: Grundfunktionen des D-Flipflops
Koppelt man wie beim rechten Flipflop das invertierte Ausgangssignal auf den Dateneingang zurück, entsteht ein Toggle-Flipflop, das bei jeder negativen Taktflanke den Ausgangszustand ändert. Am Ausgang erscheint dann die halbe Taktfrequenz.
Abb. 11.4: Ein 2-Bit-Binärzähler
Man kann auch beide D-Flipflops als Toggle-Flipflops betreiben und hintereinanderschalten, wobei der Q-Ausgang der ersten Stufe das Taktsignal für die zweite Stufe bildet. Damit entsteht ein 2-Bit-Binärzähler. Man bezeichnet diesen asynchronen Zählertyp auch als Ripple-Counter. Hier können für kurze Momente falsche Zwischenstände entstehen, weil jede Zählerstufe eine gewisse Zeitverzögerung hat. In der langsamsten Takteinstellung kann die etwas verzögerte Reaktion direkt beobachtet werden.
Abb. 11.5: Frequenzteiler durch vier
Ein synchroner Frequenzteiler durch vier verwendet zwei D-Flipflops, die am gleichen Taktsignal liegen. Die D-Eingänge sind wechselseitig mit Q und /Q des jeweiligen anderen Flipflops verbunden. Die halbe Taktfrequenz tritt an keiner Stelle auf, stattdessen liefern alle vier Ausgänge ein Viertel der Taktfrequenz. Aber sie haben unterschiedliche Phasen. Weil beide Stufen am selben Takt hängen, handelt es sich um einen Synchronzähler. In diesem Fall entstehen vier Signale mit Phasendifferenzen von jeweils 90 Grad, die eine wichtige Rolle bei der Verarbeitung von Funksignalen spielen. Die Schaltung wird oft in IQ-Mischern für Software Defined Radios (SDR) eingesetzt.
Abb. 11.6: Schieberegister aus D-Flipflops
Mit flankengesteuerten D-Flipflops kann man Schieberegister aufbauen. Beide
D-Flipflops erhalten denselben Takt. Der Q-Ausgang der ersten Stufe wird mit
dem D-Eingang der zweiten Stufe verbunden. Die jeweils mit Jumper 7 eingegebenen
Daten werden mit dem nächsten Takt nach Q übernommen und erscheinen dann noch
einen Takt später am Ausgang Q der zweiten Stufe.
Weiter unten wird ein Schieberegister mit zehn Stufen vorgestellt, das auch
für die serielle Datenübertagung eingesetzt werden kann.