Forum: FPGA, VHDL & Co. standard QSYS Character LCD vs. 16x4 LCD-Modul


von In2 G. (Firma: inspired.projects) (in2go)


Angehängte Dateien:

Lesenswert?

Hallo,
ich bin gerade dabei an einem DE0-Nano-Board ein altes 16x4 LCD-Modul zu 
betreiben.
Dazu habe ich im QSYS das 'Character LCD' eingebunden und nach einigem 
hin und her, auch über nios-2 ein Beispielprogramm ausgeben können. Bei 
dem von Altera gestellten 'Character LCD' handelt es sich um den nicht 
konfigurierbaren 'Optrex 16207 LCD Controller core' eben für ein 16x2 
Optrex 16207-Modul.

Ich betreibe jedoch ein 16x4-Modul 'TM164AAA' 
http://pdf.datasheetcatalog.com/datasheets2/36/361888_1.pdf

Ich weiß jetzt nicht so recht, ob/wie ich die unteren zwei Zeilen 
beschreiben kann. Die oberen werden mit dem Beispielcode beschrieben.
Da ich es jetzt endlich am Laufen habe, würde ich nur ungern alles 
komplett neu machen ;)

Im Anhang habe ich mal meinen display-code angehängt.
Es geht um die Funktion 'test_lcd()' welche ich in der main aufrufe.

Vielleicht hat jemand ein paar Tipps parat.

von In2 G. (Firma: inspired.projects) (in2go)


Lesenswert?

klar ist mir, dass hier die Zeile gesetzt wird:

/* Set Address */
IOWR(LCD_0_BASE, LCD_WR_COMMAND_REG,0x80);

0x80 ==> 10000000 ==> Zeile 1
0xC0 ==> 11000000 ==> Zeile 2

Aus dem Datenblatt ist mir das ehrlich gesagt nicht ersichtlich.
Durch probieren erwies sich 0x00 als Zeile 3

0x00 ==> 00000000 ==> Zeile 3

im Internet habe ich Standardadressen gefunden, aber die treffen bei mir 
leider nicht zu.

DISPLAY POSITION
       1   2   3   4   5   6   7   8   9  10 11 12 13 14 15 16
00 01                                                           0F
40 41                                                           4F
10 11                                                           1F
50 51                                                           5F

: Bearbeitet durch User
von Sigi (Gast)


Lesenswert?

Setz doch einfach mal den Cursor-Modus auf Increment und
füll dann Zeichen 0x00 ... 0xF0 ins DDRAM (einfach den
Wert schreiben, inkrementiert wird dann autom.), am Besten
langsam, dann bekommst du die Reihenfolge und auch den
Wert in jeder Zeile/Spalte. Evtl. helfen auch unterschiedliche
Folgen 0x00..0xF0.

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
Noch kein Account? Hier anmelden.