Hallo, habe ein Board mit 4 Taster und 4 LED's die aber über einem PCA9554 gehen (siehe Anhang), ich habe mich schon über den I²C dokumentiert und einiges schon verstanden und wollte mich an die LDE's ran machen. Nun geht schon los, im Doku von Board steht: "Die Adresse für den PCA9554 (Taster/LED’s) kann mit den Schaltern 4-6 eingestellt werden. Wenn alle Schalter auf OFF stehen ist die Adresse auf $38 eingestellt." D.h. $38 ist 56 Dezimal, nach Datenblatt von PCA9554 ist die Slave Adresse aber 40 also: 0 1 0 0 X X X X oder habe ich da en verstädnis Problem? Wie komme ich auf 56 wie im Doku? kapiere ich nicht. Kann mich jemand Helfen?
Was meinst Du wohl, wer es besser weis - Der weltbekannte Hersteller des Portexpanders oder der Frickler, welcher die Schaltung zusammengedröselt hat? $40 ist richtig.
alle haben Recht! Es gibt zwei verschiedene PCA9554: PCA9554 0 1 0 0 A2 A1 A0 PCA9554A 0 1 1 1 A2 A1 A0 Ja, das sind jeweils nur 7 Bit. Das Bit 0 ist ja das Read/Write-Bit und das gehört nicht zur Adresse. Senden muss man genau genommen: Adresse * 2 + RW Deshalb sollte man der Hex-Schreibweise nicht blind vertrauen.
Vielen Dank für die Hilfe!
Schaulus Tiger schrieb:
> alle haben Recht! Es gibt zwei verschiedene PCA9554:
In der Tat! auf dem Chip steht "PCA9554AD" also 70 wäre richtig aber mas
meinst du mit Adresse * 2 ?
naja, du musst 0x70 (oder 0x71) senden, aber nur oberen 7 Bit davon sind die Adresse, was man auch 0x38 schreibt. Und 0x38 um 1 nach links verschoben kann man auch als "* 2" schreiben. So passen auch die A2- bis A0-Bits besser ins Bild.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.