Hallo,
ich habe einen µC bei 3,3V mit 5V toleranten Eingängen (namentlich nen
EZUSB AN 2135) der mit einem AVR per I2C reden soll. Leider geht das an
dem AVR nicht bei 3,3V. Sieht einer Probleme die Busleitungen auf 5V
hochzuziehen?
Viele Grüße
normalerweise sollen die in- und outputs den wert versorgungsspannung
(3,3v) um nicht mehr als 0,6v übersteigen. od 5v auf dem bus kritisch
sind bleibt wohl letzten endes nur auszuprobieren. betriebssicher
geht's, wenn du den bus mit 5v betreibst (über vorwiderstand > 470ohm)
und dann die in- und output pins mit dioden auf versorgungsspannung
legst, wird der wert höher als ca. 4v, fliesst der 'überschuss' nach
versorgung ab. (vcc soll natürlich stabilisiert sein).
gruss, harry
Hallo Harry,
die Eingänge des 3,3V ICs sind wie gesagt 5V tolerant, zumindest
behauptet das das Datenblatt... Ansonsten könnte man das natürlich mit
solchen Klemmdioden probieren.
Besten Dank und viele Grüße
Und was spricht dagegen, den Atmel ebenfalls mit 3,3V zu betreiben?
Ich habs zwar noch nicht getestet, aber theoretisch sollte der I²C auch
an einem 5V-Atmel mit 3,3V laufen - sicher, daß es nicht ein
Softwareproblem ist?
Hallo thkais,
zwei Dinge sprechen - laut Datenblatt - dagegen den AVR bei 3,3V zu
betreiben:
- die L-Variante läuft nur bis 8 MHz, ich brauche aber 16 MHz
- ich will mit dem AVR DA-Wandler ansteuern, die ziemlich kleinlich bei
den Highpegeln sind und nicht laufen würden, gut dagegen hälfe ein
Pegelwandler...
und laut Datenblatt will der AVR bei 5V am TWI-Port für High 0,7 VCC =
3,5 V sehen, ist also mehr, als auf einem 3,3 V Bus anliegen...
Viele Grüße
Hi
du weißt leider nicht wie der I2C-Bus elektrisch funktioniert. Jeder
Teilnehmer kann den Bus nur auf Masse ziehen (per
Open-Collector-Ausgang, wired-and) Für den High-Pegel sorgen die
obligatorischen Pull-Up's die extern auf SCL udn SDA geschaltet werden
müssen. Deswegen realisiert man einen I2C-Bus (bzw. die Datenausgabe uf
SCL/SDA) auf dem AVR auch über das DDRx und nicht über PORTx. Langer
Rede kurzer Sinn:
Wenn dein µC 5V tolerante I2C-Port's hat ist es kein Problem daran
einen 5V I2C-Bus zu betreiben.
Sehr interessant zum Thema I2C und verschiedene Betriebsspannungen ist
http://www.semiconductors.philips.com/acrobat/applicationnotes/AN97055.pdf
Matthias
Hallo Matthias,
doch ich weiss leider schon, wie der I2C Bus funktioniert. Zumindest
ist mir klar, dass es scih um Open-Kollektorschaltungen handelt und wie
der Bus warum hochgezogen wird. Und ja der IC hat 5V tolerante
Eingänge, von daher sollte es gehen.
Ich wollte nur nicht was triviales übersehen, ist das nicht zu
verstehen?
Viele Grüße
Hi
aus der Aussage:
>nd laut Datenblatt will der AVR bei 5V am TWI-Port für High 0,7 VCC =>3,5 V sehen, ist also mehr, als auf einem 3,3 V Bus anliegen...
habe ich geschlossen das du es nicht weißt da ja der High-Pegel eines
I2C-Device eigentlich keine Rolle spielt da dieser von den Widerständen
kommt. War nicht böse gemeint. Zu Problemen kann es kommen wenn der
EZUSB-Chip (hast du einen Link zum Datenblatt?) keinen OC-Ausgang hat.
Die Philips-AN solltest du dir auch anschauen. Mit zwei MOSFET's und
zwei Widerständen bist du damit dann 100%ig auf der sicheren Seite.
Matthias
Hallo,
Der Controller ist von Cypress:
http://www.cypress.com/cfuploads/img/products/AN2131SC.pdf
Ich habe da allerdings noch nichts über den Aufbau der Pins gelesen,
allerdings ist doch zu hoffen, dass die ordnungsgemäß OC sind.
Und die Aussage zum AVR ist so wie im Datenblatt, irgendeinen Pegel
muss ja als High erkannt werden...
Viele Grüße
Hallo,
bitte nicht lachen:
in meiner Version des Datenblatts (1.8) steht das nicht drinn. Habe mir
gerade die neue runtergeladen (1.10) und in der Tat, da steht es so da
;-)
Viele Grüße und besten Dank