Probleme mit LCD

OP #1915750
Lesenswert?

Hallo zusammen,

ich hab ein kleines Problem mit diesem LCD:
http://www.conrad.de/ce/de/product/181652/LCD-MOD-STN-BLAU-NEGLED-WEISS-16X2/0212040

und zwar kann ich den Kontrast nicht richtig einstellen. Die untere 
Zeile hat immer einen höheren Kontrast als die obere. Belegung siehe 
Bild oben. Woran kann das liegen?
Angehängte Dateien:
#1915802
Lesenswert?

An der Schaltung wird es dann nicht liegen, sonst hättest du keine 
vernünftige Ausgabe.

Dann sehe ich als Möglichkeiten:
- LCD defekt (eher unwahrscheinlich, aber soll ja vorkommen)
- SW-Problem, z.B. zu schnelle Ausgabe
  Willst du mal nach der Ausgabe eine Pause einlegen und
  z.B. im Sekundentakt einen Wert hochzählen, um zu sehen,
  ob der MC sich nicht gleich nach der Ausgabe aus irgendeinem
  Grund resettet?
#1916076
Lesenswert?

Dennis Brenzel schrieb:
> D.h. das könnte auf mein Problem passen? Ist das das selbe Display, dass
> ich verwende? Und wie stell ich den Kontrast dann richtig ein? Eine
> Zeile soll zu sehen (weiß) sein, der andere nicht zu sehen?

Ja.
Das ist bei nicht initialisiertem LCD erst mal eine gute 
Grundeinstellung.
Danach initialisiert man das LCD, schreibt Text hin und stellt ihn 
eventuell nach Bedarf noch einmal nach.

> LCD ist schon das 3. dieser Art, hab schon 2 zurück geschickt.
Ich denke auch, dass du möglicherweise einen ganz banalen Softwarefehler 
hast. Ständig Display löschen und hinschreiben und schon kann man nichts 
mehr bzw. nur seh schlecht etwas am LCD sehen.

Das 1 LCD mal kaputt ist, ok kann sein.
Aber 3 hintereinander ... das glaub ich nicht.
#1916780
Lesenswert?

Zumindest bei 1x16 gibt es zwei Varianten, die unterschiedlich
initialisiert werden und die Zeichen an anderen Stellen haben
(ab dem 8 Zeichen, deshalb fällt mir das ein).
Weiß jetzt nicht, ob es daß bei 2x16 auch gibt.
Falls ja, gibt es evtl. zwei verschiedene Typen dafür.

Welche du auswählen kannst, weiß ich nicht.
Da musst du die Doku zu deinem Bascom lesen.
Das ist gottseidank nicht meine Baustelle.
OP #1917049
Lesenswert?

So, jetzt funktioniert es einwandfrei. Es war falsch initialisiert, 
hattest wohl recht.

Wen es interssiert, hier meine Init-Routine:
1
$regfile = "m8515.dat"
2
$crystal = 2000000
3
Baud = 9600
4
Config Portd = Output
5
Init:
6
Waitms 50
7
Portd = &B11111100
8
Waitms 10
9
Portd = &B11111100
10
Waitms 10
11
Portd = &B11111100
12
Waitms 10
13

14
Portd = &B11111101
15
Portd = &B11111101
16
Portd = &B11110111
17
Portd = &B11111111
18
Portd = &B11110111
19
Portd = &B11111111
20
Portd = &B11111110
21
Portd = &B11111111
22
Portd = &B11111011
23
Return
24
End
#1917218
Lesenswert?

Dennis Brenzel schrieb:
> Warum? Weil ich keine Aliase verwendet habe? Immerhin läuft mein
> Display.


1) Weil niemand damit etwas anfangen kann

   Oder siehst du irgendwo, an welche Pins welche LCD Leitung
   angeschlossen ist

2) Weil sie höchst unsinnig ist.
   Das dieser Unsinn tatsächlich für die korrekte Initialisierung
   deines LCD verantworltich ist - ich galubs nicht

Waitms 50
Portd = &B11111100
Waitms 10
Portd = &B11111100
Waitms 10
Portd = &B11111100
Waitms 10


was soll das sein?
Da wird nirgends auch nur 1 Bit getoggelt. Aus Sicht des LCD haben die 
Leitungen ständig konstanten Pegel. Wenn du behauptest, das 
Initialisiert das LCD, dann kann man höchstens sagen: du hast nicht im 
geringsten verstanden, wie die Kommunikation mit dem LCD überhaupt 
funktioniert.
OP #1917398
Lesenswert?

Karl heinz Buchegger schrieb:

> 1) Weil niemand damit etwas anfangen kann
>
>    Oder siehst du irgendwo, an welche Pins welche LCD Leitung
>    angeschlossen ist

O.k., da hast du recht, so kann mann es auch nicht gebrauchen. Wobei 
ganz oben, in meinem ersten Post ein Belegungsplan vorhanden ist.

> 2) Weil sie höchst unsinnig ist.
>    Das dieser Unsinn tatsächlich für die korrekte Initialisierung
>    deines LCD verantworltich ist - ich galubs nicht
>
> Waitms 50
> Portd = &B11111100
> Waitms 10
> Portd = &B11111100
> Waitms 10
> Portd = &B11111100
> Waitms 10
>
>
> was soll das sein?
> Da wird nirgends auch nur 1 Bit getoggelt. Aus Sicht des LCD haben die
> Leitungen ständig konstanten Pegel. Wenn du behauptest, das
> Initialisiert das LCD, dann kann man höchstens sagen: du hast nicht im
> geringsten verstanden, wie die Kommunikation mit dem LCD überhaupt
> funktioniert.

O.k., bevor man motzt, sollte man sich ersteinmal das Datenblatt 
anschauen welches besagt:
1
power on
2
    |
3
Warten > 15 ms
4
    |
5
RS R/W DB7 DB6 DB5 DB4
6
0   0   0   0   1   1
7
    |
8
Warten > 4.1 ms
9
    |
10
RS R/W DB7 DB6 DB5 DB4
11
0   0   0   0   1   1
12
    |
13
Warten >100µs
14
    |
15
RS R/W DB7 DB6 DB5 DB4
16
0   0   0   0   1   1
17
    |
18
   ...
Hier im Forum wird dauernd gepredigt, man solle sich erst im Datenblatt 
schlau machen. Das habe ich getan, und werde dafür als blöd hingestellt. 
Es steht so im Datenblatt, ich habe mir diesen Schrott nicht ausgedacht, 
sondern übernommen. Verstanden habe ich es, und es funktioniert auch. 
Datenblatt ist Datenblatt. Hast du es dir mal angesehen?
Gast #1917433
Lesenswert?

Hi

> ich habe mir diesen Schrott nicht ausgedacht,
>sondern übernommen. Verstanden habe ich es, und es funktioniert auch.

Willst du uns veralbern? Wie es genau geht, steht im Datenblatt deines 
Displaykontrollers (KS0066).

MfG Spess
OP #1917453
Lesenswert?

spess53 schrieb:

> Willst du uns veralbern? Wie es genau geht, steht im Datenblatt deines
> Displaykontrollers (KS0066).
>
> MfG Spess

Nein, will ich nicht. Ich hatte schonmal eine Init nach dem Datenblattes 
des KS0066 geschrieben, diese hatte aber nicht funktioniert. Bei Conrad 
gibts ein Datenblatt mit Init, welche ich auch verwendet habe und diese 
funktioniert auch.
Sieh selbst:
http://www.produktinfo.conrad.com/datenblaetter/175000-199999/181651-da-01-en-LCD_MOD_STN_BLAU_NEG_LED_WEISS_16X2.pdf
auf der letzten seit.
Gast #1917461
Lesenswert?

Hi

>Ich hatte schonmal eine Init nach dem Datenblattes des KS0066 geschrieben,
>diese hatte aber nicht funktioniert.

Ich auch. Nur meine funktioniert.

>Bei Conrad gibts ein Datenblatt mit Init, welche ich auch verwendet habe >und 
diese funktioniert auch.

Das ist keine Init, sondern lediglich die zu setzenden Bits. Und auch 
der KS0066 übernimmt die Daten erst mit der fallenden Flanke von E. Das 
ist lt. deiner Schaltung PD5. Und da sehe ich, genau wie Karl Heinz, 
kein Bitwackeln.

MfG Spess

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren