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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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. (stefanus)


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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.