Guten Morgen,
ich habe gestern den ganzen Tag versucht auf meinem ALIX.2D2 ein EEPROM
über I2C anzusprechen.
Mit i2cdetect finde ich es unter der Addresse 0x50 und ein
i2cdump -y 0 0x50 c
liefert auch den Inhalt.
Nur wenn ich es mit einem eigenem Programm machem möchte, passiert
einfach nix auf dem I2C Bus (Oszi hängt drann).
Mein Test Code schaut so aus:
Bei (write(file,buffer,1) kommt der Error
Aber warum?
Berechtigung:
root@voyage:/tmp# ls -l /dev/i2c-0
crwxrwxrwx 1 root i2c 89, 0 Jan 1 2000 /dev/i2c-0
ich arbeite als root.
Lg, Markus
MoinMoin,
Markus C. schrieb:> Bei (write(file,buffer,1) kommt der Error>
welchen Wert hat errno?
Was ist das für ein I2C-Slave auf 0x4C und warum ist der busy?
Grüße Uwe
MoinMoin,
Markus C. schrieb:> der Fehlecode lautet -1>
nicht der Return-Code von write() sondern der Inhalt der Variable errno.
Zitat aus C-Manual zu write:
"Upon successful completion, write() [XSI] [Option Start] and pwrite()
[Option End] shall return the number of bytes actually written to the
file associated with fildes. This number shall never be greater than
nbyte. Otherwise, -1 shall be returned and errno set to indicate the
error."
Markus C. schrieb:> Was da auf 0x4C ist weiß ich nicht.>
...hmm, das würde mich jetzt schon beunruhigen, da es ja offensichtlich
ein Problem auf dem Bus gibt. ...und dieser Slave wird von jemand
anderem unter Beschlag genommen (...UU...). Vielleicht kommt das Problem
ja von der Seite.
Grüße Uwe
Uwe Berger schrieb:> Was da auf 0x4C ist weiß ich nicht.>>> ...hmm, das würde mich jetzt schon beunruhigen, da es ja offensichtlich>> ein Problem auf dem Bus gibt. ...und dieser Slave wird von jemand>> anderem unter Beschlag genommen (...UU...). Vielleicht kommt das Problem>> ja von der Seite.>
...was sagt lsmod?
Grüße Uwe
MoinMoin,
ok, 0x4c ist ein LM90 (Temperatursensor).
Kante mal das Modul lm90 raus und probiere nochmal.
Der LM90 ist ein SMBus-IC, also nicht 100% I2C... Vielleicht ist das das
Problem (kein I2C-Master, sondern ein SMBus-Master). Du kannst ja mal,
statt dem EEPROM (welcher Typ eigentlich), den LM90 versuchen auszulesen
(lm90-Modul muss dazu entfernt sein). Lt. Datenblatt sollte es so
ähnlich wie ein LM75 funktionieren...
Grüße Uwe
den Beitrag habe ich auch schon gefunden.
Ne das Problem habe ich nicht da die Spannung direkt vom Board kommt.
Mit i2cget und i2cput kann ich mit dem eeprom sprechen.
lg, markus
Markus C. schrieb:> Es ist ein 24AA025E48>
den kannte ich noch nicht...
Versuche doch erstmal den LM90 mit einem eigenen C-Programm auszulesen.
Bei dem sollte man erwarten können, dass elektrisch alles passt.
Grüße Uwe
asd schrieb:> Foto vom Aufbau? Was hast du wo, wie genau angeschlossen?>
...da die i2c-Tools scheinbar funktionieren, ist ein Hardwareproblem
auszuschliessen, denke ich mal!
Grüße Uwe
Markus C. schrieb:> So schreiben kann ich nun ins eeprom.>
hört sich doch schon mal gut an!
Markus C. schrieb:> Nur leider komme ich mit dem lesen nicht klar.>
wo ist das Problem?
Grüße Uwe
ja ich hatte ganz vergessen,
das wenn man was geschrieben hat, einmal close machen und dann neu
öffnen zum lesen.
Oder habe ich jetzt falsche gedanken? Sowas wie ein Restart gibt es ja
nicht.
lg, markus