www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik KS0108 und Initialisierung? GLCD-Neuling braucht Rat


Autor: Stefan M. (celmascant)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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 ;)

Autor: lol (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/d...

und scheck den hier auch mal, sehr coole seite:

http://www.linguatec.de/onlineservices/voice_reader/

Autor: Stefan M. (celmascant)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Michael S. (msk) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ü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

Autor: Michael S. (msk) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> was schlicht und einfach daran liegt, daß es keine gibt. Strom dran,
>> Reset auf high, fertig.

Oh doch. Minimale Init:
   RS_OFF; //Instruction senden setzen
   WriteDisplay(0x3F); //Befehl Display On

// Display Start Line bei einigen Displays nach Reset scheinbar nicht ok.
// Das Bild ist dann in Y-Richtung verschoben. Dies soll helfen.
   WriteDisplay(0xC0); //Befehl Display Start Line 0 für jeden Controller senden

   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.

Autor: Michael S. (msk) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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. :)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.