Forum: Mikrocontroller und Digitale Elektronik i2c switchen mittels 744316


von Thomas (Gast)


Lesenswert?

Hallo,  ich habe vor mehrere i2c basierte Module an einen Master 
anzuschließen. Alle module sollen die gleiche Adresse haben, um 
Senderoutinen vereinfachen zu können. Nun will ich die Auswahl, welches 
von den Modulen angesprochen wird, mittels eines analog switches 
realsieren. I hatte vor den 74HC4316 zu benutzen. Dort kann i mittels 
Enable-Pins festlegen welche Ausgänge aktiv geschalten werden und welche 
nicht. Am Eingang sollte das SCL Signal der i2c busses liegen. Nun meine 
Frage:

Kann ich den SDA Strang direkt an die Slaves legen und nur den SCL durch 
die Analogschalter switchen oder ergeben sich dadurch an den anderen 
Slave unbestimmte Zustände?
Wenn dies nicht funzt, würde i beide Leitungen(SDA,SCL) switchen wollen. 
Hat jemand Erfahrung, ob dieser Baustein das problemlos kann?

PS: Die Variante der Erweiterung des i2c Busses mittels Muxers wie z.B. 
Maxim 4562 habe ich schon realisiert und die läuft auch. Nur sollen 
jetzt beliebig viele Module angeschlossen werden und die Auswahl 
trotzdem simpel bleiben.

Vielen Dank im Voraus.

Tom

von Falk B. (falk)


Lesenswert?

@ Thomas (Gast)

>Hallo,  ich habe vor mehrere i2c basierte Module an einen Master
>anzuschließen. Alle module sollen die gleiche Adresse haben, um

>Kann ich den SDA Strang direkt an die Slaves legen und nur den SCL durch
>die Analogschalter switchen oder ergeben sich dadurch an den anderen

Nein, das geht nicht.

>Hat jemand Erfahrung, ob dieser Baustein das problemlos kann?

Warum nimmst du nicht richtige I2C-MUXe? Z.B. PCA9594, gibts auch bei 
Reichelt. Damit kannst du bis zu 32 I2C Slaves mit gleicher Adresse 
ansprechen.

>jetzt beliebig viele Module angeschlossen werden und die Auswahl
>trotzdem simpel bleiben.

Beliebig viele wird eher schwer, schliesslich müssen die MUXe auch 
irgendwie angesteuert werden.

MFg
Falk

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Aber es sit doch Sinnlos nur weils die Programmierung (angeblich) 
vereinfacht, alle Adressen gleich zu wählen...

von Thomas (Gast)


Lesenswert?

Hallo, Danke für die schnellen Antworten,

es ist nicht sinnlos meiner Meinung nach, weil ich die Module 
austauschbar machen möchte. Es soll also jedes Modul an jedem Anschluss 
ansteckbar sein und dort auch genauso funktionieren wie an jedem 
anderen. Deshalb soll die Unterscheidung nicht mit der Adresse 
realisiert werden, sondern durch Vorauswahl. Das Ansprechen jeden 
einzelnen Moduls ist schon fertig. Dort befinden sich hinter einem i2c 
Muxer mehrere Digitalpotentiometer die LED Treiber steuern. Also die 
Ansteuerung der Digi-Potis läuft. Jetzt geht es darum dieses Modul zu 
vervielfältigen und austauschbar zu machen.
Für andere Tips bin dankbar.

von Flo (Gast)


Lesenswert?

Ich würde die Adresspins des Moduls mit auf die Steckverbindung legen. 
Der Modulsteckplatz kann dann die Adresse vorgeben. Jeder 
Modulsteckplatz setzt die Adresse beim Einstecken über die Adresspins 
des Moduls.

Gruß

Flo

von Falk B. (falk)


Lesenswert?

@ Thomas (Gast)

>es ist nicht sinnlos meiner Meinung nach, weil ich die Module
>austauschbar machen möchte. Es soll also jedes Modul an jedem Anschluss
>ansteckbar sein und dort auch genauso funktionieren wie an jedem

>Für andere Tips bin dankbar.

Nun, man kann an jedem Steckplatz mit ein paar freien Pins eine Adresse 
codieren, welche direkt an die Adresspins vopm I2C Poti geht. Damit ist 
auch ein eindeutiger Bezug zim Steckplatz definiert. Kostet nur drei 
oder vier Pins.

MfG
Falk

von Thomas (Gast)


Lesenswert?

hattet ihr euch verabredet mit dieser Antwort?

Die Idee ist gut, gefällt mir, Danke.
 Nur ein Problem löst sie noch nicht, die Erweiterbarkeit auf mehr als 4 
an einem Bus. Die Austauschbarkeit wäre damit gut erreicht, aber wenn i 
diese Vier Anschlüsse nun erweitern will auf 8 oder 16 gehts damit auch 
nicht. Dann wohl mit den i2c Switches oder den analogen switches oder 
habe ihr da auch noch ne andere Idee?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Soft TWI auf belibigen Pins

von Falk B. (falk)


Lesenswert?

@ Thomas (Gast)

> Nur ein Problem löst sie noch nicht, die Erweiterbarkeit auf mehr als 4
>an einem Bus. Die Austauschbarkeit wäre damit gut erreicht, aber wenn i

Also ich kann mit drei binären Signalen 8 verschiedene Zustände 
kodieren, 2^3=8 . . .

>diese Vier Anschlüsse nun erweitern will auf 8 oder 16 gehts damit auch
>nicht. Dann wohl mit den i2c Switches oder den analogen switches oder

Bei mehr als acht muss ein I2C Switch her. Aber mit einem 4-Kanal I2C 
Switch kannst du dann 32 Slaves ansprechen. Und da man acht I2C Swiches 
direkt an einen Bus hängen kann, wären dann bis zu 8*32 = 256 Slaves 
ansprechbar. Reicht das fürs erste?

MFg
Falk

von Thomas (Gast)


Lesenswert?

danke für die Erklärung der 2-er potenz. :-)

Also du meinst die Variante mit den Philips i2c Switches. Ja damit lässt 
es sich in Kombination mit den fest gelegten Adressen über die 
Steckkontakte lösen. Ich werde mir die Sache mal genau anschauen und 
wohl beide Varianten mal austesten.
Danke für den Tip mit den Steckern..

mfg tom

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.