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?
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.
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.
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.
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.
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.
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.
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.
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.
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.
Patrick C. schrieb: > Bestudiere... Aus welcher Sprache stammt dieses Wort und was heißt es auf Deutsch?
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.
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.
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.
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.
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?
"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
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)
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
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
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.
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.
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"
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.