Go Down

Topic: 2 Bausteine an sda / scl (Read 2452 times) previous topic - next topic

heinz g

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


uwefed

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

mde110

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

heinz g

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

Eisebaer

hi,

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

http://www.watterott.com/de/Pegelwandler

gruß stefan
nimm abblockkondensatoren!  100nF.  glaub mir, nimm abblockkondensatoren!

mde110

Sollte der Wandler für I2C nicht bidirektional sein?

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

TERWI

Das ist das gleiche in grün - nur 4-Kanal.
To young to die - never to old for rock'n roll

mde110

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

Für I2C benötigt man aber Bidirektional!

heinz g

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


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] http://www.watterott.com/de/Pegelwandler & http://www.watterott.com/de/Level-Shifter

Gruß
Andreas

jurs

#10
Oct 11, 2013, 02:51 pm Last Edit: Oct 11, 2013, 02:55 pm by jurs Reason: 1

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 .


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.

heinz g

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

jurs

#12
Oct 11, 2013, 05:28 pm Last Edit: Oct 11, 2013, 05:50 pm by jurs Reason: 1

nur im Betrieb läuft das DS3132 leider nicht am 3,3 Volt Anschluss vom Mega nicht es geht nur am 5 Volt Anschluss


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.

heinz g

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

jurs

#14
Oct 11, 2013, 07:03 pm Last Edit: Oct 11, 2013, 07:13 pm by jurs Reason: 1

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.


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!

Go Up