Forum: Mikrocontroller und Digitale Elektronik I/O-Schieberegistersteuerung ohne Inverter möglich?


von A. S. (rava)


Lesenswert?

Hi,

das scheint mir ein Standardproblem zu sein: ich möchte die Eingänge und 
Ausgänge meines PIC controllers um jeweils 8 Stück erweitern.
Dazu habe ich mir eine STP08CP05 Schieberegister-KSQ für LEDs und ein 
74HC165 herausgesucht.

Neben den drei SPI-Pins habe ich aber nur noch einen Pin zum Steuern der 
beiden Register zur Verfügung. Ich stelle mir das so vor:

der STP emfängt 8 Bits über die Hardware-SPI des Controllers. Am Ende 
der Sequenz sorgt ein kurzer positiver Puls am "LatchEnable"-pin dafür, 
dass die empfangenen Daten auf die Ausgänge durchgeschalten und dann 
wieder gehalten werden.

Der 74HC165 hingegen hat einen "!LoadData"-Eingang, der so lange er auf 
"low" liegt, die anliegenden Daten durchschaltet. Für den eigentlichen 
Datenübertragungsvorgang muss der pin dann "high" sein. Daher brauchen 
wir hier also einen kurzen negativen Puls.

Da ich jeweils kurze Pulse in verschiedene Richtungen erzeugen muss, 
aber nur einen Pin habe, muss ich wohl einen Inverter diskret aufbauen, 
richtig?

Kennt ihr eine Alternative zum 74HC165 mit umgekehrter Polarität am 
Load-Eingang? Gibt's irgendwo eine Übersicht über die ganzen Varianten?


https://www.st.com/resource/en/datasheet/stp08cp05.pdf

https://www.ti.com/lit/gpn/sn74hc165

von Stefan F. (Gast)


Lesenswert?

A. S. schrieb:
> Da ich jeweils kurze Pulse in verschiedene Richtungen erzeugen muss,
> aber nur einen Pin habe, muss ich wohl einen Inverter diskret aufbauen,
> richtig?

Ja. Alternativ könntest du diesen Impuls ohne I/O Pin aus dem Taktsignal 
heraus erzeugen. Wenn für eine gewisse Zeit kein Takt mehr kommt, wird 
der Load-Impuls erzeugt. Das ist allerdings aufwändiger.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Erstens musst du keinen diskreten Inverter aufbauen, es gibt schließlich 
integrierte von diversen Herstellern, die sie dir sicher gern verkaufen. 
;-) Die bekommt man auch als Einzel- bzw. Doppelgatter im 
SOT-23-Gehäuse.

Zweitens könntest du wohl auch LE vom STP dauerhaft auf H legen und 
stattdessen mit /OE die Ausgänge für die Zeit der Datenübertragung kurz 
abschalten.

von Peter D. (peda)


Lesenswert?

A. S. schrieb:
> Der 74HC165 hingegen hat einen "!LoadData"-Eingang, der so lange er auf
> "low" liegt

Nimm den CD4021, der lädt mit High.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter D. schrieb:
> Nimm den CD4021, der lädt mit High.

Ist 'ne Frage, wie schnell es sein soll. Die alten CD40xx sind bei 5 V 
relativ langsam.

74HC4021 scheint es nicht zu geben.

: Bearbeitet durch Moderator
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.