I2C Bus mit 5v und 3,3v

Hallo,
ich habe einen I2C Bus mit 5v Versorgungsspannung. Von dieser Spannung
gehen je ein Widerstand gegen SDA/SCL. Alle Slave´s mit 5v.

Jetzt hätte ich gerne einen weiteren Slave (Versorgungsspannung 3,3v).
Kann ich diesen einfach mit 3,3v betreiben, aber die SDA/SCL auf den
schon vorhandenen I2C Bus legen?
Gruß und Dank
Andreas

Hallo Andreas,

du kannst mit einem Spannungsteiler arbeiten. Nehm aber lieber direkt fertige Pegelwandler. Sind schön klein :wink:
http://www.exp-tech.de/Shields/Strom-Spannung-79/Sparkfun-Pegelwandler-Bidirektional.html

Es gibt von NXP extra eine Application Note zu dem Thema: http://www.google.de/url?q=http://www.nxp.com/documents/application_note/AN10441.pdf&sa=U&ei=Qav9Ut_nMsHoywPg0YHICg&ved=0CDcQFjAA&sig2=2lug36oNYqyFtJFqKXgwKg&usg=AFQjCNFPN8-i57oADXruVKD7Hs7DffyvNA
Die levelshifter sind danach aufgebaut.

Mfg

His

Kontroliere das Datenblatt des 3,3 ICs. Manche vertragen 5V auf dem I2C Bus.
Grüße Uwe

Hallo,
ja, Spannungsteiler/LevelShifter bin ich auch schon drauf gekommen.
Ohne kann es gehen, muß aber nicht. Ich dachte mir es könnte ja funktionieren,
aber frage mal lieber. Das mit dem Datenblatt ist kein blöder Gedanke,
Versorgungsspannung und I2C sind ja zwei völlig verschiedene Dinge.
Gruß und Dank
Andreas

Naja, I2C ist dennoch abhängig von der Versorgungsspannung des Controllers.
Senden vom 3.3V I2C ist nicht das Problem. Die Gegenstelle interpretiert 3.3V bereits als 1. Andersherum wirds kritisch.

Stefan, der Trick bei I2C ist, dass das Signal über Pullup high ist, solange es nicht einer der Teilnehmer zum Senden eines 0 bits auf Low zieht.

Ein 5V Arduino als Master zieht erstmal SDA und SCL auf 5V.
Ein 3.3V Slave Device ist entweder 5V tolerant ( wie Uwe bemerkt hat )
oder ein I2C Pegelwandler (aus einem kleinen MOSFET - z.B. BS170) wie in dem Link von His beschrieben, muss her, damit der Pullup-Widerstand auf der 3V Seite wirken kann.
Oder man liest sich den Text im Playground durch, wo beschrieben ist was passiert, wenn man zusätzlich zu den hochohmigen internen Pullups Pullup-Widerstände gegen 3.3V einsetzt.

Dass der Mega2560 und der Uno 328 unterschiedlich sind, war mir übrigens neu ...