Forum: Mikrocontroller und Digitale Elektronik I²C Bus Teilsegmente abkoppeln


von Tobias E. (m1k3y)


Lesenswert?

Ich habe an dieser Stelle mal eine etwas knifflige Frage.

Ich habe einen I²C-Bus, der aus einem Hauptsegment und (bis zu) 20 
Subsegmenten besteht, die alle mit 5V Pegeln arbeiten.

Um es gleich vorweg zu klären: Ich suche keinen Level-Shifter, keine 
galvanische Isolation und auch keine Multiplexer.

Ich möchte, dass sich alle Segmente wie ein Bus verhalten, Bei Bedarf 
aber aufgesplittet werden können und ein anliegender Pegel sich nicht 
auf andere Segmente fortbewegt.

Am besten würde das ganze funktionieren, wenn ich die einzelnen Segmente 
mit Relais verbinden oder trennen könnte, das kommt aber aus Gründen des 
Platzmangels, des Stromverbrauchs und der niedrigen 
Schaltgeschwindigkeiten nicht in Frage.

Ich bin für jeden Vorschlag dankbar.

von dunno.. (Gast)


Lesenswert?

Beim aufsplitten eines I2C würde sich fur mich zuerst die frage stellen 
wie du da die pullups unterbringen willst..? Müssen die teilsegmente 
autark arbeiten können? Wozu der zirkus?

von c-hater (Gast)


Lesenswert?

Tobias E. schrieb:

> Am besten würde das ganze funktionieren, wenn ich die einzelnen Segmente
> mit Relais verbinden oder trennen könnte, das kommt aber aus Gründen des
> Platzmangels, des Stromverbrauchs und der niedrigen
> Schaltgeschwindigkeiten nicht in Frage.
>
> Ich bin für jeden Vorschlag dankbar.

Analogschalter natürlich. 1/2 4066 pro abzutrennendem Segment.

von Tobias E. (m1k3y)


Lesenswert?

Pull-Ups würden auf dem Hauptsegment genügen. Die Subsegmente müssen 
nicht autark funktionsfähig sein.

Den Zirkus veranstalte ich, da ich die SDA und SCL Leitungen 
gleichzeitig noch als Rows und Columns für eine Scan-Matrix verwende.

von Tobias E. (m1k3y)


Lesenswert?

c-hater schrieb:
> Analogschalter natürlich. 1/2 4066 pro abzutrennendem Segment.

Das von dir angegebene Bauteil ist ein Step-Down. Ich glaube nicht, dass 
mir das weiterhilft. Vor allem, da ich 5V Pegel habe.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

dunno.. schrieb:
> Müssen die teilsegmente autark arbeiten können? Wozu der zirkus?
Insbesondere deshalb, weil der I²C an sich das Zeug zum Multimaster-Bus 
hat.

> Beim aufsplitten eines I2C würde sich fur mich zuerst die frage stellen
> wie du da die pullups unterbringen willst..?
Wenn man eh schon Schalter für das Auftrennen braucht, dann kann man 
nötigenfalls auch noch Pullups dazuschalten...

Tobias E. schrieb:
> Das von dir angegebene Bauteil ist ein Step-Down.
Such mal unter Verwendung aller gebotenen Stichworte nach "4066 
Analogschalter"...

Tobias E. schrieb:
> Pull-Ups würden auf dem Hauptsegment genügen. Die Subsegmente müssen
> nicht autark funktionsfähig sein.
Man lässt CMOS Eingänge niemals offen. Bei einem offenen CMOS Eingang 
pendelt sich die Eingangsspannung gerade so ein, dass beide 
Eingangs-Fets von Vcc nach GND leiten.

: Bearbeitet durch Moderator
von Tobias E. (m1k3y)


Lesenswert?

Lothar M. schrieb:
> Such mal unter Verwendung aller gebotenen Stichworte nach "4066
> Analogschalter"...
Danke, das ist tatsächlich das, was ich suche.

> Tobias E. schrieb:
>> Pull-Ups würden auf dem Hauptsegment genügen. Die Subsegmente müssen
>> nicht autark funktionsfähig sein.
> Man lässt CMOS Eingänge niemals offen. Bei einem offenen CMOS Eingang
> pendelt sich die Eingangsspannung gerade so ein, dass beide
> Eingangs-Fets von Vcc nach GND leiten.
Die bleiben auch nicht offen. Wenn der Bus aufgesplittet wird, definiert 
ein Mikrocontroller die Pegel auf den Subsegmenten. Die Leitungen sind 
dann auch in Benutzung, werden aber eben nicht als I²C verwendet.

von Torben K. (tokuhila)


Lesenswert?

NXP hat passende Hubs im Sortiment

von tux (Gast)


Lesenswert?

Hi,

wir verwenden für so etwas den PCA9548a (bei uns von TI)

http://www.ti.com/lit/ds/symlink/pca9548a.pdf

von Tobias E. (m1k3y)


Lesenswert?

tux schrieb:
> Hi,
>
> wir verwenden für so etwas den PCA9548a (bei uns von TI)
>
> http://www.ti.com/lit/ds/symlink/pca9548a.pdf

Sieht ganz nett aus. Es hat aber den Anschein, als ob der I²C Master 
immer am Master-Port des Chips anliegen muss. Das ist in meinem Fall 
leider nicht möglich, da jedes Device zum Master werden kann.

von Tobias E. (m1k3y)


Lesenswert?

Torben K. schrieb:
> NXP hat passende Hubs im Sortiment

Könntest du das bitte etwas spezifizieren? Das wäre sehr hilfreich.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Tobias E. schrieb:
> Den Zirkus veranstalte ich, da ich die SDA und SCL Leitungen
> gleichzeitig noch als Rows und Columns für eine Scan-Matrix verwende.

Tobias E. schrieb:
> Das ist in meinem Fall
> leider nicht möglich, da jedes Device zum Master werden kann.

Du willst also einen Multimaster I2C Betrieb machen und ueber die selben 
Leitungen auch noch GPIO laufen lassen?
OK, ich finde grad' nichts, wo explizit drinnensteht: Das geht nicht.
Aber ich persoenlich wuerd' mir sowas ums Verrecken nicht ans Bein 
binden wollen. Das schreit fuer mich nach einer Baustelle, die nur 
Aerger macht.

Damit's nicht nur ausschliesslich destruktiv wird: Mit den CMOS 
Analogschaltern geht I2C multiplexen prinzipiell, bloss muss man ein 
Auge auf den Widerstand haben, den diese Schalter im durchgeschalteten 
Zustand haben, insbesondere, wenn der Schalter an kleinen 
Betriebsspannungen 3.3V..5V haengt. Da gibts spezielle Typen, die auf 
niederohmig gezuechtet sind.

Gruss
WK

von Tobias E. (m1k3y)


Lesenswert?

Dergute W. schrieb:
> Moin,
>
> Tobias E. schrieb:
>> Den Zirkus veranstalte ich, da ich die SDA und SCL Leitungen
>> gleichzeitig noch als Rows und Columns für eine Scan-Matrix verwende.
>
> Tobias E. schrieb:
>> Das ist in meinem Fall
>> leider nicht möglich, da jedes Device zum Master werden kann.
>
> Du willst also einen Multimaster I2C Betrieb machen und ueber die selben
> Leitungen auch noch GPIO laufen lassen?
> OK, ich finde grad' nichts, wo explizit drinnensteht: Das geht nicht.
> Aber ich persoenlich wuerd' mir sowas ums Verrecken nicht ans Bein
> binden wollen. Das schreit fuer mich nach einer Baustelle, die nur
> Aerger macht.

Das mit dem GPIO dient quasi einer Positionsbestimmung der einzelnen 
I²C-Devices. Da es sich hierbei ausschließlich um Mikrocontroller 
handelt gibt das auch keine lustigen Missverständnisse auf dem Bus. 
Während dem normalen Betrieb ist das System dauerhaft als I²C 
geschaltet. Die Sonderfunktion kommt nur während der Initialisierung 
meines Systems zum Einsatz oder in besonderen Grenzfällen.

Ich stimme dir zu, dass das aus elektronischer Sicht keine schöne Lösung 
ist, für meinen Anwendungszweck aber genau das Richtige.

> Damit's nicht nur ausschliesslich destruktiv wird: Mit den CMOS
> Analogschaltern geht I2C multiplexen prinzipiell, bloss muss man ein
> Auge auf den Widerstand haben, den diese Schalter im durchgeschalteten
> Zustand haben, insbesondere, wenn der Schalter an kleinen
> Betriebsspannungen 3.3V..5V haengt. Da gibts spezielle Typen, die auf
> niederohmig gezuechtet sind.

Gut zu wissen. Ich werde mich mal schlau machen. Jetzt weiss ich ja 
wonach ich suchen muss.

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
Noch kein Account? Hier anmelden.