www.mikrocontroller.net

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


Autor: Oliver Behrens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Reiner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. Arndt (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver Behrens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Oliver Behrens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-( )

Autor: H H (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.