HD44780 an AVR32 3.3V

#1015224
Lesenswert?

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.
#1015277
Lesenswert?

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
#1015464
Lesenswert?

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
#1015524
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren