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
@ 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
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
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.
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.
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
>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.
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.
@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.
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
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!