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
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
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.
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 :)
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.
die Atmel Eingänge sind 5V tolerant, die Ausgänge können als open Drain geschaltet werden, da sollte 5V Peripherie kein Problem sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.