Pullup-Widerstände am I2C-Port

Geben Sie hier die Bildbeschreibung ein

Hallo allerseits, ich bin verwirrt über I2C-Pullup-Widerstände. Ich verwende 4 I2C-Sensoren. Ich bin mir nicht sicher, ob Pull-up-Widerstände zählen. Ich verwende alle Sensoren für Pull-up-Widerstände. Reicht es aus, wenn ich nur einen I2C-Port verwende (ich meine einen Port für alle Sensoren)?

Außerdem habe ich gehört "Pull-up-Widerstände sind nicht erforderlich, da STM32F bereits einen hat." ist das wahr? Bitte helfen Sie mir dabei. Ich werde wirklich dankbar sein.

Herzlich willkommen auf der Seite. Diagramme für die Bus-Pull-up-Widerstandswerte bei verschiedenen Geschwindigkeiten und sind in der I2C-Bus-Spezifikation angegeben. Schau dir das an, du findest es im Internet. Lassen Sie sich übrigens nicht dazu verleiten, viele kleine Fragen rund um das gleiche Problem zu stellen, da die Seite kein Hilfeforum, sondern eine Q&A-Seite ist. Nochmals, willkommen.

Antworten (2)

Die Anzahl der Pull-up-Widerstände spielt keine Rolle, es ist der kombinierte Wert von ihnen, der zählt. Sie haben vier Widerstände, zwei 10k und zwei 4k7. Das ergibt einen äquivalenten Gesamtwiderstand von 1,6 kΩ, was etwa 2 mA Strom entspricht, der zum Ansteuern des Busses benötigt wird. Es liegt innerhalb der I2C-Spezifikation und es ist in Ordnung, wenn alle Chips über ausreichend starke E / A-Stufen verfügen, um diesen Strom zu treiben. Sie müssen also die Datenblätter jedes Chips überprüfen, da die meisten Chips dies können, aber einige spezielle Chips möglicherweise nicht in der Lage sind, dies zu treiben. In der Praxis würde niemand vier separate Widerstände verwenden, sondern einen einzigen Widerstand mit geeigneter Größe. Also ja, es reicht aus, nur einen Widerstand zu verwenden.

Ja, die MCU enthält per Software schaltbare Pull-Ups an IO-Pins, also ist es keine Lüge, aber zu sagen, dass sie keine externen Widerstände benötigt, ist in der Praxis einfach nicht wahr. In einigen seltenen Fällen mögen sie in Ordnung sein, aber es ist so unwahrscheinlich, dass es in der Praxis keinen Grund gibt, externe Pull-up-Widerstände wegzulassen. Die Pull-ups in STM32-MCUs betragen ungefähr 40 k, was im Allgemeinen für I2C ungeeignet ist, aber es hängt von vielen Faktoren ab, ob Sie in Ihrer Anwendung Widerstände von bis zu 40 k verwenden können.

Reicht es aus, wenn ich nur einen I2C-Port verwende (ich meine einen Port für alle Sensoren)?

Sie benötigen nur einen Satz Widerstände pro I2C-Port: -

Geben Sie hier die Bildbeschreibung ein

Bild von EDN .

Ich habe gehört "Pull-up-Widerstände sind nicht erforderlich, da STM32F bereits einen hat." ist das wahr?

Das Gerät verfügt möglicherweise über interne Pull-up-Widerstände, aber sind diese der richtige Wert für die von Ihnen benötigte Datengeschwindigkeit? Sie müssen auch in der Lage sein, die Widerstandswerte abhängig von Datengeschwindigkeit und Buskapazität anzupassen ( siehe hier und hier ). Es ist unwahrscheinlich, dass die verfügbaren internen Klimmzüge den meisten Anforderungen genügen.

Thx viel für Hilfe :)