-
-
Erfahrener Benutzer
Robotik Einstein
Beim I2C gibt es nur gerade Adressen. Das letzte Bit (also gerade oder ungerade) ist das R/W-Bit. Die übrigen 7 Bits werden ohne Shiften angegeben; d.h. Adresse 128 gibt es: 1000 000x. Es sind alle Adressen im Bereich 0, 2, 4, 6, ... 250, 252, 254 möglich (wobei 0 für General Call freigehalten werden sollte)
Also wenn du 0000 101x adressieren willst, dann ist das die Adresse 10 für schreiben, 11 für lesen. (0000 1010 binär = 10 Dezimal).
D.h. was die I2C-Hardware ausspuckt, stimmt schon. Du gibst Adresse 5 an (0000 0101) an, das Lesen-Bit wird gesetzt (ist aber schon 1, d.h. es bleibt bei 0000 0101) und die I2C-Hardware schickt an die eigentliche Adresse 4 einen Lese-Auftrag (+1).
Wenn im Datenblatt eines Geräts dann wirklich 0000 101 als Adresse angegeben ist, dann muss rechts noch das fehlende 8. Bit (R/W) angehängt werden.
Bei den 24C-EEPROMS sind die Adress-Bits z.B. 1010 A2 A1 A0 x.
D.h. die möglichen Adressen sind 0xA0, 0xA2, 0xA4, ... 0xAE (160, 162, 164,... 174).
Nachtrag: am CAN-Bus ist die Adressierung wieder etwas einfacher *g*. Da sinds 11 bzw. 29 Bit und nur diese für die Adresse. Also Adresse 5 ist da dann wirklich 000 0000 0101.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen