Forum
Adresse von I2C-Bus Bausteinen (Elektronik)
» wie erklärt sich dieser Unterschied?
I2C verwendet 7-Bit Adressen plus ein R/W-Flag. Daraus setzt sich dann das erster Byte zusammen welches nach der Startsequenz vom Master an den Slave übertragen wird. Für die Hexadezimalschreibweise der I2C-Adresse wird teilweise das R/W-Bit mit verwendet (dann werden u.U. auch eine Read- und eine Write-Adresse angegeben) oder es wird einfach von links eine 0 ergänzt (für die Umrechnung, führende Nullen muss man nicht angeben).
Für deinen PXF8591 steht im Datenblatt "1 0 0 1 A2 A1 A0 RW" die ersten 4 Adress-Bits sind fest, die letzten drei Adressbits sind konfigurierbar und dann kommt das R/W-Bit. 1001 ist 0x9, nehmen wir mal an A2 = A1 = A0 = 0 dann ist die 7-Bit Adresse 1001000 um das in Hexadezimal ausdrücken zu können muss man entweder links eine 0 ergänzen (01001000) was dann 0x48 ist oder man nimmt das R/W-Bit dazu und erhält 0x90 (schreiben) und 0x91 (lesen) bzw. 0x9X wenn die letzten vier Bit noch variabel sind.
WiringPI verwendet die erste Variante (implizites ergänzen der führenden 0 um auch 8 Bit zu kommen), in Datenblättern wird teilweise die Adresse incl. des R/W-Bits verwendet. Daher kommt der Unterschied in der Schreibweise.
Gesamter Thread:


