mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik HD44780 an AVR32 3.3V


Autor: Richard B. (rbrose)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael E. (rince)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Richard B. (rbrose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gesehen das an D4 - D7 und RS machne ein 10Kohm oder 390Ohm 
Widerstand einsetzt. Für was ist er gut?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Richard B. (rbrose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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?

Autor: Michael E. (rince)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Richard B. (rbrose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.