Forum

Einloggen | Registrieren | RSS  

Neuling

30.04.2017,
21:42
 

Adresse von I2C-Bus Bausteinen (Elektronik)

Hallo,

ich habe auf meinem RasPI das Terminalprogramm I2Cdetect laufen lassen
für den Baustein erhalte ich als Adresse 48
In den Herstellerunterlagen steht aber 9x
wie erklärt sich dieser Unterschied?
Hat da jemand eine Idee?

xy(R)

E-Mail

30.04.2017,
22:51

@ Neuling

Adresse von I2C-Bus Bausteinen

» ich habe auf meinem RasPI das Terminalprogramm I2Cdetect laufen lassen
» für den Baustein erhalte ich als Adresse 48
» In den Herstellerunterlagen steht aber 9x
» wie erklärt sich dieser Unterschied?
» Hat da jemand eine Idee?

Falsches Datenblatt?

bastelix(R)

01.05.2017,
01:28

@ Neuling

Adresse von I2C-Bus Bausteinen

» 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.

geralds(R)

Homepage E-Mail

Wien, AT,
01.05.2017,
10:36

@ bastelix

Adresse von I2C-Bus Bausteinen

» » 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.

---
:ok: kann ich nur bestätigen.
Die (führende) Null ist in vielen Fällen der Hund.

Grüße
Gerald
---

--
...und täglich grüßt der PC:
"Drück' ENTER! :wink: Feigling!"

Neuling

01.05.2017,
11:12

@ bastelix

Adresse von I2C-Bus Bausteinen

Danke

» » 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.