Hallo Forum^^ Ich habe hier noch ein 128x64 GLCD mit 2 KS0108-Kontroller rumliegen. Das würde ich gern per Mega32 ansteuern. Von Text-LCD's bin ich eigendlich gewöhnt, das man eine Initialisierungssequenz braucht. Im Datenblatt des KS0108 kann ich soetwas aber nicht finden. Reicht es die Spannung einzuschalten und abzuwarten bis das GLCD per Busy-Flag sagt das es bereit ist? Der Rest mit den X- und Y-Adressen ist ja schön erklärt, auch die Befehle sind soweit klar, nur eben die Initialisierung konnte ich nicht finden. Gruss Stefan PS: Fertige libs will ich (noch) nicht verwenden, da ich erstmal wissen will wie die GLCD-Ansteuerung überhaupt funktioniert.
>Von Text-LCD's bin ich eigendlich gewöhnt, das man eine >Initialisierungssequenz braucht. Im Datenblatt des KS0108 kann ich >soetwas aber nicht finden. Dann nimm das Datenblatt nochmal und lies es SEHR genau. >PS: Fertige libs will ich (noch) nicht verwenden, da ich erstmal wissen >will wie die GLCD-Ansteuerung überhaupt funktioniert. Sie können aber eine gute Quelle sein um Fehler in deinem eigenen Code zu suchen. Oder die Initialisierung zu finden ;)
Jojojojojojo, ich habe das gleiche display bei mir am start. Die ansteurung ist eigentlich relativ einfach, ich poste mal einen link der dich auf eine seite führt die dir spielent ansteurung des displays erklärt: http://www.geocities.com/dinceraydin/djgfxlcdsim/djgfxlcdsim.html und scheck den hier auch mal, sehr coole seite: http://www.linguatec.de/onlineservices/voice_reader/
@Holger: Wenn ich meine Ansteuerung programmiere, werd ich sicher in Vorhandene Programme schauen, aber erstmal muss ich ja wissen welche Abläufe überhaupt nötig sind um das Display zu betreiben. Wenn mich nicht alles täuscht (mein Englisch ist nicht das beste) sollten folgende Zeilen die Initialisierung beschrieben: >4. Reset >Reset can be initialized system by setting RSTB terminal at low level when >turning power on, receiving instruction from MPU. >When RSTB becomes low, following procedure is occured. >1. Display off >2. Display start line register become set by 0.(Z-address 0) >While RSTB is low, any instruction except status read can be accepted. >Reset status appers at DB4. After DB4 is low, any >instruction can be accepted. Stimmt das, oder lieg ich völlig daneben? Wenn ich das richtig Verstanden habe, muss ich also beim einschalten des Displays Reset auf Low schalten und dann warten bis DB4 Low ist. Danach Reset wieder auf 1 und los gehts, oder? gruss Stefan
holger schrieb:
> Dann nimm das Datenblatt nochmal und lies es SEHR genau.
Ich stehe vor einen ähnlichen Problem. Ich habe nur ein Datenblatt zm
KS0108B gefunden und das ist - sorry - Scheiße. Über die Initialisierung
lässt sich der Schreiber leider nicht aus, man kann nur vermuten, dass
ein RESET den RAM NICHT löscht. Und die Timing-Angaben scheinen auch
eher ein feuchter Traum des Entwicklers/Datenblatt-Schreibers und nicht
die Wirklichkeit zu sein...
>Über die Initialisierung lässt sich der Schreiber leider nicht aus,
was schlicht und einfach daran liegt, daß es keine gibt. Strom dran,
Reset auf high, fertig.
Oliver
Oliver schrieb: > was schlicht und einfach daran liegt, daß es keine gibt. Strom dran, > Reset auf high, fertig. Auch das ist eine Information, die in's Datenblatt gehört. Genauso wie die Info, ob das RAM beim Reset gelöscht wird oder nicht (steht nicht im Datenblatt, Weiß das jemand?). Ebenso gehört wenigstens eine Grafik rein, wie Pages und Adressen organisiert sind. Und bei der Gelegenheit könnte man auch gleich den Fehler rausmachen, dass unter Read- und Write-Timing-Diagramm zweimal dieselbe Bildunterschrift steht. Solche hingerotzten Mist-Datenblätter hasse ich. Verursachen bei tausenden von Lesern nur unnötige Zeitverschwendung beim Rätselraten... Was sind eigentlich realistisch, erreichbare Pulsbreiten für Enable und Data-/Address-Hold-Zeiten? Bei mir funktioniert es nur mit ungefähr zehnfachen Werten wie im Datenblatt angegeben (Dieselben Flachbandkabel und ähnliche Verdrahtung lassen übrigens eine um fast Faktor 100 schnellere Kommunikation - entsprechend der dortigen Angaben im Datenblatt - mit dem SJA1000 zu!)
Hi >Genauso wie die Info, ob das RAM beim Reset gelöscht wird oder nicht >(steht nicht im Datenblatt, Weiß das jemand?). Es steht doch im DB, was beim Reset passiert. Und was nicht dasteht passiert auch nicht. >Ebenso gehört wenigstens eine Grafik rein, wie Pages und Adressen >organisiert sind. Das gehört ins Datenblatt vom entsprechenden Display. MfG Spess
>> was schlicht und einfach daran liegt, daß es keine gibt. Strom dran, >> Reset auf high, fertig. Oh doch. Minimale Init:
1 | RS_OFF; //Instruction senden setzen |
2 | WriteDisplay(0x3F); //Befehl Display On |
3 | |
4 | // Display Start Line bei einigen Displays nach Reset scheinbar nicht ok.
|
5 | // Das Bild ist dann in Y-Richtung verschoben. Dies soll helfen.
|
6 | WriteDisplay(0xC0); //Befehl Display Start Line 0 für jeden Controller senden |
7 | |
8 | RS_ON; //Zurück auf Daten |
>Was sind eigentlich realistisch, erreichbare Pulsbreiten für Enable und >Data-/Address-Hold-Zeiten? Kommt auf den Takt an mit dem das Display arbeitet. Zeiten für zwei meiner Displays (in us): #define KS108_E_DELAY 2 // Für mein Pollin Display TG12864B 596kHz FCLK //#define KS108_E_DELAY 4 // Displaytech 64240A 395kHz FCLK.
@holger: Danke. Im Datenblatt meines Displays finde ich leider keine Angaben zum Takt (Hätte mich auch gewundert... ;) ). Ab 7 us funktioniert es auch bei mir zuverlässig. @spess53: Das heißt, das RAM wird nicht gelöscht. Na super... Das heißt ja aber, dass durchaus eine Initialisierungsroutine notwendig ist, denn man muss ja einmal manuell die ganzen Speicherplätze löschen. So, nachdem ich das Timing angepasst und das RAM gelöscht habe, scheint daas Ding nun das zu tun, was es soll. :)
Hi >Na super... Das heißt ja aber, >dass durchaus eine Initialisierungsroutine notwendig ist, denn man muss >ja einmal manuell die ganzen Speicherplätze löschen. Muss man nicht. Man kann das Display auch gleich mit dem ersten Bild vollschreiben. MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.