ForumI²C-Bus unter SuSE 10
Thomas Neumann – Sonntag, 13. November 2005 23:07 Uhr

Hallo Community!

Ich habe in der Schule den “Auftrag” bekommen, einen Baustein (es ist ein PCF8574 von Philips) über den parallelen Port meines Notebooks über I²C-Bus unter Linux anzusprechen und anzusteuern. Ich besitzte das Betriebssystem SuSE 10. Ich habe jedoch keine Ahnung wie ich dabei überhaupt anfangen soll … ich habe nur mal gehört dass ich so ne Art Treiber brauche um überhaupt I²C verwenden zu können … Ich bin leider der volle Anfänger auf dem Gebiet ^^. Deshalb hätte ich 2 Fragen:

– Wie fange ich überhaupt an? Was muss ich als erstes machen?
– Könnte man dieses Ansteuern auch irgendwie über PHP realisieren?

Ich würde mich über jede Hilfe freuen, weil dieses Schulprojekt für mich extrem viel bedeutet (Abschluss!) !

Mfg
Thomas

3 Antworten
Uli Heller – Montag, 14. November 2005 07:03 Uhr

Uli Heller – Montag, 14. November 2005 07:03 Uhr

Thomas Neumann – Montag, 14. November 2005 15:18 Uhr

Ok danke ich werds mal versuchen!

Aber was genau muss ich auf den Seiten jetzt tun / runterladen ?

Mfg
Thomas

Ulf B. – Montag, 14. November 2005 21:22 Uhr

Hi Thomas,

etwas mehr Eigeninitiative währe nicht schlecht? Die Infos findet man recht leicht im Internet. Also nächstes mal bei einem Problem erst einmal sauber recherchieren. Also mal ein Beispiel wie man als kommender Kreativer an sowas ran gehen kann:

Zuerst Kurz über die Materie informieren. Hier ist eigentlich das WikiPedia immer die erste Wahl. Dort sucht man nach dem Begriff, bei Dir also I2C oder alternaive schreibweisen [1]. Dort überprüft man zunächst alle verwertbaren Informationen und meist schon recht treffsicheren externen Links. Googeln nach Schlüsselbegriffen. Bei Dir also nach linux i2c ich habe dann noch parallel port noch mit dazu genommen, da nur dieser ohne Umsetzer ein solches Protokoll fahren kann. Also im Konqueror kann man dann in der Adresse folgende Zeile schreiben gg:linux i2c parallel port (sofern gg als Hotkey mit der Google-Suche verknüpft ist – ist aber meines Wissens die Standardeinstellung) [2]. Dann untersucht man die ersten 2-5 Seiten der Trefferlisten Treffer für Treffer. Ich öffne mit einem Mittelklick dazu immer ein Tab, das erspart das hin und her scrollen. Falls sich dort nichts verwertbares findet versucht man weitere Suchbegriffe bzw. Kombinationen der Suchbegriffe Ich habe dann im Open Automaton Project (OAP) eine Bauanleitung für einen Paralleport – I2C-Adapter gefunden (wird z.B. in einigen LCD-Klein-Anzeige-Projekten verwewndet) [3]+[4]. Dort findet man einen Link zu der oben schon erwähnten LM-Sensors implementierung. Zum einen eine Seite mit den Supported Busses and Chips [5] und eine Seite mit einem konkreten Hardwareprojekt [6]. Der erste Link bei meiner Google Recherche zeigt auf eine Seite, auf der auch von LM-Sensors öfter verwiesen wird. Nämlich auf Simon’s I2C Bus driver for Linux [7]. Last but not least, die Recherche bei Philips. Dort findet sich ein Datenblatt Deines I2C zu Parallel Wandlers [8]. Nur einen klick weiter findet sich die Umkehrung dazu [9]. Der PCF8584, welcher auch auf der LM-Sensors Homepage bei der unterstützen Hardware [6] findet. Jetzt nur noch lesen, überlegen, lesen, neues Googeln, recherchieren, lesen, …

Solange bis Du ein Konzept hast, Dein Problem zu lösen (wobei ich bei meiner 5min Recherche zu Deiner Antwort auch schon auf fast fertige Lösungen gestoßen bin). Nach dem Konzept kommt der Praxis Teil. Aufbau der Schaltung, installieren der Treiber/Tools, ausprobieren, ja und dann weil es fast nieh auf Anhieb klappt wieder beim Googeln beginnen. Wenn Du alles am Laufen hast, hast Du im Idealfall, auch alles sauber mitprotokolliert, und kannst Dein Projekt im Internet veröffentlichen (falls Du keinen Passenden Ort dafür findest einfach hier nochmal nachfragen, da können wir Dir auch weiterhelfen). Damit hilfst Du dann wieder der Allgemeinheit (damit sich meine 20 Minuten für diese Antwort), wieder rentiert haben ;-).

Ciao und fiel Spaß beim Entwickeln
Ulf

[1] http://de.wikipedia.org/wiki/I2C
[2] http://www.google.de/search?q=linux+i2c+parallel+port&ie=UTF-8&oe=UTF-8
[3] http://oap.sourceforge.net/
[4] http://oap.sourceforge.net/oap/i2c_para_module/i2c_para_module.pdf
[5] http://secure.netroedge.com/~lm78/supported.html
[6] http://secure.netroedge.com/~lm78/hardhack.html
[7] http://www.voxel.at/prj/i2c/
[8] http://www.semiconductors.philips.com/cgi-bin/pldb/pip/pcf8574#datasheet
[9] http://www.semiconductors.philips.com/cgi-bin/pldb/pip/pcf8584#datasheet

Thomas Neumann – Dienstag, 15. November 2005 13:55 Uhr

Danke für den fetten Lösungsweg!

Ich meld mich dann in einem Jahr wieder wenn ich alles gelesen hab ;)

Mfg
Thomas

Ulf B. – Dienstag, 15. November 2005 19:59 Uhr

Hallo Thomas,

Danke für den fetten Lösungsweg!
Keine Ursache ;-)

Ich meld mich dann in einem Jahr wieder wenn ich alles gelesen hab ;)
Dann hast Du nicht richtig effektiv gearbeitet :-|
Ne im Ernst, Versuche mal Dich effizient in die Thematik einzuarbeiten. Also Informationen zu ordnen und das wesentliche rauszufiltern. Genau das blinde Abkupfern ohne sich in die Grundlagen einzuarbeiten ist nämlich die Brutstätte schlechter Lösungen. Das ist zumeist auch der Unterschied zwischen Linux (heute) und WinXX. Ohne dieses jetzt ausdehnen zu wollen, schnell was zum laufen zu bringen ist keine Lösung für ein Problem, sondern nur ein zusammenflicken.

Ohne jetzt belehren zu wollen, sauber planen und in die Grundlagen einarbeiten, ist die Basis für ein gutes und funktionierendes System. Meistens ist es auch noch der schnellere Weg, der zwar am Anfang länger dauert, dann aber meist wesentlich weniger Nacharbeit erfordert. Obendrein ist ein sauberes Konzept mit dem nötigen Grundwissen wesentlich besser wart- und erweiterbar.

PS: Ich weiss solch eine Arbeitsweise nicht im Trend unserer Zeit liegt, schnell was zusammen zu schustern, und fertig ist. (Bsp.: Gesundheitskarte, biometrischer Reisepass, Überwachung, …)

Ciao
Ulf