Zweifel, wenn Arduino eine Verbindung zu mehreren i2c-Geräten herstellt

Ich verwende Arduino nano, um mehrere i2c-Geräte anzusteuern, eigentlich handelt es sich um vorgefertigte Module, die bei eBay erhältlich sind. ads1115 ADC, ds3231 RTC, 20x4 Zeichen LCD i2c Modul, at24c02 EEPROM Modul

Alle diese Module haben I2C SDA & SCL Pull-up-Widerstände im Modul, bitte korrigieren Sie mich, wenn ich falsch liege.

Zweifel - wenn ich alle diese Geräte an denselben SDA- und SCl-i2c-Bus anschließe, was passiert mit den Pullup-Widerständen? der Theorie zufolge werden die Widerstände niedrig, da sie parallel konfiguriert sind, nicht wahr? bedeutet, dass der Pull-up-Widerstand niedrig wird?

Wie wirkt sich das auf mein Endgerät aus?

Gibt es einen bestimmten Abstand zwischen den SDA/SCL-Pins und dem Pull-up-Widerstand?

Wenn Sie Module mit vorgelöteten Pullup-Widerständen verwenden, können Sie alle Pullup-Widerstände bis auf 1 Modul manuell entfernen. Sie benötigen zwischen 1k und 10k Pullup für I2c, wobei 4,7k sehr Standard sind.

Antworten (3)

Ja du hast Recht. Der Widerstand wird niedrig und das ist nicht gut für Ihre Geräte, da der maximale Strom, der durch Pull-Down-Transistoren fließt, um ein Vielfaches ansteigt.

Aber es hängt auch von Ihrer Verkabelungskonfiguration, der Kabellänge und der Protokollbitrate ab. Typischerweise können Sie mehrere Pull-up-Widerstände näher an den I2C-Geräten haben.

Bitte lesen Sie diesen Artikel: Berechnung des I2C-Bus-Pullup-Widerstands

Und diese Antwort: Gibt es einen korrekten Widerstandswert für I2C-Pull-up-Widerstände?

Überprüfen Sie die Widerstandswerte. Wenn der resultierende Widerstand über 2 kOhm bei 400 kHz-1 MHz liegt, sind Sie mehr oder weniger sicher. Bei 100 kHz können Sie höhere Widerstandswerte bis zu insgesamt 10 kOhm verwenden.

Gibt es einen bestimmten Abstand zwischen den SDA/SCL-Pins und dem Pull-up-Widerstand? Mein Bus wird weniger als 100 kHz haben
@iopertyki Soweit ich weiß, gibt es keine "angegebene Entfernung". Ich würde sagen, dass dies irgendwie berechnet werden kann, wenn Sie den Widerstand / die Kapazität der Drähte / die Eingangskapazität / die genaue Frequenz kennen, aber soweit Sie diese Parameter nicht kennen, würde ich sagen, dass bis zu mehreren zehn Zentimetern in Ordnung sind nur ein Widerstand, aber mehrere davon sind auch in Ordnung. Wenn die Frequenz unter 100 kHz liegt, versuchen Sie, den Gesamtwiderstand näher an 10 kOhm oder etwas darunter zu bringen. Aber auch 2 kOhm und mehr sollten funktionieren. Sie müssen an Ihrem eigenen Gerät testen.

Wenn alle Ihre Module Pullup-Widerstände haben, ist der effektive Pullup-Widerstand der äquivalente parallele Wert dieser Widerstände. Dieser Wert ist möglicherweise zu niedrig, um eine Zusammenarbeit Ihrer Geräte zu ermöglichen.

Wenn Sie eine spezifischere Antwort wünschen, müssen Sie für alle Module, die Sie verbinden möchten, Links zu den Datenblättern des tatsächlichen Herstellers ( nicht zur eBay-Anbieterseite) bereitstellen. Wir müssen Spezifikationen für die einzelnen ICs sowie Schaltpläne für die Module sehen, die Sie verwenden möchten. Wenn Sie diese Informationen nicht finden können, sollten Sie nach anderen Modulen suchen.

Man würde typischerweise nur Klimmzüge am letzten Gerät in der Reihe von Geräten haben, um die besten Ergebnisse zu erzielen. Halten Sie Ihre Verkabelung kurz und ordentlich. Vergessen Sie nicht, alle Gnds zu verbinden.