Forum: Mikrocontroller und Digitale Elektronik LCD SSD1803 segram schreiben


von AndyII (Gast)


Lesenswert?

Hallo zusammen,

ich habe hier ein LCD mit SSD1803 controller der per SPI angesteuert 
wird. Nun möchte ich die funktion für den segram implementieren.
Ich verstehe leider Seite 22 und 23 des SSD1803 Datenblatts nicht ganz.

Wie kann ich ein Zeichen auf das segram schreiben bzw. dieses ausgeben?

Danke.

von AndyII (Gast)


Lesenswert?

Keiner eine Idee? Das muss doch schon einmal jemand implementiert 
haben...

von Christian S. (roehrenvorheizer)


Lesenswert?

Welches von den vielen Datenblättern hast Du den gelesen? Vorher fange 
ich nicht an, das auf Verdacht heraus zu suchen.


mfG

von AndyII (Gast)


Lesenswert?

Christian S. schrieb:
> Welches von den vielen Datenblättern hast Du den gelesen? Vorher
> fange
> ich nicht an, das auf Verdacht heraus zu suchen.
>
> mfG

Das hier:
https://www.lcd-module.de/fileadmin/eng/pdf/zubehoer/ssd1803_2_0.pdf

sorry

von Braun (Gast)


Lesenswert?

Du musst was “tun”.
Von allein erscheinen dort keine Zeichen.


https://os.mbed.com/users/wim/notebook/textlcd-enhanced/

von AndyII (Gast)


Lesenswert?

Braun schrieb:
> Du musst was “tun”.
> Von allein erscheinen dort keine Zeichen.
>
> https://os.mbed.com/users/wim/notebook/textlcd-enhanced/

Ich habe alle anderen Funktionen des displays erfolgreich implementiert.
Beim segram setzt ich den address poibter auf z. B. 0x00. Anschließend 
schreibe ich ein datenbit z. B. 0xff. Aber auf dem Display erscheint 
nichts und der cursor verschwindet.

von AndyII (Gast)


Lesenswert?

Kann mir denn keiner weiterhelfen? ich komme einfach nicht weiter

von Spess53 (Gast)


Lesenswert?

Hi

>Kann mir denn keiner weiterhelfen? ich komme einfach nicht weiter

Wozu braucht du das? Bist du sicher, das das Display (nicht der 
Controller) das überhaupt unterstützt?

MfG Spess

von Christian S. (roehrenvorheizer)


Lesenswert?

>Ich habe alle anderen Funktionen des displays erfolgreich implementiert.
Super!

>Anschließend schreibe ich ein datenbit z. B. 0xff. Aber auf dem Display 
>erscheint nichts und der cursor verschwindet.

Hallo,

zuerst mal wird dieser Befehl gebraucht:
"9.1.11Set SEGRAM Address (RE = 1)"

zusätzlich gilt:
"RE:    Extended function registers enable bit When RE = "High", 
extended function set registers, SEGRAM address set registers, BID bit, 
HS/DS bits of shift/scroll enable instruction and BE bits of function 
set register can be accessed."

dann Daten ins SEGRAM schreiben mittels:
9.1.15Write Data to RAM

Blick in die Tabelle, die extra kompliziert aufgebaut ist:
7.11SEGRAM (Segment Icon RAM)

Alles was da mit Sx bezeichnet ist mit x von 1 bis 80 oder 96 sind bits, 
die in dem zu zeichnenden Icon als Punkt auftreten können. Also die 
unteren 5 oder 6 Bits eines Bytes, das man ins SGRAM schreibt, werden 
sichtbar. Die oberen zwei Bits eines Bytes sieht man nicht, denn


Auf der nächsten seite sieht man dann, was raus kommt. Mit 5 dot font 
bleibt eine leere Spalte zwischen den Icons, mit 6 dot font nicht. Eine 
Zeile ist jeweils 8 Bits hoch, also bei 16 Adressen kann man anscheinend 
zwei Icons einspeichern ins SGRAM. Un dmit den Control-bits B0 und B1, 
sowie dem anderswo lokalisierten BE kann man eine Zeile blinken lassen 
oder nicht, also nur am linken Rand einen Pixel oder alle 5 oder 6 Pixel 
einer jeden Zeile.

Aber Achtung. Es gibt zwei Funktionstabellen, zwischen denen man 
umschalten kann. Das anscheinend schon ein Programm existiert und alles 
andere anzusteuern ist, dürfte es jetzt mittels einiger Experimente 
gelingen, da ein paar Icons drau zu zaubern. Braucht man mehrere Icons, 
muß man sie vermutlich immer wieder neu laden. Aus dem SEGRAM kann man 
doch auch lesen. Was kommt an, wenn man daraus liest?

Mal schauen, ob das SGRAM jetzt funktioniert. Ich habe hierfür nur das 
Dabla gelesen, aber niemals so ein Display auf dem Tisch gehabt.

mfG

von AndyII (Gast)


Lesenswert?

Vielen Dank für deinen ausführlichen Beitrag.
Ich würde die Tabelle so lesen, dass die segram adresse 0x00 für Spalte 
1 - 5 ist.
Ok soweit so gut.
Wie zeig ich jetzt allerdings das gespeicherte Zeichen an? wird das 
direkt angezeigt? Ich bekomm leider keine ausgabe.

von Christian S. (roehrenvorheizer)


Lesenswert?

Hallo,

ich möchte nicht direkt widersprechen, nur hätte ich vermutet, daß

B1 B0  S1        S2        S3        S4        S5        S6

eine Zeile im Display definiert, also die Sx zeilenweise zu verstehen 
sind und die Spalten mit SEG1, SEG2, Seg3, ... bezeichnet sind in Bild 
7-8. Die Inhalte von acht aufeinanderfolgender Adressen ergeben dann 
genau ein Icon.


Der abgebrochene Satz vom letzten Post sollte heißen:
Die oberen zwei Bits eines Bytes sieht man nicht, denn sie definieren 
die Eigenschaften einer einzelnen Zeile bezüglich Blinken.

Den anderen Satz vom vergangenen Mal korrigiere ich auch noch:
Ein Zeichen ist jeweils 8 Bits hoch, also bei 16 Adressen kann man 
anscheinend zwei Icons einspeichern ins SGRAM. Und mit...

RE soll jedenfalls 1 sein, um die SEGRAM-adresse zu setzen.
Ich hätte gedacht, daß die Daten, die ins SEGRAM gelangen, sofort 
sichtbar erscheinen, aber die sonstigen Abläufe sind relativ 
umfangreich, um sie sofort zu durchschauen.


mfG

: Bearbeitet durch User
von __--_-_ (Gast)


Lesenswert?

AndyII schrieb:
> Kann mir denn keiner weiterhelfen? ich komme einfach nicht weiter

Ohne das DB gelesen zu haben, die Controller sind oft beschissen 
dokumentiert.
Ich habe mir mal Testcode (8051 ASM) vom Hersteller schicken lassen aus 
dem ich dann die Funktion extrahieren konnte die das DB nicht hergab.

von AndyII (Gast)


Lesenswert?

Vielen Dank für eure Antwort.

__--_-_ schrieb:
> Ich habe mir mal Testcode (8051 ASM) vom Hersteller schicken lassen aus
> dem ich dann die Funktion extrahieren konnte die das DB nicht hergab.

könntest du diese bitte mal posten?

Danke.

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.