www.mikrocontroller.net

Forum: Compiler & IDEs AVR32 LCD Init Problem


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende ein AVR32UC3A mit LCD.

Es funktioniert zwar, doch beim Einschalten läuft das Display erst nach 
mehrmaligem Einschalten mit anschließendem Reset an.

Könnte es an der falschen Initialisierung oder falscher Reihenfolge der 
Initialisierung liegen?

So sieht der Code aus:
//Definieren der PINS
         gpio_enable_gpio_pin(D0_PIN);
  gpio_enable_gpio_pin(D1_PIN);
  gpio_enable_gpio_pin(D2_PIN);
  gpio_enable_gpio_pin(D3_PIN);
  gpio_enable_gpio_pin(D4_PIN);
  gpio_enable_gpio_pin(D5_PIN);
  gpio_enable_gpio_pin(D6_PIN);
  gpio_enable_gpio_pin(D7_PIN);

  gpio_enable_gpio_pin(WR);
  gpio_enable_gpio_pin(RD);
  gpio_enable_gpio_pin(RS);
  gpio_enable_gpio_pin(BUSY);
  gpio_enable_gpio_pin(CSEL1);

//Datenrichtung setzen
AVR32_GPIO.port[1].gpers = 0xffff0000;     // Activiert PB19-PB31
AVR32_GPIO.port[1].oders = 0xffff0000;     // setzt PB19-PB31 als Ausgang

//LCD Init
AVR32_GPIO.port[1].ovr = 0xffffffff;
msecDelay(100);
gpio_clr_gpio_pin(RD);
gpio_clr_gpio_pin(WR);
RS_COMMAND
CSELECT
msecDelay(100);

STROBE_WR
RDSEND
CUNSELECT
msecDelay(50);


WriteCommand(0x01,0xF3);//system clock F3 schneller
WriteCommand(0x02,0x02);//advance power setup register
WriteCommand(0x03,0x80);//advance display setup register
WriteCommand(0x10,0x38);//cursor control register  28
usw.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael schrieb:

> Es funktioniert zwar, doch beim Einschalten läuft das Display erst nach
> mehrmaligem Einschalten mit anschließendem Reset an.
>
> Könnte es an der falschen Initialisierung oder falscher Reihenfolge der
> Initialisierung liegen?

Welche Wartezeit gibst du dem LCD nach einem Power-ON? Die Controller 
auf solchen LCDs machen da genaue Mindestvorgaben im paar 10 ms Bereich. 
Füge mal die gesund lange Warteschleife als ersten Befehl im main() 
ein.

2. Tipp:

Die Befehle

RS_COMMAND
CSELECT
STROBE_WR
RDSEND
CUNSELECT

kann man mangels Sourcecode und Angaben zum LCD Controller nicht 
überprüfen.

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mit dem AVR noch nicht gearbeitet, aber auf den ersten Blick hat 
der uC einen externen Speicherbus. Ist es nicht einfacher, das Display 
an den Speicherbus anzuschließen?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

die Wartezeit habe ich probiert bis 1000ms leider keine Veränderung.

Die Defines sehen so aus:
#define  CSELECT      gpio_clr_gpio_pin(CSEL1);
#define  CUNSELECT      gpio_set_gpio_pin(CSEL1);
#define   STROBE_WR      gpio_clr_gpio_pin(WR);gpio_set_gpio_pin(WR);
#define  RS_COMMAND      gpio_clr_gpio_pin(RS);
#define  RS_DATA      gpio_set_gpio_pin(RS);
#define   RDSEND        gpio_set_gpio_pin(RD);

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um welches Display geht es denn überhaupt?

Falls es ein 44780 Derivat ist:
> #define   STROBE_WR      gpio_clr_gpio_pin(WR); gpio_set_gpio_pin(WR);
Ist das die richtige Polarität für den Write-Impuls?
Im Datenblatt ist E im Ruhezustand Low.

Ist der Write-Impuls lang genug (480ns)?

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.