Seltsames Verhalten eines KS0070B LCD

OP #228528
Lesenswert?

Hallo!
Ich habe einen Atmega8 und an diesen ein Displaytech 162 Display (16x2
Zeilen) angeschlossen (laut Datenblatt besitzt dieses einen
KS0070B-kompatiblen Controller).
Das ganze hängt an einem 9V-Netzgerät und kann mittels der parallelen
Schnittstelle programmiert werden.
Ich habe mich beim Programmieren an das Datenblatt von Samsung für den
Controller gehalten, jedoch verhält sich das Display seltsam.

Ich kann die zweite Zeile nur dann ansteuern, wenn der Schaltkreis
einerseits am Netzgerät hängt, ich den parallelen Stecker einstecke und
diesen dann wieder herausziehe.
Sonst wird nur die erste Zeile verwendet.

Den Code (für avr-gcc) habe ich angehängt.
Ich bin sonst ratlos.

Danke für Hilfe!
Angehängte Dateien:
Gast #228531
Lesenswert?

Hallo Benedikt,

es kann durchaus sein das das normal ist, manche display können nach
dem powerON zyklus nur einmal initialisiert werden umd es dann neu zu
initialisieren muss die spannung vom display und das ganze einen neuen
reset bekommen... das könnte ne ursache sein... zum anderen könnte es
sein das die initialisierungssequenz des displays zu unzuverlässig...
wenn du mit warteschleifen arbeitest fürs timing dann verlängere mal
die wartezeit nach PowerON des displays

gruß alex
Gast #228537
Lesenswert?

Seltsam ;-)
Hatte Anfangs die Init-Routine hier aus dem TUT verwendet.
Da diese mir zu unverständlich war, bin ich nach dem Datenblatt des
KS0066U gegangen was nicht auf Anhieb funktioniert hatte (ähnlich wie
bei Dir, ging nicht nach dem Flashen, erst nach aus-/einschalten).
Bin am Ende darauf gekommen, den 4 Bit Mode über lcd_command in 2
Nibbles 2 mal zu senden.
Hier ein Auszug der funktionierenden Init:
 ldi a,0b100010    ;4-Bit Mode (2 mal)
 rcall lcd_command
 ldi a,0b101000    ;4-Bit Mode, 2-line mode und Font 5x8
 rcall lcd_command_W50uS

MfG
Andi
Gast #228539
Lesenswert?

In meinem Beispiel wird der 4 Bit Mode eigentlich 3 mal gesendet, 2 mal
im ersten lcd_command und das dritte mal zusammengefasst mit dem 2 Line
Mode und Font 5x8.

Geht es bei Dir auch so?:
 lcd_command(0x22);
 lcd_command(LCD_FUNSET | 0x20 | LCD_FUNSET_2LINES);

Das 0x20 ist quasi der dritte 2 Line Mode.

MfG
Andi

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