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?
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
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.