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!
Benutz lieber einen speziellen I2C Multiplexer wie PCA9548 oder PCA9547. Den 9548 gibt's bei Reichelt und funktioniert bei mir problemlos.
Hallo Jörg, weisst du, ob es den als DIP gibt? Oder kriegt man den 9548 einigermaßen gelötet? Danke! Alex
Ist in SO-24 Gehäuse, das sollte man schaffen :) Für max. 4 Kanäle kannst du auch den 9546 nehmen (SO-16 Gehäuse).
> 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
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
Hallo, Hier gibts einen Schaltplan mit Multiplexer, der Funktioniert. Beitrag "Re: Heizungssteurung im Eigenbau" Weil so viele Sensoren dran hängen muss gemultiplext werden.
krach schrieb:
> Ich habe 4 i2c Sensoren
Ist der Sensor ein Geheimnis? Wie heisst der denn?
> denn mit > dem MUX kann ich nicht mal einen Sensor ansprechen. Dann machst du wohl was falsch. Wie hast du denn die DREI Betriebsspannungsanschluesse angeschlossen? Olaf
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.