Praxisleitfaden Retrocomputer · Teil 3

Wie ein 74HC245 einen 8-Bit-Bus verbindet

Der 74HC245 ist ein Torwächter für acht Datenleitungen. Er kann Daten in beide Richtungen weitergeben – oder beide Seiten trennen, damit ein anderer Chip den Bus nutzen kann.

Zum MC74HC245AN

Warum ein Chip zwischen zwei Bussen?

In einem einfachen Computer können mehrere Bausteine an gemeinsamen Datenleitungen hängen. Treiben zwei aktive Ausgänge gleichzeitig unterschiedliche Werte, arbeiten sie gegeneinander. Der 74HC245 ist ein bidirektionaler 8-Bit-Bustransceiver: Seine Pins A1–A8 zeigen zu einem Bus, B1–B8 zum anderen. Jeder A-Pin gehört zum B-Pin mit derselben Nummer. Er speichert kein Byte und wählt keine Adresse aus; die Steuerlogik bestimmt, wann er Daten durchlässt.

Zwei Busse mit je acht Leitungen und einem 74HC245 dazwischen. DIR wählt A nach B oder B nach A; /OE trennt beide Seiten.
Die Richtung bestimmt, welche Seite die andere treibt. Die Ausgangsfreigabe bestimmt, ob der Chip überhaupt eine Seite treibt.

Zwei Steuereingänge, drei Zustände

/OE High: getrennt

Die Ausgänge sind hochohmig, oft Hi-Z genannt. Der Chip bleibt damit an beiden Bussen elektrisch still – er sendet nicht etwa logisch 0.

/OE Low, DIR High: A → B

Die Logikpegel an A1–A8 erscheinen auch an B1–B8. Die A-Seite wird als Eingang gelesen, die B-Seite getrieben.

/OE Low, DIR Low: B → A

Die Daten fließen andersherum. Die B-Seite wird als Eingang gelesen, die A-Seite getrieben.

Der Schrägstrich in /OE bedeutet aktiv bei Low: Ein Low-Pegel aktiviert die Ausgänge. DIR ist nicht aktiv bei Low; High bedeutet A nach B. Die acht Kanäle invertieren nicht: Eine 1 bleibt eine 1.

Die Pins finden

74HC245 im 20-poligen DIP, Draufsicht: DIR an Pin 1, A1–A8 an Pins 2–9, Masse an Pin 10, B8–B1 an Pins 11–18, /OE an Pin 19 und VCC an Pin 20.
Draufsicht auf das bedrahtete 20-polige Gehäuse, mit der Kerbe am Ende von Pin 1. Pinnummern und Funktionstabelle entsprechen dem Herstellerdatenblatt.

Ein konkretes Lesebeispiel

  1. Angenommen, ein ausgewähltes ROM hängt an Bus B und die CPU an Bus A. Der Adressdekoder wählt das ROM für einen Lesezugriff aus.
  2. Die Steuerlogik setzt DIR auf Low, damit Daten von B nach A fließen können. Sie setzt /OE erst auf Low, wenn das ROM bereit ist, den Bus zu treiben.
  3. Das Byte gelangt durch den 74HC245 zur CPU. Am Ende der Übertragung geht /OE wieder auf High und trennt die Busse.
Keine Universallösung für Busprobleme. Ein 74HC245 erzeugt weder korrektes Lese-/Schreib-Timing noch Chip-Select-Signale. Kein anderer Baustein darf gleichzeitig den Zielbus treiben. Halte Steuereingänge auf definierten Pegeln, setze einen 0,1-µF-Abblockkondensator dicht an die Versorgung und prüfe Spannung, Logikschwellen, Fan-out und Timing der konkreten Bauteile. HC-Eingangsschwellen passen nicht automatisch zu jedem TTL/NMOS-Ausgang.

Der MC74HC245AN im Shop ist ein 20-poliges bedrahtetes Bauteil. Prüfe vor dem Kauf Bestand und Produktbeschreibung; die Menge ändert sich mit Verkäufen. Für den Gesamtzusammenhang lies zuerst den 6502-Teileleitfaden.

Als Nächstes: ein Einwegpuffer

Der 74HC245 ist sinnvoll, wenn Daten in beide Richtungen fließen müssen. Sollen acht Signale nur in eine Richtung gehen, zeigt der Leitfaden zum SN74HCT541N eine einfachere Alternative mit zwei aktiv niedrigen Ausgangsfreigaben und TTL-kompatiblen Eingängen. Einen Lesezugriff kann er nicht zurück in die Gegenrichtung leiten.