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