Sie befinden sich hier: Startseite » Anleitungen » MM74HC165: læs otte kontakter med tre ledninger » Anleitungen » MM74HC165: acht Schalter mit drei Leitungen lesen
Einem Mikrocontroller gehen die Pins lange vor den Schaltern aus. Ein Schieberegister mit parallelem Eingang und seriellem Ausgang tauscht Pins gegen Zeit: acht Eingänge werden gleichzeitig übernommen und danach über eine einzige Leitung herausgetaktet.
Ein Schieberegister ist eine Kette von Flipflops. Jede Taktflanke kopiert den Wert eines Flipflops in das nächste, wie eine Eimerkette. Der MM74HC165 hat acht solche Stufen, QA bis QH, und schiebt Daten von QA in Richtung QH.
Zum Parallel-Eingangs-Register wird er durch den zweiten Weg, Daten hineinzubekommen. Statt acht Taktflanken abzuwarten, kann der Baustein einen Wert gleichzeitig in alle acht Stufen laden, direkt von acht Eingangspins. Das ist der Ladevorgang und der eigentliche Zweck des Bausteins: Sie frieren acht Signale in einem Augenblick ein und lesen sie in Ruhe aus.
SHIFT/LOAD (Pin 1) wählt die Betriebsart. Bleibt er high, schiebt der Baustein mit jeder Taktflanke. Wird er low gezogen, werden die acht parallelen Eingänge direkt in das Register geladen. Das Datenblatt sagt ausdrücklich, dass dieses Laden unabhängig vom Zustand des Takts erfolgt – es ist asynchron, muss also mit nichts synchronisiert werden.
CLOCK (Pin 2) besorgt das Schieben. Die Datenübernahme erfolgt an der steigenden Flanke, also beim Übergang von Low nach High.
CLOCK INHIBIT (Pin 15) ist ein Tor vor dem Takt. Intern führen beide Taktpins auf ein NOR-Gatter mit zwei Eingängen; hält man einen davon auf High, steht das Register still. Wer nur eine Taktquelle verwendet, legt CLOCK INHIBIT auf Masse und vergisst ihn.
VCC liegt an Pin 16, Masse an Pin 8, und ein 100 nF-Kondensator gehört nahe am IC dazwischen. Acht Schalter kommen an A–H (Pins 11, 12, 13, 14, 3, 4, 5 und 6), jeder mit einem Widerstand auf einen definierten Pegel, damit kein Eingang jemals offen bleibt.
Das Byte kommt also H zuerst, A zuletzt – höchstwertiges Bit zuerst, wenn man H als Bit 7 bezeichnet. Wenn die Software die Schalter spiegelverkehrt sieht, liegt es fast immer daran.
Der Ablauf oben ist genau ein SPI-Lesevorgang mit Taktpolarität 0 und Phase 0; die meisten Mikrocontroller erledigen ihn daher in Hardware: CLOCK an SCK, QH an MISO, SHIFT/LOAD an einen freien Ausgangspin. Ein übertragenes Byte, acht gelesene Schalter. Zum Baustein hin wird nie etwas gesendet, MOSI bleibt also unbeschaltet.
Der Takt sollte im Rahmen bleiben: Das Datenblatt nennt eine typische Verzögerung von Takt zu Q von 20 ns, und die garantierten Grenzwerte sind für Versorgungsspannungen von 2 V, 4,5 V und 6 V angegeben. Bei 5 V sind einige Megahertz unspektakulär; die Grenze setzt meist der Aufbau, nicht der Baustein.
Pin 10 ist SERIAL INPUT. Er speist die erste Stufe QA – das vom Ausgang am weitesten entfernte Kettenende. Verbinden Sie den QH-Ausgang (Pin 9) eines Bausteins mit SERIAL INPUT (Pin 10) des nächsten, teilen Sie SHIFT/LOAD und CLOCK, und Sie haben ein 16-Bit-Register, das mit sechzehn Taktflanken über eine Leitung gelesen wird. Ein dritter Baustein ergibt 24 Eingänge; bezahlt wird ausschließlich mit Zeit.
Pin 7 ist der komplementäre Ausgang /QH – dieselben seriellen Daten, invertiert. Er ist nützlich, wenn die empfangende Logik die umgekehrte Polarität erwartet, und darf sonst unbeschaltet bleiben.
Ein 3,3-V-Mikrocontroller kann diesen Baustein bei 5 V nicht zuverlässig ansteuern. Bei 4,5 V garantiert das Datenblatt ein High erst ab 3,15 V, bei 5 V sind rund 3,5 V nötig. Sauber ist, den ’165 ebenfalls mit 3,3 V zu betreiben – das liegt in seinem Bereich von 2–6 V – oder die Steuerleitungen zu übersetzen, siehe den Leitfaden zur Pegelumsetzung mit dem SN74AHCT08. Sein serieller Ausgang in einen 3,3-V-Eingang braucht die Gegenrichtung; Versorgungen also nicht beiläufig mischen.
Niemals einen parallelen Eingang offen lassen. Ein unbenutzter Pin A–H gehört an VCC oder Masse. Ein Schalter allein genügt nicht: Er definiert den Pegel nur in einer seiner beiden Stellungen, jeder Schalter braucht also einen Pull-up- oder Pull-down-Widerstand.
CLOCK INHIBIT nur ändern, solange CLOCK high ist. Weil beide Taktpins auf dasselbe NOR-Gatter führen, wirkt eine Änderung an CLOCK INHIBIT bei niedrigem CLOCK auf das Register wie eine Taktflanke und verschiebt die Daten unbemerkt um eine Position.
Mechanische Schalter prellen. Das Register übernimmt ein Prellen bereitwillig als echten Zustandswechsel. Entweder langsam abtasten und aufeinanderfolgende Messungen in Software vergleichen, oder die Flanken in Hardware mit einem Schmitt-Trigger-Eingang säubern, etwa dem 74AC14 Hex-Schmitt-Trigger-Inverter.
Der Baustein ist bewusst einseitig: Eingänge hinein, seriell hinaus. Sollen sich dagegen mehrere Bausteine beim Treiben eines gemeinsamen Busses abwechseln, braucht es 3-State-Ausgänge wie im Leitfaden zum MC74HC173, dem 4-Bit-3-State-Register. Muss ein ganzes Byte in beide Richtungen zwischen CPU und Bus wandern, ist das Aufgabe eines Transceivers – siehe den 74HC245-Leitfaden. Und wenn die eben eingeschobenen acht Bit eine Ziffer anzeigen sollen, übernimmt der MC74HC4511-Leitfaden zur 7-Segment-Anzeige.
In einer busbasierten Maschine wie einem 6502-System ist ein Schieberegister meist die billige Alternative dazu, noch eine Adresse zu dekodieren: kein Chip-Select, kein Zeitfenster, nur drei gewöhnliche Ausgangspins. Der 74HC138-Leitfaden zur Adressdekodierung beschreibt den anderen Weg, und der 6502-Teileleitfaden ordnet beides ein.
iMania führt den MM74HC165MX. In Fairchilds Bestellcode steht M für das Gehäuse M16A, einen schmalen 16-poligen SOIC nach JEDEC MS-012 (0,150″-Körper), und das angehängte X kennzeichnet die Tape/Reel-Verpackung. Das Rollenetikett trägt zusätzlich den Kundencode 099.200.052; der Hersteller dieser konkreten Rolle wurde nicht gesondert verifiziert, vergleichen Sie daher vor dem Serieneinsatz die Beschriftung des Bauteils selbst.
Es handelt sich um ein SMD-Bauteil mit 1,27 mm Rastermaß. Von Hand lötbar ist es mit üblichem Werkzeug, für Steckbrettarbeit brauchen Sie jedoch eine SOIC-16-auf-DIP-Adapterplatine. Der bedrahtete MM74HC165 im PDIP-16 ist derselbe Chip im Gehäuse N16E; das ist ein anderer Bestellcode und nicht Teil dieser Charge.
MM74HC165
Zur Produktseite des MM74HC165MX und zur Verfügbarkeit.
Originaldatenblatt: Fairchild Semiconductor MM74HC165 Parallel-in/Serial-out 8-Bit Shift Register, DS005316, September 1983, überarbeitet Februar 1999. Pinnummern, Steuerverhalten, Gehäusecodes und alle obigen Werte stammen daraus.
Wir verwenden Cookies, um Ihnen die bestmögliche Erfahrung zu bieten. Außerdem ermöglichen sie uns, das Nutzerverhalten zu analysieren, um die Website für Sie stetig zu verbessern.