SN74LS259B adressierbares Latch: acht Ausgänge, fünf Leitungen

Sie möchten acht LEDs, Relais oder Freigabeleitungen schalten, aber Ihr Mikrocontroller hat nur noch eine Handvoll Pins frei. Der SN74LS259B speichert acht einzelne Bits und lässt Sie mit fünf Steuerleitungen jeweils eines davon ändern, während die anderen sieben genau so bleiben, wie sie waren. Dieser Leitfaden erklärt das Prinzip, geht einen vollständigen Schreibvorgang durch und baut eine Testschaltung mit Schaltern und LEDs.

Zuerst die Grundlagen: was ein Latch ist

Ein Latch ist eine Speicherzelle für ein Bit. Solange sein Freigabesignal aktiv ist, folgt der Ausgang einfach dem Dateneingang. Wird die Freigabe zurückgenommen, friert der Ausgang beim letzten Wert ein und hält ihn bis zum nächsten Schreiben. Der SN74LS259B enthält acht solcher Latches, Q0 bis Q7, die sich einen gemeinsamen Dateneingang D teilen.

Wie wählt man nun aus, welches Latch beschrieben wird? Über eine Adresse. Die drei Auswahleingänge S0, S1 und S2 bilden eine 3-Bit-Binärzahl von 0 bis 7, und nur das Latch mit dieser Nummer hört auf D. Das ist dasselbe Prinzip der Adressdekodierung, das der Leitfaden zur Adressdekodierung mit dem 74HC138 und der Leitfaden zum MC14515B-Decoder beschreiben; hier sitzt hinter jedem Decoderausgang eine Speicherzelle.

Die Steuersignale

  • S0, S1, S2 (Pins 1–3) – die Adresse. S0 ist das niederwertigste Bit, also wählt S2 S1 S0 = H L H das Latch 5.
  • D (Pin 13) – das zu speichernde Bit.
  • G (Pin 14) – Freigabe, LOW-aktiv (der Strich über dem Namen bedeutet „aktiv bei LOW“). Solange G LOW ist, folgt das adressierte Latch dem Eingang D. Geht G auf HIGH, wird der Wert gespeichert.
  • CLR (Pin 15) – Löschen, ebenfalls LOW-aktiv. Im Normalbetrieb auf HIGH halten.

Die Kombination aus CLR und G ergibt vier Betriebsarten, entnommen aus der Funktionstabelle im TI-Datenblatt:

  • CLR HIGH, G LOW: adressierbares Latch – der adressierte Ausgang folgt D, die anderen sieben halten.
  • CLR HIGH, G HIGH: Speichern – alle acht Ausgänge halten, egal was an D und S0–S2 passiert.
  • CLR LOW, G LOW: 1-aus-8-Demultiplexer – der adressierte Ausgang folgt D, alle anderen sind LOW.
  • CLR LOW, G HIGH: Löschen – alle acht Ausgänge LOW.
SN74LS259BN DIP-16, Draufsicht: Pins 1 bis 3 S0, S1, S2; Pins 4 bis 7 Q0 bis Q3; Pin 8 GND; Pins 9 bis 12 Q4 bis Q7; Pin 13 D; Pin 14 G mit Querstrich; Pin 15 CLR mit Querstrich; Pin 16 VCC.
Draufsicht mit der Kerbe oben. Die Ausgänge sind aufgeteilt: Q0–Q3 an Pins 4–7 und Q4–Q7 an Pins 9–12, dazwischen GND an Pin 8.

Ein vollständiger Schreibzyklus

Angenommen, wir wollen Ausgang Q5 auf 1 setzen, ohne Q0–Q4, Q6 oder Q7 zu stören. Wir beginnen mit CLR HIGH und G HIGH (Speichermodus):

  1. Adresse anlegen. S2 S1 S0 = H L H setzen (binär 101 = 5). Weil G HIGH ist, ändert sich noch nichts.
  2. Daten anlegen. D auf HIGH setzen.
  3. Latch öffnen. G auf LOW ziehen. Q5 folgt nun D und geht nach typisch 15 ns (maximal 24 ns) auf HIGH. Die anderen Ausgänge bleiben unverändert.
  4. Latch schließen. G wieder auf HIGH. Q5 ist jetzt als 1 gespeichert.
  5. Weitermachen. Erst jetzt dürfen Adresse und D für den nächsten Schreibvorgang wechseln.
Zeitdiagramm: Die Adresse S2 S1 S0 wechselt auf H L H und D steigt; G mit Querstrich geht für mindestens 17 ns auf LOW und dann auf HIGH; Q5 steigt, während G LOW ist, und bleibt danach HIGH; die übrigen Ausgänge behalten ihren alten Wert. Die Adresse muss mindestens 17 ns und D mindestens 20 ns vor dem Anstieg von G stabil sein.
Ein Schreibvorgang: Adresse und Daten werden zuerst angelegt, G öffnet und schließt das adressierte Latch, erst danach darf die Adresse wechseln.

Das Datenblatt nennt die Zeitgrenzen für den SN74LS259B: G muss mindestens 17 ns LOW sein, die Adresse mindestens 17 ns und D mindestens 20 ns vor dem Anstieg von G stabil anliegen, und die Haltezeit nach dem Anstieg von G beträgt 0 ns. TI empfiehlt außerdem, G auf HIGH zu halten, solange sich die Adressleitungen ändern; sonst können Latches, die auf dem Weg zur neuen Adresse kurz angesprochen werden, die Daten übernehmen. Mit Handschaltern oder einem Mikrocontroller sind diese Grenzen leicht einzuhalten; wichtig werden sie, wenn schnelle Logik den Baustein ansteuert.

Eine Testschaltung aufbauen

Schaltplan: Schalter ziehen S0, S1, S2 und D nach GND, Taster ziehen G mit Querstrich (SCHREIBEN) und CLR mit Querstrich (RESET) nach GND; jeder dieser sechs Eingänge hat einen 10-kΩ-Pull-up nach +5 V. Die Ausgänge Q0 bis Q7 an den Pins 4, 5, 6, 7, 9, 10, 11 und 12 gehen jeweils an die Kathode einer LED; jede Anode liegt über 1 kΩ an +5 V.
Vier Schalter legen Adresse und Daten fest, SCHREIBEN pulst G, RESET löscht alle Latches. Eine LED leuchtet, wenn ihr Ausgang LOW ist.
  1. Den SN74LS259BN über die Mittelrille des Steckbretts stecken. Pin 16 an +5 V, Pin 8 an GND und einen 100-nF-Kondensator direkt am Chip dazwischen. LS-TTL braucht 4,75–5,25 V.
  2. S0 (Pin 1), S1 (Pin 2), S2 (Pin 3), D (Pin 13), G (Pin 14) und CLR (Pin 15) erhalten jeweils einen 10-kΩ-Pull-up nach +5 V. Ein offener Schalter liefert dann HIGH, ein geschlossener LOW.
  3. Von S0, S1, S2 und D je einen Schalter nach GND, von G (SCHREIBEN) und CLR (RESET) je einen Taster nach GND.
  4. Für jeden Ausgang eine LED von +5 V über 1 kΩ zum Ausgangspin: Anode zum Widerstand, Kathode an Q0 (Pin 4), Q1 (5), Q2 (6), Q3 (7), Q4 (9), Q5 (10), Q6 (11) und Q7 (12).

Warum hängen die LEDs an +5 V? Ein LS-TTL-Ausgang kann im LOW-Zustand 8 mA aufnehmen, ist im HIGH-Zustand aber nur für 0,4 mA Abgabe spezifiziert. So verdrahtet bekommt eine rote LED etwa 2,5–3 mA, deutlich innerhalb der Grenze, aber die Logik ist umgekehrt: Eine LED leuchtet, wenn ihr Bit 0 ist.

Ausprobieren

  1. RESET drücken. Der Baustein wird gelöscht, alle acht Ausgänge gehen auf LOW, also leuchten alle acht LEDs. (Nach dem Einschalten ist der Zustand der Latches unbestimmt, daher immer zuerst löschen.)
  2. S2 offen, S1 geschlossen, S0 offen (H L H = 5) und D offen (HIGH) lassen.
  3. SCHREIBEN drücken und loslassen. Die LED an Q5 erlischt, die anderen sieben leuchten weiter.
  4. D schließen und erneut SCHREIBEN drücken: Die LED an Q5 leuchtet wieder. Eine andere Adresse wählen und wiederholen – jeder Schreibvorgang ändert nur eine LED.

Prellen des SCHREIBEN-Tasters schadet hier nicht: Jeder Preller schreibt einfach denselben D-Wert noch einmal in dasselbe Latch. Ändern Sie die Schalter aber nicht, solange SCHREIBEN gedrückt ist, denn dann arbeitet der Baustein als offener Demultiplexer.

Ansteuerung mit einem Mikrocontroller

Fünf 5-V-GPIO-Pins an S0, S1, S2, D und G anschließen und CLR auf HIGH halten (oder einen sechsten Pin dafür verwenden). Ein Schreibvorgang lautet dann: G HIGH, die drei Adressbits schreiben, D schreiben, G LOW, G HIGH. Ein 3,3-V-Controller kann die Eingänge meist direkt ansteuern, weil ein LS-TTL-Eingang alles über 2 V als HIGH und unter 0,8 V als LOW erkennt; prüfen Sie aber, ob seine Pins die 0,4 mA aufnehmen können, die jeder LOW-Eingang liefert. Führen Sie die 5-V-Ausgänge des Bausteins nicht auf einen 3,3-V-Pin zurück. Wenn Sie acht Schalter einlesen statt acht Lasten ansteuern möchten, behandelt der Leitfaden zum Schieberegister MM74HC165 die umgekehrte Richtung; um alle acht Bits auf einmal zu schreiben, siehe den Leitfaden zum MC74HC173-Register.

Grenzen, die Sie kennen sollten

  • Versorgung. 4,75–5,25 V; der Baustein zieht typisch 22 mA und höchstens 36 mA.
  • Ausgänge. Bis zu 8 mA Aufnahme bei einem LOW-Pegel von höchstens 0,5 V; nur 0,4 mA Abgabe. Für Relais und größere Lasten einen Transistor oder Treiber verwenden.
  • Eingänge. HIGH ≥ 2 V, LOW ≤ 0,8 V. Unbenutzte Eingänge fest auf einen Pegel legen statt offen zu lassen.
  • Temperatur. Der SN74LS259B ist für 0 bis 70 °C spezifiziert.

Das vorrätige Bauteil und Quellen

Vorrätig ist der Texas Instruments SN74LS259BN: ein adressierbares 8-Bit-Latch in Low-Power-Schottky-TTL im 16-poligen Kunststoff-DIP (TI-Gehäuse N), das direkt ins Steckbrett passt. Pinbelegung, Funktionstabelle, Timing und elektrische Grenzwerte in diesem Leitfaden stammen aus dem TI-Datenblatt SDLS086, dessen Gehäuseanhang den SN74LS259BN als PDIP (N) mit 16 Pins führt.

Zur Produktseite des SN74LS259BN · SN74LS259B-Datenblatt (Texas Instruments)