Forum: Mikrocontroller und Digitale Elektronik AVR/ARM mit 3,3V an 5V I2C anschließen


von David E. (it-web)


Lesenswert?

Hallo,

wie der Betreff schon sagt ist meine Frage ob ich einen Prozessor (in
meinem Fall ATmega8 und AT91RM9200) der auf 3,3V läuft direkt an einen
I2C Bus anschließen kann, dessen PullUps auf 5V liegen.
geht leider in meinem Fall nicht anders wegen einiger Chips, die 5V
brauchen, und dummerweise ihre Untergrenze für HIGH bei 3V haben.

reichen da die internen Dioden die der Prozessor gegen Vcc hat (hab ich
im ATmega8 datenblatt gesehn, hat der ARM die auch? ) oder brauch ich
externe?

Vielen Dank

von Edd (Gast)


Lesenswert?

Hi,

Du könntest den Bus in einen 5V und einen 3V-Teil aufteilen, siehe
folgende App-Note von Philips (Seite 10):
http://wwwasic.kip.uni-heidelberg.de/lhcb/Publications/external/AN97055.pdf
Vielleicht hilft Dir das.

-Edd

von hmann (Gast)


Lesenswert?

Also, wenn die Ports an den 3.3V Bausteinen das abkönnen, würde ich da
garnix ändern.
Da du den Bus eh nur auf Masse ziehst, und nicht aktiv auf +5V legen
musst, macht das mischen dann auch kein Problem.
Ist halt nicht die sauberste Art, aber die 3.3V Bausteine sollten das
verkraften.
Was meinst du mit den Dioden?
Ich würde externe Widerstände, so ca. 3k3 (macht dann 5V/3k3 =1,5mA die
deine IC abkriegen), oder ähnlich nehmen.

von David E. (it-web)


Lesenswert?

ich meine man kann (bzw. der avr hat das intern) eine diode zwischen die
signalleitung und die 3,3V versorgung hängen (polung so, dass höhere
spannungen auf der siganlleitung nach Vcc=3,3V abgeleitet werden)
so stelle ich sicher, dass maximal 3,3V an der signalleitung liegen.
der pullup widerstand würde den strom begrenzen.
merke aber grade, dass das in diesem fall ja nicht sinn der sache ist,
weil dann die 5V bauteile zwar die 3,3V ICs nicht zerstören können,
aber am eingang haben die ja dann auch nur 3,3V oder weniger, je nach
leitungslänge.

werd mir mal die application note anschaun, danke.

hab noch ne andere idee, aber evtl. ist das ja genau die :)

von David E. (it-web)


Lesenswert?

Ja die philips methode ist zwar relativ aufwendig, wenn man wenig platz
hat, aber ne überlegung wert.
ich denke sogar die signalleitung kann garnicht wie gewünscht auf 5V
gehen, selbst wennd ie 3,3V teiel das aushalten, eben wegen dieser
schutzdioden, die höhere spannungen unterbinden. da müsste ich dann
noch einen widerstand in serie schalten, was mir alle pegel auf
unschöne werte bringt.

von smartie (Gast)


Lesenswert?

die Atmel Eingänge sind 5V tolerant, die Ausgänge können als open Drain
geschaltet werden, da sollte 5V Peripherie kein Problem sein.

von gerhard (Gast)


Lesenswert?

hallo david,
wie du schon richtig festgestellt hast, hat der avr interne
ableitdioden gegen vcc. du solltest auf jeden fall die outputs als open
drain einstellen (geht das überhaupt beim avr?). in diesem fall stellt
sich am ausgang dann eine spannung von "vcc + diodenflußspannung"
(ca.3,7V) ein. ob das als high-pegel für die i2c bausteine reicht mußt
du mittels datenblatt klären.

wie die sache mit den ableitioden  beim arm aussieht weiss ich selbst
noch nicht, würde aber vermuten das es hier ähnlich wie beim avr sein
wird. beim arm kannst du die ausgänge als open drain einstellen, der
interne pull-up sollte auf jeden fall deaktiviert werden.

gruss
gerhard

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.