Forum: Mikrocontroller und Digitale Elektronik I2c mit P82B96 sternförmig aufbauen?


von JacK (Gast)


Lesenswert?

Ich habe vor mehrere verteilte I2C Sensoren abzufragen.
Sagen wir 4 Sensoren die jeweils an einem 1m langen Kabel hängen.
Nun denke ich über die Verwendung des P82B96 nach, um generell lange 
Kabel sicherer nutzen zu können.
Die große Frage ist, ob ich die Verkabelung auch Sternförmig umsetzen 
kann.
Also einen P82B96 am Controller und je einen an den Kabelenden beim 
Sensor.

von Dirk H. (dirk09)


Lesenswert?

Ja eine sternförmige Verkabelung ist möglich, habe ich selbst mit >10m 
dauerhaft im Einsatz. Dabei habe ich sogar noch jedem Ende einen 
Optokoppler spendiert, da meine Leitungen durchs Freigelände gehen und 
die Sensoren unterschiedliche Spannungsquellen haben.

Wichtig ist noch, dass du die Pull-ups für die Übertragungsleitung 
wertmäßig etwas aufteilst. Also z.B. an jedem Ende 50% und nicht an 
einem 100%, da sich die Kabel-Kapazität ja auch verteilt.

von JacK (Gast)


Lesenswert?

cool. die antwort erfreut mich.

ich blicke bei den ganzen Möglichkeiten i2c zu erweitern aktuell nicht 
mehr durch. meine favorisierte Lösung wäre bisher der P82B96.

kannst du mir details zu deinem aufbau nennen?
Ich plane RJ45 Buchsen plus normales LAN Kabel zu verwenden.
Hast du eine sternförmige verzweigung nach dem P82B96?
Mir kam gerade die Idee für jedes Kabel einen P82B96 auf der µC Seite zu 
verwenden.

von Dirk H. (dirk09)


Angehängte Dateien:

Lesenswert?

Bei 1m Kabellänge ist normales LAN-Kabel sicher die einfachste und 
billigste Wahl. Habe ich bei kurzen Strecken auch im Einsatz.

Bei der Belegung der RJ45-Buchse streiten sich etwas die Geister. 
Wichtig ist nur, dass du SDA und SCL auf getrennte Paare legst. Ob du 
dann die jeweils zweite Ader auf GND oder HIGH legst scheint egal zu 
sein.

Wenn du den P82B96 an jedem Kabelende benutzt (was zu empfehlen ist) 
muss du bloß darauf achten, dass sie sich alle mit dem "Rücken" 
anschauen.

Im Anhang ein Auszug aus meiner Schaltung mit Optokoppler.

von JacK (Gast)


Lesenswert?

danke für den  ganzen input.
ich muss mir noch über einige sachen gedanken machen und mal nen 
schaltplan erstellen.

von Jörg S. (joerg-s)


Lesenswert?


von Timo E. (jack32)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe mich jetzt für die angehängte Variante entschieden.
Da ich keine Anzeichen gefunden habe die dagegen sprechen mehrere P82B96 
mit einem I2C Bus zu verbinden.

Hat irgendwer einwende?

Timo

von Jörg S. (joerg-s)


Lesenswert?

Das ist OK so. Das einzige was zu beachten ist das Informationen die 
z.B. von IC5 zurück gesendet werden z.B. an IC3 nicht ankommen.

von Timo E. (jack32)


Lesenswert?

nicht das es mich groß stören würde, aber warum ist dem so?

Empfänger der Nachricht soll IC3 seien.  Nun müsste IC2 doch die Signale 
die IC4 (von IC5 komment) sendet ebenso verstärken wie die von meinem µC 
ganz links.

von Jörg S. (joerg-s)


Lesenswert?

>nicht das es mich groß stören würde, aber warum ist dem so?
Der P82B96 erkennt ein low auf der SX/Y Seite bei unter 0,6V, ein low 
auf der T/R Seite wir aber auf die SX/Y Seite nur mit 0,8V ausgegeben. 
Somit bekommen die anderen Bausteine dann nichts davon mit.

von Timo E. (jack32)


Lesenswert?

gut. dann  wird das jetzt so gebaut.

Habe jetzt mal 2,2K Ohm Pull ups am µC eingeplant.

von Dirk H. (dirk09)


Lesenswert?

Du benötigst neben den pull-ups am µC auch welchen auf der 
Übertragsungsstrecke zwischen zwei P82B96.
Bei der Länge >1m würde ich dann sogar jeder Seite einen (doppelt 
großen) Widerstand spendieren.

Bei 5V auf der Übertragsungsstrecke sollte der pull-up zwischn 1k und 
180Ohm liegen, da der Strom auf der T/R-Seite auf 30mA zu begrenzen ist.
Und mit diesen kleinen Werten kannst du halt größere Leitungskapazitäten 
bewältigen = Längere Kabel möglich.

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.