Hallo!
Falls noch nicht zu spät ist, möchte noch zum Ausprobieren einen Pegelwandler vorstellen, der mir eingefallen ist (siehe Code).Kurzbeschreibung:Code:VCC=5V VCC=3,3V + + | | .-. .-. | | | | | | | | '-' '-' | | +------+__ | | |OE | | |\o | 5V Logic <-----+ +-|1>-----+-----> 3,3V Logic | | |/ | | === | | GND | | /| | +-----<2|-+ | __o\| | | OE| === | | GND | | | +------+ 1/2 74HC125 (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Für beide 3,3 V und 5V Logik ist der Pegel "L" = 0 V gleich. Durch anlegen am entsprechenden Output Enable Eingang (/OE) des "L" Pegels wird der bisher hochomiger Ausgang auf "L" gehen, weil entsprechender Eingang auf "L" (GND = 0 V) liegt. Bei H Pegel wird er per Pull-up (R1 bzw. R2) an entsprechendem Pegel gehalten, da die Ausgänge bei /OE = "H" hochohmig sind.
Geändert von PICture (19.09.2011 um 15:07 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Nur dass die Pullups intern sind und meines Wissens nach auf 5 V liegen. Ich kann die daher nicht per Hand an eine andere Spannung legen und leider weil es sich um eine Arduino-Board handelt auch nicht deaktivieren
Gruß
Waldschrat
PS.: @Picture: Danke, war nicht zu spät, werde es mal ausprobieren
Sorry, hab nicht richtig aufgepasst. Ich hab ATMEGA gelesen, da stand aber Arduino. Muß mal meinen Monitor putzen.
MfG Klebwax
Strom fließt auch durch krumme Drähte !
Nein war mein Fehler, sry. Auf dem Arduino ist ein ATMEGA verbaut. Dachte nur nicht dass das einen Unterschied macht bei der Schaltung wegen der ich ursprünglich gefragt habe. Von daher habe ich auch ATMEGA geschrieben weil das dann universeller ist
Danke trotzdem für deine Hilfe
Gruß
Waldschrat
Die ATMega haben interne Pullups, die man allerdings auch abschalten kann. Die internen Pullups sind mit rund 50 kOhm aber auch recht groß für I2C, so dass man oft zusätzliche externe Pullups braucht. Von der Spannung her kann es mit dem Pullup nach 3,3 V gehen, es wird aber recht knall. Etwas besser wird es ggf. mit 2 Diode in der Leitung, und dann einem Pullup an etwa 3,8 V auf der 5 V Seite. Der Spannungsabfall an den Dioden reduziert die Spannung für die 3 V Seite, und 0,7 V werden immer noch sicher als Low erkannt. Wenn man mag könnte man was ähnliches auch rein mit 3 Widerständen erreichen - also doch wieder so eine Art Spannungsteiler, wenn auch mit 3 Widerständen: ein Längswiderstand, ein Pullup auf der 5 V Seite und ein Pulldown auf der 3,3 V Seite.
Warum sich bei diesem Board die internen Pull-Up nicht abschalten lassen sollen??? Aber die Gefahr das zu vergessen bleibt natürlich. Externe "zusätzliche" (kleinere) Pull-Up Widerstände beheben das aber nachhaltig da es sich um eine Parallel Schaltung der Widerständen handelt und der gesamt Widerstand etwas kleiner als der größte sein wird. Kein Problem also. Spannungsteiler (können) auch gehen aber man muss den Gesamt Widerstand beachten, bei zu kleinen Strömen (zu großem Gesamtwiderstand) kommt es zu Signal-Flanken Verformungen und das Signal wird nicht mehr sauber erkannt. Das bedeutet letztendlich extrem herunter mit der Datenrate damit es noch Fehlerfrei klappt....
Gruß Richard
Inzwischen wurde von mir skizzierte Schaltung schon ausprobiert: https://www.roboternetz.de/community...l=1#post561051 , also vielen Dank an den Bumbum !
Aktuelle Skizze:Code:VCC=5V VCC=3,3V + + | | .-. .-. | | | | | | | | '-' '-' | | +------+__ | | |OE | | |\o | 5V Logic <-----+ +-|1>-----+-----> 3,3V Logic | | |/ | | === | | GND | | /| | +-----<2|-+ | __o\| | | OE| === | | GND | | | +------+ 1/2 74HCT125 VCC=5V VCC vom IC + + | | | | | | | | .-------------. | |14 | | |>IC=74HCT125 | --- C | 7| --- µ1 '-------------' | | | | | | | | | === === GND GND (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Geändert von PICture (29.10.2012 um 09:10 Uhr)
MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!
Guten Morgen,
ich habe das ganze wie gesagt mit einem LCD-Display verwechselt, dachte also es muss nur in eine Richtung umgepegelt werden. Wenn es so in beide Richtungen funktioniert werde ich mir das auf jeden Fall merken. Aber die gezeigte Schaltung verstehe ich nicht ganz. Das sollen doch zwei Pegelwandler, einmal 3,3V --> 5V und einmal umgekehrt sein. Wo sind da die Eingänge? Und so wie skizziert wird es nicht funktionieren, da der OE des 5V --> 3,3V Wandlers mit dem Ausgang des 3,3V --> 5V Wandlers geschaltet wird.
Bei solchen Widerstands-Sachen hatte ich bisher immer Probleme bei höheren Datenraten. Mich würde also interessieren, bei welcher Frequenz die Schaltung noch saubere Signale erzeugt in allem die Richtung 3,3V --> 5V
Viele Grüße
Andreas
Die Wandlung nur in eine Richtung geht recht schnell: Die 74HCT... ICs gehen so bis rund 50 MHz. Beim Runter Teilen von 5 v -> 3,3 V ist es nur eine Frage wie kleine die Widerstände sein dürfen, d.h. wie viel Strom fließen darf. Ohne große Kapazitive Last (oder mir passendem Kondensator am Teiler) geht das aber auch recht schnell (z.B. 100 MHz).
Der anfangs gezeigte bidirectionale Spannungswandler an sich ist schnell - es sind halt die Widerstände am I2C Bus, die die maximale Geschwindigkeit bestimmen, eigentlich so wie sonst auch. Das sollte dann auch für die schnellere I2C Raten (1 MHz) reichen, wenn Kapazitäten nicht zu groß werden.
Lesezeichen