www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Adresse PCF8574


Autor: Edwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Edwin schrieb:
>
> Stimmt das so?

Stimmt so.

Iwan

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

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

MfG Spess

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Empfehle: Datenblatt lesen, da steht alles drin.

Achtung: PCF8574 und PCF8574A haben verschiedene Adressen !!

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Иван S. (ivan)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Bis auf die Antwort von Falk ist alles falsch.

Sieh dir mal S.3/4 an.

MfG Spess

Autor: Kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>aber das Datenblatt versucht es zu suggerieren.

Also in meinem nicht (2002).

MfG Spess

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kurz (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Edwin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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-Expan...

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.