Tristate-Logik, Grundlage und Praxis
- Elektronik-Minikurse: Inhaltsverzeichnis WICHTIG: Diverse technische Infos
 - Elektronik-Minikurse: Philosophie (Sinn, Vorwissen, Praxisbezug)
 - Hilfe bei Leserfragen. (WICHTIG: Unbedingt zur Kenntnis nehmen!)
 - Simulieren und Experimentieren, ein Vorwort von Jochen Zilg
 - Autor: Thomas Schaerer Opamp-Buch Timer555-Buch
 
Einleitung
Die Rubrik Digitaltechnik enthält unter Logische Grundverknüpfungen die Grundlagen zu den AND-, NAND-, OR-, NOR, EXOR- und EXNOR-Schaltungen, jedoch fehlt die Grundlage der Tristate-Logik. Genaugenommen ist es nicht eine Logikschaltung im üblichen Sinn. Trotzdem ist die Tristate-Logik fester und sehr wichtiger Bestandteil der TTL- und CMOS-Logikschaltkreisfamilien. Was die Tristate-Logik ist und wozu sie dient, beschreibt dieser Elektronik-Minikurs, der in diesem speziellen Fall die logischen Verknüpfungen in der Rubrik Digitaltechnik erweitert. Es ist ebenfalls ein Grundlagenkurs, der jedoch im fliessenden Übergang Experiment und Praxis miteinbezieht.
Was ist Tristate-Logik?
Sie tut das wie die Bezeichnung aussagt: Die Tristate-Logik erzeugt drei logische Zustände am Ausgang eines Gatters. Es gibt diese Tristate-Logik als Quad-Buffers des Types 74LS125 und 74LS126 in TTL und 74HC125 und 74HC126 in HCMOS. Wir beschäftigen uns hier jedoch nur mit der Highspeed-CMOS-Familie 74HCxxx. Es gibt aber auch Tristate-Logikschaltungen an den Ausgängen von komplexeren ditigalen ICs, wie z.B. beim Tristate Octal D-Type Latch 74HC533 oder den Tristate Octal D-Type Flipflop 74HC534. Am Beispiel der oben genannten Quad-Buffers wollen wir die Tristate-Logik kennen lernen. Wir betrachten dazu Bild 1:

Auf der linken Bildseite ist der Tristate-Quad-Buffer 74HC125 und auf 
der rechten Bildseite 74HC126 abgebildet. Diese beiden IC-Typen 
unterscheiden sich einzig dadurch, dass der 74HC125 mit aktivem 
LOW-Pegel und der 74HC126 mit aktivem HIGH-Pegel arbeitet. Zwecks 
präziserer Information konsultiere man die Datenblätter.
Man beachte dazu die beiden unter den Schaltbildern angeordneten 
Wahrheitstabellen. A ist jeweils der Signaleingang und Y der 
Signalausgang. C ist der Control-, also Steuereingang. Ist dieser bei 
einem der Buffer des 74HC125 auf LOW gesetzt, dann folgt Ausgang Y dem 
logischen Zustand des Einganges A. Beim 74HC126 gilt dies wenn der 
Steuereingang auf logisch HIGH liegt.
Wenn beim 74HC125 der Steuereingang auf HIGH oder beim 74HC126 auf LOW 
gesetzt ist, liegt Ausgang Y im Zustand Z. Dies bedeutet, dass er 
hochohmig ist. Unabhängig vom logischen Eingangspegel A, bleibt Ausgang 
Y hochohmig. Es gibt weder eine Verbindung zu Vcc noch zu GND. Y ist 
im Z-Modus IC-intern ganz einfach nirgends angeschlossen.
Der Zweck dieses dritten logischen Zustandes ist es, dass man solche 
Tristate-Ausgänge parallelschalten kann, vorausgesetzt allerdings, dass 
immer nur ein Tristate-Ausgang aktiviert ist. Sind zwei 
Tristate-Ausgänge aktiviert, wobei ein Ausgang auf HIGH und der andere 
auf LOW liegt, besteht Kurzschluss! Daher sollte man unbedingt darauf 
achten, dass ganz speziell bei langsamem Umschalten (mechanischer 
Umschalter) der noch aktive Tristate-Buffer erst ausschaltet bevor der 
andere einschaltet. Man nennt dies Breaking-before-Making. Diesen 
Begriff lernt man kennen, wenn man sich mit Datenblättern von 
integrierten analogen Schaltern (Analog-Switches) auseinandersetzt, 
welche analoge Signale umschalten können. Man nennt diese Bausteine auch 
Analog-Multiplexer.
Wie funktioniert die Tristate-Logik?

Bild 2 zeigt wie man experimentell mit einem Quad-Dual-Input NAND-Gate, 
z.B. des Typs 74HC00, und zwei selbstsperrenden FETs, einem N- und 
P-Kanal-Typen, ein Tristate-Buffer diskret realisieren kann. Ein solcher 
entspricht funktionell einem Buffer des 74HC126, der aktiv ist, wenn der 
Steuereingang C auf HIGH gelegt ist. In Wirklichkeit wird die 
Tristate-Funktion in einem IC einfacher integriert. Wenige MOSFETs 
reichen für den ganzen Tristate-Buffer. Es geht hier also bloss um 
Visualisierung und um ein Experiment, falls dies jemand durchführen 
möchte. Anstelle von N- und P-Kanal-MOSFETs kann man auch beliebige 
bipolare NPN- (z.B. BC109) und PNP-Transistoren (z.B. BC178) verwenden. 
Dabei ist es wichtig, dass Widerstände zwischen den IC-Ausgängen und 
den Basen geschaltet werden, um die Basisströme auf vernünftige Werte zu 
begrenzen. Siehe dazu Bild 2 rechts. 
Ein solches Experiment eignet sich gut für den 
Elektronikunterricht. Mit Baukastsystemen lässt sich so etwas blockweise 
aufbauen und wenn es dabei Blöcke mit LED-Anzeigen hat, kann das sehr 
anschaulich gestaltet werden. Dies ist meinerseits nur eine Idee, man 
frage mich bitte keine Details, denn ich kenne mich in Baukastsystemen 
nicht aus.
Wie funktioniert das Tristate-Experiment?
IC:A1 bis IC:A4 sind die vier NAND-Gatter eines 74HC00. T1 ist ein P-Kanal-MOSFET, z.B. der Logiklevel-MOSFET BS110 und T2 ist ein N-Kanal-MOSFET, z.B. der Logiklevel-MOSFET BS100. Die NAND-Gatters IC:A1 und IC:A4 arbeiten als Inverter. Ihre beiden Eingänge sind parallel geschaltet. Man kann jedoch ebenso gut einer der Eingänge auf HIGH legen, in dem man diese mit der positiven Betriebsspannung verbindet. Betreffs offener Eingänge von logischen Schaltkreisen liest man mehr in:
Die Logiksignale sind an den beiden Eingängen A und C, am Ausgang Y und 
bei den Leitungen mit Strichen unterbrochen eingetragen. Am 
Steuereingang C sieht man die Reihenfolge LOW, HIGH und HIGH, 
dargestellt mit L|H|H. Am Signal-Eingang A ist es X|L|H. X von A 
korrespondiert also mit L von C und im Folgeschritt korrespndiert L von 
A mit H von C. Ebenso korrespondiert Z von Y mit L von C und X von A. X 
bedeutet, dass es gleichgültig ist ob LOW oder HIGH anliegt. Z bedeutet, 
dass beide MOSFETs T1 und T2 offen sind und Ausgang Y hochohmig ist. 
Diese Art der Darstellungsmethode von Logikpegeln findet man kaum in 
einer "offiziellen" Schaltung. In der Regel erstellt man für die 
Darstellung logischer Signale Tabellen, sogenannte Wahrheitstabellen. 
Dies ist auch richtig, denn die Darstellung ist bei vielen Logikwerten 
übersichtlicher. Will man jedoch nur wenige Logikwerte darstellen, ist 
die Methode der Darstellung direkt ins Schaltschema manchmal 
übersichtlicher. Man assoziiert die Logikpegel leichter mit der 
Schaltung. So jedenfalls entwerfe ich oft eine einfache logische 
Schaltung mit Papier und Bleisstift. Eine einfache und intuitive 
Methode, die ich auch immer wieder gerne weiterempfehle.
Wenn C = LOW, dominiert dieser Logikpegel die beiden NAND-Gatter IC:A2 
und IC:A3. Ihre Ausgänge liegen, unabhängig welche Logikpegel an ihren 
zweiten Eingängen anliegen, auf HIGH. Das Gate des P-Kanal-MOSFET T1 
erhält einen HIGH-Pegel. Seine Drain-Source-Strecke ist offen. T1 
sperrt. IC:A4 invertiert den Logikpegel am Ausgang von IC:A3. Das Gate 
des N-Kanal-MOSFET T2 erhält einen LOW-Pegel. Seine Drain-Source-Strecke 
ist offen. T2 sperrt ebenfalls. Dies ist der logische Zustand Z am 
Ausgang Y. Dieser Zustand wird alleine durch den LOW-Pegel am 
Steuereingang C erzwungen. In diesem Zustand darf Ausgang Y mit einem 
andern Ausgang verbunden sein, der einen LOW- oder HIGH-Pegel aufweist. 
Wir werden dies später an Beispielen noch genauer sehen.
Wenn C = HIGH, werden IC:A2 und IC:A3 zur Übernahme des Logikpegels am 
Eingang A und dessen Invertierung durch IC:A1 freigegeben. Wenn A = LOW 
ist ein Eingang von IC:A2 auf LOW und sein Ausgang folglich auf HIGH. T1 
ist offen. IC:A1 invertiert Eingang A. Beide Eingänge von IC:A3 liegen 
auf HIGH und dessen Ausgang auf LOW. IC:A4 invertiert diesen Logikpegel 
auf HIGH. HIGH am Gate des T2 schaltet ihn ein. Ausgang Y ist somit mit 
GND verbunden. Y hat LOW-Pegel entsprechend dem Eingang A, wie es bei 
einem nichtinvertierenden Buffer auch sein soll.
Wenn A = HIGH sind beide Eingänge von IC:A2 auf HIGH gesetzt. Sein 
Ausgang liegt auf LOW. Das Gate von T1 liegt ebenfalls auf LOW. T1 
leitet. HIGH vom Eingang A wird durch IC:A1 zu LOW invertiert. Dies 
erzeugt am Ausgang von IC:A3 HIGH- und am Gate von T2 LOW-Pegel. T2 ist 
offen. Damit liegt Ausgang Y auf HIGH und dies entspricht dem Logikpegel 
am Eingang A.
Tristate macht das Umschalten einfach

Bild 3 zeigt auf der linken Bildseite wie man die Umschaltung zweier 
Logiksignale mit herkömmlichen Logikbausteinen realisiert. Es werden 
hier NAND-Gatter verwendet. Als Inverter (IC:A) kann man ebenso ein 
NAND-Gatter verwenden, in dem man beide Eingänge parallelschaltet oder 
den nicht benötigten Eingang mit der positiven Betriebsspannung 
verbindet. In diesem Fall benötigt man vollständig einen 74HC00. Wenn 
der Steuereingang C auf LOW gesetzt ist - der Schalter ist offen - ist 
der Ausgang von IC:B2 auf HIGH gesetzt, unabhängig davon welcher 
Logikpegel am Eingang B anliegt. Inverter IC:A setzt in diesem Fall den 
einen Eingang von IC:B1 auf HIGH. Damit überträgt und invertiert IC:B1 
das Eingangssignal von A. Der Eingang des IC:B3 der mit dem Ausgang von 
IC:B2 verbunden ist, liegt konstant auf HIGH. Daher ist IC:B3 offen für 
das Signal aus IC:B1 und invertiert es zum Ausgang Y. Diese doppelte 
Inversion von IC:B1 und IC:B3 erzeugt an Y das zu A identische logische 
Signal. Wenn C auf HIGH gesetzt ist - Schalter ist geschlossen - gilt 
die selbe Erklärung, einzig mit dem Unterschied, dass in der Funktion 
IC:B1 und IC:B2 vertauscht sind. Y ist jetzt identisch mit B.
Kommen wir zurück zum Hauptthema Tristate-Logik. Im mittleren Bildteil 
sehen wir wie die Schaltung mit Tristate-Logik einfacher realisiert 
werden kann, in dem man die Tristate-Ausgänge ganz einfach 
parallelschaltet. Wenn C = LOW, ist IC:B1 aktiv und Ausgang Y folgt dem 
Eingang A. Wenn C = HIGH, ist IC:B2 aktiv und Ausgang Y folgt dem 
Eingang B.
Man kann sich in beiden Schaltbildern den Inverter sparen, wenn man 
einen Kippumschalter verwendet. Wie es gemacht wird zeigt das kleine 
Schema auf der rechten Bildseite. Man benötigt beide Steueranschlüsse 
und einen zweiten Pulldown-Widerstand. Damit hat man zusätzlich das 
bereits beschriebene Breaking-before-Making erfüllt. Im Falle der 
Inverterlösung ist dies zwar nicht der Fall, jedoch ist der Augenblick 
des Umschaltens, in dem beide Ausgänge aktiv sind, extrem kurz. Trotzdem 
empfiehlt es sich gerade auch aus diesem Grund direkt an der IC-Speisung 
mittels keramischem oder Multilayer-Kondensator mit einem Wert von etwa 
100 nF abzublocken. Dieser indunktionsarme Kondensator übernimmt bei 
einem solchen transienten Vorgang die Spannungsversorgung des IC. In 
diesem sehrkurzen Augenblick, im Zeitbereich von etwa 10 ns, tritt ein 
etwas höherer Strom auf. Dieser muss dieser Abblock-Kondensator liefern. 
Eine kleine Hausaufgabe für den interessierten Leser: Wenn man 
anstelle des 74HC125 den 74HC126 (siehe Bild 1) einsetzt, kann man einen 
freigebliebenen Tristate-Buffer als Inverter umfunktionieren. Dazu 
braucht man bloss einen zusätzlichen Pullup-Widerstand. Den 
Signaleingang A schaltet man dauerhaft auf LOW und der Logikpegel des 
Steuereinganges C wird am Signalausgang Y invertiert. Wo gehört jetzt 
der Pullup-Widerstand hin? Wie sieht wohl diese einfache Schaltung 
aus?
Tristate macht das Umschalten noch einfacher

Bild 4 illustriert, dass es bei einem dreistufigen Umschalter mit 
Tristate-Logik noch einfacher wird. Die Schaltung auf der linken 
Bildseite benötigt ein NAND-Gatter mit drei Eingängen und drei 
NAND-Gatter mit je zwei Eingängen. Das sind zwei ICs. Daraus kann man 
schliessen, dass das NAND-Gatter am Ausgang soviel Eingänge haben muss, 
wie die Schaltung Eingänge hat. Die Tristate-Lösung auf der rechten 
Bildseite zeigt wie einfach und elegant die Tristate-Ausgänge 
parallelgeschaltet werden.
Eine elegante Tristate-Umschaltlogik mittels siebenstufigem 
Drehschalter zeigt der Dekadenteiler, der eine Taktfrequenz in jeweils 
1:10-Schritten herunterschaltet, in Kapitel 4 und Bild 6 in:
Hier ein auf die Tristate-Umschaltung reduziertes Schaltschema in Bild 
5:

Ohne Tristate keine komplexe Bus-Schaltungen...
Man besorge sich das Datenblatt zum Octal-Tristate-Transceiver 74HC245 
und man betrachte ganz genau die Schaltung. Mit dem Wissen über 
Tristate-Logik, das wir bisher erworben haben, können wir verstehen wie 
diese Schaltung funktioniert.
Es gibt zwei Tristate-Steuereingänge, /OE (Output Enable) und DIR 
(Direction). Anstelle von /OE gibt es auch die Bezeichnung /G. Diese 
beiden Steuereingänge steuern alle acht integrierten Buffer für den 
Byte-Datenfluss in die eine oder alle acht gegenüberliegenden 
integrierten Buffer für den Byte-Datenfluss in die entgegengesetzte 
Richtung. Die Verantwortung für die Steuerung der Richtung des 
Byteflusses liegt bei DIR. Wenn DIR = LOW, folgt der Datenfluss von B 
nach A, wenn DIR = HIGH, folgt der Datenfluss von A nach B. Dies ist 
einzig dadurch möglich, dass die eine Bufferreihe inaktiv ist, d.h. die 
Ausgänge in den Z-Modus geschaltet sind, während die andere Bufferreihe 
aktiv ist und das byteweise Eingangssignal auf den byteweisen Ausgang 
überträgt. Aber das ist noch nicht alles. Der Steuereingang /G erlaubt 
alle Ausgänge, gleichgültig welche Anschlüsse durch DIR auf aktiven 
Ausgang geschaltet sind, in den Z-Modus (/G = HIGH) zu setzen. Dies 
gestattet diese Ausgänge wiederum mit IC-externen anderen 
Tristate-Ausgängen parallel zu schalten.
Fazit zum Schluss: Ohne die Erfindung der Tristate-Logik wäre die 
moderne Computertechnik mit ihren komplexen Bussystemen wohl kaum je 
möglich geworden. Eine kleine grundlegende Erfindung mit enormer 
Wirkung...
Thomas Schaerer, 29.07.2001 ; 02.12.2002 ; 15.03.2003(dasELKO) ; 18.12.2003 ; 20.10.2005 ; 20.02.2006
