Forum: Compiler & IDEs ks0108 an mega128


von Michael M. (miguel)


Lesenswert?

Hallo,

ich möchte ein Grafikdisplay (EA W128-6N2) an einem mega128 betreiben.

Habe zuerst den ks0108/glcd-Treiber aus der pycron avrlib versucht:
http://hubbard.engr.scu.edu/avr/avrlib/docs/html/group__ks0108.html
dann den von Holger Klabunde aka "Holgi" von hier:
http://www.holger-klabunde.de/avr/avrboard.htm#ks108

beide haben nicht funktioniert, das Display bleit nach dem Start 
komplett schwarz. Den Status lesen klappt, und zumindest das DisplayOn, 
weil ich das rücklesen kann. Leider habe ich keinen anderen Displaytyp 
zum Vergleichen :(

Das Forum hab ich komplett abgegrast und dabei die Variante von ape 
gefunden, hat aber leider auch nicht geklappt.

Hat jemand (positive) Erfahrungen mit diesem Display?

Wär super wenn jemand den Code im Anhang mal kurz ausprobieren könnte 
bzw. sehen kann wo der Fehler liegt, ich weiss nicht mehr weiter...

Gruß

Micha

von Oliver (Gast)


Lesenswert?

Da ist kein Code...

Zumindest die libs von Holger Klabunde und ape funktionieren bei mir an 
einem artverwandten EA DIP128-6N5LW problemlos, wenn man die delays 
anpasst. Hast du wirklich alles richtig angeschlossen? Reset auf 5V, 
oder am Mega128? Das status-byte lässt sich auch im RESET-Zustand 
lesen...

Oliver

von Michael M. (miguel)


Angehängte Dateien:

Lesenswert?

Sorry, hier der Code.

Ich habe die Ports und Pins so belegt, wie es im (hoffentlich bald) 
fertigen Design sein wird: PA0:7 für Daten, PC5:7 für RS, E und RW, 
PG0:2 für CS0,1 und /RST

Die Reset-Leitung war zuerst auf 5V, aber im Samsung-Datenblatt stand 
etwas von min. 1 us Reset-Zeit nach Anlegen der Versorgungsspannung. 
Kann man das ignorieren?
Nach jedem "Anfassen" der Enable-Leitung gibt es ein 500 ns-delay, nach 
Änderungen an den CS-Leitungen ein paar nop's. Vor jedem Schreiben wird 
auf das busy-flag gewartet.
Nach der Initialisierung lese ich als Status 0x00, vor dem 
DisplayOn-Befehl 0x30. Scheint als würde die Instruktion verarbeitet, 
aber bei Daten tut sich nix.

Gruß

Micha

von Oliver (Gast)


Lesenswert?

Nimm doch erst einmal das Beispiel von ape, Reset auf 5V, und probier es 
damit. Damit schliesst du Code-Probleme aus.

Abgesehen davon ergibt
1
glcd_set_chip(0);
2
ks0108_set_page(3);
3
ks0108_set_address(31);
4
ks0108_outdata(0x00);

einen schwarzen Strich auf schwarzem Hintergrund, und das scheint ja 
genau das zu sein, was du auch siehst :-) Aber da hast du sicher schon 
anderes probiert, oder?

Oliver

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.