Hallo,
ich wusste nich so richtig wohin damit, denke aber Hardwareforum ist gut, da es sich schliesslich um den I2C dreht.
Ich wollte ein wenig mit dem I2C-Bus der Box arbeiten, habe aber schon das erste Problem
cat /prob/bus/i2c-0 bringt read: Invalid argument.
(Beim PC bringt er mir z.B. TV-Karte etc. funkt also.)
Kann mir jemand helfen.
Danke im Voraus.
cat /proc/bus/i2c-0
-
- Neugieriger
- Beiträge: 16
- Registriert: Dienstag 30. Juli 2002, 11:24
-
- Senior Member
- Beiträge: 1282
- Registriert: Montag 12. November 2001, 00:00
-
- Neugieriger
- Beiträge: 16
- Registriert: Dienstag 30. Juli 2002, 11:24
Danke fuer deine Antwort.
Ja, den Bug in i2c-core hab ich schon korrigieren koennen. Habs beim googlen gefunden. Jetzt zeigt er mir eine Ausgabe.
Zum Projekt.
Ich habe vor etwas Modding zu betreiben. Also ein PCF8574 (LCD/Anzeigetreiber) und LM78 an den I2C-Bus.
Ich habe dazu auch schon etwas gefunden bei lm-sensors und i2c-Librarys.
Leider ist bei lm-sensors der i2c-Patch des kernels fuer eine neue Struktur, und die im tuxbox-Projekt sind noch auf der Alten. Der gepatchte Kernel laesst sich aber sowieso nich compilieren fuer PPC. Die Treiber scheinen nur fuer i386 zu sein, da laeuft alles durch.
Bei i2c-librarys ist alles auf die serielle/parallel Schnittstelle gemuenzt, kann man also auch nicht so einfach benutzten.
Ich habe mir jetzt die tda und ves Treiber angesehen, und eine einfache erfolgreiche Kontaktaufnahme mit dem pcf8574 zustande gebracht.
Momentan ist leider Adresse und Sendebyte nur fest definiert. Ich wollte das irgendwie ueber ein autodetect machen, weiss aber noch nicht wie. Im lm-sensor source ist so ein autodetect drin. Konnte ich aber alles nicht mit einbauen, da wie gesagt der Kernel-Patch nicht funktioniert und damit alt und neu von den Funktionsaufrufen nicht passt.
Vllt kann man die Adresse ja auch ueber ein conf-Datei definieren. Wuerde ja fuer den Anfang ausreichen. Ich wollte am tuxbox-Source nicht zuviel aendern.
Ja, den Bug in i2c-core hab ich schon korrigieren koennen. Habs beim googlen gefunden. Jetzt zeigt er mir eine Ausgabe.
Zum Projekt.
Ich habe vor etwas Modding zu betreiben. Also ein PCF8574 (LCD/Anzeigetreiber) und LM78 an den I2C-Bus.
Ich habe dazu auch schon etwas gefunden bei lm-sensors und i2c-Librarys.
Leider ist bei lm-sensors der i2c-Patch des kernels fuer eine neue Struktur, und die im tuxbox-Projekt sind noch auf der Alten. Der gepatchte Kernel laesst sich aber sowieso nich compilieren fuer PPC. Die Treiber scheinen nur fuer i386 zu sein, da laeuft alles durch.
Bei i2c-librarys ist alles auf die serielle/parallel Schnittstelle gemuenzt, kann man also auch nicht so einfach benutzten.
Ich habe mir jetzt die tda und ves Treiber angesehen, und eine einfache erfolgreiche Kontaktaufnahme mit dem pcf8574 zustande gebracht.
Momentan ist leider Adresse und Sendebyte nur fest definiert. Ich wollte das irgendwie ueber ein autodetect machen, weiss aber noch nicht wie. Im lm-sensor source ist so ein autodetect drin. Konnte ich aber alles nicht mit einbauen, da wie gesagt der Kernel-Patch nicht funktioniert und damit alt und neu von den Funktionsaufrufen nicht passt.
Vllt kann man die Adresse ja auch ueber ein conf-Datei definieren. Wuerde ja fuer den Anfang ausreichen. Ich wollte am tuxbox-Source nicht zuviel aendern.
-
- Senior Member
- Beiträge: 1282
- Registriert: Montag 12. November 2001, 00:00
-
- Neugieriger
- Beiträge: 16
- Registriert: Dienstag 30. Juli 2002, 11:24
-
- Neugieriger
- Beiträge: 16
- Registriert: Dienstag 30. Juli 2002, 11:24
Frage:
zur Adressebestimmung ist i2c_probe(adapter, &addr_data, xxx_detect_routine); gedacht.
Und den zu scannenden Bereich lege ich mit normal_i2c_range + normal_i2c fest.
Sehe ich das richtig?
Dann brauch ich sicher noch struct i2c_client_adress_data addr_data ={ xxx}, worin dann normal_i2c etc. sitzt.
zur Adressebestimmung ist i2c_probe(adapter, &addr_data, xxx_detect_routine); gedacht.
Und den zu scannenden Bereich lege ich mit normal_i2c_range + normal_i2c fest.
Sehe ich das richtig?
Dann brauch ich sicher noch struct i2c_client_adress_data addr_data ={ xxx}, worin dann normal_i2c etc. sitzt.
-
- Senior Member
- Beiträge: 1282
- Registriert: Montag 12. November 2001, 00:00
-
- Neugieriger
- Beiträge: 16
- Registriert: Dienstag 30. Juli 2002, 11:24