Wo sollen meine I2C-Widerstände platziert werden?

OP #7100891
Lesenswert?

Hi, ich habe einen I2C-Master und ca. 10cm entfernt einen I2C-Slave#0. 
Ca. 1 Meter entfernt befinden sich noch die Slaves #1, #2 und #3. Ich 
habe mir die frage gestellt, wie ich die Pullup-Widerstände am besten 
platziere, damit es für den Bus möglichst Vorteilhaft ist.

Und bevor jetzt jemand kommt und meint, der Master solle direkte neben 
die Slaves #1 bis #3: Ne das geht leider net. Und ja, habe die 
Datenübertragung schon erfolgreich über einen Meter übertragen können, 
jedoch in einem anderen Setup. Und ja, ich werde ein geschirmtes USB-C 
Kabel dafür verwenden, damit SDA und SCL möglichst voneinander 
ferngehalten werden.

Habe ein Bild angefügt mit drei denkbaren Varianten der I2C-Widerstände. 
Was bringt welche Vorteile? Oder ist es egal wie rum? Oder wäre eine 
Variante Sinnvoller, welche ich garnicht erst in Betracht gezogen habe?

Danke
Angehängte Dateien:
Gast #7100971
Lesenswert?

Du kannst auch an den 4 Stellen (3 Slaves + 1 Master) jeweils den 
4-fachen Pullup Wert verbauen. Also z. B. 22 kOhm. Die ziehen dann 
parallel nach oben.

Sonst ist das recht unkritisch. Das sind ja nur 400 kHz.
OP #7100976
Lesenswert?

FPGA NOTFALLSEELSORGE schrieb im Beitrag #7100971:
> Du kannst auch an den 4 Stellen (3 Slaves + 1 Master) jeweils den
> 4-fachen Pullup Wert verbauen. Also z. B. 22 kOhm. Die ziehen dann
> parallel nach oben.
>
> Sonst ist das recht unkritisch. Das sind ja nur 400 kHz.

Also ist 4x 22kOhm unkritischer wie 1x 5,5kOhm? Und aus welchem Grund?
Gast #7100989
Lesenswert?

Manuel N. schrieb:
> Also ist 4x 22kOhm unkritischer wie 1x 5,5kOhm?

Ich behaupte mal das ist egal. Wird Beides funktionieren. Das war nur 
ein Vorschlag wie du das auch machen kannst.

Manuel N. schrieb:
> Und ja, ich werde ein geschirmtes USB-C
> Kabel dafür verwenden, damit SDA und SCL möglichst voneinander
> ferngehalten werden.

Das ist I2C. Da ist nix Highspeed oder so. Du kannst ein ganz normales 
Kabel nehmen, nur genug Adern brauchst du eben. Ein Meter ist auch nicht 
viel.

Vorschlag:
Baue das erstmal schnell auf, einfach ein normales Kabel, nimm gerne 
auch gleich zwei Meter, und dann guck dir das Signal an. Wenn es doch 
schlecht aussieht dann kannst du Zeit für Verbesserungen investieren, 
wenn nicht hast du eine Lösung gefunden.
Gast #7101025
Lesenswert?

Manuel N. schrieb:
> Hi, ich habe einen I2C-Master und ca. 10cm entfernt einen I2C-Slave#0.
> Ca. 1 Meter entfernt befinden sich noch die Slaves #1, #2 und #3.

Ich plädiere erstmal dafür, auf die LP, wo dein Busmaster drauf ist, die 
zwei Hochzieher zu plazieren. Das gibt bei nicht angeschlossenen 
Baugruppen auf alle Fälle ein NAK und kein versehentliches ACK.

Und wenn deine weiteren Slaves auf anderen LP sind, dann dort nochmal 
zwei Widerstände, die dann z.B. 33k oder mehr groß sein können, bloß 
eben, damit ohne Ansteuerung die beiden Signale nicht herumfloaten 
können. Es könnte ja eine Strippe und ein nicht gesteckter Stecker 
zwischen Master und Slaves sein.

W.S.
Gast #7102392
Lesenswert?

Wenn Du den Pullup an der Senderseite machst, dann leitest Du ein 
Spannungsppotential an den Empfänger. Wenn Du den Pullup an die 
Empfängerseite machst, dann leitest Du ein Stromsignal zum Empfänger, 
dass dann am Pullup über den Spannungsabfall ein Spannungssignal 
erzeugt.
Beim Clock ist alles klar. Beim Data ist die Lage bidirektional.
Gehen wird beides, solange Du die maximale Kapazität des Busses nicht 
überschreitest und du keine Loopantennen aufspannst und Deine Umhebung 
halbwegs ruhig ist (kein GaN, keine kA-Pukse).
#7102559
Lesenswert?

Die meisten I2C-Module haben eh schon PullUps mit drauf, meist 10K. 
Damit ist die Gefahr, dass sie am Master fehlen, schon mal gebannt. 
Nichts spricht aber dagegen, am Master auch welche anzubringen.

Das Kabel sollte möglichst geringe Kapazitäten haben. Geschirmt oder 
verdrillt erhöht die Kapazität. Deshalb bevorzuge ich Modular Flachkabel 
und RJ10 als Stecker. Bewährt hat sich die Reihenfolge GND SDA VCC SCL. 
VCC trennt dabei SDA und SCL und versehentliche Richtungsvertauschung 
hat keine katastrophalen Auswirkungen.
Gast #7102585
Lesenswert?

MaWin schrieb:
> Stefan ⛄ F. schrieb:
>> Man kann SDA und SCL mit jeweils einer Versorgungsader (GND oder VCC)
>> verdrillen.
> Und was soll das dann bringen?

Das bringt eine möglichst hohe Kapazität, damit die Signalflanken nicht 
unnötig steil bleiben.

Jobst Q. schrieb:
> Die meisten I2C-Module haben eh schon PullUps mit drauf, meist 10K.
> Damit ist die Gefahr, dass sie am Master fehlen, schon mal gebannt.

Dafür die Gefahr, in Summe aller Module den Bus zu überlasten.

Das Ding heißt Bus ! An einem Bus hängen mehrere Geräte parallel, die 
Terminierung (Abschlußwiderstände) gehört an beide Enden und nicht 
irgendwo dazwischen.

Also Widerstände am Master - erstes Modul ohne - Leitung - zweites Modul 
ohne - drittes Modul ohne - viertes Modul mit Abschluß. Keine 
Sternverdrahtung, sondern von einem zum nächsten weiter. In der Praxis 
ist der Kram hoffentlich toleranter, aber es kostet auch nichts, das 
gemäß Lehrbuch zu schalten.
#7102614
Lesenswert?

Manfred schrieb:
> Jobst Q. schrieb:
>> Die meisten I2C-Module haben eh schon PullUps mit drauf, meist 10K.
>> Damit ist die Gefahr, dass sie am Master fehlen, schon mal gebannt.
>
> Dafür die Gefahr, in Summe aller Module den Bus zu überlasten.

Kommt selten vor bei 10K. Es sind schon die Adresskonflikte, die zu 
viele  Module nicht zulassen. Und wenn man den Bus multiplext mit 
tca9548a, ist jeweils nur einer der Busse aktiv.

> Das Ding heißt Bus ! An einem Bus hängen mehrere Geräte parallel, die
> Terminierung (Abschlußwiderstände) gehört an beide Enden und nicht
> irgendwo dazwischen.

Die PullUp-Widerstände haben eine ganz andere Funktion als Widerstände 
zur Terminierung. Nicht für alles, was Bus heißt, gelten dieselben 
Bedingungen.


> Also Widerstände am Master - erstes Modul ohne - Leitung - zweites Modul
> ohne - drittes Modul ohne - viertes Modul mit Abschluß. Keine
> Sternverdrahtung, sondern von einem zum nächsten weiter.

In der Praxis ergibt sich eine Sternverdrahtung schon allein aus der 
räumlichen Anordnung von verschiedenen Modulen. Und macht eigentlich 
auch keine Probleme.


> In der Praxis
> ist der Kram hoffentlich toleranter, aber es kostet auch nichts, das
> gemäß Lehrbuch zu schalten.

Doch, wenn man aus einer räumlichen Sternschaltung eine elektrische 
Reihenschaltung machen will, braucht man Leitungen hin und zurück und 
verdoppelt damit nahezu Leitungslänge und deren Kapazität. Und 
Leitungskapazität ist die deutlichste Begrenzung von I2C.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren