74HC595 Schieberegister – Teil 1 – Grundlagen

Der 74HC595 ist ein sehr beliebter und weit verbreiteter Schieberegister-Baustein. Man kann Schieberegister beispielsweise zur Port-Erweiterung für Ausgänge verwenden, um einen seriellen Datenstream in einen Parallelen umzusetzen oder zum Multiplexen.

Allgemeiner Aufbau

Prinzipiell besteht ein Schieberegister aus zwei Einheiten. Dem Schieberegister und dem Ausgangsregister.

Im Schieberegister werden die Daten sozusagen zunächst abgelegt. Man könnte diese Einheit auch als eine Art „Wartezimmer für Daten“ ansehen.  Nach einem entsprechenden Signalwechsel werden sie später an das Ausgaberegister übergeben. Alle im Ausgaberegister befindlichen Daten können dann ebenfalls bei Bedarf, sprich dem entsprechenden Signalwechsel, an die Ausgangspins weitergegeben werden.

Allgemeine Funktionsweise

Die Funktionsweise ist im Grunde wirklich simpel. Irgendwo steht eine Signalquelle die mir einen Datenstrom in Form von Nullen und Einsen an das Schieberegister schickt. Ganz nach dem Motto „Wolle ma sie rein lassen“ landen diese Daten im Register oder eben nicht. Sprich es muss ein entsprechendes Signal am entsprechenden Pin anliegen, dass das Register sozusagen seine Pforten öffnet.

Soweit so gut, wir haben also Daten gespeichert.

An dieser Stelle können nun die Daten ein Zimmer weiter, also ins Ausgaberegister übergeben werden. Auch hier ist ein entsprechendes Signal am dazugehörigen Pin nötig. Und jetzt können unsere Nullen und Einsen an den Ausgabepins ausgegeben werden, wenn wieder ein entsprechendes Signal anliegt.

Pinbelegung

Zur Veranschaulichung habe ich aus einem beliebigen Datenblatt die Pinbelegung herausgenommen. Allerdings ist es so, das die Bezeichnung der Pins nicht bei allen Herstellern gleich sind. Hat man aber mal das Prinzip verstanden, ist es im Grunde auch egal wie die Pins heißen.

Pinout Schieberegister

Pinout Schieberegister

QA bis QH: Diese Pins repräsentieren die ins Schieberegister eingegebenen Daten, das Storage- oder auch Ausgabe-Register. Es handelt sich hierbei um sogenannte Tri-State Ausgänge. Sprich neben den zwei Zuständen HIGH und LOW gibt es noch einen dritten, den hochohmigen, Zustand. Bei einem HIGH-Pegel liefert der Pin die Betriebsspannung Vcc, LOW-Pegel entspricht GND und im dritten Zustand eben einen sehr hochohmigen Wert.

Output Enable: Schaltet die Ausgangspins QA bis QH ein oder aus.

Latch Clock: Die im Schieberegister gespeicherten Werte werden in das Storage Register übernommen. Hier wird das Ausgaberegister als Latch bezeichnet.

A: Hier stehen die Daten an, die in das Schieberegister übernommen werden sollen.

Shift Clock: Die an Pin A anliegenden Daten werden bei einem entsprechendem Signalwechsel in das Schieberegister übernommen.

Reset: Wie der Name schon vermuten lässt wird hier der Inhalt des Schieberegisters zurückgesetzt.

SQH: Das tolle an Schieberegistern ist, dass man mehrere davon hintereinander, also in Reihe, schalten kann. Ist das Schieberegister voll werden die Daten die sonst sozusagen hinten wieder herausfallen würden in das nächste Schieberegister übergeben.

Funktionsweise

Arbeitet man mit Schieberegistern muss man sich zunächst über dessen Aufbau im klaren sein. Der sogenannten Logik. Dazu findet man eigentlich in jedem Datenblatt ein entsprechendes Logik-Diagramm. Dieses wollen wir in diesem Abschnitt genau beleuchten und Anhand eines Beispiels ein wenig „Bitschubserei“ betreiben.

Wie ich bereits im vorherigen Abschnitt erwähnt habe besteht der Schieberegister aus dem Register selbst und dem Storage Register, im folgenden Bild als Latch bezeichnet. Was man ebenfalls erkennen kann ist die Tatsache, dass jeder Einheit entsprechende Pins zugeordnet sind.

Schieberegister Logik

Schieberegister Logik

Zunächst also das Schieberegister selbst. Möchte man zum Beispiel eine binäre Null in das Register schieben, muss man folgendes tun.

  1. An Pin 14 (A) liegt ein LOW-Pegel, also 0V, an.
  2. Mit einer positiven Flanke, also dem Wechsel des Signals an Pin 11 (Shift Clock) von Low auf High, wird dieser Wert in das Register übertragen. Alle bereits im Register befindlichen Werte werden um eine Position nach rechts verschoben.

Möchte man eine binäre Eins übergeben macht man das gleiche in grün.

  1. An Pin 14 (A) liegt ein High-Pegel, also VCC, an.
  2. Positive Flanke an Pin 11 (Shift Clock) um den Wert zu übernehmen.

Dass alles auch richtig funktioniert muss am Pin 10 (Reset) ein High-Pegel anliegen, da der Inhalt des Registers sonst sofort wieder zurückgesetzt werden würde.

Als nächstes wollen wir unsere Daten in das Storage Register übernehmen. Gehen wir an dieser Stelle davon aus dass das Schieberegister voll mit Werten ist.

  1. An Pin 12 (Latch Clock) erfolgt eine positive Flanke.
  2. Die Werte werden aus dem Schieberegister in das Storage Register (Latch) übertragen.

Um auch einen Effekt an den Ausgängen QA bis QH zu haben müsst ihr jetzt nur noch an Pin 13 (Output Enable), ein High-Pegel anlegen. Alle Ausgänge haben jetzt entsprechend ihres eingetragenen Wertes entweder High- oder Low-Pegel. Alle Funktionen sind ebenfalls in der Funktionstabelle hinterlegt.

Schieberegister Wahrheitstabelle

Schieberegister Wahrheitstabelle

Besser finde ich allerdings das Funktionsdiagramm. Der vorher beschriebene Ablauf wird hier nochmals deutlich gemacht.

Funktionsdiagramm Schieberegister

Funktionsdiagramm Schieberegister

So, ich hoffe ihr findet diese kleine Einführung hilfreich. Ich freue mich jedenfalls über eure Kommentare, Korrekturen und Kritiken.

Quellen:

Fachkunde Elektrotechnik, Europa Verlag, 24. Auflage (Amazon)

Grundlagen der Elektrotechnik: Das bewährte Lehrbuch für Studierende der Elektrotechnik und anderer technischer Studiengänge ab 1. Semester (Amazon)


Lob? Kritik oder Anregungen? Ich freue mich auf eure Kommentare und Verbesserungsvorschläge.

Advertisements

2 Kommentare

  1. Hallo

    >Um auch einen Effekt an den Ausgängen QA bis QH zu haben müsst ihr jetzt nur noch an >Pin 13 (Output Enable), ein High-Pegel anlegen. Alle Ausgänge haben jetzt entsprechend >ihres eingetragenen Wertes entweder High- oder Low-Pegel. Alle Funktionen sind >ebenfalls in der Funktionstabelle hinterlegt.

    Hm. Der Enable Eingang ist Low-Aktiv. Damit da irgendetwas am Ausgang sich ändert, muss der Enable auf Low und nicht auf High sein.

    BG

    Antwort

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s