Forum: Mikrocontroller und Digitale Elektronik I²C Extender


von C-Tal (Gast)


Lesenswert?

Hallo,

ich habe vor mit einer I2C Verbindung mehrere Controller über ca 10m 
miteinander zu verbinden.

Dabei soll jeder der Reihe nach Master werden und eigene Daten per 
Broadcast an die Anderen senden. Dies ist ein Experiment und der Code 
funktioniert soweit schon per direkter I2C Verbindung.

Ich wollte dafür den P82B715 als I2C Extender nehmen.
Laut Datenblatt hätte ich an SCL, SDA sowie LDA und LCL jeweils einen 
Pullup a 10kOhm gehängt.

Nun bin ich aber auf diese Platine gestoßen:
http://www.horter.de/i2c/i2c-extender/i2c_extender_1.html <- Übersicht
http://www.horter.de/doku/i2c-extender-testplatine_db.pdf <- Schaltplan 
und Board

Wobei mich verwirrt, dass ich dabei entscheiden muss, ob es ein Sender 
oder Empfänger sein muss?!

Bei I2C kann doch jeder Teilnehmer senden und empfangen und somit die 
Leitungen herunterziehen.

Kann mir das jemand kurz erklären?

von holger (Gast)


Lesenswert?

>Dabei soll jeder der Reihe nach Master werden und eigene Daten per
>Broadcast an die Anderen senden.

Tu dir selber einen Gefallen und nimm CAN.

von Torben K. (tokuhila)


Lesenswert?

Es geht nicht um Sender und Empfänger sondern um, nennen wir es mal 
Geräte- und Kabelseite. SDA/SCL ist beim lokalen Gerät, LDA/LCL ist das 
Kabel mit einem höheren Pegel.

von Matthias (Gast)


Lesenswert?

Achtung! Bei solchen "Extendern".
Wenn der uC der dran hängt nur 3,3V IO-Spannung liefert, dann 
funktioniert das laut Datenblatt nur unter "Laborbedingungen" (25°C, und 
bei optimaler Streuung der Bauteiltoleranen).

Das Kreuz dabei ist, dass bei I2C der Low-Pegel bis zu 1V sein darf!
Der uC aber i.d.R. für ein Low eine Spannung kleiner (0,3*Vcc) also 
unter 0,99V benötigt.

Daher sollte bei sowas der uC am I2C 5V haben!

von Markus F. (Gast)


Lesenswert?

Wenn man das mit ordentlichen Treibern macht, ist das kein Problem.

von C-Tal (Gast)


Angehängte Dateien:

Lesenswert?

Also der uC läuft mit 5V, mir ist jetzt aber noch nicht ganz klar, ob 
ich das so richtig gemacht habe.
Siehe Bild

von Matthias (Gast)


Lesenswert?

Wie hoch soll der Takt sein?
10K sind das relativ "sportlich", falls der Takt größer 100 KHz sein 
soll.

So als Tip:
Zusätzlich zu den Datenblättern gibt es auch Application Notes und 
teilweise
auch typische Applikationsbeispiele in den Datenblättern mit
Hinweisen zu Leitungslänge, Geschwindigkeit und zu verwendenden Pullups.
Leitungskapazitäten und parasitäre Kapazitäten (Leiterbahnen, ...) 
sollte man auch berücksichtigen.

von aSma>> (Gast)


Lesenswert?

C-Tal schrieb:
> http://www.horter.de/doku/i2c-extender-testplatine_db.pdf <- Schaltplan
> und Board

C-Tal schrieb:
> Also der uC läuft mit 5V, mir ist jetzt aber noch nicht ganz klar, ob
> ich das so richtig gemacht habe.
> Siehe Bild

Manchmal denke ich, dass die Leute einen verarschen wollen. Du hast doch 
einen Plan gepostet. Was ist das Problem?!

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Da gabs doch mal I2C ICs welche den I2C Bus so aufbereiten, dass es dann 
mit einem CAN PHY extendet werden kann.

Das war der P82B96, dieser IC splittet die bidirektionalen I2C Signale 
auf in jeweils 2 unidirektionale.
Das kann dann einem CAN PHY "mit automatischer Richtungsumschaltung" 
vorgeworfen werden, zB dem PCA82C251

Weis jetzt aber nicht mehr wo ich das aufgeschnappt habe.

von Matthias (Gast)


Lesenswert?

>Manchmal denke ich, dass die Leute einen verarschen wollen

Ups.
Da hat wohl der Kaffeepegel die Mindestschwelle unterschritten und ein 
Mensch hat leider keinen BOD (Brown Out Detecor) ;-)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Hier hatte ich das gefunden:
AN460 Using the P82B96 for bus interface
http://www.nxp.com/documents/application_note/AN460.pdf

von C-Tal (Gast)


Lesenswert?

aSma>> schrieb:
> C-Tal schrieb:
>> http://www.horter.de/doku/i2c-extender-testplatine_db.pdf <- Schaltplan
>> und Board
>
> C-Tal schrieb:
>> Also der uC läuft mit 5V, mir ist jetzt aber noch nicht ganz klar, ob
>> ich das so richtig gemacht habe.
>> Siehe Bild
>
> Manchmal denke ich, dass die Leute einen verarschen wollen. Du hast doch
> einen Plan gepostet. Was ist das Problem?!

Also Das Problem ist, wie oben beschrieben, dass bei der Platine die 
Widerstände über Jumper eingestellt werden, je nachdem ob es ein 
"Sender" oder ein "Empfänger" ist.
Laut Datenblatt hätte ich gesagt, dass quasi alle Jumper gesetzt werden 
müssen.

von Torben K. (tokuhila)


Lesenswert?

Wenn du auf der Kabelseite mit 12V arbeitest sind 10m selbst mit 400kHz 
Busgeschwindigkeit machbar. Ein PCA9600 macht bei mir 20m locker mit nem 
Mbits/s.

PS: Schau dir einfach das Datenblatt vom P82B715 an, dann weißt du 
endlich wofür die Jumper sind!

: Bearbeitet durch User
von Matthias (Gast)


Lesenswert?

Im Zweifelsfall ist immer das richtig, was der Hersteller im Datenblatt 
bzw. in der Appnote schreibt.

(Übrigens gibt es beim P82B96 Datenblatt auf S13/S14 eine schönes 
Applikationsschaltbild mit Tabelle)

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.