I2C-Tools unter Linux

Gast #4607923
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?
#4607935
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.
Gast #4607956
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?
Gast #4608050
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren