Forum: Mikrocontroller und Digitale Elektronik i2c – R1 & R2 Dimensionierung – bei 60 m (â 2 x 30 m) - mit P82B96


von André G. (andr_g381)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

benötige Hilfe bei der Dimensionierung einer i2c-Verbindung zwischen 
einem Master und zwei abgesetzten Slaves. Der erste Slave ist 30 m vom 
Master entfernt und der zweite Slave nochmals 30 m, insgesamt 60 m 
(siehe beigefügte Skizze). Als Kabel kommen zwei „J-Y-(St)Y-4x2x0,8“ 
Leitungen mit jeweils 30 m Länge zum Einsatz. Als Expander – beim Master 
und den Slaves - kommt jeweils ein P82B96 zum Einsatz. Bei der 
verwendeten ic2-Expander Schaltung handelt es sich um die auf Seite
13 – Fig. 14 – aus dem Datenblatt von NPX (siehe ebenfalls die Skizze).

Wie berechnet man die Dimensionierung von R1 und R2 für alle drei 
Expander, so dass die Kommunikation zwischen allen dreien sauber 
funktioniert?

Schon jetzt herzlichen Dank für eure Hilfe.

Grüßle,
André

von Jan (Gast)


Lesenswert?

Warum I2C bei den Leitungslängen. Da macht doch RS485 oder CAN mehr 
Sinn.

von André G. (andr_g381)


Lesenswert?

Hi Jan,

eigentlich ganz einfach, weil ich schon sehr viel mit i2c - auf kurzen 
Strecken - gemacht habe und alles dafür hier "rumliegt" (die drei 96er 
habe ich mal vor langer Zeit besorgt) und ich mit RS485 und CAN so gut 
wie noch nichts gemacht habe... Könnte sich jedoch jetzt ändern... ;o)=)

Grüßle,
André

von Jan (Gast)


Lesenswert?

I2C ist ja eigentlich nur für "on Board" Kommunikation.
Ich habe vor Jahren mit I2C Expandern was gemacht. Ich glaube da musste 
man den Common dann mitführen. Sprich 3 Leitungen.

Aber wie gesagt, ich würde bei 30 m RS485 machen. Protokoll musst du 
halt selbst definieren. Aber da gibt es auch ganz viele Ideen in diesem 
Internet von dem alle immer reden :-)

von Mist Aufdecker (Gast)


Lesenswert?

André G. schrieb:
> Schon jetzt herzlichen Dank für eure Hilfe.

Bei solch einem Mist helfe ich nicht.

Ein I2C Bus ist hochempfindlich da vergleichsweise hochohmig.

Du wirst Sterben vor Störungen.

von Theor (Gast)


Lesenswert?

Ich rate Dir zu der Lektüre des Datenblattes. Da steht eigentlich alles 
drin.

von Jan (Gast)


Lesenswert?

Mist Aufdecker schrieb:
> Bei solch einem Mist helfe ich nicht.

Dann ist deine Antwort eigentlich zu viel hier.

Konstruktiv beitragen oder einfach mal dir Fresse halten.

Oben habe ich bereits die richtigen Alternativen wie RS485 oder CAN 
genannt.

Aber so ist das uC Forum. Immer nur nörgeln und meckern. Ein Hoch auf 
Deutschland

von Mist Aufdecker (Gast)


Lesenswert?

Jan schrieb:
> Dann ist deine Antwort eigentlich zu viel hier.

Nein. Da ich auf die Gefahr hinweise. Aber du scheinst das
Zauberwort "hochohmig" nicht zu kennen da du keine Ahnung
hast und daher nicht erkennst was es für die Anwendung für
eine Bedeutung hat.

von Wolfgang (Gast)


Lesenswert?

André G. schrieb:
> Wie berechnet man die Dimensionierung von R1 und R2 für alle drei
> Expander, so dass die Kommunikation zwischen allen dreien sauber
> funktioniert?

So, dass die Kabelkapazität beim Freigeben der Busleitung schnell genug 
umgeladen wird. Das hängt also von deinem Kabel und deiner 
Busgeschwindigkeit ab. Außerdem musst du die Grenzwerte des Treibers 
beachten und gegenüber dem Störpegel auf den Leitungen ausreichenden 
Abstand sicher stellen.

von André G. (andr_g381)


Lesenswert?

Hallo Jan, hallo MistAufdecker, hallo Theor,

@Jan: Hab mal kurz RS485 bei Internet gestöbert... eine bi-direktionale 
I/O-Erweiterung a la MCP23017 scheint damit nicht möglich. Ist jedoch 
der Hintergrund der Causa... oder hat Du evtl. nen Link oder Info 
dbzgl.? Mit CAN habe ich überhaupt noch nichts gemacht, seh mir CAN mal 
an...

@MistAufdecker: Laut Datenblätter soll es bei >= 9V-Cable ganz stabil 
und zuverlässig funktionieren... und das bei weit mehr als 60 m... so 
zumindest die Aussagen in vielen Threads und Datenblättern.

@Theor: Ja, habe ich... da ich aber (leider) kein Nachrichten- und/oder 
Elektronikingenieur bin, ist mir die Sache mit den Delays/Reflektionen 
von SDA/SCL mathematisch nicht ganz klar... deshalb auch meine Frage 
hier... hätte es ja ansonsten schon berechnet... ;o)=)

Grüßle,
André

von André G. (andr_g381)


Lesenswert?

Hallo Wolfgang,

soweit ist mir das schon alles klar... aber wie berechne ich das...?!? 
;o)=)

Hast Du mir evtl. einen Link, der das How-To zeigt? Gerne auch auf 
englisch... ;o)

Grüßle,
André

von Mist Aufdecker (Gast)


Lesenswert?

André G. schrieb:
> Laut Datenblätter soll es bei >= 9V-Cable ganz stabil
> und zuverlässig funktionieren... und das bei weit mehr als 60 m... so
> zumindest die Aussagen in vielen Threads und Datenblättern.

Was ist ein >= 9V-Cable?

Deine Kabelspezifikationen im Eingang sind unklar, deshalb
habe ich meine Warnung (Mist) ausgeprochen. Wenn die I2C-
Leitungen abgeschirmt werden mag es gut sein. Aber nichts
Gutes gegenüber einem RS485 Bus.

von André G. (andr_g381)


Lesenswert?

Hallo MistAufdecker,

9V-Cable ist die Spannung (V+-Cable Drive) die auf die externe Leitung 
gegeben wird, siehe Skizze von mir. Hast Du mir bzgl. RS485 einen Link 
oder Info bzgl. GPIO-Expander â la MCP23017? Zwei von diesen Dingern 
sollen/müssen/dürfen nach 60 m ihren Dienst tun und entsprechend auch 
Rückmelden... Wie auch die Beiden nach 30 m.

Grüßle,
André

von Mist Aufdecker (Gast)


Lesenswert?

André G. schrieb:
> so zumindest die Aussagen in vielen Threads und Datenblättern.

André G. schrieb:
> aber wie berechne ich das...?!?

So wie es die Leute in den von dir zitierten "vielen Threads"
gemacht haben. Die versprechen dir ja auch das Blaue vom Himmel.

von Mist Aufdecker (Gast)


Lesenswert?

André G. schrieb:
> Hast Du mir bzgl. RS485 einen Link

Zufälliger Fund.
So macht man das. Schaltbild Seite 5

https://air.unimi.it/retrieve/handle/2434/284647/408097/Relazione%20RS485.pdf

von André G. (andr_g381)


Lesenswert?

Hallo Mist Aufdecker,

mir hat gar niemand etwas versprochen und wie Wolfgang geschrieben hat, 
ist vieles von der Peripherie abhängig. Wenn in den Threads bzgl. meiner 
Frage etwas steht, dann die ermittelten Werte (R1, R2, etc. pp.) aber 
halt auf die Peripherie die dort zum Einsatz kommt (meist sind es 
Cat.-Kabel)... tja, und die helfen einem bei einem 4x2x0,8-Kabel halt 
net wirklich weiter. Jetzt kann man(n) ganz, ganz lange verschiedene R1 
und R2 Werte Testen oder halt berechnen... nach letzterem Suche ich... 
da ich aber nicht der hellste bin, tu ich mich halt ein wenig schwer mit 
"HF-Mathe" ... deshalb ja auch meine Frage hier...

Grüßle,
André

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Jan schrieb:
> Warum I2C bei den Leitungslängen. Da macht doch RS485 oder CAN mehr
> Sinn.

Das hätte ich auch spontan gesagt.

Ich habe für einen solchen Zweck mal I2C komplett virtualisiert und 
symmetrisch übertragen, weil der Master und der Sensor nur I2C konnten. 
Konnte damals 400k mit einem 25MHz FPGA. Es werden auch Störungen aktiv 
unterdrückt, um die Leitung im symmetrischen Bereich zu halten. Wurde 
von einem Kunden in ähnlicher Weise eingesetzt, Rechte liegen noch bei 
mir, patentiert ist es nicht.

: Bearbeitet durch User
von Echo-des-Tages (Gast)


Lesenswert?

Jan schrieb:
> Aber so ist das uC Forum. Immer nur nörgeln und meckern.

Merke: So wie man in den Wald hinein ruft so schallt es zurück.
Um sinnvolle Antworten zu bekommen, muss man auch sinnvolle Fragen 
stellen.

von Mist Aufdecker (Gast)


Lesenswert?

André G. schrieb:
> mir hat gar niemand etwas versprochen

Doch haben sie. Implizit. Denn bei ihnen hat es ja funktioniert,
"ganz stabil und zuverlässig". Dann haben die ja auch ihre
Hausaufgaben gemacht und den I2C Bus ordentlich dimensioniert.

Das ist deine Referenz. Und nur du weisst es.

André G. schrieb:
> und das bei weit mehr als 60 m... so
> zumindest die Aussagen in vielen Threads

Und falls du es übersehen haben solltest:

Beitrag "Re: i2c – R1 & R2 Dimensionierung – bei 60 m (â 2 x 30 m) - mit P82B96"

von Wolfgang (Gast)


Lesenswert?

André G. schrieb:
> Jetzt kann man(n) ganz, ganz lange verschiedene R1
> und R2 Werte Testen oder halt berechnen...

Du kannst du auch kurz einen Wert einbauen, die Signale angucken und den 
Wert gezielt ändern, bis die Signalform ok ist - geht schneller als die 
Lösungssuche hier im Thread ;-)

Die Signallaufzeit ergibt sich aus der Kabellänge, dem Verkürzungsfaktor 
des Kabels und der Lichtgeschwindigkeit.

von noreply@noreply.com (Gast)


Lesenswert?

André G. schrieb:
> da ich aber nicht der hellste bin, tu ich mich halt ein wenig schwer mit
> "HF-Mathe" ... deshalb ja auch meine Frage hier...

Dafür gibt es ja auch problemadäquate Lösungen, z.B. RS-485. ;-)

Im Datenblatt gibt es Vorschläge für Rx/Cx unter Punkt

10.2.1.2
Detailed
Design
Procedure

Ich würde halt im Bereich 100 kHz bleiben.

Und ob das für 2 Slaves funktioniert? Keine Ahnung. Eventuell braucht 
der 30Meter Slave 2 x P82P96.

von Klaus (Gast)


Lesenswert?

André G. schrieb:
> Jetzt kann man(n) ganz, ganz lange verschiedene R1
> und R2 Werte Testen oder halt berechnen...

Berechnen kannst du das nicht wirklich, ist auch nicht nötig. Zuerst ein 
Blick ins Datenblatt des P82 und den Maximalstrom nachgelesen. Dann mit 
Hilfe von Gevatter Ohm und der Busspannung den kleinsten Widerstand 
errechnen, bei dem der Maximalstrom noch nicht überschritten wird.

Ich hab doch mal selbst nachgesehen. Der P82 kann 60mA treiben. Wenn der 
"lange" Bus also mit 12V läuft, ist der Minimalwert der Pullups 200Ω. 
Man könnte also mit je 1kΩ bei jedem Slave anfangen. Was zählt ist dann 
die Parallelschaltung der drei Widerstände. Die 4000 zulässigen pF wirst 
du bei diesen Längen nicht erreichen.

Viel wichtiger ist, das Kabel richtig zu belegen. Nie, niemals SCL und 
SDA in ein Paar! Da hat man immer übersprechen. Sondern SCL mit GND in 
ein Paar und SDA mit den 12V in ein anderes (oder anders herum).

Viel Erfolg

MfG Klaus

von Jan (Gast)


Lesenswert?

Echo-des-Tages schrieb:
> Jan schrieb:
> Aber so ist das uC Forum. Immer nur nörgeln und meckern.
>
> Merke: So wie man in den Wald hinein ruft so schallt es zurück.
> Um sinnvolle Antworten zu bekommen, muss man auch sinnvolle Fragen
> stellen.

Ach, wenn hier malneine Frage nicht 100% ausformuliert ist, oder sich 
gar nur Rechtschreibfehler eingeschlichen haben, wird darauf rumgehackt, 
statt sich ums Problem zu kümmern.

Wie du sicherlich oben gesehen hast, habe ich eine entsprechende, 
sinnvolle Antwort gegeben. Nämlich RS485 oder CAN. Mit beiden hast du 
eine weitaus bessere Bandbreite als mit einem popeligen I2C. Abgesehen, 
dass I2C nicht für so große Strecken gemacht ist.

von Jan (Gast)


Lesenswert?

Mist Aufdecker schrieb:
> Jan schrieb:
> Dann ist deine Antwort eigentlich zu viel hier.
>
> Nein. Da ich auf die Gefahr hinweise. Aber du scheinst das
> Zauberwort "hochohmig" nicht zu kennen da du keine Ahnung
> hast und daher nicht erkennst was es für die Anwendung für
> eine Bedeutung hat.

Dir ist schon bewusst, dass das eigentliche Problem bei I2C nicht die 
Hochohmigkeit, sonder eher die Kapazität ist.
Da gibt es sehr schöne Formeln im Standard (oh ja, man muss was lesen, 
statt nur mit Begriffe  um sich zu werfen). Aber wer bin ich schon, der 
deine Weisheit in Frage stellt.

In diesem Sinne.
Ich wünsche dir André viel Erfolg bei seinem Projekt. Wenn du nicht aufs 
Übertragungssystem festgelegt bist, solltest du den Übertragungsweg 
überarbeiten.

Gruß
Jan

von Harry L. (mysth)


Lesenswert?

Klaus schrieb:
> Berechnen kannst du das nicht wirklich, ist auch nicht nötig.

Natürlich kann man das berechnen!

Abschnitt 7, Seite 55:
https://www.nxp.com/docs/en/user-guide/UM10204.pdf

von Klaus (Gast)


Lesenswert?

Harry L. schrieb:
> Klaus schrieb:
>> Berechnen kannst du das nicht wirklich, ist auch nicht nötig.
>
> Natürlich kann man das berechnen!
>
> Abschnitt 7, Seite 55:
> https://www.nxp.com/docs/en/user-guide/UM10204.pdf

Das bezieht sich auf I2C ohne den P82B96 und ist damit keine wirkliche 
Hilfe. Und es kommen da auch nur Maximal oder Minimalwerte heraus.

MfG Klaus

von Harry L. (mysth)


Lesenswert?

Klaus schrieb:
> Das bezieht sich auf I2C ohne den P82B96 und ist damit keine wirkliche
> Hilfe. Und es kommen da auch nur Maximal oder Minimalwerte heraus.

Ach wirklich?

Schon mal auf die Idee gekommen, daß sich das von mir verlinkte Dokument 
auf den I²C-Bus im Allgemeinen wie von NXP definiert bezieht, und auch 
der P82B96 ein I²C-Bus-Bauteil von NXP ist?

..."interpretieren können" muß man die Angaben schon selbst.

Da steht alles, was man braucht um die PullUps korrekt zu 
dimensionieren.

Daß das ohne Grundlagen-Wissen nicht funktioniert, kann man kaum NXP zur 
Last legen.

Genau dieses Grundlagen-Wissen versetzt einen aber in die Lage, zu 
entscheiden, ob für die jeweilige Anwendung der Maximal-Wert ausreicht, 
oder man eher den Minimal-Wert benötigt.

von André G. (andr_g381)


Lesenswert?

Hallo zusammen,

vielen Dank - an alle - für die vielen Tipps und Hinweise.

Das "Problem" ist nicht die Dimensionierung einer "Master - Slave 
Strecke", sondern dass es sich um eine "Master - Slave - Slave Strecke" 
handelt und hierzu die Hintergrundinfos naturgemäß etwas dürftiger 
sind... i.M. ist es "kein Problem" die R1 u. R2 für "Master - 30 m - 
Slave" zu ermitteln. Auch nicht "Master - 60 m - Slave 2" ... sondern 
eben die Werte für "Master - 30 m - Slave 1 - 30 m - Slave 2".

@Klaus: Danke für den Hinweis bzgl. Parallelschaltung von R1/M || zu 
R1/S1 || zu R1/S2! Die Belegung der Kabel, GND/SDA und +VCable/SCL, 
beachte ich stringent... ;o) Das "Problem" mit dem Testen der Werte über 
die "Flankenoptik" ist, dass es halt immer "nur" auf einer Strecke 
passt. Ändert man aufgrund der "Flankenoptik" am dritten Wert etwas, 
ändert sich die Flanke entweder am Ersten oder am Zweiten - LOOP - ;) Es 
ist ein bisschen so, wie der sich im Kreis drehende Hund, der versucht 
seine eigenen Lunte einzuholen. Aber werd das Ganze unter Beachtung der 
Tatsache erneut testen, dass ja die drei R1 parallel liegen... das hab 
ich - bis jetzt - wie den Wald vor lauter Bäumen nicht "gesehen"... 
;O)=) ... da passt mal wieder: A fool with a tool is still a fool ... 
wie gut das Tool auch immer sein mag... ;O)=)

@Jan: Danke für die Wünsche! ;o) ... Kann man(n) immer gebrauchen...

Parallel zu allen Tipps sehe ich mir RS485 und CAN i.d.Z. ebenfalls mal 
näher an. Schadet ja nie, seinen "Horizont" - und sei es nur technisch - 
zu erweitern... denn leben nicht alle Menschen unter der gleichen Sonne? 
;o)

In diesem Sinne: An alle nochmals vielen Dank und einen schönen 
Sa.-Abend und noch besseren So. Und schon jetzt nen guten Start in die 
neue Woche!

Grüßle

von Mist Aufdecker (Gast)


Lesenswert?

André G. schrieb:
> vielen Dank - an alle - für die vielen Tipps und Hinweise.

Schön von dir vor allem dass du nicht hörst bzw liest was du
nicht hören willst bzw lesen willst. Vielleicht liegt es aber
auch an deiner fehlenden Bildung in Elektronik.

Jan schrieb:
> I2C ist ja eigentlich nur für "on Board" Kommunikation.

Mist Aufdecker schrieb:
> Ein I2C Bus ist hochempfindlich da vergleichsweise hochohmig.

Nur soviel: hochohmig bedeuted in diesem Zusammenhang dass es
äussere Störungen vergleichsweise leicht haben auf die Signal-
leitungen einzuwirken und Störsignale zu produzieren.

Daher meine Aussage (auch wenn sie etwas übertrieben sein mag):

Mist Aufdecker schrieb:
> Du wirst Sterben vor Störungen.

von Klaus (Gast)


Lesenswert?

Harry L. schrieb:
> Schon mal auf die Idee gekommen, daß sich das von mir verlinkte Dokument
> auf den I²C-Bus im Allgemeinen wie von NXP definiert bezieht, und auch
> der P82B96 ein I²C-Bus-Bauteil von NXP ist?

Na sicher. Nur hat der Bus zwischen zwei P82B96 bis zu 15V, das kommt 
bei I2C nicht vor. Er darf eine Kapazität von 4000 pF haben, I2C nur 
400. Und der Maximalstrom im Pullup darf 60mA sein, I2C nur drei. 
Ansonsten ist alles wie I2C, nur die Rechnungen ergeben naturgemäß 
andere Werte und die Angaben im I2C Manual sind unbrauchbar.

Während ich das so schreibe kommt mir der Verdacht, du hast das 
Datenblatt des P82B96 garnicht gelesen.

André G. schrieb:
> Das "Problem" mit dem Testen der Werte über
> die "Flankenoptik" ist, dass es halt immer "nur" auf einer Strecke
> passt. Ändert man aufgrund der "Flankenoptik" am dritten Wert etwas,
> ändert sich die Flanke entweder am Ersten oder am Zweiten - LOOP - ;)

Na sicher. Solange die Low-High-Flanke schnell genug ist, funktioniert 
das. Das Aussehen spielt keine Rolle, es kann auch "rund" sein. Die 
High-Low-Flanke ist immer ok, sie wird ja aktiv erzeugt. Und da muß man 
nichts einstellen. Es ist ein Digitalsignal, das muß nur die 
Schaltschwellen für 0 und 1 unter oder überschreiten.

Nimm dreimal 1k bei 12V und das funktioniert, auch wenn du den letzten 
Busteil mal abkoppelst.

MfG Klaus

von Harry L. (mysth)


Lesenswert?

Klaus schrieb:
> Während ich das so schreibe kommt mir der Verdacht, du hast das
> Datenblatt des P82B96 garnicht gelesen.

Ich glaube fast, du hast das DB nicht gelesen/verstanden..

https://www.nxp.com/docs/en/data-sheet/P82B96.pdf

Auf Seite 12 steht doch glasklar beschrieben, wie man die Widerstände 
dimensioniert....

Die I2C-Seite hatten wir ja bereits geklärt.
Was denn jetzt noch?

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Man kann sich natuerlich auch die Hose mittels einer Beisszange 
anziehen. Und sicherlich gibts irgendwo auch ein Datenblatt fuer eine 
spezielle Hosenbeisszange.
Trotzdem zieht sich nur eine sehr kleine Minderheit Hosen mit der 
Beisszange an, so wie auch nur eine sehr kleine Minderheit I2C Busse mit 
Ausdehnungen ueber mehrere Meter baut.

Gruss
WK

von Harry L. (mysth)


Lesenswert?

Dergute W. schrieb:
> so wie auch nur eine sehr kleine Minderheit I2C Busse mit
> Ausdehnungen ueber mehrere Meter baut.

Das würde ich zwar auch nicht wollen, aber genau dafür ist der P82B96 
gemacht.

von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

noreply@noreply.com schrieb:
> Dafür gibt es ja auch problemadäquate Lösungen, z.B. RS-485. ;-)

Das geht aber nur, wenn der Sensor das auch kann. Ansonsten ist man 
immer gezwungen, Analogtechnik dazwischen zu setzen, um die Leitungen zu 
überbrücken und diese zumindest symmetrisch auszulegen. Das aber löst 
oft nicht die ganzen Probleme, die in solchen Umgebungen entstehen:

Die Schwierigkeit ist ja nicht wirklich die Länge der Leitungen! Die 
Reflektionen und Dämpfungen bekommt man eigentlich leicht in den Griff. 
Der Umstand ist aber der, dass diese Leitungen meistens in Umgebungen 
eingesetzt werden, wo es rauh zugeht. Sei es Maschinenbau, 
Anlagentechnik aber auch Medizintechnik wenn Hochspannungsversorgungen 
und große Ströme mit im Spiel sind. Da kommen hochfrequente Spikes rein, 
die die differenziellen Leitungen in die Sättigung treiben und das 
Auslesen erschweren, bzw. auf der Taktleitung direkt mal Scheintakte 
erzeugen. Niederfrequente Wellen hingegen legen gleich mehrere ms an 
Kommunikation lahm. Dem kann man weder durch hochfrequente Übertragung 
noch durch Herabsetzen auf 100k begegnen. Redundantes Senden hilft auch 
nicht, wenn dadurch die kritische Reaktionsgeschwindigkeit eines Systems 
gesenkt wird.

In dem von mir vorgeschlagenen System wurden die Störungen gemessen, auf 
die Leitungen beaufschlagt und gegengesteuert. Takte können noch 
regeneriert werden, selbst wenn sie mit 1MHz laufen und 90% Störpegel 
enthalten.

von noreply@noreply.com (Gast)


Lesenswert?

Jürgen S. schrieb:
> noreply@noreply.com schrieb:
>> Dafür gibt es ja auch problemadäquate Lösungen, z.B. RS-485. ;-)
>
> Das geht aber nur, wenn der Sensor das auch kann. Ansonsten ist man
> immer gezwungen,

Was wir aber nicht wissen.

Das müßte schon ein sehr spezieller und wertvoller Sensor sein. Bei 3 
Euro pro P82B96.

Btw. Es ist noch nicht mal Vcc bekannt, die mit übertragen werden muß. 
Die brauche ich aber zur Dimensionierung der Pull-Up-Widerstände gemäß 
Datenblatt.

Von Gleichspannungsanteilen auf Kabeln im Außenbereich mal ganz zu 
schweigen.

Und Sorry, mein Fehler. Multiple Slaves ist in RS-422 definiert.

https://de.wikipedia.org/wiki/EIA-422

von noreply@noreply.com (Gast)


Lesenswert?

Jürgen S. schrieb:
> Analogtechnik dazwischen zu setzen, um die Leitungen zu
> überbrücken und diese zumindest symmetrisch auszulegen. Das aber löst
> oft nicht die ganzen Probleme, die in solchen Umgebungen entstehen:

Als ich jung war, habe ich zwei Centronics-Schnittstellen über eine 
Infrarotübertragung virtuell verbunden. Ich bin mir auftretender 
Probleme bewußt.

von Cederick (Gast)


Lesenswert?

Hallo, bin über eine Suche hierher gekommen. Wie baue ich ein solches 
Filter?
Beitrag "Re: kritische I2C-Kommunikation in gestörten Bereichen"

Bis zu welchem Pegel kann es eine Störung verhindern?
Lässt sich das sagen?

von J. S. (engineer) Benutzerseite


Lesenswert?

Cederick schrieb:
> Bis zu welchem Pegel kann es eine Störung verhindern?
> Lässt sich das sagen?
Eine Störung verhindern, kann es in dem Sinne erst einmal nicht und wie 
groß die Toleranz ist, hängt vom Pegel ab. Je größer und länger der 
Störimpuls, desto größer ist der Aussetzer im Signal.

Das Filter oben ist eine Mischung aus diskretem Störfilter, FIR-Filter 
und PLL. Die Taktperiode sollte prinzipiell bekannt sein oder muss 
ausgemessen werden, was die Schaltung komplizierter macht, aber geht. 
BTDT

Eine Störung aktiv verhindern, kann es in dem Sinne, als das in diesem 
System aktiv gegengesteuert wird, d.h. die Signalamplitude des 
differentiellen Systems wird ja durch den Ausgangstreiber regelt. Die 
Regelung z.B. mit einem OP kann man so auslegen, dass alles, was nicht 
Signal ist, stärker unterdrückt wird. Das erweitert den Betriebsbereich, 
weil die Leitungen dann nicht-, bzw. später oder nur teilweise an den 
Anschlag gehen und die andere immer noch interpretierbar bleibt.

Gerade I2C-Teilnehmer können sich ja auch "aufhängen".


noreply@noreply.com schrieb:
> Von Gleichspannungsanteilen auf Kabeln im Außenbereich mal ganz zu
> schweigen.
Die z.B. werden minimiert.

noreply@noreply.com schrieb:
> Was wir aber nicht wissen.
Was aber durchaus vorkommt, wenn in einem System jemand unbedingt etwas 
messen muss, was nur Sensoren erfassen können, die eine "normale" 
I2C-Schnittstelle besitzen, aber die Leitungen vorgeben sind, weil das 
System ein großes bewegliches Teil ist, welches nicht mehr umgebaut 
werden kann und eine festgelegte Verkabelung hat. Da ist nach-RÜSTUNG 
angesagt.

von Klaus R. (klara)


Lesenswert?

André G. schrieb:
> vielen Dank - an alle - für die vielen Tipps und Hinweise.

Hallo André,
bist Du mit den 2 x 30 m I2C klar gekommen?

Aus irgendeinem Grund habe ich diesen Thread übersehen. Ich nutze den 
I2C - Bus für meine Heizungssteuerung schon bald 20 Jahre. Meine erste 
Herausforderung war drei Etagenverteiler per I2C zu erreichen. Wenn die 
Leitung für 100 kHz zu lang ist geht man einfach mit dem Takt herunter. 
Dann kann man auch locker 10 m überbrücken. Seit über 10 Jahren arbeite 
ich mit 1,5 kHz. Selbst im Heizungskeller gehe ich vom Master über 8 m 
zu einem passiven I2C - Verteiler und spreche dort jeweils 4 DS1631 
sternförmig an. Also
1
 
2
8 m + 2 m
3
    + 2 m
4
    + 2 m
5
    + 2 m
Ich hatte sogar noch bis letzter Woche zwei weitere DS1631 am I2C - 
Verteiler angeschlossen. Der 6. war doch zuviel. Es kam zu 
Adressierungstörungen und habe dann auf 4 Stück reduziert. Dieser 
Verteiler ist kein Muxer, sondern nur ein Buchsenfeld! Eigentlich sollte 
nach der reinen I2C Lehre, bzw. nach den I2C - Ungläubigen, so etwas gar 
nicht funktionieren. Tut es aber doch.

Dabei ist der DS1631 wie eine Diva, ziemlich anspruchsvoll. Tests mit 4 
adrigem Telefonkabel, 50 m auf der Rolle und einen PCF8574 
funktionierten sogar bis zu 100 kHz. Der PCF8574 ist aber ein Urgestein 
und verzeiht anscheinend unsaubere Signale.

Aktuell möchte ich einen Außensensor auf den DS1631 umstellen. Die 
Leitung könnte 20 m lang sein. Hier plane ich eine 
Reichweiterverlängerung mit P82B96 ein. Davon habe ich noch drei Stück, 
benötige aber natürlich nur 2 davon. Und in diesem Zug bin ich auf 
Deinen Thread gestoßen.

Noch etwas Unterstützung:
Beitrag "I2C Bus längere Reichweite"
mfg Klaus

: Bearbeitet durch User
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.