Forum: Mikrocontroller und Digitale Elektronik IIC, I2C Leitungslänge


von Christoph Söllner (Gast)


Lesenswert?

Hi,
wie lang darf ich denn I2C Leitungen machen? Möchte 8 LM75 an einen Bus
dranhängen mit jeweils 2 m Leitungslänge (also GNC Vcc IICclock IICdata
in einem Rundkabel) für einen Temperaturfühler im 19" Rack. Krieg ich
da ein Problem?

Danke,
Christoph

von Nik Bamert (Gast)


Lesenswert?

hi!

das theme gibts schon
http://www.mikrocontroller.net/forum/read-1-179697.html

Funktonieren sollte es bis 5 meter, hängt allerdings auch von der
geschwindigkeit ab, mit welcher du den bus benutzen möchtest

von sven lpa (Gast)


Lesenswert?

Hallo,

Der I2C-Bus wurde nicht als Feldbus konzipiert, d.h. u.a. (dass heisst
unter anderem) eigentlich nicht für lange Leitungsverbindungen. Ich
habe das mal eben in einem Buch nachgelesen, dort ist von: "nicht mehr
als einigen Metern" zu lesen.

Ich hab das zwar noch nie ausprobiert, aber einen Versuch wäre es
einfach mal wert - ich kann mir nämlich schon vorstellen das 2 Meter
gehen könnten. Ansonsten kann man die Leitunglänge mit einer kleinen
Schaltung verlängern.

Sicherheitshalber kannst Du ja auch nochmal in der I2C Spezification
nachlesen, vielleicht sind dort genauere Aungaben zu finden.

Viele Grüsse

von A.K. (Gast)


Lesenswert?

8 mal 2m ist ein bischen lang für I2C, es sei denn es sind 4-8 getrennte
I2C Busse. Was die Leitungslänge angeht sind bei Temperatursensoren die
DS18x20 klar im Vorteil, auch wenn sie etwas teurer sind als LM75.

von Ratber (Gast)


Lesenswert?

@Christoph


Nein kein Problem.

Wie schon gesagt wurde ist der I2C Bus nicht für längere Strecken
gedacht aber wenn du den Takt runtersetzt kannst du die Reichweite
beträchtlich verlängern.

Ich nehme mal an das du Die Tempfühler nicht allzuhäufig abfragen
willst.

Desweiteren nehme ich mal an das du sekündlich abfragst und das bei
allen Acht Fühlern.

Auf dem Bus werden ca.30 Takte (Hab ich jetzt auch nicht so im Kopf
aber so ca. stimmt es) für eine Lesung pro LM75 gebraucht.
dh. für alle Acht sind dann ca. 240 Takte nötig.
Wir sind großzügig und rechnen eine Reserve für Wiederholungen usw. mit
ein und sagen "Runde 300 Takte benötigen wir für einen kompletten
Lesezyklus"

Also mit 300 Hz Bustakt biste schon dabei um mindestens einmal die
Sekunde alle LM75 abzufragen.
Bei diesem niedrigen Takt kannste sogar mit billigem Klingeldraht über
mehrere Meter arbeiten und mußt nur drauf achten das der
Spannungsabfall nicht allzuhoch wird aber bei deinen jeweils 2m ist das
nun überhaupt kein Akt.
Aus deiner Angabe mit den 19" Racks entnehme ich mal das dort etwas
Leistung verballert wird und das eventuell Störungen entstehen können
also sollte die Fühlerleitung etwas Geschirmt sein.

so aus dem Stand kann ich dir einfaches Netzwerkkabel empfehlen wie es
überall zu bekommen ist.
Das ist geschirmt,hat eine annehmbare Kabelkapazität und ist gut
erhältlich.(Welches Dorf hat denn nun noch keinen "Gombijudershob"
?)

Ich nutze selber handelsübliches Cat5 für solche Sachen.
Bei 8 Adern ist genug reserve für die optionale Int-Leitung oder etwas
mehr "Saft".

Natürlich läst sich der Takt noch weiter nach oben drücken wenn der
Controller (Ich vermute mal das da einer drann hängt.Wenn nicht ist das
aber auch nicht so wichtig) noch was anderes zu tun hat als nur die
Fühler abzufragen.
Bei 2m und Cat-Strippen dürften auch 10khz Bustakt kein Akt sein und
die Abrage ist in max 30ms erledigt und der Controller hat die
restlichen 270ms Zeit für "was anderes" gg



Ja,ich habe erstmal fertig.

von Sirko (Gast)


Lesenswert?

Hallo,

vielleicht etwas unpassend hier, aber wie ändere ich den Takt? Ich
nutze die I2C lib von Peter Fleury (i2cmaster.S, i2cmaster.h, also
Software-Modus) und blick leider nicht durch.
Und wahrscheinlich jetzt zum Thema passend: Gibt's schon
Erfahrungswerte bei welcher Länge wie schnell getaktet werden kann?

Gruß
Sirko

von Ratber (Gast)


Lesenswert?

Zur frage Taktänderung:

Im Grunde in dem du die Wartezyklen verlängerst.



Zur Frage Erfahrungswerte:

Das hängt vom Kabel und der Umgebung ab.
Da kann dir keiner verlässliche Werte liefern.
Im Zweifelsfalle hilft nur "Probieren"

von Thomas (Gast)


Lesenswert?

nicht die Leitungslänge ist begrenzt sondern die Buskapazität.
Bei langen Leitungen deshalb die Taktfrequenz reduzieren

Thomas

von dicky (Gast)


Lesenswert?

wir hatten ja diese diskussion schon. ich wiederhole daher: bei mir
läuft seit jahren eine datenübertragung über 2m von einem sensor zu
einem messgerät einwandfrei. benutze dazu ein normales serielles kabel.
habe versuchsweise auch größere längen ausprobiert indem ich mehrere
serielle kabel hintereinandergesteckt habe.  die datenübertragung ist
allerdings relativ langsam, da nur eine messung/sek notwendig ist. der
prozessor kommuniziert also recht gemächlich mit dem sensor. ich denke
mal daß einige m kein problem sein sollten...

von Christoph Söllner (Gast)


Lesenswert?

Da wage ich insofern zu widersprechen, als daß "langsam" hier
mißverstanden werden kann. Der Prozessor kommuniziert nicht
"langsam", schließlich hat er ja eine feste Taktrate für IIC
eingestellt. Vielmehr kommuniziert er in Burst-Intervallen, also 1ys
activity, der Rest Pause.
Da bei IIC keine Fehlerkontrolle implementiert ist, schließe ich
daraus, daß auch ein vielfaches der Leitungslänge möglich ist, sofern
der Kapazitätsbelag vom Kabel (CAT5-Kabel) und die Last am Bus (jeder
Client mit 330 Ohm dran) klein bleiben.
Zusätzlich muß der Bus mit dem "Wellenwiderstand" (der probiert
werden sollte, hab mit 120 Ohm gute Erfahrungen) an beiden Enden
abgeschlosssen werden, um eine Reflexion am jeweiligen Ende zu
unterbinden.
Ich hätte insgesamt 8 LM75 und 11 PCF8574... Werde berichten, obs
funktioniert hat g

von Ratber (Gast)


Lesenswert?

@Thomas

>nicht die Leitungslänge ist begrenzt sondern die Buskapazität.
>Bei langen Leitungen deshalb die Taktfrequenz reduzieren

Ja ,richtig die Kapazität begrenzt (Äh, 400pF war es glaube ich.Will
jetzt nicht nachschauen)aber auch der Leitungswiderstand spielt mit im
Orchester.
Zuviel und die Pegel sind nicht mehr einwandfrei.

Aber wie gesagt sind bei ca. 2m und recht niedriger Datenrate kaum
Probleme zu erwarten.

Wer unbedingt mehr Länge bei hohem Takt wünscht dem stehen noch die
passenden Leitungstreiber wie zb. P82B715  zur verfügung.
Die sind nur leider schlecht zu bekommen und oft Teuer.

von A.K. (Gast)


Lesenswert?

8 mal 2m sind bei mir immer noch 16m. Das addiert sich.

von Ratber (Gast)


Lesenswert?

In Kapazität ja, beim Leitungswiderstand nein weil Stern.

Ein halbwegs modernes Cat5 kommt mit ca. 15pF/m daher.
Macht dann 16x15=240pF plus Kontaktund Schaltungskapazitäten.
Rein Theoretisch könnte man hier sogar den vollen Takt fahren
(100/40kHz je nachdem was die Chips können).

Selbst mit Vorsicht kann man hier über den Daumen gepeilt mit einigen
zehn Khz. arbeiten.

von Kupfer Michi (Gast)


Lesenswert?

>halbwegs modernes Cat5 kommt mit ca. 15pF/m

Zeig mal..., also ich hab bisher nur CAT5 mit 48pF/m und CAT7 mit
43pF/m gesehen? Was sind das für Typen?

von Ratber (Gast)


Angehängte Dateien:

Lesenswert?

Aber gerne doch.(siehe Anhang)

Das "halbwegs Modern" habe ich schon mit absicht eingefügt. '-)

von Kupfer Michi (Gast)


Lesenswert?

Wow! 14pF/m

Leider kriegt man sowas mal wieder nicht bei R!
Würde ganz neue Möglichkeiten eröffnen.

Bisher hab ich mit meinen USB2.0 Kabeln (ca. 90pF/m wenn ich mich recht
erinnere) 5x1m in Sternform bei 200KHz SCL geschafft. An beiden Enden
Atmega8 o. Atmega16, Pullups kleiner als im DB angegeben.

von Ratber (Gast)


Lesenswert?

Yo,120pF sind für USB1 und USB2 ab 90pF abwärts.(Keine Garantie auf die
Angaben.War alles ungefähr aussem Kopf)


Ja,leider ist es ja so daß das was derzeit so bei diversen Händlern
angeboten wird schon recht alt ist.

Dh. im Einzelnen das die Entwicklung zwar weitergeht aber in den Läden
nur "Standard" oder "Althergebrachtes" zu bekommen ist.

Genauso ist es zb. mit deinem USB2 Kabel.

Was die meisten Händler so als "USB2" anbieten ist schlichtweg eine
frechheit weils dr selbe Krempel ist der schon als USB1 verkauft
wurde.
Man hat nur mal getestet obs auch mit USB2 geht und labelt nur die
Verpackung um.

Bei kurzen Strippen fällt das nicht so auf aber so ab 3m oder in etwas
"verstrahlterer Umgebung" gibt es dann zunehmend Probleme.
Besonders Fetplatten und Videoartikel (Webcams,Grabber usw.)  fallen da
besonders auf.

Leider kann man sich nicht wirklich auf den Händler verlassen da alle
nur "irgendwie weiterverkaufen".


Ich habs auch schon erlebt.
Ich habe 2 Externe 2.5" Platten.Eine USB2,die andere zusätzlich mit
Firewire.

An einer 5m FW verlängerung ist das kein Akt und geht immer
"Fullspeed".

Bei USB2 an einer 3m Verlängerung (Angeblich USB2) gabs da öfters mal
Theater in form von ausfällen.
Auch der Kauf eines Scheinbar besseren Kabels
(Dicker,Massiver,Zertifizierter,teurer blabla usw.) ergab da kaum
linderung.

Erst als ich mir (ungern) die Mühe gemacht habe die Strippen mal
halbwegs vernünftig auszumessen (Dank Messequip einer Benachbarten
Firma die Spezialkabel herstellt) konnte ich mehr Einblick bekommen was
sich so alles in meinem Fundus befindet.

Kurzum : Bis auf eine ausnahme (Leider nur knapp 2m Lang) haben alle
kabel kaum das Prädikat "Highspeed USB" verdient.


Für die die beim Einkauf zweifeln:

Schaut mal auf die Stecker.

Seltsamerweise pappt jeder das USB Logo auf die Stecker obwohl die
Verbinderform kaum Zweifel aufkommen lassen dürfte aber das
Highspeedsymol ,das ja für USB2 steht, findet sich fast garnicht.


Übrigens:

Bei Firewire geht es derzeit auch los indem FW1 Kabel als 800er FW2
verkauft werden.

So,nun genug gelabert.
Die Sonne ist fast weg und ich habe kein Getränke mehr hier.
Ich muß mal wech ,nachschub besorgen (Alkoholfreies).

Bis denne cu

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
Noch kein Account? Hier anmelden.