Störungen durch Übersprechen auf langem Kabel verringern I2C

OP #3174458
Lesenswert?
• ▲
▼
Hallo,
ich betreibe einen Sensor über ein längeres ungeschirmtes Kabel an einem 
ATmega. Der uC treibt die SCK-Leitung, die SDA-Leitung wird am uC mit 
einem 1k pull-up auf 5V gezogen. Sowohl der uC als auch der Sensor 
können die Leitung auf GND ziehen. Der Sensor funktioniert meistens, 
jedoch sind auf SDA massive Störungen von SCK eingekoppelt (und 
andersrum, nur seltener).

Ich habe eine LTSpice-Simulation erstellt, in der nur der uC SDA treibt, 
sie stimmt mit der Realität recht gut überein, siehe Anhänge.

Wie kann das kapazitive Übersprechen verringert werden?
Ein Widerstand in der SCK-Leitung bringt leider nicht den gewünschten 
Erfolg.

Gruß Martin
Angehängte Dateien:
#3174470
Lesenswert?
• ▲
▼
> Wie kann das kapazitive Übersprechen verringert werden?

Anderes Kabel nehmen ;)

Man könnte die Anstiegszeiten von SCLK etwas langsamer machen, also 
einen C ans Signal. Gefühlt aber irgendwie Pfusch :)

Oder mit einem langsamen Weak-Keeper das Signal virtuell niederohmiger 
halten...
Gast #3174510
Lesenswert?
• ▲
▼
Hier ein paar Sachen, die ich bei langen I²C-Leitungen gelernt hab:

- kleiner C zum glätten bringt einiges (max. 400pF pro Leitung sind es 
glaub ich laut der Spec)

- geringe Pull-Ups verwenden (hast du ja schon, wobei 1k schon arg wenig 
sind)

- bei Flachbandkabel zwischen den SCL und SDA andere Leitungen legen, z. 
B. +5V GND. Hier habe ich auch mal von einer optimalen Anordnung 
gelesen. Leider aber wieder vergessen...

- geringere Datenrate verwenden, wenn möglich
#3174546
Lesenswert?
• ▲
▼
@ Martin St. (martinst)

>Wie kann das kapazitive Übersprechen verringert werden?

Kapazität verringern. SCL und SDA jeweil mit einer eigenen Masseader 
verdrillen, sprich man nimmt gleich zwei verdrillte Paare. GGf. noch 
eine Schirmung aus Folie um jedes Paar.
Ausserdem sind I2C Ausgangstreiber bewußt langsam, die schalten nicht 
wie ein AVR-Pin in 5ns (!) sondern eher in 100-500ns. Also einen echten 
I2C Treiber dazwischen schalten.
#3175821
Lesenswert?
• ▲
▼
Wenn auf der Empfängerseite die Leitung quasi offen ist, wirkt sie wie 
eine Antenne und schnelle Flanken von anderen Leitungen werden 
einkoppelt. Leitungsreflexionen kommen noch dazu. Mehr zu 
Übertragungsleitungen: 
http://ichaus.biz/upload/pdf/ei09_21_green_027.pdf . Falls der 
SPI-Daten- und Taktausgang genügend Strom kann würde ich auf der 
Empfängerseite mit dem Leitungswiderstand (ca. 120 Ohm) abschließen, 
oder so nahe wie es der Treiber hergibt.
#3175900
Lesenswert?
• ▲
▼
@ Horst H. (horst_h44)

>eine Antenne und schnelle Flanken von anderen Leitungen werden
>einkoppelt. Leitungsreflexionen kommen noch dazu. Mehr zu
>Übertragungsleitungen:

Schon mal auf's Thema geschaut? Es geht um I2C, das ist eher 
langsam, das Thema Wellenwiderstand greift hier nicht.

>SPI-Daten- und Taktausgang genügend Strom kann

Können sie nicht, weil I2C.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.