Hi, was kann ich tun, um bei der oben genannten Konstellation zu verhindern, dass der Atmega kaputt geht, wenn er 5V Logiksignale vom LCD bekommt? Reichen da Zenerdioden schon aus (wollte 3.6V Zenerdioden nehmen, weil der Atmega VDD+0.5V also maximal 3.8V verträgt) oder muss ich auf bidirektionale Levelshifter umsteigen?
Wenn die Frequenz nicht zu hoch wird und das Display 3,3V schon als 1 erkennt, reicht nen Spannungsteiler oder Z Diode und Widerstand.
Spannungsteiler geht ja nicht...das Display muss in einigen Fällen auf den Datenleitungen 3.3V hinsenden und das Display muss diese erkennen. Im anderen Fall werden dieselben Datenleitungen gelesen und das Display sendet 5V. Und diese 5V müssen runter ohne das die 3.3V auf dem Hinweg beeinflusst werden.
Um welches Display handelt es sich genau und was/wann muss das Display an den AVR senden? Angenommen es ist ein übliches TEXT-LCD kann die Software so mit fixen Delays geschrieben werden, dass keine Daten (Busy-Abfrage, LCD Readout) vom LCD zum AVR fliessen. Den Artikel Pegelwandler kennst du?
Yo, im Datenblatt steht das 0.7*VDD als Min. Input High Voltage drin; das sind bei LCD-Vcc 5.0V dann 3.5V und die packt der µC bei seiner µC-Vcc von 3.3V nicht. Ich würde Pegelwandler-ICs installieren z.B. 2 aus der HCT Serie 74xx wie den 74HCT244 und mit Vcc 5.0V versorgen.
IMHO gibt es keinen Bedarf für "bidirektionale Levelshifter". Ich sehe die Datenrichtung unidirektional vom AVR zum LCD.
du kannst auch das Display direkt mit 3,3V betreiben. Allerdings benötigst du dann für Kontrast eine leicht negative Spannung, die mit einer Ladungspumpe erzeugt werden kann. Gruss k.
Braucht man bei diesem Display die negative Vee nicht immer, damit man auf VDD-VO 9V kommt? IMHO gilt: Angenommen VDD ist typ. 5V und VDD-VO typ. 9V, dann braucht man Vee <= -4V. Ob die Logik mit VDD 3.3V arbeitet weiss ich nicht, bin nach Datenblattspecs gegangen. Versuchen würde ich es aber :)
Obacht - das ist kein übliches HD44780A Text-LCD. Es scheint eine eigene negative Spannungsversorgung zu enthalten, denn die Displayspannung ist sowieso schon negativ. Das Display benötigt laut Datasheet ca. 8,5V (5V..-3,5V) und eine darauf optimierte Ladungspumpe wird das bei 3,3V vermutlich nicht schaffen.
So etwas wie eine integrierte Ladungspumpe mit Ausgang an Vee. Möglich und und wahrscheinlich. Das habe ich in ausführlicheren Datenblättern von anderen GLCDs schon gesehen. Müsste sich aber leicht mit einem Voltmeter ausmessen lassen.
Genau die negative Spannung kommt schon aus dem LCD. Ich habe mir die SN74HCT245 angesehen, aber ich habe es so verstanden das je nach Richtung nur von 3.3V also kleinerer Spannung auf %V also hohe Spannung geshiftet werden kann, er aber nicht auch noch runter konvertiert. Deswegen wollte ich den für die unidirektionalen Verbindungen wie RW, RS, E, RESET#, CS0, CS1 benutzen und für die bedirektionale Verbindung wollte ich dann einen MAX3000 nehmen. Der sollte in der Lage sein, wenn ich das Datenblatt richtig verstehe und ich brauch nichtmal diesen Direction PIN der ist quasi echt-bidirektional-fähig ohne manuelles umschalten.
Da auch das Timing der Befehle nicht definiert ist muss wohl wirklich gelesen werden. Allerdings reicht D7 für Busy, wenn man auf den Displayspeicher nicht lesend zugreifen muss. Dafür reicht also notfalls auch ein unidirektionaler Pegelwandler (z.B. 74HCT541), und ein Spannungsteiler an D7 retour zum AVR fürs Busy.
Muss man überhaupt vor Überspannung schützen? Wenn ich die Appnote richtig verstehe, dann haben AVR intern bereits einen Schutz verbaut. Jedenfalls schließen die hier wohl 230VAC direkt an einem Portpin an. Fehlt nur ein Widerstand zur Strombegrenzung. http://www.atmel.com/Images/doc2508.pdf
Kann man machen, aber dann muss man hoffen, dass der 3,3V Pegel zuverlässig ausreicht, um das Display mit Vih(min)=3,5V zu bedienen. Wird üblicherweise funktionieren, wenn man der Leitung deutlich mehr Zeit lässt als das Datasheet verlangt, ist aber unsauber. Ausserdem muss man bei insgesamt 8 Leitungen D0-D7 drauf achten, dass der rückfliessende Strom von den Komponenten an 3,3V stets abverbraucht wird, sonst bleiben das keine 3,3V.
amplifier schrieb: > Hi, > > was kann ich tun, um bei der oben genannten Konstellation zu verhindern, > dass der Atmega kaputt geht, wenn er 5V Logiksignale vom LCD bekommt? > Reichen da Zenerdioden schon aus (wollte 3.6V Zenerdioden nehmen, weil > der Atmega VDD+0.5V also maximal 3.8V verträgt) oder muss ich auf > bidirektionale Levelshifter umsteigen? Standardantwort: 2*74LVCC3245A Sind wie für Dich gemacht. fchk
Danke den kannte ich noch nicht. So einen hatte ich gesucht um dann den RW Pin an den Direction Pin anzuschließen. Ich hatte noch einen anderen Gefunden, bei dem die 5V und die 3.3V Seite leider festdefiniert waren und ich hätte bei dem noch einen Inverter vor dem Direction Pin gebraucht, aber der scheint ja die 5V und 3.3V frei definiefrbar zu haben.
amplifier schrieb: > Danke den kannte ich noch nicht. So einen hatte ich gesucht um dann den > RW Pin an den Direction Pin anzuschließen. Ich hatte noch einen anderen > Gefunden, bei dem die 5V und die 3.3V Seite leider festdefiniert waren Das ist beim 74LVCC3245A auch der Fall:
1 | 74LVCC3245A min typ max Unit |
2 | VCCA Supply voltage 2.3 3.3 3.6 V |
3 | VCCB Supply voltage 3.0 5.0 5.5 V |
DIR und /OE werden von VCCA betrieben. Die andere Richtung gibts auch, das ist dann der 74LVCC4245A:
1 | 74LVCC4245A min typ max Unit |
2 | VCCA Supply voltage 4.5 5.0 5.5 V |
3 | VCCB Supply voltage 2.7 3.3 5.5 V |
DIR und /OE werden von VCCA betrieben. Also Augen auf! fchk
Ich werde jetzt für die bidirektionale Verbindung den MAX3002 benutzen bzw. MAX3000 wenn ich den irgendwo zu kaufen finde. Der scheint extrem komfortabel zu sein, weil man sich um quasi nichts kümmern braucht.
Ja, sofern ich nur das LCD und weitere 5V Komponenten ansteuern müsste. Ich habe aber einen DDS der nur 3.3V verträgt. Und da ich mehr Leitungen zwischen DDS und Atmega habe als zwischen Atmega und LCD, bau ich lieber da Levelshifter ein, wo weniger Leitungen sind, als den Atmega mit 5V zu versorgen und zwischen DDS und Atmega Levelshifer einzubauen.
Wieviel Strippen brauchste denn zw. µC und DDS? Der 74ALVC164245 hätte schonmal 16bit zu bieten.
Ne das ist noch aufwendiger, da sind allein schon 16 Leitungen für den Parallel Bus und dann kommen bestimmt nochmal 10 Steuerleitungen dazu und die sind nicht alle unidirektional. Wenn ich nur die 8 Datenleitungen und die wenigen Steuerleitungen vom LCD shiften muss ist das am einfachsten.
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.