Forum: Mikrocontroller und Digitale Elektronik LCD mit Sitronix ST7561 über SPI


von René (Gast)


Lesenswert?

Hallo alle zusammen,

ich habe eine Frage zur Anteuerung eines LCD Displays mit einem Sitronix 
ST7561 Chip über einen SPI Bus.

Die Daten werden hierbei derzeit über ein C# Programm in dezimaler 
Schreibweise eingegeben und über einen BF548 an das Display gesendet.


Eine erste Ansteuerung des Displays funktioniert bereits (Ein- 
/Ausschalten des Displays, Einstellen der Frequenz, Art des 
Bildaufbaus,...)

Jedoch bekomme ich keinen definierten Punkte geschaltet (Zeilen, 
Spalten, Grafiken)

Kennst sich jemand mit der Ansteuerung eines solchen Displays aus?

Kann mir ggf. jemand einen Initialisierungssequenz / Befehlskette 
zukommen lassen?



Vielen Dank schon mal für Eure mühen


René

von Benedikt K. (benedikt)


Lesenswert?

René wrote:

> Kennst sich jemand mit der Ansteuerung eines solchen Displays aus?

Ja, hab ich schon mit allen möglichen Features gemacht.

> Kann mir ggf. jemand einen Initialisierungssequenz / Befehlskette
> zukommen lassen?

Darf ich leider nicht, aber poste mal deinen Code, dann kann ich mal 
vergleichen.
Wenn du das Display ansonsten aber schon initialisiert hast, dann sollte 
das Schreiben der Displaydaten eigentlich das einfachste sein.

von René (Gast)


Lesenswert?

Hmmm

einen Code kann ich Dir leider nicht schicken, da ich selber keinen 
habe.
Ich habe lediglich ein Programm zur Verfügung gestellt bekommen, welches 
meine Eingaben an den SPI Bus weitergibt.


Du kannst Dir das so vorstellen, dass ich zwei Eingabefelder habe 
(Adresse und Datenwort) in welche ich die Daten manuell eingeben muss.

Adresse 1 = A0 H-Pegel (Display Data or Command Parameter)
Adresse 3 = A0 L-Pegel (Control Data)

In dem Feld Datenwort gebe ich denn eine Zahl von 0 - 255 ein, welche 
dann von dem Programm in ein binäres Signal umgewandelt wird und über 
den BUS zum Display befördert wird.
Zum Glück ist es mir auch möglich mehrere Werte getrennt über ein Komma 
einzugeben, sodass ich nicht alles wiederholen muss...

Heißt wenn ich mir folgende Daten aus dem Handbuch hole und die 
dezimalen Werte eingebe, so beginnt das Display zu flimmern.


Funktion 18 - Built in Oscillator On/Off
A0  D7  D6  D5  D4  D3  D2  D1  D0
0   1   0   1   0   1   0   1   1      = 171

Funktion 1 - Display On/Off
A0  D7  D6  D5  D4  D3  D2  D1  D0
0   1   0   1   0   1   1   1   1      = 175


Funktion 3 - Display all ligthning On/Off
A0  D7  D6  D5  D4  D3  D2  D1  D0
0   1   0   1   0   0   1   0   1      = 165



Dieses flimmern (meiner Ansicht nach die Bildwiederholfrequenz) lässt 
sich denn wiederum einstellen indem ich die Frequenz ändere (Funktion 
19).


Dass ist quasi mein Problem,
ich müsste also "nur" wissen, welche Funktionen ich aneinandersetzen 
muss, sodass ich eine Ausgabe auf dem Display bekomme.
(Es reicht ja schon wenn es nur ein steuerbarer Pixel ist...)

Wenn dass denn geschafft ist, soll wohl das ganze erst in die Software 
eingebunden werden...


Greeetz René

von Benedikt K. (benedikt)


Lesenswert?

Zeilenadresse setzen:
A0 D7 D6 D5 D4 D3 D2 D1 D0
0  1  0  1  1  0  0  0  1
1  Zeilennummer

Spaltenadresse setzen:
A0 D7 D6 D5 D4 D3 D2 D1 D0
0  0  0  0  1  0  0  1  1
1  Spaltennummer       MSB
1  Spaltennummer LSB

Daten schreiben:
A0 D7 D6 D5 D4 D3 D2 D1 D0
0  0  0  0  1  1  1  0  1
1  Bilddaten: Immer 8 untereinander liegende Pixel pro Byte.

von René (Gast)


Angehängte Dateien:

Lesenswert?

Hey,

das ganze bringt leider keinen Erfolg...
Hab das ganze mal auf drei Arten Versucht.


1)
Ich habe das Display wie im ersten Post beschrieben eingeschaltet, 
sodass sich das "flimmern" zeigt.
Wenn ich nun hier die Daten eingebe sehe ich keine Veränderung


2)
Display eingeschaltet wie oben beschrieben,
Bildwiederholfrequenz geändert auf 200Hz sodass das Bild steht,
Daten eingegeben --> o.E.


3)
MTP OPERATION: LOAD MTP CONTENTS ausgeführt (wie auf Seite 35 im Manual 
beschrieben),
Display eingeschaltet wie oben beschrieben,
Bildwiederholfrequenz geändert auf 200Hz sodass das Bild steht,
Daten eingegeben --> o.E.




Die einzige Veränderung welche ich nach dem ausführen des Befehls LOAD 
MTP CONTENTS feststellen kann ist,
dass das Display komplett hell oder dunkel wird wenn ich die Display 
lights ein- /ausschalte.

Wenn ich diesen Befehl weglasse, dann ist bei Display lights on ein 
komplett helles Display zu sehen
und bei Display lights off wechseln sich helle und dunkle streifen ab.





Hab ich noch irgendwas vergessen?

Irgendeine Initialisierung oder so?



In der angehängten Textdatei habe ich die kompletten Befehle, welche ich 
eingegeben habe.



Greetz René

von Benedikt K. (benedikt)


Lesenswert?

René wrote:
> 1)
> Ich habe das Display wie im ersten Post beschrieben eingeschaltet,
> sodass sich das "flimmern" zeigt.
> Wenn ich nun hier die Daten eingebe sehe ich keine Veränderung

Das ist auch falsch:

Funktion 3 - Display all ligthning On/Off

schaltet alle Pixel auf 1. Das darfst du nicht machen.

> MTP OPERATION: LOAD MTP CONTENTS ausgeführt (wie auf Seite 35 im Manual
> beschrieben),

Das würde ich erstmal weglassen. Da steckt mehr dahinter als im 
Datenblatt steht.

von René (Gast)


Lesenswert?

OK, dass machst sinn dass ich nix sehen kann wenn alle Pixel auf 1 
geschaltet sind.

Allerdings kann ich auch nix erkennen wenn ich dies weglasse.

Ich erhalte immer das selbe Bild, ein schwarzer Flimmerndern Balken auf 
dem Display, als wäre die Bildqiederholfrequenz zu langsam.

Wenn ich diese dann hochsetze, erhalte ich ein Bild in welchem sich 
helle und dunkle linien abwechseln...

von René (Gast)


Lesenswert?

Hmmm hab mich gestern nochmal durch das Datenblatt gelesen und wenn ich 
das richtige sehe hab ich das Display noch gar nicht initialisiert...

Kannst mir das jemand bestätigen?

von Benedikt K. (benedikt)


Lesenswert?

René wrote:
> Hmmm hab mich gestern nochmal durch das Datenblatt gelesen und wenn ich
> das richtige sehe hab ich das Display noch gar nicht initialisiert...

Jain. Die Befehle die du sendest sind im Prinzip die Initialisierung. 
Allerdings initialisierst du nur das notwendigste, was meist auch 
reicht, da eigentlich alle Register beim Einschalten bzw. während die 
Reset Leitung low ist, auf den Standardwert gesetzt. Nur ein paar Sachen 
muss man auf die richtigen Werte setzen.
Wenn du es ordentlich machen willst, musst so so vorgehen wie unter 6.3 
Instruction Setup (Reference).

Für den Anfang sollte aber auch das hier ausreichen:
Zusätzlich zu deiner Variante 2 (mit korrigiertem Display all ligthning 
On/Off) solltest du noch (15) Number of Display Lines Set, (20) Power 
control Set und (21) LCD Bias Set ausführen. Die genauen Werte hängen 
vom verwendeten Display ab.

von René (Gast)


Lesenswert?

Guten morgen,

also das Instruction Setup (Reference) habe ich mir gerstern auch schon 
mal rausgeschrieben und die ersten Versuche damit gestartet.

Ebenfalls bin ich gerade mit deinem Ansatz am arbeiten.

Mal ganz davon abgesehen, dass ich mittlerweile auch mal den 
Displayherstellen kontaktiert habe um mehr informationen über dieses 
Display zu erhalten...


Ich werde mich jetzt erst mal wieder an die Arbeite machen und mich zu 
einem späteren Zeitpunkt noch mal melden.


Danke Dir aber schon einmal für die Hilfe


Greeetz René

von Benedikt K. (benedikt)


Lesenswert?

René wrote:

> Mal ganz davon abgesehen, dass ich mittlerweile auch mal den
> Displayherstellen kontaktiert habe um mehr informationen über dieses
> Display zu erhalten...

Das wird nicht einfach. Ich musste dies zum Glück selbst nicht machen, 
aber dem nach was ich so mitbekommen habe, war das ziemlich nervig. Erst 
nach den 5. oder 10. Email hat Sitronix ein eindeutig messbares 
Verhalten dann bestätigt, das dem Datenblatt widerspricht. Vorher kamen 
nur Standardantworten. Also bloß nicht abwimmeln lassen und immer wieder 
nachfragen wenn die Antworten nicht eindeutig sind. Das Problem bei 
denen scheint zu sein, dass die Entwickler kein Wort Englisch können, 
und der Service nicht viel Ahnung von den Details hat.

von René (Gast)


Lesenswert?

Sagen wir es mal so...

Der Controller ist von Sitronix,
das Display von wem anders...

Von daher bin ich grad sehr zuversichtlich dass mich der 
Displayhersteller auch unterstützt...


Wer weiß, ich werde es herausfinden...

von René (Gast)


Lesenswert?

Jaja kurzer Zwischenstand nach einer Woche krankheitsbedingten 
ausfalls...

Wie du vorhersagtest... bis jetzt keine Rückmeldung vom Diplayhersteller 
:-(

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.