Forum: Mikrocontroller und Digitale Elektronik DDRAM Adressierung (DG-14032 GLCD)


von Pollinarr (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Bin fast am verzweifeln...

Das das DG-14032 Grafik LCD von Pollin ja HD44780 kompatibel ist und 
auch als 2x17,5 Zeichen Display angesteuert werden kann konnte man ja 
hier schon nachlesen. Hatte heute auch wunderbar funktioniert. Nachdem 
das Baugleiche 2x20 Display erfolgreich lief testete ich das neue GLCD.

Zeile 1 startet bei 0x80 und in Zeile 2 tut sich etwas wenn ich bei 0x90 
anfange zu schreiben. Alles verhält sich soweit ganz normal.

Jedoch gibts beim setzen des Cursors Probleme.
Schreibe ich z.B. auf 0x81 (also auf die 2. Spalte in der 1. Zeile) ein 
X dann erscheint es in Spalte 3 der 1. Zeile. Bei 0x82 ist es die 5. 
Spalte und bei 0x83 die 7. und so weiter.

Habe den gesamten Tag gegrübelt und getestet aber ich bekomme den Cursor 
einfach nicht da hin wo er hin soll.

Nachdem man aber erkennen konnte das einfach immer nur eine Stelle 
übersprungen wird hatte ich dann doch Hoffnung das hier einer wissen 
könnte was damit nicht stimmt bzw. ob es einfach nur anders konfiguriert 
werden muss.

Es handelt sich um ein Pollin Net-IO mit ETH_M32_EX_Firmware, die LCD 
Lib ist von Ulrich Radig.

Grüße

Marius

von spess53 (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Das Display hat, so weit mir bekannt ist, einen ST7920 Controller von 
Sitronix. Der will an jeder Cursorposition zwei Bytes. Siehe Anhang 
S.11.

MfG Spess

von Pollinarr (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank ! Das wars! Unsere europäischen Zeichen sind half-width, 
daher will er zwei Bytes haben.

Was mich zu meiner nächsten Frage führt... Nehmen wir das Beispiel aus 
dem Datenblatt:

Dort steht in half-width Zeichen " Sitronix ST7920 ". Die Ziffer Sieben 
steht an einer Halbbyte stelle (0x85, L-Byte).
Da der Controller ja zuerst das H und dann das L Byte lesen möchte 
folgere ich daraus, das es nicht möglich ist NUR die 7 aus ST7920 zu 
überschreiben.
Es müsste ja vorher nochmal das T geschrieben werden um an die 7 zu 
gelangen.

Oder einfach: Ist es nicht möglich, den Cursor ohne Shift o.ä. an eine 
bestimmte Stelle zu setzen, die dem L-Byte entspricht ?

Werde mir auch mal ein paar Libs zum ST7920 besorgen und da ein wenig 
auf Spurensuche gehen. Klar, wer ein Textdisplay braucht sollte sich ein 
Textdisplay kaufen, aber gerade die kompatiblität macht dieses GLCD so 
reizvoll.

Grüße

von Pollinarr (Gast)


Lesenswert?

Nachtrag:

Habe in einem anderen GLCD Datenblatt (LM16032DDC) welches auch 
half-width unterstützt folgendes gefunden:

Standard ASCII code (8bit, 00h~7Fh) could write into DDRAM for 
displaying the half-width
Character (8x16 dots font). The display character should be on grid 
only, and two characters
should be written in each write operation.


Was den Verdacht verhärtet, das man kein einzelnes Low-Byte Zeichen 
schreiben kann.

Hmm dann muss ich mich wahrscheinlich doch mit GLCD Fonts auseinander 
setzen...

von Ottmar K. (wil1)


Lesenswert?

Hallo Pollinnarr,

hast Du schon eine Lösung für Dein Problem gefunden? Wenn nicht Melde 
Dich nochmals. Ich kann Dir weiterhelfen, bei mir klappt LCD 2x16 und 
Grafik.


mfG Ottmar

von Henrik H. (Firma: TU Chemnitz) (heha)


Angehängte Dateien:

Lesenswert?

> Das Display hat, so weit mir bekannt ist, einen ST7920 Controller von
> Sitronix. Der will an jeder Cursorposition zwei Bytes. Siehe Anhang
> S.11.

Letztes Wochenende hatte ich versucht, den seriellen Modus des ST7920 zu 
aktivieren. Das Pin ist an der richtigen Stelle herausgeführt und auch 
mit dem richtigen Pegel (5V) für den Nibble/Byte-Betrieb verbunden.
Das Auftrennen und Verbinden des Pins mit Masse schaltet jedoch 
(zumindest) RS zum Ausgang! Nicht zu einem /CS-Eingang.

Damit kann es kein  ST7920 sein.  Schade. Ich wollte 
Mikrocontroller-Pins einsparen.

Die übrigen Angaben aus dem Datenblatt erscheinen mir korrekt. Das 
Pollin-Display hat übrigens den chinesischen Zeichensatz nach GB (Guojia 
Biaozhun = Nationalstandard), das entspricht DOS/Windows-Codeseite 936. 
Mit WideCharToMultiByte(936,0,utf16string,-1,bytebuf,...) kann man 
tatsächlich die passenden chinesischen Zeichen darstellen; der 
Zeichensatz enthält auch kyrillisch (natürlich nur als vollbreite Form) 
und Hiragana. Siehe Foto. (Das Demo-Programm kommt noch.)

Da das Display keine "halbbreiten" (also die Breite normaler 
ASCII-Zeichen, von denen das Display 17,5 Zeichen pro Zeile darstellen 
kann) benutzerdefinierten Zeichen unterstützt, ist es für den 
deutschen Sprachraum eher ungeeignet. Um Umlaute darzustellen muss man 
faktisch den Vollgrafikmodus bemühen. Da kann man auch gleich alles per 
Vollgrafik ausspucken, mit einem noch schöneren proportionalen Font 
vielleicht.

MfG henni

von spess53 (Gast)


Lesenswert?

Hi

>Das Auftrennen und Verbinden des Pins mit Masse schaltet jedoch
>(zumindest) RS zum Ausgang! Nicht zu einem /CS-Eingang.

Wie hast du das festgestellt? RS hat einen internen Pull-Up-Widerstand.

MfG Spess

von Henrik H. (Firma: TU Chemnitz) (heha)


Lesenswert?

Hallo!

>>Das Auftrennen und Verbinden des Pins mit Masse schaltet jedoch
>>(zumindest) RS zum Ausgang! Nicht zu einem /CS-Eingang.

> Wie hast du das festgestellt? RS hat einen internen Pull-Up-Widerstand.

Indem die Stromaufnahme exorbitant anwächst, wenn man versucht, den 
vermeintlichen /CS-Eingang auf Masse zu ziehen.

henni

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.