Forum: Analoge Elektronik und Schaltungstechnik Abblockkerkos für sehr lange I2C Leitungen


von Panny (Gast)


Lesenswert?

Moin!

Wie sieht das eigentlich in der Leitungstheorie bei sehr langen 
Signalleitungen aus? Beispiel: Ich habe hier eine 30 Meter lange 
ungeschirmte I2C Leitung. Beim Empfänger kann ich dann mit dem Oszi FM 
Radio sehen. Nachdem ich direkt beim Empfänger 1nF Kerkos eingebaut 
habe, war der Spuk vorbei. Das war aber eher so ne instinktive 
Problemlösung eines Hobbybastlers, wie ich nunmal einer bin. Wie siehts 
mit best practice aus?

von Kevin M. (arduinolover)


Lesenswert?

Panny schrieb:
> Wie siehts
> mit best practice aus?

I2C nicht derart missbrauchen.

von Panny (Gast)


Lesenswert?

Hier geht es nicht darum, ob ich I2C richtig verwende, sondern wie ich 
Daten über eine lange Leitung mit hoher Impedanz richtig transportiere. 
Wenn es um "ich bin blöd und folge deshalb nur den Standards, wie lese 
ich I2C Specs?" gehen würde, hätte ich das nicht unter Analogtechnik 
gepostet, sondern im digitalen Bereich.

von I2C Techniker (Gast)


Lesenswert?

Panny schrieb:
> Ich habe hier eine 30 Meter lange ungeschirmte I2C Leitung.

Du kannst sie zwar haben. Aber nicht sinnvoll benutzen.

Panny schrieb:
> Wie siehts mit best practice aus?

Stell dir die Leiterplatte eines Fernsehers vor. FÜr solche
Distanzen die auf so einer Platine auftreten ist I2C gedacht.
Für nichts anderes!

Wenn du anders handeln willst ... dein Problem.

von I2C Techniker (Gast)


Lesenswert?

Panny schrieb:
> Hier geht es nicht darum, ob ich I2C richtig verwende, sondern wie ich
> Daten über eine lange Leitung mit hoher Impedanz richtig transportiere.

Ja und das geht nun mal nicht störungsfrei. Und wenn du noch so
viele "KerKos" und Widerstände vorsiehst. Drosseln bzw.
Induktivitäten stehen zum Spekulieren auch noch zur Verfügung.

von Ralph T. (programinator)


Lesenswert?

Es stimmt schon, I²C ist nicht für lange Leistungslängen entwickelt 
worden. Grundsätzlich gibt es schon Lösungen, die einen Betrieb weit 
über den Platinenrand hinaus ermöglichen:
* P82B96: bidirektionaler Buffer
* PCA9615: differentieller Buffer
Wenn du noch Einfluss auf deine Beschaltung bzw. dein Kabel nehmen 
kannst, könnte das ein richtiger Weg sein.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Panny schrieb:
> Beispiel: Ich habe hier eine 30 Meter lange ungeschirmte I2C Leitung.
Vergiss es. Diese Leitung ist um den Faktor 100 zu lang. Für solche 
Entfernungen ist der Inter-IC-Bus nicht gedacht.

Panny schrieb:
> Hier geht es nicht darum, ob ich I2C richtig verwende, sondern wie ich
> Daten über eine lange Leitung mit hoher Impedanz richtig transportiere.
Nimm einen Bus, der 1. differentiell und 2. niederohmig ist.

von Name: (Gast)


Lesenswert?

Lothar M. schrieb:
> Nimm einen Bus, der 1. differentiell und 2. niederohmig ist.

Darf ich eine UART mit einem RS422-Treiber vorschlagen?
Beispielsweise dem hier:
https://www.analog.com/en/products/ltc1690.html#product-overview

Das ist bewährt, und die UART funktioniert genau so, als wäre das RS422 
gar nicht da.

von Patrick C. (pcrom)


Lesenswert?

1) Bestudiere mal der unterschied zwischen 0..10V (spannungsgesteuert) 
oder 4..20mA (stromgesteuert) auf eine lange leiting. Widerstand der 
Leitung ist bei stromsteuerung egal. Injektierte stoerungen sind fuer 
stromsteuerung meistens egal

2) Bestudiere mal der unterschied zwischen CM (Common Mode) und DM 
(Differential Mode) Stoerungen. CM stoerungen werden von abschirmung 
unterdruckt. DM stoerungen werden von twisted pairs unterdruckt.

3) Ja, auch bei I2C ist es moeglich lange leitungen zu benutzen, ich 
habe in unser Labor ein system das schon 10+ Jahren einwandfrei 
funktioniert mit 5 PCF8574 I2C chips jeder konnekter mit kabel von 2..5m 
kabel. Aber dafuer habe ich u.a. die folgende sachen machen muessen :
- Fail-safe I2C kommunikation mit retry.
- Hardware-filtering
- Bus frequenz zurueck gebracht zo 1kHz damit ich besser filtern kann
Ja, es ist machbar aber man kann sich abfragen ob dies nicht als I2C bus 
durchgehen kann. Dabei wuerde ich das system nie am Kunden anbieten.

von Falk B. (falk)


Lesenswert?

Lothar M. schrieb:
> Panny schrieb:
>> Beispiel: Ich habe hier eine 30 Meter lange ungeschirmte I2C Leitung.
> Vergiss es. Diese Leitung ist um den Faktor 100 zu lang. Für solche
> Entfernungen ist der Inter-IC-Bus nicht gedacht.

Mag sein, wenn man weiß was man tut, geht das aber. Hab ich schon in 
einer Industrielösung gesehen, Auslesen einen Potis über 100m und mehr! 
Klar muss man da mit der Taktfrequenz runter, aber das ist ja OK.

von Falk B. (falk)


Lesenswert?

Panny schrieb:
> Wie sieht das eigentlich in der Leitungstheorie bei sehr langen
> Signalleitungen aus? Beispiel: Ich habe hier eine 30 Meter lange
> ungeschirmte I2C Leitung. Beim Empfänger kann ich dann mit dem Oszi FM
> Radio sehen. Nachdem ich direkt beim Empfänger 1nF Kerkos eingebaut
> habe, war der Spuk vorbei.

Logisch, die 1nF sind eine HF-Kurzschluß für alle eingekoppelten 
HF-Störungen. Die NF (dein I2C Signal) wird nur wenig gedämpft (nicht 
kurzgeschlossen).

> Das war aber eher so ne instinktive
> Problemlösung eines Hobbybastlers, wie ich nunmal einer bin. Wie siehts
> mit best practice aus?

Kann man in einigen Fällen so machen, der Preis ist die verminderte 
Datenrate.

von M.A. S. (mse2)


Lesenswert?

Patrick C. schrieb:
> Bestudiere...
Aus welcher Sprache stammt dieses Wort und was heißt es auf Deutsch?

von Dämlack (Gast)


Lesenswert?

Panny schrieb:
> ich bin blöd und folge deshalb nur den Standards

Umgekehrt wird ein Schuh draus.
Nur wer blöd ist kommt auf die Idee I2C über 30m einzusetzen.

Wer nicht blöd ist, versteht auch warum das eine total dumme Idee ist.

von Tomas pk (Gast)


Lesenswert?

schön, in welcher Tonart hier wieder diskutiert wird.
Nur das es dem Poster offenbar gar nicht um die Diskussion ob das 
sinnvoll oder oder nicht ging!
MAnche scheinen mit der einfachsten Frage bereits hoffnungslos 
überfordert

SO wirklich viele Beiträge, die Bezug auf seine Frage nehmen, sehe ich 
nicht

Ach ja, es ist Freitag..UND Homeschooling.

von I2C Techniker (Gast)


Lesenswert?

Tomas pk schrieb:
> SO wirklich viele Beiträge, die Bezug auf seine Frage nehmen, sehe ich
> nicht

Weil auch nur wenige Leute den Sinn darin sehen dies zu
beantworten. Sie wissen es einfach besser und schütteln im
Hintergrund den Kopf über solche dummen Vorhaben.

von ... (Gast)


Lesenswert?

Panny schrieb:
> Wie sieht das eigentlich in der Leitungstheorie bei sehr langen
> Signalleitungen aus? Beispiel: Ich habe hier eine 30 Meter lange
> ungeschirmte I2C Leitung. Beim Empfänger kann ich dann mit dem Oszi FM
> Radio sehen. Nachdem ich direkt beim Empfänger 1nF Kerkos eingebaut
> habe, war der Spuk vorbei. Das war aber eher so ne instinktive
> Problemlösung eines Hobbybastlers, wie ich nunmal einer bin. Wie siehts
> mit best practice aus?

Ohne jetzt in die Spec zu schauen, habe ich 400pF im Kopf, die I2C pro 
Leitung haben darf. Es gibt aber für lange Kabel spezielle I2C-Treiber.

von ... (Gast)


Lesenswert?

Dämlack schrieb:
> Panny schrieb:
>> ich bin blöd und folge deshalb nur den Standards
>
> Umgekehrt wird ein Schuh draus.
> Nur wer blöd ist kommt auf die Idee I2C über 30m einzusetzen.
>
> Wer nicht blöd ist, versteht auch warum das eine total dumme Idee ist.

Na ja, obs blöd ist, liegt im Auge des Betrachters. Beispiel: als ich 
gesehen habe , dass i2c und Waschmaschinenstecker im Automotive Bereich 
eingesetzt werden, da dachte ich mir auch, "sind die blöd". Und nun?

von Christian S. (roehrenvorheizer)


Lesenswert?

 "sondern wie ich Daten über eine lange Leitung mit hoher Impedanz 
richtig transportiere."

Du gibst Dir selbst bereits die Antwort. Deine Störungen waren weg, als 
der Kondensator dazu kam. Somit war die Impedanz zum Unterdrücken der 
Störung niedrig genug. Die Leitung hat sowieso keine hohe Impedanz. 
Vielleicht ein paar hundert Ohm, wenn es kein Koaxialkabel ist. Mit der 
von Dir gewünschten hohen Impedanz wirst Du immer Störungen einfangen. 
Dagegen hilft dann nur noch, mit der Signalspannung höher zu gehen. Nimm 
halt 50 Volt für das I2C.

Mfg

von Horst V. (hoschti)


Lesenswert?

I2C Techniker schrieb:
> Weil auch nur wenige Leute den Sinn darin sehen dies zu
> beantworten.

Deshalb antwortet hier auch Hinz und Kunz. Leider ohne dass die Frage 
wirklich beantwortet wird.

I2C Techniker schrieb:
> Sie wissen es einfach besser und schütteln im
> Hintergrund den Kopf über solche dummen Vorhaben.

Auch das stimmt leider nicht. Sie blubbern hier an der Frage vorbei und 
blähen den Beitrag unnötig auf.

Zum Glück sind auch ein paar "sachdienliche" Hinweise und Antworten 
dabei. :-)
(meine ausgenommen, aber das konnte ich mir zum Wochenende nicht 
verkneifen)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Tomas pk schrieb:
> SO wirklich viele Beiträge, die Bezug auf seine Frage nehmen, sehe ich
> nicht
Du hast auch einen zu dieser Sammlung beigetragen.

Falk B. schrieb:
> Mag sein, wenn man weiß was man tut, geht das aber.
Natürlich. Auch die PS/2 Tastaturen und Mäuse verwenden ein ähnliches 
Verfahren und konnten "problemlos" über Verlängerungen betrieben werden. 
Und auch das EDID-Verfahren bei Monitoren funktioniert über längere 
Leitungen.

Allerdings sollte man hier eben nicht nur auf einer Seite terminieren, 
sondern verteilt auf beiden. Zudem darf die Terminierung ruhig 
niederohmiger sein als im "Standard". Weiters empfiehlt sich eine 
Klemmung mit Schutzdioden und die bereits realisierte (moderate) 
Filterung mit Kondensatoren. Auch ein geschirmtes Kabel ist an dieser 
Stelle gut investiertes Geld.

Panny schrieb:
> Nachdem ich direkt beim Empfänger 1nF Kerkos eingebaut habe, war der
> Spuk vorbei.
Bei I2C gibt es keinen "Empfänger", weil es prinzipiell ein 
bidirektionaler Bus ist, bei dem die Datenrichtung laufend wechselt. 
Zudem können sogar viele Slaves im Bus hängen und darüber hinaus auch 
noch andere Master auf dem selben Bus aktiv sein.
Alle diese "Erweiterungsmöglichkeiten" und "Stubs" sollte man an diesem 
"externen 30m-I2C-Bus" tunlichst vermeiden und nur den 1 Master und den 
1 Slave anschließen.

: Bearbeitet durch Moderator
von Patrick C. (pcrom)


Lesenswert?

M.A. S. schrieb:
> Patrick C. schrieb:
>> Bestudiere...
> Aus welcher Sprache stammt dieses Wort und was heißt es auf Deutsch?

Wees ich nit... ich bin ein Bloeden Hollaender

von Drago S. (mratix)


Lesenswert?

Panny schrieb:
> Ich habe hier eine 30 Meter lange
> ungeschirmte I2C Leitung. Beim Empfänger kann ich dann mit dem Oszi FM
> Radio sehen. Nachdem ich direkt beim Empfänger 1nF Kerkos eingebaut
> habe, war der Spuk vorbei.
1nF Kerkos Empfängerseitig an Vcc? SDA? SCL?
btw warum gibt es keine Kerko-Arrays?

Auch wenn meine Zwischenfrage blöde klingt, ich verwende für 
I2C-Sensoren ein etwa 15-20cm ungeschirmtes Kabel. Also einfaches WtoB 
auf JST XH Buchse. Gelegentlich gibt es Aussetzer auf der kurzen 
Distanz.

Viel schlimmer ist der OneWire Sensor auf 1,5m Probe. Der tut mit Glück 
jede 5te Abfrage.

von Stefan F. (Gast)


Lesenswert?

Falk B. schrieb:
> Kann man in einigen Fällen so machen, der Preis ist die verminderte
> Datenrate.

Ja, man kann die Taktrate reduzieren, aber das ist nicht immer die 
Lösung. Denn die Busteilnehmer (nicht alle aber viele) haben auch 
Anforderungen an die Signal-Flanken (Rise-Time und Fall-Time).

Gut abgeschirmte Leitungen wären eine Alternative. Es gibt dafür extra 
welche mit besonders wenig Kapazität zwischen Leitung und Schirm.

von Falk B. (falk)


Lesenswert?

Mister A. schrieb:
> Viel schlimmer ist der OneWire Sensor auf 1,5m Probe. Der tut mit Glück
> jede 5te Abfrage.

Dann machst du was falsch.

Beitrag "Re: Verkabelung 1-Wire Netzwerk"

von Panny (Gast)


Lesenswert?

Mein Aufbau ist derzeit so:
1
Sensor1    20Meter            20Meter    Sensor2
2
    I2C<------------>Basis<------------->I2C

Jeder Sensor hat folgende Kerkos:

VCC:GND 10uF+100nF
SDA:GND 1nF
CLK:GND 1nF


Der Pull-Up für den Bus ist 820 Ohm jeweils für Data und Clock. Alles 0 
Problemo derzeit. Clamp-Dioden habe ich nicht eingebaut, denn die sind 
ja schon in den Sensoren in Form von ESD-Dioden vorhanden.

Wenn jetzt keiner noch sowas wie "aber wenn das und das wäre, dann würds 
nicht mehr gehen" einzuwänden hat würde ich es einfach so laufen lassen. 
Denn... naja... es funzt halt.

von Wolfgang (Gast)


Lesenswert?

Panny schrieb:
> Wie siehts mit best practice aus?

Da würde ich mich ruhig auf die Angaben des Herstellers/Erfinders 
verlassen. Lies die AN10658 von NXP zu dem Thema: "Sending I2C-bus 
signals via long communications cables". Dort werden Kabellängen bis 
100m diskutiert.
https://www.nxp.com/docs/en/application-note/AN10658.pdf

von Klaus R. (klara)


Lesenswert?

Panny schrieb:
> Wenn jetzt keiner noch sowas wie "aber wenn das und das wäre, dann würds
> nicht mehr gehen" einzuwänden hat würde ich es einfach so laufen lassen.
> Denn... naja... es funzt halt.

Wenn es funktioniert ist es doch gut.

Aber man sollte doch einen Blick in die Spezifikationen werfen. 820 Ohm 
als Pullup wäre für 5 V alsolut zu niedrig. Bei 5 V sind ca. 1,7 K 
gerade noch zulässig. Für 3,3 V rät TI

Rp max = 1,77 K
Rp min = 966 Ohm

Siehe Seite 4, Rechenbespiel:
https://www.ti.com/lit/an/slva689/slva689.pdf?ts=1611987497971&ref_url=https%253A%252F%252Fwww.google.com%252F

Die Kapazität der Signalleiter sollte 400 pF nicht überschreiten. Dies 
gilt sicher für die höchste Taktfrequenz, zumindest für 100 kHz.

Wie Falk schon erwähnte kommt man mit kleineren Taktfrequenzen weiter. 
Eine Halbierung der Frequenz erhöht die Reichweite um das Doppelte. 
Einen PCF8574 habe ich zum Testen über eine Kabeltrommel mit 2 x 2 
Telefoninnenkabel über 100 m betreiben können.
mfg klaus

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.