Forum: Mikrocontroller und Digitale Elektronik Linux i2c + LM75 lauschen mit sniffer


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Michi (Gast)


Lesenswert?

Hallo,

ich habe am Raspberry PI zum experimentieren einen LM75 angeschlossen.
Um zu schauen was am i2c bus passiert höre ich mit dem ATTiny85 Sniffer 
mit.

Nun ist es so das ich versuche die logs zu verstehen.
Der LM75 wird in Linux mit adresse 0x48 gefunden:
root@raspberrypi ~ # i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Die adresse ist mir mittlerweile klar.
48 hex = 1001 000 = adresse vom LM75
die drei 000 können über Brücken konfiguriert werden.

Wenn ich nun aber in Linux mit "i2cget -y 1 0x48 0x00 b" den Sensor 
auslese bekomme ich als Antwort:
0x27

Im Sniffer schaut das so aus:
s90a00ap
s91a27ap

wird dann die Adresse in hi un low byte übertragen weil die adresse 90 
ja nicht stimmt?

9= 1001
0 = 000
also wieder 1001 000 = 48 hex?

wenn ich nun aber ein word mittels "i2cget -y 1 0x48 0x00 w" lese 
bekomme ich:
0x8026

Am Sniffer schaut das dann so aus:
s90a00ap
s90a26a00np

gesendet wird das gleiche aber wiso bekomme ich mehr daten? Ist da doch 
ein für den Sniffer unsichtbarer Unterschied?

Michi

von isnah (Gast)


Lesenswert?

Schau im Datenblatt nach: das LM75-Addr_byte hat im LSB noch das 
R/WR-Befehlsbit, welches durch den I2cget-Befehl automatisch an deine 
Adr 0x48 angefügt wird. Ein Sniffer hingegen zeichnet alle zur HW 
übertragenen Bits auf Daher ergibt sich 0x90.

von Michi (Gast)


Angehängte Dateien:

Lesenswert?

Ok, ich versuche mich noch immer mit dem LM75 ich komme aber noch nicht 
so richtig weiter, wie sind die ausgelesenen werte aus dem LM75 mit dem 
Datenblatt zu verbinden?

root@raspberrypi ~ # i2cdump -r 0x00-0x7 -y 1 0x48 W
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 25 80 4b 00 4b 00 4b 00                            %?K.K.K.

0x00 und 0x01 ist lesend die Temperatur

z.b. der Ausgang am LM75 ist ja einstellbar wie kann diese Schwelle 
gesetzt werden?

mit  i2cset -y 1 0x48 0x??(adresse) 0x??(wert)

ich kann noch nicht verstehen was im Datenblatt nun der Pointer ist, das 
ist doch eigentlich die Adresse am LM75 an die ich einen Wert die config 
schicken kann.

Wäre dann:
0x03 = Tos?
und
0x04 das 3. bit auf 1 ?

i2cset -y 1 0x48 0x03 0x04

ich kann zwar irgendwas reinschreiben aber es tut nicht das was ich mir 
einbilde das es müsste :/

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