Forum: Mikrocontroller und Digitale Elektronik I2C Bus Leitungslänge...merkwürdig


von Oliver Behrens (Gast)


Lesenswert?

Hallo Zusammen,

habe gerade ein bzw. mehrere DS1621 Temperatursensoren per I2C Bus 
angeschlossen. Da es ja wenig Sinn macht, die TempSensoren direkt 
nebeneinander aufzubauen, habe ich versucht, die Leitungslänge von 
Sensor zu Sensor zu erhöhen. Wollte so ca. 5 bis 10 m Abstand haben.

Habe dafür dann, wie im Netz gelesen,  ein Cat5 Kabel genommen. Am I2C 
Bus im Bereich des AVR dann jeweils einen 4,7 KOhm Widerstand gegen VCC. 
Dann habe ich SDA und SCL mit jeweils 330 Ohm Widerständen an den 
Controller wie auch die beiden Temp.Sensoren angeschlossen.

Leider gings so nicht. Interessanter Weise habe ich dann einfach die 
TEmp.Sensoren mit einem "kurzen" Kabel (ca. 15cm) als I2C Bus an den 
Controller gehängt und dem Cat5 Kabel als Lange Leitung (ca. 10m). 
Funktionierte hervorragend. Konnte nun jeweils das Kurze als SDA oder 
SCL verwenden und das CAT5 entsprechend als Gegenstück. Ohne Probleme.
Nur wenn ich versuche, sowohl SCL als auch SDA über das Cat5 zu 
schicken, geht es nicht....

Hat jemand ne Idee?

von Reiner (Gast)


Lesenswert?

Ich könnte mir vorstellen, dass, wenn Du beide Signale übers cat5 
schickst, die Kapazität zwischen den Leitern die Bandbreite stark 
einschränkt und zu starken Übersprechen führt. Zwar ist ein cat5 für 
HF-Übertragung gedacht, aber differenziel. Wenn Du unbedingt das 
cat5-Kabel benutzen willst, solltest Du von den 4 Leiterpaaren eines aus 
dem Paar als "verdrillten Schirm" nutzen und auf GND legen. Damit 
schränkst Du das Übersprechen ein. Die Kapazität bleibt aber erhalten. 
Hier kannst Du mit dem verringern der Serienwiderstände (330Öhmer) den 
Tiefpass wieder etwas aufmachen. Für Serienwiderstände an solchen 
Leitungen nehme ich immer so 100..120Ohm, das kommt mit dem 
Wellenwiderstand der Leitungen fast immer hin.
Reiner

von A. Arndt (Gast)


Lesenswert?

Hallo,

ich arbeite auch mit I2C, habe jedoch von den 330 Ohm Widerständen in 
Datenblättern o.ä. nichts davon gesehen.

Wieso eigentlich diese Widerstände, ich nutze nie welche und alles 
läuft.

Gruss
A. Arndt

von Oliver Behrens (Gast)


Lesenswert?

Also, dass mit den Widerständen habe ich auch noch nicht so ganz 
gerafft. Habe das mit den Widerständen auf der Seite www.cc2net.de (ne 
Seite zur CControl II) gefunden. Auch in einer Schaltzeichnung für den 
Anschluß mehrer LM75 Sensoren waren SDA und SCL des Controllers mit 
jeweils 330 Ohm bestückt.

Werde gleich mal den Widerstand varieren, und schauen, was passiert.

von Oliver Behrens (Gast)


Lesenswert?

Hmm, habe noch mal ein wenig variert. Irgendwie bekomme ich kein Signal 
aus dem langen Kabel. Habe nun einfach das Kabel halbiert und SDA und 
SCL jeweils über ein eigenes CAT5 Kabel angeschlossen. Funktioniert 
prächtig, sogar ohne Widerstände.

Warum geht es nicht mit einem Kabel?

Nur zum Verständnis: Das Kabel hat jeweils fünf farbige Adern mit 
jeweils einer weißen Ader. Speise ich SDA und SCL auf einer Farbe und 
dem dazugehörigen weißen Kabel ein oder auf zwei verschieden farbige ? 
(Habe bei mir aber auch nichts daran geändert, dass es nicht ging :-( )

von H H (Gast)


Lesenswert?

die 330Ohm zwischen controller und "peripherie" sind zum schutz des 
Controllers da, so richtig genaues weiss ich aber leider auch nicht.

hoffe hab geholfen

von Matthias (Gast)


Lesenswert?

Hi

I2C ist ein Bus um auf einer Leiterplatte mit mehreren IC's zu 
kommunizieren. Er ist nicht, aber auch garnicht, für Installationen auf 
längeren Leitungen bzw. als Feldbus geeignet. Da brauchts störsicheres 
wie RS485 (nicht hauen Peter) oder CAN (zumindest dessen Tranciever)

Du könntest versuchen den I2C per RS485-Treiber irgendwie differenziell 
zu bekommen. Dann sollte das CAT5 durchaus geeignet sein. Ist aber alles 
nicht das ware. Lieber einen kleinen µC an jeden Temp-Sensor. Dann 
funktioniert das auch ordentlich und beim nächsten Gewitter schießt es 
nicht gleich deinen AVR ab.

Just my 2 Cents

Matthias

von mike (Gast)


Lesenswert?

hi

das i2c nicht gerade als feldbus erdacht wurde ist zwar richtig aber mit 
einer reduzierung der busgeschwindigkeit
ist es durchaus möglich die reichweite zu erhöhen

mit einem i2c-porttreiber wie dem 82B715 von philips geht es dann noch 
weiter bzw. schneller.

im datenblatt des 82B715 gibt es einige diagramme die veranschaulichen 
wie weit man mit welcher geschwindigkeit kommt

mfg
mike

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.