Forum: Mikrocontroller und Digitale Elektronik PCF8574/PCF8574A Adressierung


von Max M. (maxx_m)



Lesenswert?

Hallo,

bei meiner Frage handelt es sich um die Adressierung der Bauteile 
PCF8574/74A.

Und zwar steht im Datenblatt etwas über A0, A1 und A2.. welches die 
physisch einstellbaren Adressen sind ( Mit Pull-up, Pull-down ). Dann 
gibt es einen "fixed-portion" Teil der Adressen; A3-A6 (für PCF8574: 
0100, für PCF8574A: 0111). Aber es steht nicht ob man die (74 und 74A) 
ohne weiteres einfach so gegeneinander austauschen kann.

Der PCF8574 und der PCF8574A sind identisch, mit Ausnahme des 
unterschiedlichen festen Teils des Slave-Adresse.

Nun haben wir in der Schule die Frage gestellt bekommen, ob PCF8574 und 
PCF8574A gegeneinander austauschbar sind.

Ich bin mir nicht sicher ob man an der Software was ändern muss, falls 
man die gegeneinander austauscht? Oder worauf muss man achten?

Ich würde das ja selber testen aber leider habe ich die IC's nicht da.

Danke & Gruß,
maxx_m

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Max M. schrieb:
> Der PCF8574 und der PCF8574A sind identisch, mit Ausnahme des
> unterschiedlichen festen Teils des Slave-Adresse.

Also sind sie NICHT identisch.

> Nun haben wir in der Schule die Frage gestellt bekommen, ob -74 und -74A
> gegeneinander austauschbar sind.

Es gibt keinen -74 und -74A. Es gibt einen PCF8574 und PCF8574A. Deine 
erfundene Abkürzung bringt nur Verwirrung!

> Ich bin mir nicht sicher ob man an der Software was ändern muss, falls
> man die gegeneinander austauscht? Oder worauf muss man achten?

Man muss die andere (Basis)adresse benutzen.

> Ich würde das ja selber testen aber leider habe ich die IC's nicht da.

Dafür aber reichliche Apostrophe!

http://www.deppenapostroph.info/

von Max M. (maxx_m)


Lesenswert?

Falk B. schrieb:
> Max M. schrieb:
>> Der PCF8574 und der PCF8574A sind identisch, mit Ausnahme des
>> unterschiedlichen festen Teils des Slave-Adresse.
>
> Also sind sie NICHT identisch.
>
>> Nun haben wir in der Schule die Frage gestellt bekommen, ob -74 und -74A
>> gegeneinander austauschbar sind.
>
> Es gibt keinen -74 und -74A. Es gibt einen PCF8574 und PCF8574A. Deine
> erfundene Abkürzung bringt nur Verwirrung!
>
>> Ich bin mir nicht sicher ob man an der Software was ändern muss, falls
>> man die gegeneinander austauscht? Oder worauf muss man achten?
>
> Man muss die andere (Basis)adresse benutzen.
>
>> Ich würde das ja selber testen aber leider habe ich die IC's nicht da.
>
> Dafür aber reichliche Apostrophe!
>
> http://www.deppenapostroph.info/

Korrigiert!!
Keine weiteren Fragen, Sir!

Vielen Dank Falki! :))

von Sebastian R. (sebastian_r569)


Lesenswert?

Max M. schrieb:
> Ich bin mir nicht sicher ob man an der Software was ändern muss, falls
> man die gegeneinander austauscht? Oder worauf muss man achten?

Wenn du deine Telefonnummer änderst, wirst du unter der alten Nummer 
vermutlich nicht mehr erreichbar sein, oder?

Also die Software muss zumindest von der anderen Adresse wissen. 
Ansonsten sollte das soweit klappen

von Max M. (maxx_m)


Lesenswert?

Sebastian R. schrieb:
> Wenn du deine Telefonnummer änderst, wirst du unter der alten Nummer
> vermutlich nicht mehr erreichbar sein, oder?
>
> Also die Software muss zumindest von der anderen Adresse wissen.
> Ansonsten sollte das soweit klappen

Vielen Dank !

von Karl B. (gustav)


Lesenswert?

Die Adressierung ändert sich.
PCF8574->0x40 hex; PCF8574A->0x70 hex

Die Verwirrung kommt daher, weil statt mit eiem 8-Bit-Rahmen mit einem 
7- Bit-Rahmen gearbeitet wird, und bei dem einen IC alles eine Stelle 
"rüberrutscht".

ciao
gustav

von Schlaumaier (Gast)


Lesenswert?

Max M. schrieb:
> Nun haben wir in der Schule die Frage gestellt bekommen, ob PCF8574 und
> PCF8574A gegeneinander austauschbar sind.

Technisch gesehen musst du einfach beide Datenblätter lesen, und die 
Pin-Belegung vergleichen. Soweit ich mich erinnere sind die aber gleich.

Da sich aber auch (Siehe Datenblatt) die Adresse ändert MUSST du immer 
auch deine Software anpassen.

Keine Panik ist nur eine Zeile. Nämlich die in der du den Chip 
Initialisiert.  Da musst du ja die Adresse angeben, und genau DA musst 
du sie ändern.


Und sag dein Lehrer er soll klare Fragen stellen, sonst ist jede einfach 
ja/nein Antwort richtig und zugleich falsch.

von Stefan F. (Gast)


Lesenswert?

Schlaumaier schrieb:
> Keine Panik ist nur eine Zeile.

Vorsicht, es gibt (auch hier) so Magic-Number Spezialisten, die streuen 
ihre hart-codierten Zahlen mit der Gießkanne ins Projekt.

von Karl B. (gustav)


Lesenswert?

Na,
so einfach auch nicht: Diese 8-Bit-Startadresse setzt sich zusammen:
Adresse A0,A1,A2=GND + R/W-Bit (W=0; R=1)

Slave Startadresse + RW-Bit
PCF8574->0x40; PCF8574A->0x70

ciao
gustav

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Karl B. schrieb:
> so einfach auch nicht: Diese 8-Bit-Startadresse setzt sich zusammen:
> Adresse A0,A1,A2=GND + R/W-Bit (W=0; R=1)

Was ist mit den restlichen 4 Bits?

von Max M. (maxx_m)


Lesenswert?

Schlaumaier schrieb:
> Und sag dein Lehrer er soll klare Fragen stellen, sonst ist jede einfach
> ja/nein Antwort richtig und zugleich falsch.

Mach ich. Danke Dir!

von Karl B. (gustav)


Lesenswert?

Stefan ⛄ F. schrieb:
> Was ist mit den restlichen 4 Bits?

Hi,
schau nochmal ins Dabla.
Die Sache mit dem 7-Bit-Rahmen statt 8.
https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf

Seite 5
Da sind noch die weiteren Kombinationen angegeben.
Fürs Starten bei A0 bis A2 fest auf GND und RW auf GND
gilt hex 0x70 bzw. 0x40 für den 8-Bitter.

ciao
gustav

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Max M. schrieb:
> Nun haben wir in der Schule die Frage gestellt bekommen, ob PCF8574 und
> PCF8574A gegeneinander austauschbar sind.
>
> Ich bin mir nicht sicher ob man an der Software was ändern muss, falls
> man die gegeneinander austauscht?

Ja, sind sie.

Der PCF8574 sitzt auf der I2C-Adresse 0x20 ^ (A2,A1,A0) und der
PCF8574A auf 0x38 ^ (A2,A1,A0)

Wenn man die Software bei der Initialisierung prüfen lässt, wo sich 
jemand meldet, funktioniert es ohne Änderungen an der Software.

von Falk B. (falk)


Lesenswert?

Mein Gott! Es ist schon alles gesagt, nur noch nicht von jedem! Immer 
weiter so!

von Karl B. (gustav)


Lesenswert?

Wolfgang schrieb:
> Der PCF8574 sitzt auf der I2C-Adresse 0x20 ^ (A2,A1,A0) und der
> PCF8574A auf 0x38 ^ (A2,A1,A0)

Jetzt nimmst Du aber die 7-Bit-Maske. (o h n e RW)
Genau das Missverständnis, auf das ich noch verweisen wollte.
Das Dabla gibt da Aufschluss. Kapitel 7.1.1
https://www.nxp.com/docs/en/data-sheet/PCF8574_PCF8574A.pdf
Obwohl da die drei Kolumnen links nochmal extra rausgezeichnet sind.
Wegen der Harware-Jumperung.
Die müssen aber im Zusammenhang gesehen werden mit den anderen Bits.
Karl B. schrieb:
> Fürs Starten bei A0 bis A2 fest auf GND und RW auf GND
> gilt hex 0x70 bzw. 0x40 für den 8-Bitter.


ciao
gustav

: Bearbeitet durch User
von Schlaumaier (Gast)


Lesenswert?

Ich habe schönere Datenblätter als IHR. Bäh bäh.

Bei mir ist eine Tabelle drin, wo ich die Adresse ablesen kann, für JEDE 
Belegung von A nach Ground.

von Falk B. (falk)


Lesenswert?

Schlaumaier schrieb:
> Bei mir ist eine Tabelle drin, wo ich die Adresse ablesen kann, für JEDE
> Belegung von A nach Ground.

Die brauchst DU auch.

von Wolfgang (Gast)


Lesenswert?

Karl B. schrieb:
> Jetzt nimmst Du aber die 7-Bit-Maske. (o h n e RW)
> Genau das Missverständnis, auf das ich noch verweisen wollte.

Der I2C-Standard definiert eine 7-Bit Slave Adresse (Fig.9).
https://www.nxp.com/docs/en/user-guide/UM10204.pdf

Was hat das RW-Bit mit der Adresse zu tun? Wenn man sich an den Standard 
hält, kann es doch dazu gar keine zwei Meinungen geben.

von Falk B. (falk)


Lesenswert?

Wolfgang schrieb:
> Der I2C-Standard definiert eine 7-Bit Slave Adresse (Fig.9).
> https://www.nxp.com/docs/en/user-guide/UM10204.pdf

Ja und? Das ist weder göttlich noch in Stein gemeißelt.

> Was hat das RW-Bit mit der Adresse zu tun?

Adresse + R/W Bit = 8 Bit Wert!

> Wenn man sich an den Standard
> hält, kann es doch dazu gar keine zwei Meinungen geben.

Doch! Und das zeigt die Praxis. Einige benutzen die 8-Bit Adresse mit 
RW=0, andere nur die echten 7 Adressbits.

von Schlaumaier (Gast)


Lesenswert?

Falk B. schrieb:
> Die brauchst DU auch.

Klor, wenn ich das Datenblatt eh lese tu, kann es mir auch die Arbeit 
erleichtern. ;)

Stefan ⛄ F. schrieb:
> Vorsicht, es gibt (auch hier) so Magic-Number Spezialisten, die streuen
> ihre hart-codierten Zahlen mit der Gießkanne ins Projekt.

Das hasse ich wie die Pest. Lieber setze ich ein Globale Variable als so 
ein Mist.

Bei meinen Projekten initialisiert ich ALLE meine Teile oben im Code, 
entweder direkt oder ich setze die globale Variable die dann im Code das 
Teil initialisiert, wenn es den unbedingt sein muss. Ist mir zwar unter 
Arduino noch nicht vorgekommen aber unter VB einige Male.

Noch bevor die erste Schleife auch nur angeschaut wird.

Der Grund ist einfach. Es ist schon einige Male vorgekommen, das ich ein 
Pin umstecken musste weil die Libs unbedingt ein bestimmten (von mir 
besetzten) Pin haben wollte. Also Pin umstecken und im Code OBEN die 
neue Pin-Nr. angeben.  FERTIG.

So was kommt vor, wenn man z.b. feststellt das man noch ein Extra Sensor 
o. so dazu bauen könnte, um das Projekt zu erweitern.

von Wolfgang (Gast)


Lesenswert?

Falk B. schrieb:
> Ja und? Das ist weder göttlich noch in Stein gemeißelt.

Entschuldige mal, Philips hat es als Spezifikation so festgelegt und 
damit ist es so. Alles, was nicht der I2C-Spezifikation entspricht, ist 
nicht I2C.

von Falk B. (falk)


Lesenswert?

Wolfgang schrieb:
> Entschuldige mal, Philips hat es als Spezifikation so festgelegt und
> damit ist es so. Alles, was nicht der I2C-Spezifikation entspricht, ist
> nicht I2C.

Du bist und bleibst ein erbärmlicher Oberlehrer! Mein Beileid!

P S Die AVRs haben gar kein I2C, nur TWI ;-)

von Wolfgang (Gast)


Lesenswert?

Falk B. schrieb:
> P S Die AVRs haben gar kein I2C, nur TWI ;-)

Was hat der AVR von Microchip mit den PCF8574/PCF8574A von NXP zu tun?

von Der Unwissende (Gast)


Lesenswert?

Wolfgang schrieb:
> Was hat der AVR von Microchip mit den PCF8574/PCF8574A von NXP zu tun?

 - Sind beides so süße kleine Krabbelkäfer...
 - kann man beides bei Elektronikhändlern käuflich erwerben
 - die zweitgenannten ICs lassen sich an den erstgenannten anschließen
 - beides eigentlich Wertlos wenn man keine Ahnung hat

und letztlich kann man Tage-/Wochenlang drüber diskutieren.

von Peter D. (peda)


Lesenswert?

Max M. schrieb:
> Nun haben wir in der Schule die Frage gestellt bekommen, ob PCF8574 und
> PCF8574A gegeneinander austauschbar sind.

Jain.
Man kann die Software so schreiben, daß sie zu Anfang beide Adreßgruppen 
durchprobiert, wo sie ein ACK bekommt. Dann sind die PCF8574/A direkt 
austauschbar.

von Stefan F. (Gast)


Lesenswert?

Voraussetzung für den Wechsel ist natürlich, dass die neuen Adressen der 
A-Version nicht schon durch andere I²C Chips belegt sind.

von Falk B. (falk)


Lesenswert?

Stefan ⛄ F. schrieb:
> Voraussetzung für den Wechsel ist natürlich, dass die neuen Adressen der
> A-Version nicht schon durch andere I²C Chips belegt sind.

Das ist unwahrscheinlich und wenn es mit rechten Dingen zugeht relativ 
sicher ausgeschlossen. Denn die Basisadressen wurden halbwegs logisch 
vom I2C Konsortium zugeteilt. Such mal einen I2C Schaltkreis, der die 
gleiche Basisadresse wie die PCF8574(A) haben. Und bitte keine 
programmierbaren Mikrocontroller oder ähnliche Tricks ;-)

von Stefan F. (Gast)


Lesenswert?

Falk B. schrieb:
> Das ist unwahrscheinlich ... Denn die Basisadressen
> wurden halbwegs logisch vom I2C Konsortium zugeteilt.

Das wusste ich nicht, danke für die Info.

von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Angehängte Dateien:

Lesenswert?

Falk B. schrieb:
> Denn die Basisadressen wurden halbwegs logisch
> vom I2C Konsortium zugeteilt.

Muss ich leider widersprechen,
Hängt ein bisschen damit zusammen, Welche Adresse eingestellt ist 
(A0~A2) und von welchem Hersteller.

Aber es gibt eine Liste wo sehr viele I²C Bauteile aufgeführt sind und 
mir sind da schen Etliche Mehrfachbelegung aufgefallen
Beispiel TDA8444=PCF8574 was beim Velleman K8000 Konzept, gerne zu 
Problemen führte.

Sehr gute Lieste als Beispiel im Anhang.

: Bearbeitet durch User
von Forist (Gast)


Lesenswert?


von Patrick L. (Firma: S-C-I DATA GbR) (pali64)


Lesenswert?

Forist schrieb:
> Quelle:
> http://www.elektronik-magazin.de/page/I2C-bus-adressliste-23.pdf

Steht auf dem PDF sogar als Anklikbarer Link oben rechts mit drauf.
Aber Trotzdem Danke für dein nachholen, wollte es noch hinschreiben aber 
wie es so ist, kam ein Anruf, und ja Telefonieren und auf dem Touch 
gleichzeitig tippen geht schlecht. Also fix schnell im Forum abgesetzt.
Danach konnte ich den Beitrag nicht mehr ändern (Kunde mit 1001 Fragen).

Warum als PDF und nicht direkt der Link:

Weil man nie weis, wann so eine "Alte" Webseite plötzlich nicht mehr 
verfügbar ist, habe ich mir den Link als PDF lokal gespeichert und hier 
reinkopiert.

Meiner Meinung nach eine der besten, verfügbaren Listen, für das I²C 
Adressproblem.
Ist bei weiten Nicht vollständig, aber die gängigsten Typen sind 
vermerkt.

: 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.