Hallo zusammen, ich habe das NGW100 Board mit einem AVR32 drauf. Jetzt möchte ich ein HD44780 LCD 4x20 drauf anschließen. Das Problem ist .. der AVR32 hat ja 3.3V an den Pins. Das LCD aber läuft mit 5V. kann ich die Pins einfach so an den AVR32 anschliesen? Oder muss ich es anders machen? Vielen Dank im voraus für eure Hilfe.
Ein HD44780-Display wird 3,3V als high erkennen, das ist kein Problem. 5V Stromversorgung benötigt das Display trotzdem. Als Alternative kannst du die EA DOG Displays verwenden, die benötigen garkeine 5V.
Hallo Ich habe genau das gleiche auch gerade im Aufbau. Funktioniert einwandfrei. 3.3 V wird tatsächlich als high erkannt. Nur umgekehrt geht es nicht da die pins vom AP7000 nicht 5V-tolerant sind. Entweder arbeitet man also ohne das Busyflag auszulesen (meine Variante) oder man baut einen Levelshifter, zum Beispiel in Form eines Spannungsteilers. Ich habe R/W direkt auf GND gelegt um sicher zu gehen dass ich den AP7000 nicht zerstöre. Uebrigens gibt es auf dem board einen Jumper, J16 glaube ich, an dem man direkt die Spannungsversorgung vom Netzteil abrgreifen kann. Ganz praktisch um mit einem 7805 die Spannung für das LCD und das Backlight zu generieren. Grüssse, Michael
Ich habe gesehen das an D4 - D7 und RS machne ein 10Kohm oder 390Ohm Widerstand einsetzt. Für was ist er gut?
Die eleganteste Lösung: R/W-Pin vom Display auf GND legen und eine feste Zeit warten statt das Busy-Flag abfragen. Keine Widerstände nötig.
@Michael E. Programmiert du den AVR32 direkt? Oder benutzt du es mit einem Linux System? Wenn mit Linux, dann machst du den Treiber für das HD44780 als Kernel Modul oder Standalone Applikation? Wie greifst du auch die Pins zu?
Richard B. wrote: > @Michael E. > > Programmiert du den AVR32 direkt? Oder benutzt du es mit einem Linux > System? > Wenn mit Linux, dann machst du den Treiber für das HD44780 als Kernel > Modul oder Standalone Applikation? > > Wie greifst du auch die Pins zu? Die Applikation läuft unter Linux und ist in Python geschrieben. Ich habe diese Sprache gewählt weil ich sie besser kenne als C und weil ich Daten aus dem Web anzeigen will und daher gute String- und Parserfunktionen brauche. Das Programm läuft standalone und der Zugriff auf die I/O ist über das /config/gpio interface gelöst, d.h. das Skript erstellt die nötigen Verzeichnisse in /config/gpio und ändert die Pinzustände durch Schreibzugriffe auf /dev/gpioX. Besonders elegant finde ich diese Lösung nicht aber sie funktioniert sehr gut. Grüsse, Michael
@Michael E. Vielen Dank für die Information. Ich werde heute Abend das alles in C versuche, erstens als Standalone Applikation auch per /dev/gpioX und dann per Kernel Modul und memory map Zugriff auf die Pins.
A. K. wrote: > Die eleganteste Lösung: R/W-Pin vom Display auf GND legen und eine feste > Zeit warten statt das Busy-Flag abfragen. Ob das elegant ist, darüber kann man streiten. Mit dieser Methode sind schon etliche (auch große, bekannte Firmen) auf die Nase gefallen, als irgendwann eine andere andere Charge Treiber ICs mit langsamerem Oszillator verbaut wurden. Folgendes ist eine elegante Lösung ist: Die Daten in eine FIFO schreiben und dann in einem Timer Interrupt mit mindestens der doppelten, typischen Wartezeit ins Display schreiben.
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.