2 Bausteine an sda / scl

Hallo zusammen,
ich möchte 2 Bausteine einen GY-65 Bosch BMP085 und einen DS3231 zusammen an den PIns SDA und SCL betreiben. der BMP hat eine Betriebsspannung bis 3,6 Volt und der DS 3231 hat eine bis 5 Volt, beides soll an einen MEGA . Später soll noch ein Lichtsensor BH1750FVI Digital dazu der auch bis 5 Volt hat. Kann hier nichts kaputt gehen , ich denke da haupsächlich an den BMP. Eine kurze Info von euch wäre toll.
Gruß Heinz

Für den BMP085 brauchst Du einen Pegelwandler
Grüße Uwe

Er könnte auch alle Sensoren auf 3,3V laufen lassen.
Wenn die anderen bis 3,3V runter gehen...

Hallo Uwe,

danke für die schnelle Antwort, bitte etwas mehr Info. Wo genau setzte ich den ein bzw. dazwischen. Den kann ich auch nehmen da die oder der andere Baustein unbedingt 5 Volt haben . Für eventuell weitere Erklärungen bedanke ich mich schon jetzt.

Gruß Heinz

hi,

das wäre dann so ein dingelchen. einfach dazwischen hängen...

gruß stefan

Sollte der Wandler für I2C nicht bidirektional sein?

http://www.watterott.com/de/4-channel-I2C-safe-Bi-directional-Logic-Level-Converter-BSS138

Das ist das gleiche in grün - nur 4-Kanal.

Für mich sehen die Transistor Shifter nach Einweg aus. Also untauglich für I2C.

Für I2C benötigt man aber Bidirektional!

Hallo,
nochmals Danke für die Info´s ich habe mich nach etwas einlesen in die Materie dann für den
http://www.watterott.com/de/4-channel-I2C-safe-Bi-directional-Logic-Level-Converter-BSS138
entschieden, wenn mein Mega abfackelt würde ich mich noch einmal melden.

Gruß Heinz

mde110:
Für mich sehen die Transistor Shifter nach Einweg aus. Also untauglich für I2C.

Die Pegelwandler [1], die nur aus Transistoren und Widerständen aufgebaut sind, arbeiten ebenfalls bidirektional. Daher kann man sie für I2C verwenden. Der Nachteil bei diesen Wandlern liegt bei der max. Geschwindigkeit, so dass man sie z.B. für SPI nur bei niedrigen Geschwindigkeiten nutzen kann.

[1] Pegelwandler - Watterott electronic & Level shifter - Watterott electronic

Gruß
Andreas

Die Betriebsspannungen sind so nicht korrekt angegeben. Ich entnehme den Datenblättern:
BMP085: Betriebsspannung 1.8V bis 3.6V
DS3231: Betriebsspannung 2.3V bis 5.5V

D.h.: Mit einer Betriebsspannung von 3.3V kommen beide I2C-Geräte bestens zurecht.

I2C Geräte haben Open-Collector Ausgänge, d.h. der Pegel an diesen Ein-/Ausgängen wird nur durch die angeschlossenen PullUp-Widerstände bestimmt und vorgegeben.

Die Wire-Library des Arduino aktiviert bei “wire.begin()” die im Arduino eingebauten “schwachen” 5V PullUp-Widerstände (ca. 20K bis 50K), so dass sich auf den SDA/SCL daraus resultierend 5V einstellen würde.

Die “GY-65” Platinen haben aber eigene PullUp-Widerstände, die stärker sind (4.7K?). Wenn Du also die GY-65 Platine an den Arduino hängst, mit 3.3V versorgst und die Wire-Library startest, resultiert daraus eine Spannung von “knapp über 3.3V” auf SDA/SCL, womit das BMP085 Modul schon mal bestens funktioniert, denn der Arduino kann Spannungen von “knapp über 3.3V” bestens als HIGH-Pegel erkennen (0,6*5V = 3.0 V Mindestspannung für HIGH) und ein paar Zehntel über 3.3V schaden dem BMP085 nicht.

Wenn Du jetzt ein DS3231 Modul ebenfalls mit 3.3V Betriebsspannung dazu schaltest, kommt es auf das Modul an: Hat es auch eigene PullUp-Widerstände? Oder hat das Modul keine eigenen PullUp-Widerstände?

Wenn das DS3231-Modul eigene PullUp-Widerstände hat, wird die Spannung von “knapp über 3.3V” noch mehr in Richtung 3.3V gezogen, d.h. dann würde die Spannung “nur ganz knapp über 3.3V” liegen. Die HIGH-Pegelerkennung durch den Arduino sollte weiterhin funktionieren. Es könnte allerdings für die Geräte ggf. schwierig werden, die Pegel ausreichend auf LOW zu ziehen, wenn die PullUps alle mehrfach vorhanden sind. Also falls das DS3231-Modul eigene PullUps hat, diese ggf. an diesem Modul deaktivieren bzw. auslöten.

Und wenn das DS3231-Modul keine eigenen PullUp-Widerstände hat, bleibt die Spannung unverändert auf denselben Pegeln wie wenn nur der Arduino mit dem GY-65 zusammengeschaltet ist.

Ich sehe da eigentlich überhaupt keine Probleme, sowohl eine GY-65 Platine mit BMP085 als auch ein DS3231 Modul an den Arduino anzuschließen, und zwar beide mit jeweils 3.3V Betriebsspannung.

Das DS3231-Modul müßte nur so konstruiert sein, dass es eine “Stützbatterie” enthält und keinen aufladbaren “Stützakku”. Weil für einen Akku und eine Akku-Ladeschaltung wäre es vermutlich so, dass diese entweder auf 5V oder auf 3.3V Betriebsspannung ausgelegt sind, aber nicht auf beides.

Sollte eigentlich funktionieren. Aber es müssen eben alle Gerät am I2C-Bus auf derselben Betriebsspannung von 3.3V laufen, auch das DS3231 Modul.

Hallo Jurs,
danke für deine ausführliche Erklärung die ich auch mit nicht reichlich Elektronik-Kenntnissen verstanden habe.
Also das GY-65 Bosch BMP085 bis 3,6 das DS3132 hat eine bis 5,5 Volt nur im Betrieb läuft das DS3132 leider nicht am 3,3 Volt Anschluss vom Mega nicht es geht nur am 5 Volt Anschluss daher habe ich nach einer Möglichkeit gesucht beide auf die besagten Pins zu bringen. Möglicherweise müsste ich mir noch mal ein DS3132 dazu bestellen, vielleicht ist ja mit meinem etwas nicht in Ordnung. Bei dem 3,3 Volt Anschluss glimmt auch nur noch die verbaute LED auf dem Teil. Rum löten an dem Teil möchte ich nicht unbedingt dann bestelle ich mir lieber ein neues, da ich eh einen zweiten Mega habe an dem das DS3132 alleine auf dem SDA werkelt.
Gruß Heinz

[quote author=heinz g link=topic=192740.msg1424806#msg1424806 date=1381502663]
nur im Betrieb läuft das DS3132 leider nicht am 3,3 Volt Anschluss vom Mega nicht es geht nur am 5 Volt Anschluss[/quote]

Welches DS3231 breadboard hast Du?
Hast Du ein Schaltbild dazu gefunden?

Es kann natürlich immer schaltungstechnisch irgendwas auf dem Board so geschaltet sein, dass die Platine nicht an 3.3 V läuft. Der Chip DS3231 sollte es mit 3.3V laut Datenblatt jedenfalls problemlos tun, an dem sollte es also nicht scheitern.

In http://datasheets.maximintegrated.com/en/ds/DS3231.pdf lese ich eindeutig:
Supply Voltage VCC min 2.3V, typ 3.3V, max 5,5V
Supply Voltage BAT min 2.3V, typ 3.0V, max 5,5V

Ich teste mal mit meinem DS3231 Modul, ob es mit 3.3V läuft.

Nachtrag: Gerade eben getestet, mein DS3231 Modul entspricht eBay Nr. 251208194968 und das läuft an 3.3V genau so wie an 5V. Die Power-LED am Modul leuchtet bei 3.3V ungefähr gleich hell wie bei Versorgung mit 5V. Nur wenn ich die VCC Stromversorgung abklemme, also VCC gar nicht mehr an eine Stromversorgung angeschlossen ist, glimmt die Power-LED nur noch.

Und was soll ich sagen: Selbst ohne Anschluss von VCC am Modul (also weder 3.3V noch 5V) und mit glimmender Power-LED läuft das Modul bei mir noch einwandfrei! Offenbar läuft es dann rein mit den 3V der Uhrenbatterie.

Hallo Jurs,
deine Ausführungen sind ja korrekt, ich habe auch das 251208194968, habe es eben auch noch einmal an meinen zweiten Mega ausprobiert Der gleiche Zustand am 3,3 Volt Anschluss glimmt die LED und nichts ist mit Uhrzeit. Ich kann daraus nur den Schluss ziehen das das Teil defekt ist. Allerdings läuft der Baustein schon seit 4 Wochen im Dauerzustand ist schon merkwürdig, na ja so lange es hält ist gut. Ich bestelle mir mal ein neues.
Gruß Heinz

Das ist ja extrem merkwürdig: Bei 5V Betrieb funktioniert es mit normal leuchtender Power-LED und bei 3.3V Betrieb funktioniert es nicht und die LED glimmt?

Bist Du sicher, dass Du keinen Verkabelungsfehler hast?
Wackelkontakt? Kabelbruch? Sind wirklich 3.3V am 3.3V Pin des Mega?
Hast Du zusätzliche PullUp-Widerstände geschaltet?

Meine Schaltung:
MEGA SDA ==> DS3231 Modul SDA
MEGA SCL ==> DS3231 Modul SCL
MEGA GND ==> DS3231 Modul GND
MEGA 3.3V ==> DS3231 Modul VCC

Es dürfen keine zusätzlichen PullUp-Widerstände verbaut werden, das Modul hat eigene PullUps auf dem Board!

jurs:
Und was soll ich sagen: Selbst ohne Anschluss von VCC am Modul (also weder 3.3V noch 5V) und mit glimmender Power-LED läuft das Modul bei mir noch einwandfrei! Offenbar läuft es dann rein mit den 3V der Uhrenbatterie.

Daß die LED bei Batteriebetrieb glimmt beunruhigt mich etwas weil das bedeutet, daß die Batterie durch die LED entladen wird und sicher nicht die angestrebten 10 Jahre hält.
Grüße Uwe

uwefed:
Daß die LED bei Batteriebetrieb glimmt beunruhigt mich etwas weil das bedeutet, daß die Batterie durch die LED entladen wird und sicher nicht die angestrebten 10 Jahre hält.

Die Power-LED glimmt nicht im regulären Batteriebetrieb, sondern nur bei Falschanschluss, im konkreten Fall:

  1. Wire-Library am Arduino hat die internen PullUps an SDA/SCL aktiviert
  2. VCC-Pin am Uhrenmodul ist "not connected"

Das ist weder der normale Betriebszustand noch der normale Batteriebetrieb, wenn die Power-LED nur glimmt.

Jurs, nein das Modul ist ohne PullUp angeschlossen, Wackelkontakte und defekte Kabel ausgeschlossen und an beiden Megas habe ich meine 3,3 Volt, das GY-65 Bosch BMP085 läuft auch ohne Probleme an diesem Anschluss. Ist leider so klingt merkwürdig aber es scheint wirklich defekt zu sein. Trotzdem Danke für dein weitsichtiges mitdenken.

D.H., die Dinger wären empfehlenswert sicher bis wie schnell etwa ?
Die alte Naive für HiSpeed-SPI wäre dann ?
Im Prinzip beträfe das dann doch nur die MOSI Leitung - oder ? (Unterspannung am Dino)

jurs:

uwefed:
Daß die LED bei Batteriebetrieb glimmt beunruhigt mich etwas weil das bedeutet, daß die Batterie durch die LED entladen wird und sicher nicht die angestrebten 10 Jahre hält.

Die Power-LED glimmt nicht im regulären Batteriebetrieb, sondern nur bei Falschanschluss, im konkreten Fall:

  1. Wire-Library am Arduino hat die internen PullUps an SDA/SCL aktiviert
  2. VCC-Pin am Uhrenmodul ist "not connected"

Das ist weder der normale Betriebszustand noch der normale Batteriebetrieb, wenn die Power-LED nur glimmt.

Ok da bin ich ja beruhigt. :wink: :wink: :wink:
Die wenigsten ICs dürfen Spannungen an den Ein/Ausgängen haben wenn keine Versorgungsspannung anliegt. Meist darf die Spannung an den Ein/Ausgängen nur 0,5V unter Massepegel und 0,5V über der Versorgungspannung sein.

Eine Ausnahme ist zB das Resetpin am ATmega328. Da darf für die HV-Programmierung 12V anliegen obwohl die Versorgungsspannung nur 5V ist.

Grüße Uwe