Forum: Mikrocontroller und Digitale Elektronik Grafikdisplay KS0108


von Marcus Zinn (Gast)


Lesenswert?

Hallo !
Ich habe eine Grafikdisplay 128x64 mit zwei KS0108 Controller.

Folgendes Problem:

Ich habe zur Zeit nur die eine Hälfte vom Display sichtbar. Dabei wird 
immer das selber Darstellungsmuster, so eine Art Strichcode angezeigt.

Folgende Parameter setze ich am Anfang
R/S = 0
R/W = 0
EN  = 0

0x3F = Display On
0x40 = Set Y Address 0
0xB0 = Set X Page 0
0xC0 = Set Display Start Line

R/S = 1
R/W = 0
EN  = 0

Danach beschreibe ich das RAM an der Stelle 0 - 63 mit 0xAA.

Meine Taktleitung ist die EN, von High nach Low werden die Daten gesetzt 
bzw. übernommen.

Was mache ich verkehrt, ich kann einfach das dargestellte Bild nicht 
verändern ?

Wäre nett, wenn ich ne kurze Hilfe bekommen könnte!

Mfg Marcus

von maddin (Gast)


Lesenswert?

..eventuell einfach mal was anderes rein schreiben als 0xaa, denn dies 
sind deine striche.. 10101010bin = 0xaa...

die controller lassen sich warscheinlich über getrennte cs oder reset 
leitungen ansprechen, und momentan scheinst du den einen zu 
aktivieren....

m.

von Marcus Zinn (Gast)


Lesenswert?

Hallo !
Die Controller lassen sich über zwei CS Leitungen auswählen - korrekt. 
Bis jetzt konnte ich auch nur einen einzigen ansprechen obwohl ich dies 
entsprechend in meiner Software mit integriert habe ! Keiner Ahnung 
warum.


Kleiner Nachtrag noch die "Page" fängt bei 0xB8 und nicht bei 0xB0 an.
Das war ein Schreibfehler von mir !

Ich werde jetzt versuchen, verschiedene Parameter ins Ram zu schreiben, 
mal sehen was passiert!

Mfg Marcus

PS: Ich brauche noch weitere Ideen, wie ich mein(e) Problem in den Griff 
bekomme !

von maddin (Gast)


Lesenswert?

..in deiner beschreibung oben steht nichts vom setzen der cs 
leitungten...

du betreibst im grunde genommen 2 - 64x64 displays! das ist das ganze 
geheimnis...


bei deiner momentanen beschreibung hast du 4 waagerechte striche im 
oberen 8tel eines der beiden hälften, wobei der abstand von strich zu 
strich immer gleich ist, oder!? bei anwahl der page 1 solltest du das im 
2ten 8tel des jeweiligen displays haben... usw..

also, irgentetwas stimmt mit der ansteuerung oder verdrahtung deiner 2 
cs leitungen nicht.

m.

von Marcus Zinn (Gast)


Lesenswert?

Hallo !
Für jeden Controller mache ich diese Initialisierung hintereinander. 
Dabei wähle ich zwischen
[ CS1 Low & CS2 High ] Controller 1 bzw.
[ CS1 High & CS2 Low ] Controller 2 aus!

Ich habe leider keine Möglichkeit die Striche zu verändern.
Es taucht immer wieder die selbe Pixel-Darstellung in der einen Hälfte 
auf.

Was tun ?

Mfg Marcus

von Marvin M. (Gast)


Lesenswert?

Etwas anderes als 0xAA ins RAM schreiben. Wurde ja schonmal erwähnt.
Du weißt schon, dass jedes Bit im RAM einen Pixel repräsentiert?

von maddin (Gast)


Lesenswert?

...hast du denn die 4 linien im oberen achtel!? ansonsten ist es evtl. 
nicht richtig initialisiert....

..ich würde dir empfehlen dein problem etwas genauer zu beschreiben, 
oder besser gesagt dein ist-stand....

m.

von Marcus Zinn (Gast)


Lesenswert?

Ich beschreibe jedes Pixel mit einem neuen eigenen Wert ...
Aber die Problem bleiben...  :-(

von Marcus Zinn (Gast)


Lesenswert?

Wenn ich das Display mit 0xFF beschreibe - ist mein Bild weiss.

Alle anderen Werte außer 0xFF liefern immer die gleiche Darstellung vom 
Bildaufbau.

Es kann sein das beim Init eine Fehler ist allerdings bin ich der 
Meinung das soweit alles in Ordnung ist!

Physikalisch liegen sämtliche Signale am Display an.

Hat jemand ein Init was ich vergleichen kann ? Ich programmiere in C.


Mfg Marcus

von maddin (Gast)


Lesenswert?

...versuch dir mal vorzustellen du sollst eine dose mais eines 
bestimmten herstellers kaufen, und man schickt dich mit diesem wissen 
los.

würdest du sie finden?

wenn du dann fragen stellst und der jenige dir auf die frage: welche 
marke es denn sein soll, mit: "der mais ist gelb" antwortet, was würdest 
du dann machen!?

m.

von Marcus Zinn (Gast)


Lesenswert?

Nein - die Dose finde ich nicht!

von maddin (Gast)


Lesenswert?

...was genau ist auf deinem display wo zu sehen, was passiert wenn du im 
code den zugiff auf die zeilen mit anderen werten füllst, was passiert 
wenn du die pages änderst, was passiert wenn du die y adresse 
veränderst, und welchen einfluss hat es auf die darstellung im display?

hast du die ansteuerung selbst geschrieben?

...versuche logisch in kleinen schritten an das problem ran zu gehen, 
wenn du nicht zum erfolg kommst, dann poste die schritte und die 
ergebnisse hier, ansonsten findet hier keiner die dose.

m.

von maddin (Gast)


Lesenswert?

1) initialisierung überprüfen (zugriff sicher stellen)
2) einen wert schreiben
3) wert auf display überprüfen
4) mehrere werte schreiben
4.1) werte lesen
5) hardware abstrahieren, sodass es wie ein 64x128 ansprechbar ist
6) zugriffsfunktion set(x,y,color) implementieren
7) GLCD routinen implementieren, wenn gewünscht
8) grafik text usw...

m.

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.