I2C 3.3V und 5V Device

Gast #754553
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
#754854
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
Gast #5696607
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
#5696618
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.
Moderator (Firma: Titel) Persönliche Seite #5696733
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
#5696784
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
Gast #5696795
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren