Forum: Mikrocontroller und Digitale Elektronik PCA9500 GPIO-Expander Input und Output zur selben Zeit verwenden?


von Manuel N. (manuelambaum)


Lesenswert?

Hi, meine Fragestellung könnte etwas irreführend formuliert sein. 
Deshalb hier nochmals ausführlicher:
Da ich auf meinem Raspberry Pi zu wenig GPIO's habe, möchte ich den I2C 
GPIO-Expander namens "PCA9500" verwenden. Ich habe im Datenblatt 
gelesen, dass die GPIO's quasi bidirektional sind und unabhängig von 
einander als Input oder Output verwendet werden können. Ist es korrekt, 
dass ich z.B. sagen kann, dass ich GPIO 0&1 als Output verwenden möchte 
und GPIO 2...7 zum selben Zeitpunkt als Input?

Habe aktuell eines PCF8574 zuhause. Liege ich richtig mit der Annahme, 
dass dieser nur Entweder vollständig als Input oder vollständig als 
Output Expander  verwendet werden kann?

Kenne mich auf diesem Gebiet noch nicht sehr gut aus, weswegen ich auf 
Nummer sicher gehen möchte, damit ich das Bauteil nicht für die Katz 
bestelle.

von Sebastian R. (sebastian_r569)


Lesenswert?

Manuel N. schrieb:
> Ist es korrekt,
> dass ich z.B. sagen kann, dass ich GPIO 0&1 als Output verwenden möchte
> und GPIO 2...7 zum selben Zeitpunkt als Input?

Ist es.

Manuel N. schrieb:
> Liege ich richtig mit der Annahme,
> dass dieser nur Entweder vollständig als Input oder vollständig als
> Output Expander  verwendet werden kann?

Seite 1 des Datenblattes:
"Each quasi-bidirectional I/O can be used as an input or output without 
the use of a data-direction control signal."

Du liegst also falsch. Die Typical Application, die du im Datenblatt 
sicher auch gesehen hast, zeigt auch einen "Mischbetrieb".

Und am Ende sind beide IO-Expander nahezu identisch, nur von anderen 
Herstellern. Sie sind sogar Pinkompatibel.

: Bearbeitet durch User
von Manuel N. (manuelambaum)


Lesenswert?

>
> Seite 1 des Datenblattes:
> "Each quasi-bidirectional I/O can be used as an input or output without
> the use of a data-direction control signal."
>

Okey, danke für deine schnelle Antwort. Was bedeutet "without the use of 
a data-direction control signal"?

Englisch auf Deutsch übersetzen kann ich selbst, aber was ist die 
Wirkung wenn man ein data-direction control signal hat oder nicht?

von Sebastian R. (sebastian_r569)


Lesenswert?

Manuel N. schrieb:
> Englisch auf Deutsch übersetzen kann ich selbst, aber was ist die
> Wirkung wenn man ein data-direction control signal hat oder nicht?

Das ist egal, weil der Expander keinen Eingang dafür hat.

Es gibt andere IO-Expander, bei denen kannst/musst du die Richtung von 
IO-Bänken über entsprechende Pins vorgeben. Also Pin high = Eingang, Pin 
low = Ausgang z.B.. Damit kann dann ein Register als ganzes nur eine 
Richtung haben.

Bei den hier genannten Typen gibt es kein Signal für die Richtung eines 
Registers, sondern es wird alles komplett im Protokoll abgebildet, 
wodurch Mischbetrieb möglich ist.

von Εrnst B. (ernst)


Lesenswert?

Der "Trick" ist: Wenn die Outputs auf "HIGH" stehen, werden die nur über 
einen Pull-Up (100µA oder so) auf Pegel gezogen. Wenn du die extern 
stärker auf GND ziehst, kriegst du den Pin beim Rücklesen als "LOW".

d.H.: Du kannst alle Pins, die als "High" konfiguriert sind, als Input 
verwenden. Musst aber aufpassen, dass du die nie als Output/Low 
beschreibst, solange da extern ein anderer Pegel anliegt.

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.