I2C-Kapazitätsproblem

Ich weiß, dass ähnliche Fragen schon einmal gestellt wurden. Ich möchte nur ein paar Details besser verstehen. Bitte bei mir tragen.

Ich habe gelernt, dass ich einen analogen CMOS-Schalter oder einige andere dedizierte Busschalter wie einen Multiplexer verwenden kann, um ein Segment eines Busses "abzuschalten". Jetzt frage ich mich: Wenn sich ein Schalter im ausgeschalteten Zustand befindet, trägt der Schalter selbst zur Buskapazität bei? Wenn ja, wie groß ist der Einfluss? Gibt es eine Möglichkeit, einen Teil des Busses abzuschalten und seinen Einfluss (einschließlich des Schalters) auf die Buskapazität vollständig zu entfernen?Schema eines Teils des Systems

Meine Anwendung erfordert eine große Menge (könnte über 400 sein) von I2C-Geräten, die an den Bus angeschlossen sind. Es müssen jedoch immer nur 2 oder 3 online sein. Ich denke, die Kapazitätsgrenze von 400 pF (oder 3000 pF bei Verwendung eines Puffers?) Ist hier das Hauptanliegen. Ich glaube, dass eine Kaskadenstruktur von Busschaltern das Problem lösen könnte, aber ich brauche ein modulares System, was bedeutet, dass jedes Gerät mit einem Schalter und keiner Kaskadenstruktur ausgestattet ist.

Verzeihen Sie, wenn ich das nicht deutlich mache. Ich stelle hier zum ersten Mal Fragen. Danke!

Anstelle von 400 Schaltern könnten Sie 50 1-zu-8-Muxes in Betracht ziehen. Oder noch besser, verwenden Sie eine baumartige Konfiguration. Sie benötigen jedoch einen sehr starken Klimmzug.
Stellen Sie sich vor, dass der (CMOS-) Schalter auf jeder Seite einen kleinen Kondensator gegen Masse hat. Also ja, jeder Schalter fügt Kapazität hinzu. So implementiert, wird die Geschwindigkeit des Busses stark eingeschränkt! Sie sollten nicht alle Taktgeber an einen Bus anschließen, sondern eine baumartige Struktur (mit Puffern) erstellen, um die Anzahl der von einem Ausgang angesteuerten Eingänge zu begrenzen. Anstatt den SCL umzuschalten, sollten Sie einen Chip-Select-Eingang von enable verwenden. Das Umstellen der Uhr selbst kann Probleme verursachen. Deshalb haben wir Chip-Select-Eingänge.
Gibt es einen Grund für Sie, sich nicht für CAN-Bus zu entscheiden?
Zusätzlich zu dem, was @Harry geschrieben hat: Erinnerungen an einen überwucherten I2C-Bus
@next-hack, danke! Ich dachte an die baumartige Struktur, die ich als „Kaskaden“-Strukturen erwähnte. Ich wollte die baumartige Struktur vermeiden, damit jeder Teil des Systems identisch gemacht werden kann (damit ich das System modular machen kann). Ich bin immer noch nicht gut genug mit meinem Englisch. bitte entschuldige mich :)
@Bimpelrekkie Vielen Dank! Entschuldigung, ich habe die Kaskadenstruktur nicht klargestellt. Ich sprach von der baumartigen Struktur. Ich bin mir auch nicht ganz sicher, ob die Chipauswahl aktiviert ist. Wird die Anzahl der Kabel dramatisch erhöht, wenn sich der Master an einem Ende des Busses befindet?
@HarrySvensson Danke! Ich studiere immer noch die verschiedenen Busse und bin noch nicht mit genügend Wissen ausgestattet, um zu entscheiden, welcher besser ist. nxp.com/docs/en/application-note/AN10216.pdf ist das Dokument, auf das ich verwiesen habe. Es scheint, als wäre CAN teurer? und es ist nicht ganz geeignet für Anwendungen, bei denen Busteilnehmer jederzeit ein- und aussteigen können? Entschuldigung, wenn ich meine Fragen nicht klar stelle..

Antworten (1)

Wenn sich ein Schalter im ausgeschalteten Zustand befindet, trägt der Schalter selbst zur Buskapazität bei?

Natürlich ja. Der Schalter wird keine Kapazität von 0 haben. Wie viel Kapazität es hat, können Sie natürlich im Datenblatt nachschlagen.

Denken Sie daran, dass einige IIC-Slaves die Taktleitung auf einen niedrigen Wert treiben können, um eine Taktdehnung durchzuführen . Dies funktioniert nicht, wenn die Schalter nicht bidirektional sind. Wenn Sie sicher wissen, dass Ihre Slaves nicht versuchen werden, die Taktleitung zu treiben, können Sie unidirektionale Schalter (Puffer) verwenden.

400 irgendetwas auf eine IIC-Buslinie zu setzen, ist eine schlechte Idee. Unabhängig davon, ob diese Verbindungen zu den Eingängen von Analogschaltern oder den Endgeräten selbst führen, wird es eine beträchtliche Kapazität geben. Dies könnte überwunden werden, indem der IIC-Bus langsam betrieben wird. Allerdings müssen Sie prüfen, wie hoch sich die Ableitströme aufsummieren. Da gibt es eine harte Grenze.

Insgesamt sollten Sie einen Schritt zurücktreten und überlegen, wie Sie dieses Problem auf einer höheren Ebene anders lösen können. Das ist einfach nicht der richtige Weg.

Danke! Vielleicht muss ich wirklich in Betracht ziehen, andere Methoden als I2C für diese Anwendung zu verwenden. Könnten Sie mir einige Ratschläge oder Links zu verwandten Dokumenten geben? Ich hoffe, das würde Sie nicht beunruhigen. Ich würde das wirklich zu schätzen wissen!
Ich schließe mich dem an, auch 400 von allem, was nach vielen Kabeln und Drähten riecht, werden beteiligt sein, und I2C neigt dazu, eine starke Abneigung gegen lange (dh kapazitive) Kabel zu haben. Dies würde wahrscheinlich besser von intelligenten Sensoren wie einem Mikro mit ein paar I2C-Sensoren wie 10-20, die alle physisch nahe und mit kurzer Verkabelung sind, bedient werden. Die Mikros können über WLAN (ESP8266), CAN-Bus oder sogar Ethernet vernetzt werden, die alle größere Entfernungen viel besser bewältigen als I2C.