Hallo,
ich habe folgendes Problem:
Ich habe 2 SPI Slaves und ein LCD an meinem AVR(MEGA16) hängen. Die SPI
Slaves laufen auf 3V, das LCD auf 5V. Entweder ich lasse den AVR auf 3V
laufen und treibe die Pegel fürs LCD auf 5V hoch oder ich lasse ihn auf
5V laufen und bringe die Pegel der SPI Slaves irgendwie auf 3V.
Letzteres erscheint mir rein vom Aufwand her einfacher zu sein, da ich
dann nur 3 oder 4 Signale von 5 auf 3V bringen muss. Beim
"Hochtreiben" der LCD-Signale müsste ich ca 14 Signale treiben...
Deswegen würde ich das Runterregeln von 5V auf 3V bevorzugen. Ich weiß
aber nicht wie ich das anstellen soll. Mit Serienwiderständer geht gar
nix, mit Spannungsteilern glaub ich auch nicht.
Gibts da Pegelwandler dafür(die müssen dann nur runter, nicht
hochregeln können)?
Hat jemand einen Trick auf Lager, wie man sowas macht?
Danke schon mal im Voraus.
Daniel
Hallo
Mit Spannungsteilern geht das wunderbar:
uc 5V -----|=R1=|----------------- 3V SPI
|
|
-
R
2
-
|
|
GND
Die Werte für R1 und R2 musst du ausrechnen. Hängt davon ab welche
Widerstände du zur Vefügung hast.
Grüsse,
Michael
74LVX245: nein
Wenn man bei dem 5V am Eingang draufgibt, während Vcc bei 3V liegt,
wird er ziemlich schnell ziemlich heiß. Ich habe mir auch eine Stange
davon besorgt, weil ich den als 5V->3V Wandler nehmen wollte. Geht aber
nicht.
Der 74LVX244 kann 5V am Eingang, der 74LVX245 nicht.
74LVT245 kann aber 5V am Eingang, unabhängig von Vcc
@MartinS
Schau dir mal das Bild an.
Zwischen den Eingängen und Vcc sieht man deutlich eine Diodenspannung.
Und genau das macht das IC auch wenn man 5V anlegt: Vcc geht auf >4V
hoch. Damit hätte ich fast ein teures Display gegrillt !!!
Und hier noch ein Ausschnitt des Datenblatts:
Nur T/R\ und OE\ sind 5V tolerant. Das bestätigen auch die Messungen:
Man kann hier 5V anlegen, und Vcc belibt immer noch auf 0V.
@Benedikt
1. In deinem Datenblatt seht aber auch nix von den anderen Eingängen.
Schau mal in die Tabelle der technischen Daten und nicht bei den
Absolute maximum Ratings
2.Du misst Mist. Wenn du das schon so messen möchtest musst du
andersrum Messen. Du mist ja jetzt Vin < Vcc. Was du aber haben
möchtest ist Vin > Vcc.
Datenblatt:
http://www.ortodoxism.ro/datasheets/stmicroelectronics/5563.pdf
Seite 1 - In den Features Punkt 2
Seite 1 - Discription : This device can be used to interface 5V to 3V
Seite 2 - Diode nur nach Masse nicht nach Vcc
Seite 2 - Tabelle Recommended Operating Condition Vi 0 to 5,5V
1. Schau mal genau hin, da steht:
TR\, OE\: -0,5V to 7V
Vio: -0,5V to Vcc+0,5V
Wenn man selbst bei den Absolute maximum Ratings nicht mehr als 3,8V
(bei Vcc=3,3V) draufgeben darf, sind die typischen Daten noch
geringer.
2. Nein, ich messe Vin>Vcc
Schau mal auf die Buchsen des Messgeräts: Dieses gibt am schwarzen
Kabel die positive Spannung aus... Ist halt Philips. Abgesehen von
dieser Gemeinheit ist das Messgerät spitze.
Ich weiß, es ist komisch. Ich habe jetzt 30 Stück 74LVX245 hier
rumliegen und kann diese nicht verwenden !
Hier die Schaltung:
http://www.mikrocontroller.net/attachment.php/310945/sharp_lcd.gif
Die Dateneingänge haben 0V/5V Pegel, anstelle des LVT245 hatte ich
einen LVX245 drin.
Dein Datenblatt bezieht sich auf den ST 74LVX245, ich haben dagegen
einen von Fairchild. Und in deren Datenblatt steht nichts von 5V
tolerant...
Es scheint echt so zu sein, dass sich die Hersteller nicht einig sind,
was sie in ihre ICs verbauen.
Fazit: 74LVX245 von Reichelt ist nicht für 5V->3,3V zu gebrauchen !
Mit dem 74LVT245 sollte es gehen (allerdings vorher nochmal genau in
das passende Datenblatt schauen...)
ich mach mal einen Alternativvorschlag.
Deine ganze Schaltung kommt mit 3V aus, nur das Display eben nicht.
Wenn Du den Prozessor mit 3V beglückst, dankt er es mit weniger
Stromaufnahme (und Heizleistung)
Wenn Du das Display über ein Schieberegister ansteuerst, sparst Du ein
paar Ports
Das Schieberegister in HC - Technologie erkennt bei 3V bereits sicher
auf High. -> VCC 74HC595 und Display auf 5V ... Prozessor und den
Rest auf 3V .... und z.B. ein LM2936MP3.3 ...
Naja, der SRAM braucht 5V, ebenso der AVR (sonst läuft er nicht auf
18MHz).
Das Display per Schieberegister ?
Mach ich doch schon, dafür gibt es den XCK und den Latchpuls...
Vielleicht besorge ich mir demnächst mal einen S1D13700 um das LCD
anzusteuern, der hat getrennte Betriebsspannungen fürs LCD und für den
uC Anschluss.
Alles schon neulich beschrieben ...
http://www.mikrocontroller.net/forum/read-1-310932.html
... Das Zauberteil nennt sich
74LVC4245A bzw. 74lvx4245
Bidirectional, 8 Bit, von 3.3 auf 5 Volt und / oder umgekehrt.
Wichtig ist die zusätzliche "4" zur Kennziffer "245".
Was spricht denn gegen meinen Vorschlag mit Spannungsteilern?
Interessiert mich weil ich in meinem neusten Projekt gerade selber ein
3,3V Display am 5V AVR angeschlossen habe, mit Spannungsteilern an den
Ausgängen des AVR. Klappt wunderbar.
Grüsse,
Michael
@Michael:
Spannungsteiler geht zwar von 5 --> 3.3 , aber über die Widerstände
wird statisch Strom verbraucht.
Auch müsste man das Verhalten des jeweiligen LCD prüfen
(Eingangswiderstand). Angepasst auch einen Typ mag' das funktionieren,
für was "seriennahes" ist das nichts ; Bastellösung.
Andere Typen aus der "lvx" Reihe (mit: "5V tolerant") tun's auch,
wenn nur von 5V auf 3.3 umgesetzt werden muss.
16 Widerstände sind zu größ und mehr Arbeit beim Platine routen und
bestücken.
@Benedikt
Du bräuchtest aber nicht der 245er der ist ja bidirektional, du nutzt
aber nur eine Richtung. Wenn ich das jetzt richtig im Kopf habe, währe
auch der 74xx540 oder 74xx541 geeignet.
ciao :-)
Aus den letzen beiden Gründen scheiden Widerstände aus.
Da ich die Daten aber mit mehreren MHz übertrage sind Spannungsteiler
nicht das beste. Mit Widerständen im kOhm Bereich hatte ich
Bildfehler.
Die 74LVC4245 bzw. 74LVX4245 gibt es nur leider auch nicht bei
Reichelt.
Daher nehme ich die LVT245 und hoffe mal das die dann 5V tolerant sind.
Spannungsteiler sind die einfachste Lösung für die Richtung 5 Volt nach
3,x Volt. Billig, einfach, zuverlässig.
Keine Ahnung warum hier immer alle unbedingt irgendwelche ICs verwenden
wollen, wenn man ein Problem mit zwei simplen Widerständen erlegen
kann.
Manchmal kommt auch der Einwand, dass mit einem Spannungsteiler das
Signal zu stark verzögert würde, weil mit der Eingangskapazität ein
RC-Tiefpass gebildet wird.
Wenn man die Kritiker aber bittet, die Eingangskapazität eines
konkreten CMOS-ICs im Datenblatt nachzuschauen, den thevinschen
Quellwiderstand des Spannungsteiler zu berechnen und daraus Tau zu
errechnen und nach der geforderten Signalfrequenz frägt, wird es bei
den Kritikern schnell ruhig.
Kurz um: Für die paar MHz mit denen die meisten hier basteln,
funktioniert ein nicht zu hochohmiger Spannungsteiler perfekt.
@Unbekannter
... was willst Du denn berechnen, wenn Du den Eingangswiderstand (resp.
Eingangsstrom) der nachfolgenden Schaltung nicht kennst ?
I.d.R. ist der nämlich nicht unendlich oder vernachlässigbar.
Lösungen mit Widerständen sind Anwendungsabhängig auf die konkret
verwendeten Bauteile abzustimmen ; dann mag das gehen.
hallo ,Michael Elser.
dein vorschlag finde ich klasse.
ich möchte auch vom avr 5v auf 3,3 v.
ich möchte eine mmc-karte direkt an 3,3 volt.
was schlägst du von 5v auf 3v vor.
mfg
karlheinz
Oh la la...ich bin ganz überrascht von den vielen Antworten!!
Erst mal vielen Dank an alle für Eure Tips.
Mein Anwendungsgebiet nochmal kurz zusammengefasst:
2 SPI Slaves(möglicherweise versch. Eingangsimpendanzen)
SPI Clock max. 4MHz
Die Clocks der sonstigen zu konvertierenden Signale liegen bei unter
1MHz.
Könnt Ihr mir für diesen Fall einen konkreten Vorschlag machen ob
Widerstände bei dieser Frequenz angebracht sind(wäre halt einfacher)
oder ob ich doch einen 74LVT245 nehmen soll?