Forum: Mikrocontroller und Digitale Elektronik Eigenartiger Displayfehler. Er tritt in einigen Fällen auf!


von Freak5 (Gast)


Lesenswert?

http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeMitVe.jpg
So habe ich den Fehler entdeckt.
Ich hatte schon die gesampte Bildschirmfläche gelöscht und auch schon
alles mit schwarz zugemalt. Einzelne Zeilen habe ich auch schon
beschrieben, wobei mir bei den einzelnen Zeilen schon einige
Auffälligkeiten aufgefallen sind.
Dann habe ich das Streifenmuster gezeichnet, welches einwandfrei
angezeigt wurde.

Nach diesem Muster habe ich das am anfang gezeigte, versetzte
Streifenmuster gemalt und habe im Bereich der Unteren Bildschirmhälfte
einen eigenartigen Fehler ausgemacht. Anstatt weiß wird ein zufälliges
Muster gemalt. Ein vorheriges Löschen des Bildschirminhaltes bewirkt
keine Änderung.
http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeOhneV.jpg

Ich kann mir diesen Vorgang nicht erklären, besonders wo die Timings
keinen Einfluss auf dieses Phänomen haben.

P.S.:
Eigenartig ist auch das Verhalten beim Entfernen des Controllers!
Vorher:
http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeOhneV.jpg
Nachher:
http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeOhVeH.jpg


Vorher:
http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeMitVe.jpg
Nachher:
http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeMtVeH.jpg

von jordan (Gast)


Lesenswert?


von Freak5 (Gast)


Lesenswert?

Naja da habe ich herausgefunden, dass prinzipiell die Ansteuerung
funktioniert. Außerdem dachte ich, dass dies nun eher ein neuer Fehler
ist und das vorherige dazu keine Erkenntnisse liefert.
Ich wollte keinen mit so viel Text überhäufen. Vielleicht ist das ja
ein leicht zu klärendes Phänomen.

von Freak5 (Gast)


Lesenswert?

Achja..
Der Code für das Streifenmuster:

LDI r19, 128
Vollschreiben1:
LDI r20, 8
Vollschr1:

LDI r16, 0b00000000
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite

LDI r16, 0b11111111
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite

dec r20
BRNE Vollschr1


dec r19
BRNE Vollschreiben1

Der Code für das versetzte Muster:
LDI r19, 64
Vollschreiben1:
LDI r20, 8
Vollschr1:

LDI r16, 0b00000000
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite

LDI r16, 0b11111111
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite

dec r20
BRNE Vollschr1


dec r19
BRNE Vollschreiben1


LDI r19, 64
Vollschreiben:
LDI r20, 8
Vollschr:

LDI r16, 0b11111111
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite

LDI r16, 0b00000000
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite

dec r20
BRNE Vollschr


dec r19
BRNE Vollschreiben

von Freak5 (Gast)


Lesenswert?

Mir ist jetzt noch aufgefallen, dass der Text auch Fehler aufweist. Die
Zeichen sind zwar da, aber es fehlen oft Pixel. In bestimmten
konstillationen verschwinden einige Zeichen ganz..

von Freak5 (Gast)


Lesenswert?

http://www.freak5mynew.no-ip.info/Muell/DisplayText.jpg
Ich habe den Buchstaben alle zwei Zeichen einmal hochgezählt.
Eigentlich sollte etwas in dieser Richtung erscheinen:
http://www.freak5mynew.no-ip.info/Muell/DisplayText.gif
Nur das ebend mit jeweils doppelten Zeichen.
Eigenartigerweise wird z.B.: das "!" gar nicht angezeigt, obwohl das
vorher funktioniert hat(dafür haben andere Zeichen vorher nicht
funktioniert)
Der Code(r19 ist der zu schreibende Wert. R20 ist der Zähler und r16
wird durch eine Funktion ausgegeben)
LDI r19, 0
LDI r20, 64
Vollschr1:

mov r16, r19
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite



mov r16, r19
rcall DataWrite
LDI r16, 0b11000000
rcall CommandWrite
inc r19
dec r20
BRNE Vollschr1

von Freak5 (Gast)


Lesenswert?

Das lustige ist, dass Pixel, die bei einem Buchstaben da waren, beim
nächsten Buchstaben wieder verschwunden sein können. Die Timings machen
nichts aus...

von Freak5 (Gast)


Lesenswert?

Wenn ich zum Beschreiben des Displays dieses Muster nehme
1100110011000011
Anstatt dieses
1111111100000000
oder dieses
1010101010101010
zu wählen kommt auch irgend ein zufälliges Muster. Das kann ich mir
einfach nicht erklären.
Die Timings konnte ich übrigens um den Faktor 1000 verringern, ohne
dass es mehr Fehler gab. Über 4sek sind die Timings sicher auch
übertrieben und vermeiden tut das auch nichts.

von Freak5 (Gast)


Lesenswert?

Ich habe das jetzt noch einmal fotografiert
http://www.freak5mynew.no-ip.info/Muell/DisplayFehlerMusterStrei.jpg

Auf den ersten Blick sieht das ganz normal aus. Bei genauerem Hinsehen
kann man aber fehlende Pixel am Rande der STreifen erkennen.

von ...HanneS... (Gast)


Lesenswert?

Und die Textausgabe klappt???

von Freak5 (Gast)


Lesenswert?

Naja bei dem B denkt man fast, dass man ein E hat. Da fehlen zu viele
Pixel.
Bei dem e und dem x besteht verwechslungsgefahr, da nur 3 Pixel
gezeichnet werden und das b kann eher ein o sein.

http://www.freak5mynew.no-ip.info/Muell/DisplayText.jpg
Dort habe ich einfach einige Zeichen durchgezählt, indem ich ein
Register hochgezählt habe. Da sind einige Zeichen fast gar nicht
draufgekommen. Andere sehr gut.

Dabei habe ich z.B.: Das "!" Welches gar nicht drauf war vorher
einwandfrei auf dem ganzen Bildschirm ausgegeben.

Merkwürdig finde ich, dass viele Buchstaben nur bedingt ausgegeben
werden, so dass Pixel fehlen.

Erst dachte ich, das liegt an der Kontrastspannung, weil viele Pixel
auch verdammt blass sind. Aber ich habe da 22.5V drauf und das ist
Bedingt durch die 12V Leitung meines Netzteils, welche nicht die vollen
12V sondern eher 11V liefert.

Das mit den Pixeln hätte ich mir ja dadurch erklären können, dass
einige einfach tot sind, aber ich kann den bildschirm einfach komplett
weiß oder komplett schwarz machen, ohne das Fehler auftreten. Auch ein
1px Streifenmuster wird fehlerfrei angezeigt.
Aber schon das versetzen der Streifen kann Fehler hervorrufen.

Ich verstehe das irgendwie nicht. Dem Controller müsste das Muster doch
egal sein. Wenn überhaubt, dann sollte sich vielleicht das Timing
ändern...

von Freak5 (Gast)


Lesenswert?

Ein gutes Beispiel sind die "(" und ")" Zeichen.
Bei dem "(" fehlen mindestens drei Pixel, was im Bezug auf die
restlichen Zeichen fast sogar gut ist.

Oder muss ich dieses Rom vorher auch Aktivieren, damit die Buchstaben
keine Grafikfehler beinhalten? Ich habe das eigentlich anders
verstanden.

von Elektrikser (Gast)


Lesenswert?

22,5V Kontrastspannung? Hast du dich da nicht verschrieben? Das ist
ziemlich hoch. Meine T6963C-Displays arbeiten beim Kontrast mit max.
-12V.

Gruß Elektrikser

von ...HanneS... (Gast)


Lesenswert?

Datenblatt des TLX1391 Seite 6 meint -14,5V.
Mein großes TLC1091 kommt mit -9V aus.

Meintest du eigentlich +22,5V oder -22,5V?

...

von Joachim (Gast)


Lesenswert?

Wenn die Kontrastspannung in dieser höhe falsch anlag, kannste dir
gleich ein neues LCD besorgen! ;)

von Freak5 (Gast)


Lesenswert?

Ach ich meinte zu  Kontrast zu 12V gemessen. Das waren also -11.5 im
Verhältnis zu GND.
Wenn ich das Poti nur ganz leich zu einer seite drehe wird es schnell
blass auf dem Bildschirm und nach ungefähr 0.1 Umdrehungen ist das
Display kokmplett weiß. Das ist praktisch nichts. Ich könnte mir das
Potentiometer eigentlich sparen, oder sollte darüber nachdenken, die
Wiederstände zu GND zu erhöhen, damit ich mit dem Poti noch irgendwas
anfangen kann. Aber eigentlich ist der Auschlag so wie so schon fast
auf der maximal möglichen Kontrastspannung. Das Poti welches zwischen
den Widerständen und dem Inverter liegt ist ja so wie so voll zum
Inverter gedreht.
GND-10KOhm-10KOhmPoti-Inverter

von Freak5 (Gast)


Lesenswert?

Hier habe ich noch einmal das klassische Streifenmuster aufgezeichnet.
Diesmal habe ich aber die obere Hälfte einfach weiß gezeichnet.
Es ist kein Fehler zu erkennen.
http://www.freak5mynew.no-ip.info/Muell/DisplayOK_ObenGel.jpg

Kann es sein, dass das Display mit einem zunehmenden Schwarzanteil
irgendwie überlastet wird? Aber das kann eigentlich nicht sein, weil
man sonst gar keinen Text anzeigen lassen könnte!

von Freak5 (Gast)


Lesenswert?

http://www.freak5mynew.no-ip.info/Muell/DisplayOK_UntenKomp.jpg
Das hier funzt auch. Ich habe extra nicht alles verändert, damit ich
auch den tollen Kontrast meines Displays bewundern könnt.

Kann irgendjemand das erklären?
Wo ist der unterschied zwischen dem hier, oder dem Ausdehnen des
Musters auf den gesampten Bildschirm?

von ...HanneS... (Gast)


Angehängte Dateien:

Lesenswert?

Was willst du uns eigentlich mit deinen Fotos zeigen?

Deine Streifen und Muster mögen zwar beeindruckend sein, aber ist es
auch das, was du programmiert hast??

Wenn ich bei meinem T6963-LCD den Controller ziehe und ein geeignetes
Netzteil nehme, was neben den +5V auch die -9V erzeugt, dann habe ich
auch zufällige Muster auf dem LCD (siehe Bild). Manchmal blinkt da
sogar etwas. Oft ist es aber einfach nur gleichmäßig leer (also kein
Muster).

Wenn du ergründen willst, ob dein LCD korrekt arbeitet, dann musst du
systematisch vorgehen. Da bringt es nix, Streifen oder Muster zu
erzeugen, die kannst du nicht oder nur schwer auf Korrektheit
überprüfen.

Du musst da Text ausgeben, denn nur dann kannst du ohne großen Aufwand
feststellen, ob auch der Text, den du programmiert hast (und nur der
und kein anderer!!!) an der Stelle, die du dafür vorgesehen hast (und
nur dort und nicht irgendwoanders!!!), erscheint. Erst wenn die
Textausgabe hundertprozentig und reproduzierbar klappt, lohnt es sich,
mal über Grafik nachzudenken.

...

von Freak5 (Gast)


Lesenswert?

http://www.freak5mynew.no-ip.info/Muell/DisplayOK_UntenKomp.jpg
http://www.freak5mynew.no-ip.info/Muell/DisplayOK_ObenGel.jpg
Diese Muster wurden zum Beispiel Fehlerfrei erzeugt.

http://www.freak5mynew.no-ip.info/Muell/DisplayFehlerMusterStrei.jpg
Hier fehlte immer ein Pixel
(das kann man an den Kannten sehen)

http://www.freak5mynew.no-ip.info/Muell/DisplayStreifenanzeigeMitVe.jpg
Und hier ist in der zweiten Hälfte anstatt weiß ein zufälliges Muster
angezeigt.

Ich verstehe nur nicht, warum nur bestimmte Muster eine totale
Zufälligkeit hervorrufen und andere zu 100% Korrekt angezeigt werden,
nur weil ich mich auf die untere Bildschirmseite beschränke...

Ich habe beim Text übrigens auch eigenartige Grafikfehler!

von ...HanneS... (Gast)


Lesenswert?

Woher nimmst du die Gewissheit, dass die Muster fehlerfrei erzeugt
werden. Bist du sicher, dass dein Wissen schon ausreicht, Grafiken auf
dem LCD auszugeben? Ich halte das für Zufall.

Ich glaube bald, Hubert hatte Recht, das LCD wäre woanders wirklich
besser aufgehoben...
(http://www.mikrocontroller.net/forum/read-1-179974.html#180885)

...

von Freak5 (Gast)


Lesenswert?

Solange man die Grafiken nicht Pixelgenau positionieren möchte, sondern
auf der y-Achse in 8px Schritten läuft ist das Ausgeben doch kein
Problem??

Der Unterschied zwischen einem Pixel und einem Bild ist bei den
Displays doch eigentlich nicht vorhanden. Man muss einfach ein paar
Pixel hinterherschieben und schon hat man ein Bild.

Meinst du, dass es ein Zufall ist, dass die Pixel genau da sind, wo ich
sie hinhaben wollte?

von Freak5 (Gast)


Lesenswert?

Eine Eigenart ist, dass ich jedes Muster, welches ich ausgeben wollte
bis jetzt fehlerfrei ausgegeben habe, wenn ich die erste Hälfte des
Bildschirms weiß gemalt habe. Das irretiert mich sehr....
Wobei mir auffällt, dass ich mich sicher auch noch um den Speicher des
Textmodes kümmern sollte, wenn ich diesen nicht ganz abgeschaltet
habe.
Was noch nicht erklärt, warum Pixel im Textmode fehlen, wenn ich das
Display auf Textmode only stehen habe und warum alles funktioniert,
wenn der Grafikmodus an ist und die erste Hälfte mit weiß beschrieben
wurde....

von Freak5 (Gast)


Lesenswert?

Schachbrettmuster werden so in allen Variationen fehlerfrei dagestellt.
Mit fehlern werden sie dagestellt, wenn sie den ganzen Bildschirm
bedacken sollen...

von Freak5 (Gast)


Lesenswert?

Meinen Namen kann ich auf dem Display im Textmodus auch schreiben. Das
funktioniert aber nur in gewissen bereichen des Displays und es fehlten
3px beim "B".
Das finde ich immer noch eigenartig.

von Freak5 (Gast)


Lesenswert?

Das mit den Fehlern kommt übrigens auf die Position an.
In Zeile 1  und 2 verschwindet die Schrift fast vollkommen. in 3 ist
sie zum Teil fehlerhaft und in Zeile 4 ist alles zu 100% OK!

von ...HanneS... (Gast)


Lesenswert?

@freak5:

Bendix, wenn deine Fehler immer an den selben Stellen des Displays
sind, dann könnten (Hardware-) Fehler im RAM sein (evtl. durch ESD
verursacht?). Oder Pixelfehler im Display (Verbindung Platine ->
Displayträger-Glasplatte).

Teste es doch erstmal im Textmodus mit verschiedenen Zeichen (den
gesamten Zeichensatz), dann im Grafik-Modus das Verhalten benachbarter
Pixel in den fehlerhaften Bereichen.

Als Fehler kommen hauptsächlich in Betracht:
Im RAM:
- Schluss nach GND
- Schluss nach Vcc
- Schluss zum Nachbarbit
An der Verbindung Platine-Display:
- Schluss zur Nachbarleitung
- Leitungsunterbrechung

Aus welchem Material ist eigentlich die blaue Matte, auf der du
arbeitest? Ist die antistatisch??

...

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.