i2c multiplexing

Gast #1587248
Lesenswert?

Hallo,

ich habe hier ein Problem, vielleicht kann mir jemand dabei helfen.
Ich habe 4 i2c Sensoren, die ich nacheinander auslesen will. Alle 4 
besitzen die gleiche HW Adresse. Die Leitungslänge beträgt ca 2m.

Die direkte Kommunikation (mit einem Sensor) funktioniert. Um nun alle 4 
anzusprechen verwende ich einen Multiplexer (4052BE). Allerdings bekomme 
ich keine Daten mehr von den Sensoren, sobald der Mux dazwischen hängt.

In den Sensoren sind 10k Pullups verbaut. Die SDA und SCL Leitungen habe 
ich schon versucht mit jeweils 10k vor dem µC hoch zu ziehen. Mit dem 
gleichen Erfolg. Ich habe leider kein Oszi, um mir die Leitung 
anzugucken.

Hat vielleicht jemand noch eine Idee?

Danke!
Gast #1587288
Lesenswert?

> Hat vielleicht jemand noch eine Idee?

Also theorethisch sollte das was du da machst funktionieren. Es ist nur 
wichtig das es nie zu undefinierten Pegeln an den nicht aktivierten 
Devices kommt!
Jetzt sagst du aber da in deinen Devices 10k Pullupseingebaut sind. Bist 
du dir da sicher? Das ist naemlich eigentlich Murks da man dann ja nicht 
viele Devices an einem Bus verwenden kann. Ein Hersteller der etwas 
standardconformes baut der wird immer OpenDrain Ausgaenge verwenden.

Wenn du die interne I2C Hardware deines Controllers verwendest dann 
musst du natuerlich sehr sicher sein erst umzuschalten wenn die 
Uebertragrung beendet ist. Es koennte sein das dich die Statemaschine 
beluegt, also bereits sagt sie sei fertig wenn sie noch das letzte Byte 
oder Bit uebertraegt. Mach da mal Testweise eine Wartezeit hin?

> Ich habe leider kein Oszi, um mir die Leitung
> anzugucken.

Und? Das ist doch I2C und kein 1Wire Abfall. Mach die Uebertragung 
einfach so langsam das du es mit deinem Multimeter oder zwei 
Leuchtdioden verfolgenkannst. Oder lass es mit 1kHz laufen und schau es 
dir mit deiner Soundkarte an.


Ansonsten koenntest du I2c auch noch in Software machen. In deinem Falle 
waere sogar eine Routine moeglich die alle drei ICs ohne Aufwand 
gleichzeitig einliesst.

Olaf
Gast #1587304
Lesenswert?

Hallo Olaf,

ja bzgl der 10k bin ich mir sicher. Es steht im Datenblatt.
Man kann eigentlich den Fehler beim Umschalten ausschliessen - denn mit 
dem MUX kann ich nicht mal einen Sensor ansprechen.

Viele Grüße
Alex

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren