Forum: Mikrocontroller und Digitale Elektronik Probleme mit LCD Modul 4x20 Zeichen KS0073


von Winfried (Gast)


Lesenswert?

Hallo,

ich bin jetzt schon zwei Tage am probieren das Display zum laufen zu
bekommen, hatte aber bis jetzt kein Erfolg. Es tut sich gar nichts
werder ein Cursor blink noch ein Buchstabe erscheint.

Habe das Display an einem AVR mega8 hängen PortD(4 Bit modus), (D0 - D3
-> Data) und D4-> Enable D5->R/W. Es passiert nichts wenn ich das
display wie im Tutorial beschrieben initialisiere, auch nicht wenn ich
die hier im Forum modifizierte Variante(laut Datenblatt) verwende.

Wäre schön wenn mir jemand helfen könnte, gibt es eine Möglichkeit zu
Testen ob das Display überhaupt funktioniert?

von StefanKM (Gast)


Lesenswert?

Was für ein Controller ist auf dem Display?

von Maddin (Gast)


Lesenswert?

Kontrastpin!?

Maddin

von Karl-j. B. (matrixman)


Lesenswert?

zu lange datenleitung? spannungsversorgung vergessen? spannung am
display zu niedrig? pins verstauscht?

mfg Karl

von Johnny (Gast)


Lesenswert?

Bei den meisten Character Displays erscheint nach anlegen der
Speisespannungen eine Zeile dunkler und die anderen hell, solange es
noch nicht initialisiert wurde.
Falls das bei Dir der Fall ist, dann wäre die Speisung und
Kontrastspannung schon mal ok.

Falls es nicht der Fall ist, dann sagt es nicht viel aus....

von Winfried (Gast)


Lesenswert?

Die Versorgungsspannungen sind alle Ok dh. wenn ich den Kontrast ganz
hoch mache ist das ganze Display voll mit weißen Rechtecken, also alle
Pixel sind an.

von Winfried (Gast)


Lesenswert?

Habe die ganze Schaltung auf einem Steckbrett (sollte aber kein Problem
sein is ja nicht gerade HF)
Der Kontroller ist : KS0073, ist das Blau/Weiße Display von Reichelt
Initialisiert habe ich das Display wie es im Datenblatt beschrieben ist
nur habe ich den 4 Bit Modus aktiviert

der Initialisierungscode ist :
    ldi lcdCommand, 0b00110100  ; function Set
    rcall send_command

    ldi lcdCommand, 0b00001001 ; 4 zeilen Modus
    rcall send_command

    ldi lcdCommand, 0b00110000 ; 4 bit datenlänge
    rcall send_command

    ldi lcdCommand, 0b00001111 ; display ein, cursor ein cursor blink
    rcall send_command

    ldi lcdCommand, 0b00000001 ; clear display
    rcall send_command

    ldi lcdCommand, 0b00000110 ; Cursor auto increment
    rcall send_command

send_command:
           mov temp1, lcdCommand
           swap temp1
           andi temp1, 0b00001111
           out PORTD, temp1
           rcall lcd_enable
           andi lcdCommand, 0b00001111
           out PORTD, temp2
           rcall lcd_enable
           rcall delay
           ret

nach jedem send_command warte ich ca. 200 ms

von Andreas (Gast)


Lesenswert?

Hallo,

versuch doch einfach mal ein c-programm aus der codesammlung aus. Da
gibt es auch eins mit 4Bit-Modus. Oder die Lib von Peter Fleury.

Übrigens: Im SPI Modus funktioniert das Display auch sehr schön.

von Winfried (Gast)


Lesenswert?

Habe es mit C versuch, aus der Codesammlung mit folgenden Parametern in
der Headerdatei lcd.h habe 7,3728 Mhz:
#define XTAL 7372800
#define LCD_PORT         PORTD        /**< port for the LCD lines   */

und aufgrufen habe ich :

int main(void)
{
  lcd_init(LCD_DISP_ON_CURSOR_BLINK);
  lcd_clrscr();
  lcd_putc('T');


while(1)
;



}
 geht aber auch nicht, das Display zuckt kein bisschen, habe auch alle
Verbindungen überprüft auch an den Lötstellen der Pins, im Display
alles OK. an was könnte es noch liegen???

von Winfried (Gast)


Lesenswert?

Übrigens auslesen(Busy) des Displays geht auch nicht, ist vielleicht das
Display kaputt? Wenn ja gibt es einen Test?

von dotstyler (Gast)


Lesenswert?

Ehmmmm Hallo,
hieß es eigentlich nicht dass man die oberen vier Bit(DB4-7)für 4-Bit
Interface benutzen sollte, und die unteren(DB0-3) gegen ground
schalten?

von Andreas (Gast)


Lesenswert?

Hast du auch die PIN-Nummern im header angepasst, d.h. RS, RW und E-pin?

von Winfried (Gast)


Lesenswert?

Hallo habe ein neues Display besorgt, aber das geht auch nicht! Ich
keine Ahnung an was es liegen könnte, habe im header alle pins
angepasst  nur. habe auch schon die befehle in je 4bit unterteilt und
ans display geschickt, muß ich nach jedem nibbel(msb) eine gewisse zeit
warten bis das lsb geschickt werden kann?

von Michael U. (Gast)


Lesenswert?

Hallo,

habe gerade mal ins Datenblatt geschaut:

PowerOn
min. 20ms warten
0010 ausgeben

Ich hatte mit einem anderen Controller mal das Problem, daß er den
4Bit-Mode erst beim 2.Mal akzeptierte,
Bits 0-3 sollten am Masse, einige Display haben sonst Probleme

min. 39µs warten
0010 ausgeben
N0xx ausgeben  B Anzahl Zeilen 0 - Eine, 1 - Zwei
min. 39µs warten
0000 ausgeben
1DCB ausgeben  D Display On/Off, C Cursor On/Off, B Blink On/Off
min 39µs warten

usw.

Die Pausen beim PowerOn-Init habe ich meist länger als angegeben
gemacht, man initialisiert den Kram ja nur einmal...

Gruß aus Berlin
Michael

von Winfried (Gast)


Lesenswert?

es geht jetzt habe im datenblatt was falsch gelesen, der rest pin muß an
5V und nicht wie ich dachte an gnd, trotzdem danke an alle die mir
geantwortet haben

von Marcel N. (rufnag)


Lesenswert?

sers,
hab das gleiche problem, hatte bis jetzt den reset pin gar net 
verbunden, da bin ich jetzt mal gespannt ob es klappt wenn ich den an 5V 
leg, wenn ja dann danke

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.