Hallo,
Ich versuche gerade eher weniger erfolgreich das LCD-Modul TG12864B-13B
von Pollin mit einem Atmega48 anzusteuern.
Verdrahtung ist:
DB0-DB7 an PB0-PB7
D/C an PC0
R/W an PC1
E an PC2
CS1 an PC3
CS2 an PC 4
RST an Vcc
Das Display "funktionier" also die Kontrastpannung passt und ich sehe
Pixel.
Mein Code soll auf dem Display ein 8*8 Pixel großes Schachbrett
erzeugen. Das klappt aber nicht wirklich. Nach einem Reset zeigt das
Display manchmal nichts an, manchmal ein fehlerhaftes Schachbrett unten
links und manchmal ein fehlerhaftes Schachbrett oben rechts.
Um Timing Probleme auszuschließen läuft der Controller mit 128 kHz, das
sollte dem Display eigentlich mehr als ausreichend Zeit lassen.
Vielen Dank für Eure Hilfe :)
Ich hab bis jetzt, leider erfolgslos, drangesessen. Würde mich sehr
freuen, wenn jemand mal kurz über den code schaut oder mir irgendwie
anders weiterhelfen kann.
Hast Du, trotz des niedrigen Taktes, die Signale bereits einmal mit
einem Oszilloskop angesehen? Ground Bounce und Übersprechen werden auch
bei 128 Hz nicht besser :)
Also ich würde danach als nächstes:
-sicherstellen dass der Takt wirklich so niedrig ist wie Du denkst.
-etwas Delay hinter SELECT1 einfügen und ausprobieren ob das irgendetwas
ändert.
-RST mal wirklich ansteuern, mit erzkonservativen Timings, statt es auf
VCC zu legen.
-ggf die andere Displayhälfte ansteuern und vergleichen (bezieht sich
dein oben links/oben rechts auf das gesamte Panel oder auf innerhalb
einer Hälfte?).
-Die Timings im DB nochmal studieren. Insbesondere auch verifizieren mit
welchem Takt der Displaycontroller selbst läuft (gerade bei
Surplus-Textdisplays wurden da emetisch aktive Reittiere zahlreich in
der Nähe des pharmazeutischen Einzelhandels observiert, evtl kann das
auch bei den Grafikdisplays so sein).
Ich hatte ein ähnliches Problem mit dem Display von Pollin (allerdings
das mit blauer Hintergrundbeleuchtung) nach einiger Sucherei hab ich
dann festgestellt das CS1 und CS2 vertauscht waren, außerdem waren die
Lötbrücken der Hintergrundbeleuchtung falsch verbunden also 19 war LED+
und 20 LED-
So, mittlerweile läufts. :)
Ich hab allerdings noch eine Frage zu der ich im Datenblatt keine
Antwort gefunden habe. Gibt es nach bestimmten Befehlen auch Wartezeiten
( wie beim hd44780 z.b. beim return home) ?
Ich muss ganz eherlich sagen, so genau weiß ich es nicht. Hab den Code (
war ja noch nicht viel) einfach nochmal geschrieben und versucht, das
timing Diagramm aus dem Datenblatt so genau wie möglich umzusetzen.