Forum: Mikrocontroller und Digitale Elektronik Probleme bei 16x2 LCD mit KS0066 (EW162B0YLY)


von Phil M. (philmo)


Angehängte Dateien:

Lesenswert?

Hi,

vorweg: ich weiß, dass es zu diesem Controller schon mehr als Genug 
Themen gibt, aber dort habe ich leider nichts passendes gefunden.

Ich habe ein 16x2 LCD vom Typ EW162B0YLY auf dem Laut Datenblatt ein 
EU-KS0066 verbaut ist.

Bei dem Datenblatt hatte ich schon die ersten Probleme: Pin 3 (V0) ist 
hier nicht Beschaltet. So weit ich weiß, müsste hier doch die 
Kontrastspannung angelegt werden? Von einer Kontrastspannung wird 
nirgends etwas erwähnt.

Auf diversen Seiten findet man oft die Faustregel, dass Display mit 
"normalem Temperaturbereich" eine positive Kontrastspannung, um die 1V 
meistens, benötigen und dass Displays mit erweitertem Temperaturbereich 
eine negative Kontrastspannung benötigen.

Laut Datenblatt hat das o.g. Display einen Temperaturbereich von -20 bis 
+70°C und wird als "wide temp" bezeichnet. Somit bräuchte ich doch eine 
negative Kontrastspannung?

Ich bekomme das Display leider einfach nicht zum laufen. Weder in 4 bit, 
noch in 8 bit; weder mit eigenen Routinen, noch mit denen von P. Fleury 
oder anderen.

Das einzige Lebenszeichen das das Display von sich gibt sind schwarze 
Kästchen an den Stellen 8 bis 12 in beiden Zeilen. Die schwarzen 
Kästchen verblassen aber in wenigen Sekunden und sind dann ganz weg. -> 
Problem mit Initialisierung + Kontrastspannung?

Angeschlossen habe ich das Display an einem Atmega168 (20MHz) wie folgt:
DB0-7 an PD0-7
RS an PB1
RW an PB2
E  an PB3

Im 4 bit-Modus habe ich DB0-DB3 offen gelassen oder testweise auch auf 
GND gelegt.
Ich habe ich mit positiver, negativer oder wie im Datenblatt vermerkt 
ohne Kontrastspannung gearbeitet. (Negative Kontrastspannung habe ich 
mit mit einem MAX232 erzeugt).

Mittlerweile bin ich mit meinem Latein am Ende und komme einfach nicht 
mehr weiter.

Kennt jemand eine Routine, die definitiv auf einem KS0066 läuft und kann 
mir was zu meiner Kontrastspannung sagen?

Außerdem bin ich mittlerweile auch ein wenig mit der Ansteuerung 
durcheinander gekommen.
Laut Datenblatt werden erst RS und RW gesetzt (soweit noch klar), aber 
dann wird E auf high gezogen, Die Daten geschrieben und dann E auf Low 
gezogen. Bei anderen Displays habe ich bisher immer RS und RW gesetzt, 
dann die Daten geschrieben und danach E von High auf Low gesetzt 
(fallende Flanke übernimmt Daten). Brauche ich hier noch eine steigende 
Flanke bevor ich die Daten überhaupt schreiben darf? (Habe das auch mal 
im Code geschrieben gehabt, aber das hatte auch nichts funktioniert.

Quellcode habe ich keinen mehr, da ich in den letzten Tagen immer wieder 
von vorne angefangen habe aber nichts funktioniert hat.

Vielen Dank schonmal für jede Antwort!

mfg Phil

von Mike (Gast)


Lesenswert?

Phil Mo schrieb:
> So weit ich weiß, müsste hier doch die Kontrastspannung angelegt werden?
Dann kennst du das Display vielleicht besser als der Hersteller ;-)
Wenn der schreibt "3 VO NO CONNECTOR", dann wird er das wohl so meinen.

von Phil M. (philmo)


Angehängte Dateien:

Lesenswert?

Hi,

natürlich kenne  ich das Display/den Controller nicht besser als der 
Hersteller. ;-) Ich habe bisher nur immer von entweder positiver oder 
negativer Kontrastspannung gelesen, nie aber von keiner. Irritiert hat 
mich, dass von diesem Pin eine Leiterbahn quer über die Platine geht. 
Das kann aber auch eine Leiterbahn ins Nichts sein die dem 0815 Layout 
geschuldet ist.

In den letzten Tagen habe ich nochmal neuen Code geschrieben, das 
Datenblatt mehrmals durch gelesen und die Verkabelung überprüft und auch 
andere Displays getestet (habe mehrere von diesem Typ). Leider bekomme 
ich es einfach nicht zum Laufen.

Ich bin noch neu in C, es kann also durchaus sein, dass der Code der 
größte Mist ist und es anders viel eleganter geht und dann das Display 
auch läuft. Über Kritik/Hinweise würde ich mich freuen.

Was mir noch aufgefallen ist: Wenn ich hinten in der Nähe des 
Controllers auf die Platine und vorne am Displayrahmen drücke, bekomme 
ich Streifen (die Unterstriche, die eigentlich beim Initialisieren 
kommen sollten) oder Vierecke. Allerdings verschwinden sie und sind 
unabhängig von meinem Code.

mfg Phil

Edit: Falls es wichtig ist, ich schreibe mit Eclipse (C-Plugin) und 
programmiere einen ATmega168 (20MHz) über ein Rumpus mit entsprechender 
Firmware.

: Bearbeitet durch User
von dummy (Gast)


Lesenswert?

>Ich bin noch neu in C, es kann also durchaus sein, dass der Code der
>größte Mist ist

Es kann auch sein das deine Schaltung einfach fehlerhaft
verkabelt ist. Auch wenn du das schon zehn mal kontrolliert
hast muss es ja noch nicht korrekt sein.

von Gerhard H. (oderlachs)


Lesenswert?

Auch nutze diese LCDs, habe aber keine Probleme . Anschluss 3 ist zwar 
herrausgeführt , aber die Kontrastspannug wird auf der 
Trägerleiterplatte, schon vor eingestellt. Wenn man dort die Widerstände 
entfernt..oder einen der in Reihe liegt kann man über Pin3 selber regeln 
wie gewohnt.
Irgendwo steht das beschrieben , finde es aber nicht mehr..

Ich habe nur den Mangel, dass die Polarität der BackLED im Datenblatt 
genau umgedreht zu der der Realität beschrieben ist.. Wo GND sein soll 
ist bei mit +Ub also Anode (10 Ohm vorschalten bei +5V)

Gerhard

: Bearbeitet durch User
von Phil M. (philmo)


Lesenswert?

Hallo Gerhard,

Die Sache mit der Kontrastspannung ist interessant, danke für den 
Hinweis.

Wie steuerst Du denn Dein Display an? Könntest Du mir den Code zukommen 
lassen? Vielleicht finde ich ja dann was ich falsch mache. Falls du 
Deinen Code nicht rausgeben kannst/willst, könntest Du Dir dann meinen 
Code mal anschauen den ich ein paar Beiträge weiter oben angehängt habe?

Vielen Dank schonmal!

mfg Phil

von John Wayne sein Schwiegervater (Gast)


Lesenswert?

>Muffin versuchts auch mit Scherzen ab und zu.. Sorry

Versuch's nicht, es mißlingt Dir ständig.

John Wayne sein Schwiegervater

von Phil M. (philmo)


Lesenswert?

Hi,

meine Displays funktionieren jetzt endlich. Ich habe es geschafft zum 
Testen genau die 4 Displays zu erwischen die defekt waren.

Wenn ich den Code fertig überarbeitet habe kann ich ihn gerne hochladen 
wenn Interesse besteht.

mfg Phil

von Joachim B. (jar)


Lesenswert?

Phil Mo schrieb:
> Ich habe es geschafft zum
> Testen genau die 4 Displays zu erwischen die defekt waren.

sicher? manchmal (oft?) ist es nur ein Problem vom Leitgummi, Blechösen 
gerade biegen, LCD abheben und neu aufsetzen könnte viel verrutschte 
Leitgummis wieder richten, schlimmer kanns ja nicht werden, nur besser. 
Evtl. kannst du von deinen 4 einige wiederbeleben.

Phil Mo schrieb:
> Die schwarzen
> Kästchen verblassen aber in wenigen Sekunden und sind dann ganz weg.

das deutet darauf hin bevor die Initialisierung gelaufen ist.

Schwarze Kästchen vor der Initialisierung sind erst mal gut, wenn die 
weggehen bevor die Initialisierung kommt sieht es nach Leitgummi aus.

: Bearbeitet durch User
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.