Forum: Mikrocontroller und Digitale Elektronik Adresse PCF8574


von Edwin (Gast)


Lesenswert?

Hallo
Eine Frage:
Wenn ich die Adresse vom PCF8574 einstellen will, dann muss man das ja 
mit den Pins A0, A1, A2 machen. Wenn ich jetzt z.B. A0 = 0 , A1 = 1 , A2 
= 0 ,
Dann wäre das diese Adresse Softwaremässig:
&H02

???
Stimmt das so?

Oder hab ich da was falsch verstanden?

Liebe Grüsse

von Иван S. (ivan)


Lesenswert?

Edwin schrieb:
>
> Stimmt das so?

Stimmt so.

Iwan

von Falk B. (falk)


Lesenswert?

@  Edwin (Gast)

>mit den Pins A0, A1, A2 machen. Wenn ich jetzt z.B. A0 = 0 , A1 = 1 , A2
>= 0 ,
>Dann wäre das diese Adresse Softwaremässig:
>&H02

>Stimmt das so?

Jain. Auf die Adresse allein bezogen stimmt das. Da aber die Adressbit 
bei I2C in den Bit 7..1 drinstecken, ist dein Byte, welches du per I2C 
rausklingeln musst 0x04 für einen Schreibzugriff und 0x05 für einen 
Lesezugriff.
Aber der PCF8574 hat die oberen Adressbits fest einprogrammiert, sie 
Datenblatt oder Artikel [[Port-Expander PCF8574]]

MfG
Falk

von spess53 (Gast)


Lesenswert?

Hi

Nein. Der 8574 hat hat eine Grundadresse von $20 (A2,A1,A0=0). Dazu 
kommt der  Wert von A2..A0.

MfG Spess

von kurz (Gast)


Lesenswert?

Empfehle: Datenblatt lesen, da steht alles drin.

Achtung: PCF8574 und PCF8574A haben verschiedene Adressen !!

von Gast (Gast)


Lesenswert?

Bis auf die Antwort von Falk ist alles falsch. Der PCF8574 hat die 
Basisadresse 0x40 und der PCF8574A hat die Basisadresse 0x70. Mit Deiner 
Adresseinstellung hast Du beim 8574 die Adresse 0x44 zum Schreiben und 
0x45 zum Lesen, beim 8574A entsprechend 0x74 und 0x75.
A0, A1 und A2 der Adresse entsprechen Bit 1, 2 und 3 der wirklichen 
Adresse, also bei A0 = 0 , A1 = 1 , A2 = 0 nicht 0x02 sondern 0x04.
Bit 0 der Adresse entscheidet zwischen Schreiben und Lesen.

Gruß

Gast

von Иван S. (ivan)


Lesenswert?

Gast schrieb:
> Bis auf die Antwort von Falk ist alles falsch. Der PCF8574 hat die
> Basisadresse 0x40 und der PCF8574A hat die Basisadresse 0x70.

Wie Falk schon sagte, das ist Ansichtssache. Wenn ich nur von den 
Adressbits (wie im Datenblatt gekennzeichnet) ausgehe, stimmt die 0x22 
sehr wohl. Wenn ich das Schreib-Lesebit zur Adresse dazurechne, stimmt 
deine Ansichtsweise:

> Mit Deiner  Adresseinstellung hast Du beim 8574 die Adresse 0x44 zum
> Schreiben und 0x45 zum Lesen, beim 8574A entsprechend 0x74 und 0x75.

> Bit 0 der Adresse entscheidet zwischen Schreiben und Lesen.

Ansichtssache. Im Datenblatt ist es als nicht zur Adresse gehörend 
gekennzeichnet.

> Gruß

Gruß zurück.

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

>Bis auf die Antwort von Falk ist alles falsch.

Sieh dir mal S.3/4 an.

MfG Spess

von Kurz (Gast)


Lesenswert?

Sieht seltsam aus. Im alten Datenblatt von Philips wird sogar zwischen 
8574 und 8574A in der Länge der dargestellten Adresse (7 oder 8 Bit) 
unterschieden. Mal mit und mal ohne Schreib/Lese-Bit. Im 
Texas-Datenblatt umfaßt es auch bloß 7 Bit.

Ist irgendwie nicht konsequent beschrieben.

von spess53 (Gast)


Lesenswert?

Hi

>Im alten Datenblatt von Philips wird sogar zwischen
>8574 und 8574A in der Länge der dargestellten Adresse (7 oder 8 Bit)
>unterschieden.

Der I2C-Standard beinhaltet aber nur 7-Bit-Adressen. Sollte der Erfinder 
desselben eigentlich wissen.
PCF8574 und PCF8574A haben aber unterschiedliche Basisadressen.

MfG Spess

von kurz (Gast)


Lesenswert?

>Der I2C-Standard beinhaltet aber nur 7-Bit-Adressen. Sollte der Erfinder
>desselben eigentlich wissen.
>PCF8574 und PCF8574A haben aber unterschiedliche Basisadressen.


Da bin ich voll Deiner Meinung, die habens erfunden und sollten es auch 
weiterhin konsequent richtig darstellen. Drum wunderts mich ja, daß es 
so und so dargestellt wird. Schreib/Lesebit ist kein Adressbit, aber das 
Datenblatt versucht es zu suggerieren.

Mit den verschiedenen Basisadressen, das ist vernünftig, findet man bei 
anderen Bausteinen auch.

von spess53 (Gast)


Lesenswert?

Hi

>aber das Datenblatt versucht es zu suggerieren.

Also in meinem nicht (2002).

MfG Spess

von Gast (Gast)


Lesenswert?

Okay Leute, ich beharre ja nicht darauf, daß die Adresse 8 Bits lang 
ist. Ich habe hier ein altes Datenbuch von Philips von 1989, in dem 
folgendes steht: Die Adresse ist 7 Bits lang, das 8. Bit ist ein 
Datenrichtungsbit, 0 bedeutet Schreiben, 1 bedeutet Lesen.
Das heißt aber trotzdem, daß beim PCF8574 die Basisadresse 0x40 zum 
Schreiben und 0x41 zum Lesen ist, wenn A0, A1 und A2 auf GND liegen. Das 
ist ja auch die Adresse, die ich senden muß, um den Baustein 
anzusprechen. So gesehen ist das Datenblatt von TI falsch.

von kurz (Gast)


Lesenswert?

@spess53:  Vielleicht war die früher auch gründlicher und korrekter.

Hier das Datenblatt von NXP aus dem Jahr 2002:

http://www.nxp.com/acrobat_download/datasheets/PCF8574_4.pdf

Auf Seite 9 ist im gleichen Bild die Adresse mal als 7-bit und mal als 
8-bit-breit angegeben.

von spess53 (Gast)


Lesenswert?

Hi

Auf dieser Seite mag sich ein Fehler eingeschlichen haben (Nobody is 
perfect). Aber in allgemeinen wird ein Unterschied zwischen Adresse 
(7Bit) und Adressbyte gemacht. Wobei Letzteres aus Adresse und R/W-Bit 
besteht.

MfG Spess

von Edwin (Gast)


Lesenswert?

Hallo
Danke für die (zu) vielen Antworten!

Aber irgendwie weiss ich jetzt nicht so richtig was nun stimmt... hat 
vielleicht jemand erstgrad mal mit dem I2C Bus experimentiert und auch 
dem Baustein PCF8574? Und kann mir ganz klar sagen, wie ich die Adresse 
nun wählen müsste...
Übrigens ich programmiere in Bascom!

Danke auch aber trotzdem für die Hilfe!

Liebe Grüsse!

von avr (Gast)


Lesenswert?

Hallo Edwin,

hätte man dir schon lange verraten sollen: In der
Artikelsammlung ist der PCF8574 erklärt.

http://www.mikrocontroller.net/articles/Port-Expander_PCF8574

Für mehr Infos über I²C:

http://www.rn-wissen.de/index.php/I2C

Und viele Beispiele auch in Basic:

http://www.rn-wissen.de/index.php/Kategorie:Quellcode_Bascom

Aber die Diskusion war witzig, die 10Bit-Adressierung hat
aber noch gefehlt ;-)

avr

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.