Forum: Mikrocontroller und Digitale Elektronik I2C-Tools unter Linux


von Paul (Gast)


Lesenswert?

Hallo Zusammen,

mein I2C-Device wird mit i2cdetect -y -r 1 unter der Adresse: 0x22 
(entspricht 7 Bit) erkannt.

Normalerweise lauten dann die Adressen für Bit-0 zum Lesen und Schreiben 
0x44 und 0x45. Jedoch ist mir aufgefallen, dass z.B. bei den i2c-tools 
für i2cset und i2cget das Bit 0 entfällt und man über 0x22 ins Register 
schreibt und liest. Entfällt das Bit 0 bei Verwendung von i2cget und 
i2cset?

von Clemens L. (c_l)


Lesenswert?

Der erste Byte einer I²C-Transaktion besteht aus der 7-Bit-Adresse und 
dem R/W-Bit.

Eine Adresse hat nicht 8 Bits. Das erste Byte wird manchmal 
"Adress-Byte" genannt, aber dann sollte man sich trotzdem darüber im 
Klaren sein, dass das letzte Bit nicht zur Adresse gehört.

Das R/W-Bit wird durch *get/*set implizit gesetzt.

: Bearbeitet durch User
von Paul (Gast)


Lesenswert?

i2cdetect liefert mir 0x22, die Chip-Adresse (7Bit). Wenn ich i2cset 
oder i2cget benutze, funktioniert es nicht, wenn ich meine Chip-Adresse 
inkl. dem 0-Bit (R/W) nutze, demnach 0x45 und 0x44. Also gehe ich davon 
aus, dass man bei i2cget und i2cset lediglich die Chip-Adresse nutzt, 
und die Kommandos intern das 0-Bit setzen, korrekt?

von Hans Ulli K. (Gast)


Lesenswert?

Paul schrieb:
> Also gehe ich davon
> aus, dass man bei i2cget und i2cset lediglich die Chip-Adresse nutzt,
> und die Kommandos intern das 0-Bit setzen, korrekt?

Ja.
Wäre ja auch sonst Bl*dsinn.
Denke mal daran, das ein Script benutzt wird.
Oder ein Programmierer kennt eben nicht wie die Bits auf dem physical 
Layer aussehehn. Er kennt nur den Teil mit den Registern.

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.