mikrocontroller.net

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


Autor: René (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: René (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: René (Gast)
Datum:
Angehängte Dateien:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: René (Gast)
Datum:

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

Autor: René (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: René (Gast)
Datum:

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: René (Gast)
Datum:

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

Autor: René (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jaja kurzer Zwischenstand nach einer Woche krankheitsbedingten 
ausfalls...

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

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.