Moin! Ich arbeite öfters mit I2C und weiß, das es auf die Pull-Ups drauf an kommt. Nun stellt sich mir die Frage, ich habe ein STM32F407.... nutze von diesem den I2C Bus 100KHz Clockrate, nun habe ich an dem I2C Bus 1.8K auf SCL und 1.8K auf SDA zu VCC 3.3V, bei 100 KHz. (Master) Ich möchte aber nun an den I2C Bus 5 weitere Platinen als Slave anschließen mit einem STM32F103.... über RJ45 Steckverbinder. Müsste ich an den 5 Platinen jeweils auch immer 2 Pullups bestücken, oder reicht es, wenn das lediglich nur der Master hat? Bin mir da etwas unschlüssig, aber wäre dann ja bei dem selben Bus, doppelt gemoppelt.. würde sich das auch negativ auswirken? Grüße, Daniel
Nein, ein Satz Pullups genügt. Mit 1,8k bist du schon auf der sehr starken Seite.
Je mehr pull-ups, umso niedriger der pullup-widerstand (R-Parallelschaltung) - irgendwann kommt der Punkt, an dem die treiber-pins den Bus nicht mehr weit genug runter ziehen können, und es funktioniert nicht mehr. Kommt auf den sink- Strom deiner Treiber an.
Man könnte auch mal in die sehr vorzüglichen Applikationsschriften des Herstellers (Philips, jetzt NXP) schauen. Da ist alles beschrieben.
Helmut -. schrieb: > Man könnte auch mal in die sehr vorzüglichen Applikationsschriften des > Herstellers (Philips, jetzt NXP) schauen. Ist doch sowas von Neunziger. Und wer fragt heute noch in mikrocontroller.net wo man doch alles mit chatGPT erschlagen kann.
Jan schrieb: > Kommt auf den sink- Strom deiner Treiber an. Die I²C-Spezifikation erlaubt normalerweise bis zu 3 mA. Mit 3,3 V / 1,8 kΩ geht das noch, mit zwei parallel nicht.
:
Bearbeitet durch User
Die meisten Fertigmodule haben PullUps von 10K. Davon kann man problemlos mehrere in einem Bus haben. Es ist auch gut, auf beiden Seiten PullUps zu haben, besonders bei längeren Zuleitungen.
Wastl schrieb: > Und wer fragt heute noch in mikrocontroller.net wo man doch > alles mit chatGPT erschlagen kann. Viel schlimmer sind die die im mikrocontroller.net schreiben obwohl sie nichts zu sagen haben.
Jobst Q. schrieb: > Die meisten Fertigmodule haben PullUps von 10K. Davon kann man > problemlos mehrere in einem Bus haben. Das ist der Arduino-Kompromiss zwischen "geht nicht", weil Pull-Up vergessen und "geht nur mit einem Slaves", weil bei mehreren der Strom für die Treiber zu hoch wird.
Clemens L. schrieb: > Die I²C-Spezifikation erlaubt normalerweise bis zu 3 mA. Mit 3,3 V / 1,8 > kΩ geht das noch, mit zwei parallel nicht. In der I2C-Spezifikation (S. 47 und 55) steht mindestens 3 mA, und auch nur im Standard Mode bzw. Fast Mode, beim Fast Mode Plus sind es 20 mA
:
Bearbeitet durch User
Stephan S. schrieb: > In der I2C-Spezifikation (S. 47 und 55) steht mindestens 3 mA, Mindestens muss der I2C-Baustein können, d.h. aber andererseits, dass man da drunter bleiben sollte. Also die PUs auf höchstens 3mA dimensionieren! Und damit ist die Aussage von Clemens L. völlig richtig. Jobst Q. schrieb: > Die meisten Fertigmodule haben PullUps von 10K. Davon kann man > problemlos mehrere in einem Bus haben. Mag ja noch gehen bei sehr kurzen Verbindungen. Ich selber würde trotzdem mindestens 1mA spendieren: bessere Flanken, bessere Störsicherheit. Also höchstens 3k3 in 3V3-Systemen bzw. 4k7 in 5V-Systemen.
Wastl schrieb: > Und wer fragt heute noch in mikrocontroller.net wo man doch > alles mit chatGPT erschlagen kann. Kann man: "Ja, für eine I2C-Verbindung sollten Pull-up-Widerstände an jedem Bus verwendet werden, nicht an jeder Karte. Diese Widerstände sind wichtig, um die Datenleitungen auf ein definiertes logisches Niveau zu ziehen und Stabilität in der Kommunikation zu gewährleisten. Typischerweise werden Pull-up-Widerstände zwischen den SDA- und SCL-Leitungen und der Versorgungsspannung platziert."
(prx) A. K. schrieb: > Wastl schrieb: >> Und wer fragt heute noch in mikrocontroller.net wo man doch >> alles mit chatGPT erschlagen kann. > > Kann man: "Ja, für eine I2C-Verbindung sollten Pull-up-Widerstände an > jedem Bus verwendet werden, nicht an jeder Karte. Diese Widerstände sind > wichtig, um die Datenleitungen auf ein definiertes logisches Niveau zu > ziehen und Stabilität in der Kommunikation zu gewährleisten. > Typischerweise werden Pull-up-Widerstände zwischen den SDA- und > SCL-Leitungen und der Versorgungsspannung platziert." "Erschlagen" ist da ein treffender Ausdruck.
Michael X. schrieb: > Nein, ein Satz Pullups genügt. Mit 1,8k bist du schon auf der sehr > starken Seite. Auf einer bereits gefährlich starken ... Jan schrieb: > Je mehr pull-ups, umso niedriger der pullup-widerstand > (R-Parallelschaltung) - irgendwann kommt der Punkt, an dem die irgendwann kommt der Punkt, an dem jeder merkt, dass I2C für Chip-2-Chip Kommunikation ausgelegt ist, bei dem die Anzahl der Teilnehmer bekannt ist. Bei Board-2-Board nutzt man keinen (aktiven) I2C-Bus sondern nur die Spannungen und geht an Ort und Stelle über einen Treiber. Damit ist der Bus spannungssicher und stromunabhängig. Du brauchts nur einmal irgendwo einen Lastwiderstand gegen VDD und GND und nimmst so Stromeinkopplungen weg. (wegen du = R * di !) Auf den boards baut man hinter dem Treiber sein eigenes maximal niederohmiges I2C-Netzwerk.
Jobst Q. schrieb: > "Erschlagen" ist da ein treffender Ausdruck. Inwiefern? Ist doch eine passende und korrekte Antwort.
Klaus H. schrieb: > Also höchstens 3k3 in 3V3-Systemen bzw. 4k7 in 5V-Systemen. ... und mindestens 1k / 1,5k füge ich hinzu. Das Interessante ist dann, wenn der Teilnehmer versucht, Clock-Stretching oder ähnliche Spässe zu machen und mit seinen 3mA maximum auf die manche Chips ausgelegt sind, gegen die vielen pulls kämpft.
A.ndi F. schrieb: > Klaus H. schrieb: >> Also höchstens 3k3 in 3V3-Systemen bzw. 4k7 in 5V-Systemen. > ... und mindestens 1k / 1,5k füge ich hinzu. > > Das Interessante ist dann, wenn der Teilnehmer versucht, > Clock-Stretching oder ähnliche Spässe zu machen und mit seinen 3mA > maximum auf die manche Chips ausgelegt sind, gegen die vielen pulls > kämpft. Warum das denn? meine 1.8K waren eigentlich schon laut Datenblatt falsch, denn im Datenblatt von meinem STM32F407 stehen 2x 4k7 Widerstände drin.
Daniel S. schrieb: > meine 1.8K waren eigentlich schon laut Datenblatt falsch, denn im > Datenblatt von meinem STM32F407 stehen 2x 4k7 Widerstände drin Die Minimal- und Maximalwerte der I2C-Pullup-Widerstände berechnet man aus den Stromgrenzen und der Gesamtkapazität am Bus. Ich kann mir nicht vorstellen, dass das Datenblatt des STM32F407 4k7-Widerstände VORSCHREIBT. Wo soll das genau stehen? LG, Sebastian
(prx) A. K. schrieb: > Jobst Q. schrieb: >> "Erschlagen" ist da ein treffender Ausdruck. > > Inwiefern? Ist doch eine passende und korrekte Antwort. "Ja, für eine I2C-Verbindung sollten Pull-up-Widerstände an jedem Bus verwendet werden, nicht an jeder Karte." Das ist falsch. Mit PullUp-Widerständen an jeder Karte werden kapazitive und induktive Einstreungen auf die Leitung reduziert. Deshalb sind sie zu empfehlen.
A.ndi F. schrieb: > irgendwann kommt der Punkt, an dem jeder merkt, dass I2C für Chip-2-Chip > Kommunikation ausgelegt ist, bei dem die Anzahl der Teilnehmer bekannt > ist. Ka, die Anzahl sollte konstant sein. > Bei Board-2-Board nutzt man keinen (aktiven) I2C-Bus sondern nur die > Spannungen und geht an Ort und Stelle über einen Treiber. Das ist mir zu pauschal vereinfacht. Ich nutze Arduino und Boards mit z.B. D/A-Wandler oder Strommessung, läuft einwandfrei. Die liegen allerdings im selben Gehäuse, der gesamte I2C ereicht maximal 30cm - das finde ich unkritisch und dürfte im Rahmen seiner Spezifikationen bleiben. Jobst Q. schrieb: > "Ja, für eine I2C-Verbindung sollten Pull-up-Widerstände an > jedem Bus verwendet werden, nicht an jeder Karte." > > Das ist falsch. Mit PullUp-Widerständen an jeder Karte werden kapazitive > und induktive Einstreungen auf die Leitung reduziert. Deshalb sind sie > zu empfehlen. Ich denke auch, dass das nicht schadet. Es bleibt aber zu beachten, dass die Summe aller nicht zu niederohmig wird. In der Praxis bekommt man einen echten Bus mit Abschluß an den beiden Enden kaum umgesetzt, das wird eher ein Stern oder Baum.
Hi Was soll eigentlich das ganze geeiere hier? Es gibt die AppNote UM10204 I2C-bus specification and user manual Da findet man die Berechnungen Rpmax und Rpmin und noch vieles anderes zu I2C. MfG Spess
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.