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
:
Verschoben durch Admin
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.
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?
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.
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.
Manuel N. schrieb: > Also ist 4x 22kOhm unkritischer wie 1x 5,5kOhm? Und aus welchem Grund? Wenn man einen der Slaves mit 2x22k entfernt, hat man immer noch ca. 7k uebrig. Aber am besten so machen, wie es von WS bereits beschrieben wurde.
Manuel N. schrieb: > Und ja, ich werde ein geschirmtes USB-C > Kabel dafür verwenden, damit SDA und SCL möglichst voneinander > ferngehalten werden. USB-Adern sind verdrillt. Das ist das Gegenteil von "voneinander fernhalten".
MaWin schrieb: > USB-Adern sind verdrillt. > Das ist das Gegenteil von "voneinander fernhalten". Man kann SDA und SCL mit jeweils einer Versorgungsader (GND oder VCC) verdrillen.
Manuel N. schrieb: > Ich habe mir die frage gestellt, wie ich die Pullup-Widerstände am besten > platziere, ... Ganz einfach. Am Anfang und Ende der Leitung. Also am Master und am letztes Slave am Kabel.
Alter i2c ist fast dc. Am master ein paar pull up und gut is.
Aber es ist Open-Collector, was die Sache noch harmloser macht.
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).
Stefan ⛄ F. schrieb: > Man kann SDA und SCL mit jeweils einer Versorgungsader (GND oder VCC) > verdrillen. Und was soll das dann bringen?
MaWin schrieb: > Und was soll das dann bringen? Dann stören sich die beiden Leitungen nicht gegenseitig. VCC und GND sind HF technisch neutral/ruhig.
Stefan ⛄ F. schrieb: > VCC und GND > sind HF technisch neutral/ruhig. Das ändert sich mit dem verdrillen.
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.
:
Bearbeitet durch User
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.
Manuel N. schrieb: > Und ja, ich werde ein geschirmtes USB-C > Kabel dafür verwenden Stefan ⛄ F. schrieb: > Man kann SDA und SCL mit jeweils einer Versorgungsader (GND oder VCC) > verdrillen. Kann man. Aber nicht nachträglich bei einem USB-C Kabel.
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.
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.