Forum: Mikrocontroller und Digitale Elektronik PCF8575 - I2C Expander am ESP


von Kolja L. (kolja82)


Lesenswert?

Hallo

Ich möchte gerne 12 Taster an einen ESP8266 anschließen.
Dafür habe ich mit ein Modul mit dem PCF8575 besorgt:
https://www.nxp.com/docs/en/data-sheet/PCF8575.pdf

Leider habe ich nirgendwo im Netzt eine Beispielbeschaltung gefunden.
Den Bus anschließen ich natürlich nicht das Problem,
aber bei den Tastern bin ich mir nicht sicher:

1.) Schließe ich die Eingänge des PCF an den NO oder den NC Anschluss 
des Tasters an?

2.) Brauche ich dann einen Pull-Up bzw Pull-Down Widerstand an jedem 
Pin?

Danke und Gruß

von Stefan F. (Gast)


Lesenswert?

Ich kopiere mal einen Text von meiner Homepage:

Die Ausgänge des PCF8574 sind vom Typ Open-Collector. Der Chip kann 
seine Ausgänge mit GND verbinden, aber nicht mit VCC. LED's muss man 
daher so anschließen, dass sie leuchten, wenn der Anschluss auf LOW 
(GND) liegt.
1
PCF8574 o---[===]---|<|---o VCC
2
           220 Ohm     LED
Schalter oder Taster schließt man mit einem Pull-Up Widerstand an, so 
dass der Eingang auf HIGH liegt, solange der Taster nicht gedrückt ist:
1
PCF8574 o---+------[===]-----o VCC
2
            |     4,7k Ohm
3
            |       
4
            +------/ --------| GND
5
                 Taster

Ich denke, das trifft auf deinen PCF8575 ebenso zu.

von Ralf (Gast)


Lesenswert?

Da brauchst du keine Beispielbeschaltung sondern Grundlagen.

http://www.elektronik-kompendium.de/

Suche dir raus was NC und NO heißt und was eine Pullup / Pulldown 
Widerstand ist.

von Kolja L. (kolja82)


Lesenswert?

Stefan U. schrieb:
> Schalter oder Taster schließt man mit einem Pull-Up Widerstand an, so
> dass der Eingang auf HIGH liegt, solange der Taster nicht gedrückt
> ist:PCF8574 o---+------[===]-----o VCC
>             |     4,7k Ohm
>             |
>             +------/ --------| GND
>                  Taster

Danke!

von Falk B. (falk)


Lesenswert?


von Ralf (Gast)


Lesenswert?

hey, das hätte man ja mit der Suchfunktion finden können.

von Kolja L. (kolja82)


Lesenswert?

Ralf schrieb:
> hey, das hätte man ja mit der Suchfunktion finden können.

Nein, da ich nach PCF8575 und nicht nach PCF8574 gesucht habe ;-)
Aber danke für den Artikel!

Zitat: " P7 - Eingänge für Taster: Die internen Pull-up Widerstände sind 
hier nützlich."

Also brauche ich doch keinen externen Pullup :-)

von Programmierlehrer (Gast)


Lesenswert?

Kolja L. schrieb:
> Also brauche ich doch keinen externen Pullup :-)

Kommt drauf an was du machen willst.

von Kolja L. (kolja82)


Lesenswert?

Kolja L. schrieb:
> Ich möchte gerne 12 Taster an einen ESP8266 anschließen.

Oder was meinst du?

von Joachim B. (jar)


Lesenswert?

Stefan U. schrieb:
> Ich kopiere mal einen Text von meiner Homepage:
>
> Die Ausgänge des PCF8574 sind vom Typ Open-Collector.

für die I2C Pins mag das gelten und auch richtig sein!

> Schalter oder Taster schließt man mit einem Pull-Up Widerstand an, so
> dass der Eingang auf HIGH liegt, solange der Taster nicht gedrückt ist

nö, intern ist siehe Seite12
http://www.ti.com/lit/ds/symlink/pcf8574.pdf

die 100µA Quelle zu sehen default wird also high gelesen, mit einem 
Taster nach GND eben low.
So können Tasten und Schalter ohne pullup angeschlossen werden, meine 
auf Lochraster aufgebaute I2C Tastatur funktioniert so, glücklicherweise 
weiss sie von deiner Homepage nichts und liest hier nicht mit!

wieso schreibst du sowas?

auserdem war die Frage nicht nach 8574 sondern 8575 -> I2C Expander 
nicht I2C Port Expander ! man beachte den Unterschied!

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Joachim B. (jar)

>> Die Ausgänge des PCF8574 sind vom Typ Open-Collector.

>für die I2C Pins mag das gelten und auch richtig sein!

Auch für die IOs!

>> Schalter oder Taster schließt man mit einem Pull-Up Widerstand an, so
>> dass der Eingang auf HIGH liegt, solange der Taster nicht gedrückt ist

Ist prinzipiell richtig, wenn gleich hier überflüssig.

>auserdem war die Frage nicht nach 8574 sondern 8575 -> I2C Expander
>nicht I2C Port Expander ! man beachte den Unterschied!

Hallo? Welcher Unterschied? Der 8575 (16 Bit) ist der große Bruder des 
8574 (8Bit).

von Kolja L. (kolja82)


Lesenswert?

Also brauche ich nun externe Pullups
und wenn nein, muss ich die Internen über die Software einschalten?

von Joachim B. (jar)


Lesenswert?

Falk B. schrieb:
> @Joachim B. (jar)
>
>>> Die Ausgänge des PCF8574 sind vom Typ Open-Collector.
>
>>für die I2C Pins mag das gelten und auch richtig sein!
>
> Auch für die IOs!

Die IOs sind aber nicht open Collector sieh dir doch nur die 
Innenbeschaltung an, ich habe es getan!

>>> Schalter oder Taster schließt man mit einem Pull-Up Widerstand an, so
>>> dass der Eingang auf HIGH liegt, solange der Taster nicht gedrückt ist
>
> Ist prinzipiell richtig, wenn gleich hier überflüssig.

eben Taster oder Schalter konnen hier so an IO ohne pullup weil eben 
keine OC vorhanden sind!

>>auserdem war die Frage nicht nach 8574 sondern 8575 -> I2C Expander
>>nicht I2C Port Expander ! man beachte den Unterschied!
>
> Hallo? Welcher Unterschied? Der 8575 (16 Bit) ist der große Bruder des
> 8574 (8Bit).

mein Fehler ich hatte mal was über I2C Expander gelesen die weitere I2C 
Busse zur Verfügung stellen.

von Joachim B. (jar)


Lesenswert?

Kolja L. schrieb:
> Also brauche ich nun externe Pullups

nicht für Taster oder Schalter die nach GND schalten

von John Doe (Gast)


Lesenswert?

Kolja L. schrieb:
> Also brauche ich nun externe Pullups
> und wenn nein, muss ich die Internen über die Software einschalten?


Nein, natürlich nicht, wenn Du Tasten lesen willst. Steht doch im 
Datenblatt.
Lass Dich von den Hobby-Schnullis, die hier und auf Webseiten Unsinn 
verbreiten, nicht irritieren!

von Stefan F. (Gast)


Lesenswert?

> die 100µA Quelle zu sehen default wird also high gelesen

ja, wenn die Taster direkt neben dem µC platziert sind, mit ganz kurzen 
Leitungen. Mit einem Pull-Up Widerstand funktioniert es auch in weniger 
idealen Umgebungen gut. Außerdem benötigen die meistens Taster einen 
gewissen mindest-Strom um lange zu leben (Fachwort: "Wetting Current"). 
100µA sind diesen Tastern zu wenig.

> Also brauche ich nun externe Pullups

Kommt auf die Rahmenbedingungen an, die du nicht genannt hast. Sie 
können jedenfalls nicht schaden.

von Joachim B. (jar)


Lesenswert?

Stefan U. schrieb:
> Mit einem Pull-Up Widerstand funktioniert es auch in weniger
> idealen Umgebungen gut.

klar wenn der Taster an einer 100m Strippe neben der Netzleitung hängt.

von Falk B. (falk)


Lesenswert?

@Joachim B. (jar)

>>>> Die Ausgänge des PCF8574 sind vom Typ Open-Collector.
>
>>>für die I2C Pins mag das gelten und auch richtig sein!
>
>> Auch für die IOs!

>Die IOs sind aber nicht open Collector

Aber sicher. Nur weil da noch eine kleine Stromquelle auf FET-Basis 
dranhängt, wird daraus noch lange kein Push-Pull Ausgang. Es ist ein 
Open Drain Ausgang mit interner Stromquelle als Pull-Up.

>sieh dir doch nur die Innenbeschaltung an, ich habe es getan!

Ich auch.

von Joachim B. (jar)


Lesenswert?

Falk B. schrieb:
> Nur weil da noch eine kleine Stromquelle auf FET-Basis
> dranhängt

kann ich da keine 12V über einen pullup anschliessen, bei einem echten 
OC aber vermutlich mit bipolartransistor schon

Falk B. schrieb:
> wird daraus noch lange kein Push-Pull Ausgang

das habe ich auch nie geschrieben, früher waren das auch nur interne 
niederohmigere pullups die "pushten" auch nur begrenzt.

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

@Joachim B. (jar)

>> Nur weil da noch eine kleine Stromquelle auf FET-Basis
>> dranhängt

>kann ich da keine 12V über einen pullup anschliessen, bei einem echten
>OC aber vermutlich mit bipolartransistor schon

Ach herje, seit wann ist denn die zentrale Definition, daß man an einen 
Open Collector mehr als VCC dranhängen darf? Schau dir mal die diversen 
Open Collector Bausteine der 74xx Familie an, die haben nur 
ESD-Schutzdioden, welche ebenfalls keine Spannung >VCC erlauben.

>> wird daraus noch lange kein Push-Pull Ausgang

>das habe ich auch nie geschrieben, früher waren das auch nur interne
>niederohmigere pullups die "pushten" auch nur begrenzt.

Na was ist es denn dann für ein Ausgang? Erfinden wir hier was Neues?

von Stefan F. (Gast)


Lesenswert?

> was ist es denn dann für ein Ausgang

Wahrscheinlich open drain :-)
SCNR

von Joachim B. (jar)


Lesenswert?

Falk B. schrieb:
> Ach herje, seit wann ist denn die zentrale Definition, daß man an einen
> Open Collector mehr als VCC dranhängen darf?

was sollte einen Chip mit OC für max. 5V VCC stören der an VCC mit 3,3V 
hängt und der OC mit externem Pullup an 5V hängt?

so sehe ich das halt, wäre der nicht OC würde die 5V rückwärts wieder 
zur VCC 3,3V gelangen.

Du darfst das gerne anders sehen aber bitte mit Begründung

push pull Ausgänge sind auch nicht wirklich brauchbar bei wired or, 
soweit ich mich erinnere wurden deswegen gerade OC gebaut, egal wer den 
runterzieht, aktiv gibt kein Chip VCC raus!

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

> aktiv gibt kein Chip VCC raus

Ah ja. Ich hoffe du meinst das nicht wirklich so, wie es sich liest.

von Kolja L. (kolja82)


Lesenswert?

Ihr habt mich jetzt komplett verwirrt :-(

von Joachim B. (jar)


Lesenswert?

Kolja L. schrieb:
> Ihr habt mich jetzt komplett verwirrt :-(

was fehlt dir denn?

verwirrt weil hier einige OC nicht verstehen oder nur spielen wollen, 
ist zwar noch nicht Freitag aber fast

nachlesen
https://www.elektronik-kompendium.de/sites/slt/1206121.htm
https://www.elektronik-kompendium.de/public/schaerer/pullr.htm
https://www.mikrocontroller.net/articles/Ausgangsstufen_Logik-ICs


nun weiss ich wo es dich verwirrt

Titel
PCF8575 - I2C Expander am ESP

VCC vom PCF8575 an 3,3V
hänge deine 12 Taster kurz einfach an P0-P11 und schalte die nach GND

Taster nicht gedrückt gibt high
Taster gedrückt gibt low

: Bearbeitet durch User
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.