Forum: Mikrocontroller und Digitale Elektronik Multiplexer I2C programmieren


von donluis (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich möchte gerne zwei BMP085 Sensoren auslesen. Da die mit dem µC über 
I2C kommunizieren und ich am µC nur ein SDA und SCL PIN habe, habe ich 
mir den PCA9545 bestellt. Das ist ein Multiplexer, der mit 4 slaves 
arbeiten kann. Nach Datenblatt möchte ich gerne die slave adressen 
zuweisen und die channel auslesen. Meine problem ist, das ich keine 
Adressen habe, die ich beschreiben kann? Ich bin noch relativ neu in der 
Programmierung von µC und bisher habe ich Register in der Form (z.B. 
DDRD = 255) beschrieben. Beim Multiplexer fehlt mir die Information im 
Datenblatt. Wie soll ich dem Multiplexer sagen ob er lesen oder 
schreiben soll bzw. mit welchem Kanal er arbeiten soll. Ich weiß wie das 
Register aussehen soll nur nicht wie ich die Information dem MP 
übermitteln kann.

Ich hab meinen Schaltplan und das Datenblatt des PCA9545 beigefügt, wär 
super wenn mir da einer weiterhelfen kann?

von Matthias (Gast)


Lesenswert?

donluis schrieb:
> Nach Datenblatt möchte ich gerne die slave adressen
> zuweisen und die channel auslesen. Meine problem ist, das ich keine
> Adressen habe, die ich beschreiben kann?

Die BMP085 haben lt. Datenblatt (4.2) die festen Adresse 0xEF (read) und 
0xEE (write). Suchst du die?

von Tim R. (vref)


Lesenswert?

Den Multiplexer kannst du dir schenken.
Siehe BMP085 Datenblatt 4.2: "There is an easy way to connect two BMP to 
the same I2C bus: ..."

von Jörg S. (joerg-s)


Lesenswert?

donluis schrieb:
> Nach Datenblatt möchte ich gerne die slave adressen
> zuweisen...
Zuweisen? Der Multiplexer ist nur ein Schalter. Der hat selber eine 
Adresse (0x70), aber was an den Eingängen hängt interessiert den nicht.

> Meine problem ist, das ich keine
> Adressen habe, die ich beschreiben kann?
Adresse ist wie gesagt 0x70 (wenn A0 und A1 auf low hängt).

> Ich bin noch relativ neu in der
> Programmierung von µC und bisher habe ich Register in der Form (z.B.
> DDRD = 255) beschrieben.
Der Multiplexer hat auch EIN Register. Und da es nur eins ist, muss man 
dem Multiplexer nicht sagen in welches Register man schreibt, er macht 
alles in das eine Register.
Das läuft aber alles über I²C, hat also mit der bisherigen Register 
Adressierung im µC selber nicht viel zu tun.

> Wie soll ich dem Multiplexer sagen ob er lesen oder
> schreiben soll bzw. mit welchem Kanal er arbeiten soll.
Das ist in Figure.4 bzw. Table1 im Datenblatt beschrieben.

von donluis (Gast)


Lesenswert?

danke schon mal für eure antworten,

werde erst mal versuchen wie im BMP085 datenblatt beschrieben mit XCLR 
ohne multiplexer auszukommen. Stand komischerweise nicht in meinem 
Datenblatt, dass ich heruntergeladen hab drin. Jetzt hab ich mir das 
Datenblatt direkt von der Bosch homepage runtergeladen und da stands 
tatsächlich dabei.

Werde bei einem BMP XCLR auf high setzen während ich den andern auslese 
und umgekehrt, mal gucken obs klappt...

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.