Fragen zu I2C zu max. Leitungslänge

  • Guten Morgen


    Aufgrund eines Problems mit einem Bastelprojekt muss ich mich aktuell etwas eingehender mit dem I2C Bus beschäftigen.


    Hierbei interessiert mich vor allem welche maximalen Abstände zwischen Master und Slave im Standard möglich sind? Im Netz gibt es hierzu keine genauen Angaben.


    In meinem Bastelprojekt möchte ich gern ein OLED Display, welches sich ausserhalb eines PC befindet, über ein Gotek Laufwerk ansteuern.


    Sollte ich hierzu besser gleich zu einem Extender greifen? Welche Leitung empfiehlt sich, um die Verluste so gering wie möglich zu halten.


    -

    Grüße

    Sven

  • SmallSmurf

    Changed the title of the thread from “I2C” to “Fragen zu I2C zu max. Leitungslänge”.
  • eigentlich wurde der I2C mal entwickelt um verschiedenes auf "der gleichen Platine" miteinander zu verbinden.. sollte also eigentlich nicht länger als ein paar cm sein ...sollte


    aber nichtmal mein Chef hält sich dran - aktuell betreiben wir diverse Luftdruck und Argon-Mess-Sensoren über I2C mit ...70cm Kabel

    dazwischen

    alles über diese Grove-Leitungen angeschlossen:

  • Hierbei interessiert mich vor allem welche maximalen Abstände zwischen Master und Slave im Standard möglich sind? Im Netz gibt es hierzu keine genauen Angaben.

    Gibt es. Die genaue Angabe ist : "es hängt davon ab...."


    ..welche Kabel, welche Kapazitat, welche Geschwindigkeit und und und.


    Achte drauf das SDA / SCL nicht nebeneinander auf ein Flatcable liegen. Ein paar Meter sollte bei deine Applikation locker drin liegen, davon ausgehend das du den originelle 100KHz-standart benutzt.

  • Wie schon Shadow-aSc schrieb wurde der I2C ursprünglich zur Leitungsminimierung von Phillips entwickelt um dem Parallelbussalat entegen zu wirken. So wie jdreesen schrieb hängt es vor allem von der Kapazität, dem Kabel und der Geschwindigkeit ab. Auch ist es wichtig ob Dein Bus mit 3V3 oder 5V arbeitet, welche Pullups Du wo einsetzt!

    Je länger die Leitung (höhere Kapazität) und je schneller der Bus (schnellere Umladung), desto geringer müssen die Pullups sein (runter bis auf ca. 3K3). Ich habe früher in einer Fa. als Computerboard Co-Entwickler gearbeitet - dort haben wir den I2C teilweise über mehrere Meter geleitet! Zudem sind die EDID-Daten bei den heutigen Monitoren nix anderes als ein I2C-EEprom welches an einem I2C-Bus hängt. Mein HDMI-Kabel ist z.B. 10m lang und es funktioniert...

    Gegen Flachbandkabel spricht eigentlich nichts, jedoch ist auf die Belegung zu achten: Die erste und letzte Leitung sollte GND führen, SDA und SCL sollte am besten zwischen GND Leitungen geführt sein...

    Ansonsten sind mit GND abgeschirmte Kabel auch nicht die schlechteste Wahl...

    Die Pullups sollten nahe beim Master sein.

    Wenn wirklich nix mehr geht, hilft ein Repeater:

    Die Clampingdioden sind auch nicht verkehrt - meist geht der I2C ja direkt in das Herz des µC...


    :)Franky

  • Im Buch "USB in der Elektronik" das ich gestern in einem von 4 gerade bei mir gelandeten Kartons gefunden habe, wird zu I2C folgendes geschrieben:


    Anz. Geräte: 40

    Übertragungsrate : bis 2 MBit/s

    Max. Entfernung : bis 5m


    Das Buch ist aus 2008... inwiefern es da mittlerweile Verbesserungen gab muß ich passen.

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    ::matrix::

  • 5m und 2 MBit/s wäre sehr sehr sportlich. Aber 1 Meter bei den Standard 100 kBit/s würde ich jederzeit machen. 3k3 Pullups und SDA und SCL so geführt, dass die nicht zueinander koppeln. Bei LAN Kabeln zwei Adernpaare nehmen und jeweils eine Ader pro Paar als Masse. Die Abschirming dann auch Masse.

  • Anz. Geräte: 40

    Übertragungsrate : bis 2 MBit/s

    Max. Entfernung : bis 5m

    Das ist alles nur theoretisch! Es kommt darauf an welche Bausteine Du auch einsetzt. Wenn ein Teil nur 100KHz kann, kannst Du den ganzen Bus auch nur mit 100KHz fahren. 2MBit gilt nur für den aufgeblasenen SMBUS (...und bestimmt nicht für 5m...).

    "Anz. Geräte: 40" hängt nur von der Buskapazität ab => lange Leitung, höhere Kapazität, weniger Bausteine oder Leitungstreiber...


    :)Franky

  • Morgen zusammen,


    vorab nochmal vielen Dank für Euer Feedback :thumbup:


    In Bezug auf die möglichen Leitungslängen bei I2C, ist wohl vieles im Netz einfach nur Theorie bzw. wurde unter Laborbedingungen getestet - kennt man ja.


    Ein Nachteil ist ja gerade die Störanfälligkeit mit zunehmender Leitungslänge.


    Nichtsdestotrotz war die Lösung, dank jdreesen, einfach wie hilfreich. Das simple verlegen von SDA und SCL auf die Aussenbahnen des Flachbandkabels hat in meinem Fall geholfen.


    Die Idee mit dem Patchkabel fand ich auch gut, da gerade hier auch die einzelnen Adernpaare geschirmt sind. Allerdings hab ich zur Zeit nur Verlegekabel griffbereit und es tut ja auch so ;)