Hey, Peter...
PF>Jörg Bornschein hat mir die Tage erzählt, dass ihr irgendwelche Probleme mit nem langen PF>I2C Bus hättet, und desswegen hab ich mich hier mal eingetragen. Das war wohl ich. Ich habe ein eigenes kleines Projekt - www.zefiro.de/projekte/wodo/moodcluster.html - das mit dem Fnordlicht einige Gemeinsamkeiten hat und daher dachte ich ich frage mal hier nach :)
Cool. Das Problem ist, das die Rechtecksignale bei I2C und einem langen Kabel abgerundet werden (durch die Wirkung des Kabels als Kondensator).
So sehe ich das auch. Ich bin allerdings selber ebenfalls absoluter Laie. Beispielsweise ist mir nicht klar ob es Sinn macht einen Abschlußwiderstand zu verwenden, um Reflexionen vorzubeugen, oder ob das kontraproduktiv wäre. Ob es reicht überall die Pins auf Pullup zu schalten oder ob man aktive Pullup Schaltkreise benötigt. Etc.
Ich kann höchstens googeln und hoffen etwas passendes zu finden. Oder hier fragen :)
http://www.esacademy.com/faq/i2c/general/i2chardw.htm Hier steht etwas über Signalqualität und aktive Pullups (leider nicht wo ich sie herkriegen kann)
PF> Tja, das Problem kenne ich. Bei I2C tritt das besonders gerne auf, weil in PF> High richtung der gesammte Strom zum Umlöaden der Kable kapazität von dem PF> Pullup Widerstand an den Leitungen aufgebracht werden muss. Was für Kabel PF> verwendet ihr denn? Ich verwende Cat5 Netzwerkkabel. Ich hatte mir eine Belegung überlegt die eine sternförmige Struktur erlaubt, indem ich SDA und SCL jeweils wieder zurückführe. Ich hatte dabei die beiden Leitungen in der Dose (auf der Platine) zusammengelötet und für SDA und SCL jeweils ein Kabelpaar verwendet, eine Ader hin, die andere Ader zurück. Ist das deutlich nachteiliger gegenüber einer Lösung mit Masse als zweite Ader?
Speziell wollte ich noch +5V und +12V Betriebsspannung übertragen. Die habe ich jeweils mit Masse auf die anderen beiden Pärchen verteilt.
http://www.mcc-us.com/i2cHowToUseIt1995.pdf Abschnitt 16.3 schlägt auch das Wiring Pattern mit SDA/GND, SCL/GND vor. Hab ich zu spät gefunden.
http://www.esacademy.com/faq/i2c/q_and_a/i2cqena.htm Ein paar interessante Fragen, z.B. I2C über Optokoppler, bidirektional
Ich fand auch etwas über 'Bus Multiplikatoren', also Bausteine die mehrere Stränge zu ermöglichen scheinen, jeweils mit eigenen 400pF Kapazität. Das wäre für eine Sternstruktur natürlich ideal. Leider weiß ich weder welchen Chip ich dort genau benötigen würde noch woher ich ihn beziehen kann (und nicht grade zu 10 Euro das Stück).
Insgesamt neige ich zu der Erkenntnis daß I2C für meine Anwendung - möglichst Sternverkabelung, einige Meter Kabellängen - nicht geeignet ist. Ich weiß nur noch nicht was ich als Alternative verwenden könnte. (CAN und RS485 wurden mir vorgeschlagen, beide benötigen separate Controller- und Treiberbausteine)
:Zefiro: