Eingänge erweitern mit zwei 74HC165

Janiiix3

Aktives Mitglied
28 Sep 2013
1.301
10
38
Hannover
Sprachen
C, C#
Hallöle,

ich bin mir jetzt nicht mehr 100 % ig sicher was man genau mit dem "Seriellen Eingang" (SER) machen muss, wenn man diesen nicht benutzt. Woher weiß der Chip das eigentlich? Die Eingänge sind ja bei diesem Exemplar "A-H", "QH" ist der normale serielle Ausgang, "QH!" ist der invertierte Ausgang.
"CLK" ist der Schiebetakt, "SH/LD!" bestimmt ob die Werte eingelesen werden sollen oder weiter geschoben werden?!

Würde mich über Antworten freuen :)

Datenblatt->
http://www.ti.com/lit/ds/symlink/sn74hc165.pdf
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.246
127
63
Mittelhessen, Giessen
Sprachen
C, Assembler, Pascal, C++, PHP, Java
Hi Jan.

SH/LD!
wenn high, wird bei CLK geshiftet (steigende Flanke, CLKINH beachten)
wenn low, werden die Werte vom parallelen Eingang in das Shiftregister geladen.

SER
Der serielle Eingang des Shiftregisters. Hier kannst du zum Beispiel mehrere 74HC165 kaskadieren (zB Ausgang QH an Eingang SER des nächsten HC165), um mehr als 8Bit einlesen zu können.
Oder für sicherheitsrelevante Sachen kannst du von deinem Mikrocontroller seriell durch das Shiftregister takten, wieder einlesen, das Ergebnis validieren und so prüfen, ob deine Hardware i.O. ist.
Wenn du SER nicht nutzt, lege den Pin auf low oder high.

Ansonsten steht eigentlich alles im Datenblatt, siehe Seite 12..13

The SNx4HC165 is an 8-bit Parallel load shift register with 1 serial input and 8 parallel load input. The device
loads all the 8 bits simultaneously through parallel load input when SH/LD is low. This will also ignore any input
at CLK or CLK INH.
The device shifts the data when CLK toggles. The data is shifted on rising edge of the clock. Clock Inhibit (CLK
INH) inhibits the clock function resulting in no change of the output. If SH/LD is low clock inputs are ignored. To
realize the shift function, SH/LD should be high.
CLK and CLK INH functions are interchangeable. If CLK is low then change a clock signal at CLK INH pin
causes a shift of data to QH. If CLK INH is Low clock signal on CLK pin shifts the data out to QH.
Dirk :ciao:
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.301
10
38
Hannover
Sprachen
C, C#
Ja okay..
Wo steht aber wann der "SER" Eingang aktiv oder deaktiv ist? Wenn Ich ihn auf "high" oder "low" lege, kann dieses Ergebniss doch auch am Ausgang erwartet werden? Ich muss diesen Eingang doch irgendwie aktivieren bzw. deaktivieren können?!
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.246
127
63
Mittelhessen, Giessen
Sprachen
C, Assembler, Pascal, C++, PHP, Java
SER ist immer "aktiv". Den zu deaktivieren hat überhaupt keinen Sinn.

Du musst nach Laden des Schieberegisters mehr als 8mal Takten, damit du überhaupt irgeneinen logischen Zustand von SER am Ausgang siehst.
 

Janiiix3

Aktives Mitglied
28 Sep 2013
1.301
10
38
Hannover
Sprachen
C, C#
Ah okay.. Also wenn Ich jetzt einen zweiten an den Eingang von "SER" schalte, muss ich 16 x Takten damit Ich das Ergebniss vom zweiten Register habe, ohne "LD/SH" in diesen Momment zu nutzen, richtig?
 

Dirk

Administrator
Teammitglied
28 Jan 2007
4.246
127
63
Mittelhessen, Giessen
Sprachen
C, Assembler, Pascal, C++, PHP, Java
Ich denke, du musst 17 mal takten, damit das Zustand von SER des ersten IC am Ausgang des zweiten IC erscheint.
Nach 16 mal takten erscheint das höchstwertigste Bit am Ausgang.
Nach 1 mal Takten erscheint das niederwertigste Bit am Ausgang.
 

LotadaC

Sehr aktives Mitglied
22 Jan 2009
3.212
58
48
Hennigsdorf
Sprachen
BascomAVR, Assembler
Wenn man sich das "Functional Block Diagram" (S.12 bzw gleich am Anfang) ansieht, wirds doch eigentlich klar:
Für jedes Bit existiert ein FlipFlop (?). Also betrachten wir erstmal nur das erste, und folgen SH/LD.

Das SH/LD-Signal wird invertiert und durch einen Treiber (zusammen quasi ein NOT-Gatter) getrieben.
Anschließend bildet es neben "A" einen Eingang des oberen NAND-Gatters. NAND liefert nur dann eine "0", wenn beide Eingänge "1" sind, also A=1 und SH/LD=0 (wegen dem Not am Anfang). Nur wenn dieses NAND "0" liefert, liegt (nochmal invertiert) 'ne "1" an "S" an, was das Bit im FlipFlop setzt (SET).
Für A=0 liefert das obere NAND immer 'ne "1", neben SH/LD auf einem Eingang des unteren NAND-Gatters liegt. Dieses NAND liefert also nur dann 'ne "0", wenn A=0 und SH/LD=0. Diese "0" liegt invertiert (="1") am "R" an, was das Bit im FlipFlop löscht (Reset).

Also salopp gesagt: solange SH/LD low ist, wird dem FlipFlop der Pegel von "A" aufgezwungen.Wenn SH/LD high ist, bleibt der Zustand der FlipFlops unverändert - also unabhängig von "A".."H"...

Clk und CLK_INH liegen als Eingänge auf einem OR-Gatter. OR liefert nur dann 'ne "0", wenn beide Eingänge "0" sind. Beide Eingänge kannst Du auch funktionstechnisch tauschen (kommutativ).
Jede steigende Flanke des OR-Ausganges Taktet einen Übernahme-Impuls in alle acht FlipFlops.
Jedes FlipFlop übernimmt dann den Zustand das vorgeschalteten, also H übernimmt G, Gübernimmt F, F übernimmt E, ... , B übernimmt A und A übernimmt SER. Der Zustand von H ist QH und invertiert an /QH ausgegeben

Aber das geht nur, wenn SH/LD high ist - wenn es low istwerden die FlipFlops ja wie oben beschrieben permanent gesetzt oder gelöscht.

Wenn uninteressant ist, was beim Raustakten der Bits "vorne" nachgeschoben wird, ist auch egal wie SER beschaltet ist. Es sollte nur nicht offen sein, da es dann als Antenne wirkt, und eventuelle Hochfrequenzen einfängt (die der Inverter direkt hinter SER dann mit umschaufeln müßte).
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)