Moin, ist es möglich den I2C Bus ohne zusätzlichen Treiber über 25cm Flachbandkabel und 40cm Leiterplatine an einen IC-Slave zu binden? Bekomme ich bei so einer Entfernung noch 100kHz als Frequenz hin? Hab in manchen Beiträgen gelesen, dass die Pullups dann an beiden Enden installiert werden sollten - warum? SPI würde mir als Alternative noch zur Verfügung stehen - bedeutet aber mehrere Leitungen.... Gruß Olaf
Olaf schrieb: > Hab in manchen Beiträgen gelesen, dass die Pullups dann an beiden Enden > installiert werden sollten - warum? Als Leitungsabschluß mit der Impedanz der Leitung, um Reflektionen (und damit Signalverformungen) zu verhindern. MfG
Hallo Olaf! > ist es möglich den I2C Bus ohne zusätzlichen Treiber über 25cm > Flachbandkabel und 40cm Leiterplatine an einen IC-Slave zu binden? Ja... Ich betreibe mehrere Temperaturfühler über je 2m Kabel am I2C-Bus, läuft seit Jahren reibungslos... > Bekomme ich bei so einer Entfernung noch 100kHz als Frequenz hin? Auch 400kHz sind hier kein Problem... LG Jens
coole Sache: hab hier schon ein paar Beiträge gelesen bezüglich dieser Längen. Weißt du wie hoch der pF/cm auf einer FR4-Platine ist und / oder Flachbandkabel? Laut Spezifikation vom I2C hat manja 400pF zur Verfügung, wo es auf jeden Fall noch funktionieren soll ohne Treiber oder ähnlichem.
@ Michel (Gast) >> Hab in manchen Beiträgen gelesen, dass die Pullups dann an beiden Enden >> installiert werden sollten - warum? Weil es eine Legende ist. >Als Leitungsabschluß mit der Impedanz der Leitung, um Reflektionen (und >damit Signalverformungen) zu verhindern. Eben das ist Unsinn. I2C ist a) viel zu langsam bezüglich der Anstiegszeiten und b) sind die üblichen Pull-Ups mit 1-10K viel zu hochohmig, um als Terminierung wirken zu können. Siehe Wellenwiderstand. @ Olaf (Gast) >coole Sache: hab hier schon ein paar Beiträge gelesen bezüglich dieser >Längen. Weißt du wie hoch der pF/cm auf einer FR4-Platine ist und / oder >Flachbandkabel? Wenn mich nicht alles täuscht hat Flachbandkabel um die 50pF/m. Leitungen auf FR4 liegen meist noch drunter, weil der Abstand zur Masse höher ist (doppelseitige Platine). >Laut Spezifikation vom I2C hat manja 400pF zur Verfügung, wo es auf >jeden Fall noch funktionieren soll ohne Treiber oder ähnlichem. Mach dir mal nicht soviele Gedanken, I2C ist deutlich robuster als es auf dem Papier steht. Da kann man problemlos mit der Taktrate runtergehen, wenn es denn nötig sein sollte. MFG Falk
P S Ich hatte mal mit einer Schaltung am I2C Bus in Industrieumgebung zu tun, dort lief der I2C Bus über 150m geschirmtes Kabel (oder waren es 500m?, weiß nicht mehr genau). MfG Falk
Terminieren sollte man (unabhängig von frequenz), wenn die Anstiegs- /Abfall-Zeit schneller ist, als die doppelte Laufzeit der Leitung. Bei 20ns risetime und 5ns/m Kabel-Laufzeit wäre das ab einer Kabellänge von 2m.
Ich hatte einen I2C Bus von 1,5m Länge in einer turbulenten Umgebung (Gepulste Ströme von bis zu 20A) laufen und es lief äußerst unstabil, bis ich ein USB-Kabel zur übertragung verwendet und die Schirmung auf GND gelegt hatte (achtung, nicht die Datenleitungen für I2C verwenden, die sind verdrillt...damit gings bei mir garnicht...erst mit den Versorgungsleitungen gings relativ sauber) Wieso verwendest du nicht UART? Ist soweit ich weiß stabieler. Gruß, Yaro
MCUA schrieb: > Terminieren sollte man (unabhängig von frequenz), wenn die Anstiegs- > /Abfall-Zeit schneller ist, als die doppelte Laufzeit der Leitung. > Bei 20ns risetime und 5ns/m Kabel-Laufzeit wäre das ab einer Kabellänge > von 2m. Nun ja, 20ns risetime ist ja auch eine Frequenz, 20ns rise, 20ns fall 25MHz. Bei I2C ist das Problem ein anderes. Der Bus ist open collector und kann von allen Busteilnehmern auf low gezogen werden. Die minimale Treiberleistung für einen Ausgang ist 3mA, bei der jeweils gewählten Busspannung ergibt sich daraus ein minimaler Pullup. Der Maximale Pullup ergibt sich aus der Buskapazität, der Busspannung und der maximalen risetime von 250ns. Das kann man aber leicht nachlesen, "THE I2C-BUS SPECIFICATION" von Philips, Version 2.1 aus dem Jahr 2000 hat nur 46 Seiten. Da steht alles drin und man muß nicht raten. Auch wenn hier bei I2C Problemen viel an den Pullups gedocktert wird, wenn sie nicht gerade ganz vergessen worden sind, sind sie eigentlich nie das wirkliche Problem. Yaro schrieb: > ch hatte einen I2C Bus von 1,5m Länge in einer turbulenten Umgebung > (Gepulste Ströme von bis zu 20A) laufen und es lief äußerst unstabil, > bis ich ein USB-Kabel zur übertragung verwendet und die Schirmung auf > GND gelegt hatte (achtung, nicht die Datenleitungen für I2C verwenden, > die sind verdrillt...damit gings bei mir garnicht...erst mit den > Versorgungsleitungen gings relativ sauber) > Wieso verwendest du nicht UART? Ist soweit ich weiß stabieler. Wenn deine Umgebung soviel Mist in einen digitalen Eingang einstreut, daß er falsche Signale sieht, ist es egal ob dahinter ein I2C Empfänger oder ein UART sitzt. Du hättest also immer abschirmen müssen. Und wie gut ein UART funktioniert, wenn du einen Kondensator zwischen Transmit und Receive schaltest (das ist verdrillen), weiß ich jetzt nicht. Wenn man's richtig macht, geht aber beides. MfG Klaus
>Nun ja, 20ns risetime ist ja auch eine Frequenz, 20ns rise, 20ns fall 25MHz. Nein, zwischen rise u. fall können etliche us liegen. >Bei I2C ist das Problem ein anderes. Das Problem der Reflexion ist prinz. immer da, denn dadurch kann es zu Fehl-CLK-Interpretat. uä kommen, wenn der Empfänger nicht entspr. Filter drin hat.
Michel schrieb: > Als Leitungsabschluß mit der Impedanz der Leitung, um Reflektionen (und > damit Signalverformungen) zu verhindern. Frage : Wie berechnet / misst man die Impedanz der verwendeten Leitung ?
z.B. http://de.wikipedia.org/wiki/Streifenleitung#Leitungswellenwiderstand oder mit einem VNA http://de.wikipedia.org/wiki/Netzwerkanalysator Für deine 25 cm I2C-Leitung würde ich mir da keine Gedanken machen.
MCUA schrieb: >>Nun ja, 20ns risetime ist ja auch eine Frequenz, 20ns rise, 20ns fall 25MHz. > Nein, zwischen rise u. fall können etliche us liegen. Danke für den Hinweis, wäre ich sonst nicht drauf gekommen. Könnten das auch ms sein? MfG Klaus
Die Kapazität der Leitungen liegt bei rund 1 pF / cm. Sehr schmale Leiter auf der Platine auch schon mal nur 0,5 pF/cm. Da sind Überraschend wenig Unterschiede zwischen Leitungen auf der LP , Flachbandkabel , Netzleitung oder Koax Kabel.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.