Forum: Mikrocontroller und Digitale Elektronik I2C-Schnittstelle des MAX9768 mit 5V betreiben?


von Andreas H. (heilinger)


Lesenswert?

Hallo,

ich möchte den MAX9768 per I2C ansteuern. Der Baustein selbst läuft mit 
3V3. Der Mikrocontroller (ATmega1284P) und ein weiterer Sensor, die auch 
an dem Bus hängen, werden mit 5V betrieben.

Im Datenblatt des MAX9768 steht nur eine Angabe zu dem Mindestpegel für 
ein High-Signal (0,7xVdd), allerdings kein Max-Pegel, wie z.B. beim 
ATmega. Kann ich den MAX9768 somit auch mit einem 0V <-> 5V Signalpegel 
ansteuern?

Danke schonmal

Gruß

von Artabanos (Gast)


Lesenswert?

Im Datenblatt steht ganz klar drin, daß die absolute Obergrenze bei 4 
Volt liegt. Steht unter Absolute Maximum Ratings. Ohne Pegelwandler geht 
es also nicht.

Zitat:

SCLK, SDA/VOL to GND -0.3V to +4V

von Falk B. (falk)


Lesenswert?

@  Andreas H. (heilinger)

>ATmega. Kann ich den MAX9768 somit auch mit einem 0V <-> 5V Signalpegel
>ansteuern?

Klemm die Pull Ups vom I2C auf 3,3V, dass passt, siehe Pegelwandler.

MFG
Falk

von Andreas H. (heilinger)


Lesenswert?

Falk Brunner schrieb:
> Klemm die Pull Ups vom I2C auf 3,3V, dass passt, siehe Pegelwandler.

Wenn ich die pull-ups auf 3,3V klemme, dann bekommen meine 5V-Teilnehmer 
nicht genügend Spannung, oder?
Ich hatte jetzt daran gedacht, einen Widerstand (1k) in Reihe zu 
schalten und dann an den Pins von dem MAX9768 jeweils ne Zenerdiode 
BZV55 3V3 gegen Masse zu klemmen... So würden meine Pegel die 3,3 V doch 
nie überschreiten, oder?

von XXX (Gast)


Lesenswert?

Hallo

Solange die anderen Bausteine 3.3V als high erkennen, ist das alles
kein Problem.

Gruß
Joachim

von Falk B. (falk)


Lesenswert?

@  Andreas H. (heilinger)

>Wenn ich die pull-ups auf 3,3V klemme, dann bekommen meine 5V-Teilnehmer
>nicht genügend Spannung, oder?

Lies den Artikel Pegelwandler.

von Andreas H. (heilinger)


Lesenswert?

Falk Brunner schrieb:
> Lies den Artikel Pegelwandler.

den habe ich gelesen. Spannungsteiler fällt leider aus, da leider noch 
nen anderer Teilnehmer am Bus hängt, der die 5V (min. 0,9 * Vdd) braucht 
und ich einen pull-up auf jeden Fall für den I2C benötige.
Wollte nur wissen, ob ich doch um den Pegelwandler-IC drumherum kommen 
könnte, eben durch so eine Zenerdiode....?
Die I2C-Kommunikation zum MAX9768 läuft unidirektional, bzw. er muss mir 
nur das ACK-Bit auf low ziehen.

Quasi diese Methode:
 "1 kOhm Vorwiderstand. Dadurch wird der Strom vom 5V Ausgang in die 
3.3V Versorgung durch die internen Schutzdioden auf ca. 1mA begrenzt. 
Diese Lösung ist auch relativ langsam (ca. 5MHz). Ggf. kann man den 
Vorwiderstand auf 100 Ohm reduzieren, das erhöht dann wieder die 
Geschwindigkeit. Aufpassen, einige ICs vertragen nur 1mA oder weniger 
durch die Schutzdioden! Ausserdem muss man aufpassen, das jetzt von der 
5V Seite Strom in die 3.3V Versorgung eingespeist wird. Besonders in 
Schaltungen mit sehr niedrigem Stromverbrauch kann das zum Problem 
werden, wenn weniger Strom verbraucht wird als über die Vorwiderstände 
eingespeist wird. Dann nimmt es meist der Spannungsregler für 3.3V übel 
wenn jemand "schiebt", sprich, Strom einspeist. Denn die allermeisten 
Spannungsregler können nur Strom liefern (source), aber keinen Strom 
aufnehmen (sink). Es gibt 4-fach-Diodennetzwerke, die die internen 
Schutzdioden entlasten können (Schottkydioden mit kleinerer Flusspannung 
von ~0,3V als die internen Silizizumdioden mit ~0,7V), außerdem ist 
teilweise noch eine Zenerdiode enthalten, die ggf. den überschüssig 
eingespeisten Strom aufnehmen kann. "

Und da intern wohl keine Zenerdiode dranhängt, wollte ich extern eine 
dranhängen...

von Lattice User (Gast)


Lesenswert?

Andreas H. schrieb:
> den habe ich gelesen. Spannungsteiler fällt leider aus, da leider noch
> nen anderer Teilnehmer am Bus hängt, der die 5V (min. 0,9 * Vdd) braucht

Min Vih von 0,9 * Vdd ist extrem.
Bist du sicher dass dies nicht Vih mit Voh verwechselt hast?

I2c Spec verlangt bei auf Vdd bezogenen Devices 0,7 * Vdd. 5V Devices 
sind allerdings meistens fixed Level nach I2C Spec, d.h. min Vih = 3V.

von Andreas H. (heilinger)


Lesenswert?

Kopie aus dem Datenblatt:

I²C Interface Parameters
Parameter            Min.    Typ.    Max.    Unit
Input high level     90              100
Input low level      0               10     % of Vs
Output low level                     10

von Klaus (Gast)


Lesenswert?

Andreas H. schrieb:
> (min. 0,9 * Vdd)

Andreas H. schrieb:
> % of Vs

Vs = Vdd ?

MfG Klaus

von Lattice User (Gast)


Lesenswert?

Andreas H. schrieb:
> Kopie aus dem Datenblatt:

Welcher Baustein ist denn so kaput?

Der Trick mit dem Vorwiderstand von 1k in Serie für den MAX9768 um den 
Strom zu begrenzen funktioniert nicht, da er dann nicht mehr in der Lage 
für das Ack die I2C Leitung auf Low zu ziehen, es sei denn man macht die 
Pullups auf 20k. Aber ob dann noch alles zuverlässig funktioniert?

Als Pegelwandler tuts auch ein einfacher Transistor (P-Channel FET wenn 
ich mich recht entsinne).

von Andreas H. (heilinger)


Lesenswert?

Klaus schrieb:
> Vs = Vdd ?

Also damit ist die Versorgungsspannung von 5V gemeint... ist halt in 
jedem Datenblatt anders benannt.
Es geht um nen Drucksensor...

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.