Forum: Mikrocontroller und Digitale Elektronik I2C 3.3V und 5V Device


von Matthias (Gast)


Lesenswert?

Hallo,

ich will am I2C Bus Teilnehmer mit VCC von 3.3V und 5V betreiben. Wie 
macht man das am besten? Problem ist SDA, was bidirectional arbeiten 
muss. Ich dachte an eine Z-Diode von 3.3V an SDA zu GND. Könnte aber 
auch sein, dass wenn das 3.3V Device ein H sendet, dies das 5V Device 
nicht als H erkennt.

Gruß
Matthias

von Aufreger (Gast)


Lesenswert?

Besorge dir die I2C-Spezifikation (www.nxp.com), dort ist eine 
Beispielschaltung mit zwei FETs, funktioniert einwandfrei.

von Aufreger (Gast)


Lesenswert?


von DiScha (Gast)


Lesenswert?

oder PCA9306 von TI

Gruß
Dieter

von ecslowhand (Gast)


Lesenswert?

Nimm einen I2C-Repeater wie bsp. PCA9515A, gibts auch bei "Angelika".

LG EC

von Falk B. (falk)


Lesenswert?

@ Matthias (Gast)

>ich will am I2C Bus Teilnehmer mit VCC von 3.3V und 5V betreiben. Wie
>macht man das am besten? Problem ist SDA, was bidirectional arbeiten
>muss. Ich dachte an eine Z-Diode von 3.3V an SDA zu GND. Könnte aber
>auch sein, dass wenn das 3.3V Device ein H sendet, dies das 5V Device
>nicht als H erkennt.

Nein. Leg die Pull-ups auf 3,3V und alles ist gut.
Siehe Pegelwandler.

MfG
Falk

von Jo (Gast)


Lesenswert?

Falk B. schrieb:
> @ Matthias (Gast)
>
>>ich will am I2C Bus Teilnehmer mit VCC von 3.3V und 5V betreiben. Wie
>>macht man das am besten? Problem ist SDA, was bidirectional arbeiten
>>muss. Ich dachte an eine Z-Diode von 3.3V an SDA zu GND. Könnte aber
>>auch sein, dass wenn das 3.3V Device ein H sendet, dies das 5V Device
>>nicht als H erkennt.
>
> Nein. Leg die Pull-ups auf 3,3V und alles ist gut.
> Siehe Pegelwandler.
>
> MfG
> Falk

Hallo, ich muss da nochmal nachhacken!

reicht es echt wenn ich SDA und SCL jeweils mit einem Pullupwiderstand 
(10k) versehe?

Grüße Jo

von Nils P. (torus)


Lesenswert?

Jo schrieb:
> Hallo, ich muss da nochmal nachhacken!
>
> reicht es echt wenn ich SDA und SCL jeweils mit einem Pullupwiderstand
> (10k) versehe?
>
> Grüße Jo

Das hängt davon ab, ob Dein 5V I²C Gerät ein 3.3V an den SCL und SDA 
Pins zuverlässig als logisch High erkennt.

Beispiel DS1307. Das ist ein 5V Chip. Im Datenblatt steht, das er für 
ein Logic High lediglich 2.2V braucht, also ist er mit 3.3V zufrieden. 
Wie das bei Deinen I²C Devices aussieht musst Du selbst nachschauen.

von 50c (Gast)


Lesenswert?

Aufreger schrieb:
> http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf
>
> Seite 42

:-), erst dachte ich, es ist der allbekannte running gag...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jo schrieb:
> wenn ich SDA und SCL jeweils mit einem Pullupwiderstand (10k) versehe?
10k Pullup gegen 3,3V scheinen mir generell und speziell für ein 
5V-Device sehr hochohmig.
Woher hast du diese Zahl?

http://www.ti.com/lit/an/slva689/slva689.pdf
https://electronics.stackexchange.com/questions/239234/i2c-ideal-pull-up-resistor-calculation

von Klaus R. (klara)


Lesenswert?

Jo schrieb:
> reicht es echt wenn ich SDA und SCL jeweils mit einem Pullupwiderstand
> (10k) versehe?

Google: i2c pegelwandler mosfet

Erster Treffer:
Beitrag "Re: I2C Spannung von kleiner 5V auf 5V mit NMOSFET wandeln"

https://www.reichelt.de/mosfet-n-ch-20v-1-2a-0-54w-sot-23-irlml-2402-p108736.html?r=1

Es gibt auch I2C - ICs zum Pegelwandeln. Die MOSFET-Lösung ist zu 100% 
in Ordnung und billiger als ein entsprechendes IC, nimmt aber etwas mehr 
Platz ein.
mfg Klaus

von ohje (Gast)


Lesenswert?

Falk B. schrieb:
> Nein. Leg die Pull-ups auf 3,3V und alles ist gut.
> Siehe Pegelwandler.

Kein guter Rat.

Wenn ein 5V-Bauteil dabei ist, dass als HIGH-Pegel 0,7*VCC spezifiziert 
hat, funktioniert es nur meistens.
Denn 0,7*5V = 3,5V.

Und nein, das ist nicht exotisch...

Das geht dann beim Prototypen problemlos, in der Serie fallen dann 
einige Geräte mit "unerklärlichen" Fehlern aus.

Hat ein ehemaliger Kollege von mir schon ausprobiert. Das war teuer. 
Sehr teuer.

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.