Forum: Mikrocontroller und Digitale Elektronik LCD an MSP


von Bernd (Gast)


Lesenswert?

Hallo,

ich versuche gerade ein Grafik-LCD (122*32 Pixel von Reichelt,
Datasheet unter http://www.lcd-module.de/deu/pdf/grafik/dip122-5.pdf
).

Angeschlossen ist das Teil an einen MSP430F449 mit 8MHz wie folgt:

D0-D7 an P3
A0,E1.E2 an P4

R/W auf GND
RESET auf 5V
VCC auf 5V
VSS auf GND
Kontrast auf -2V - -4V5 (über Poti regelbar)


Damit hängt das 5V LCD an einem 3v3 Controller, was aber kein Problem
sein sollte, da ich nur ins LCD schreibe und der High-Pegel ab 2V4
erreicht ist....

Problem ist, ich weiß nicht ob etwas falsch angeschlossen ist oder nur
die Software ein Fehler hat:

Nur zum Test hab ich folgendes getestet:

// A0 -> 1 = Befehl
DISP_SEL_A0;
// D7-D0 10101111
DISP_DATABUS = DISP_ON;

// Linke Hälfte aktivieren
DISP_SEL_E1;
// deaktivieren....
DISP_DESEL_E1;

//A0->0 = Daten
DISP_DESEL_A0;
// irgendwelche Daten
DISP_DATABUS = 0x34;

DISP_SEL_E1;
DISP_DESEL_E1;


Hat jemand das Teil schon einmal direkt am MSP430 betrieben und hat
vielleicht einen Beispielcode oder irgendwelche andere Tips???

greetz,

bernd

von tenner (Gast)


Angehängte Dateien:

Lesenswert?

hilft das?

gfx_lcd.c

von tenner (Gast)


Angehängte Dateien:

Lesenswert?

gfx_lcd.h

von tenner (Gast)


Angehängte Dateien:

Lesenswert?

char.h

von flintstone (Gast)


Lesenswert?

Hallo Bernd!

Vor kurzem habe ich mit dem gleichen Display experimentiert.
Bei mir ist allerdings die Frage nach der Spannung nicht gewesen, da
ich einen AT89S8252 benutze, der opencollector hat. Genau das war der
Grund, weshalb ich Pullup -Widerstände einsetzen musste. Ich habe die
Datenleitungen mit 15kOhm versehen. Die Steuerleitungen mussten stärker
hochgezogen werden - hier habe ich 1kOhm eingesetzt. Ich habe alle 5
Steuerleitungen an den MC geschaltet.
Wichtig ist auch noch, dass das Display vorher eingeschaltet wird. Per
Befehl musst du das Display auf "ON" schalten.
Hier noch meine Assemblerroutinen, mit denen ich das Display
anspreche.
InitDisplay:
    ; Resetimpuls erzeugen
    CLR  RES
    CLR  RES
    SETB  RES
    ; Display "ON"
    MOV  A,#10101111b
    CALL Displ_Steuer1
    CALL Displ_Steuer2
    ;  Line einstellen
    MOV  A,#11000000b
    CALL Displ_Steuer1
    CALL Displ_Steuer2
    ;  Page einstellen
    CALL  Home
    ;  Spalte einstellen
    MOV  A,#00000000b
    CALL Displ_Steuer1
    CALL Displ_Steuer2
    ; Ausgabe einer Zeichenkette (lösche Display)
    CALL  CLS
    CALL  ZeiKet
    DB  'Hallo Welt! ....'
    DB  0
    RET
Displ_Steuer1:  CLR  A0
    CLR  R_W
    SETB  E1
    MOV  Daten,A
    CLR  E1
    RET
Displ_Daten1:  SETB  A0
    CLR  R_W
    SETB  E1
    MOV  Daten,A
    CLR  E1
    RET
Displ_Steuer2:  CLR  A0
    CLR  R_W
    SETB  E2
    MOV  Daten,A
    CLR  E2
    RET
Displ_Daten2:  SETB  A0
    CLR  R_W
    SETB  E2
    MOV  Daten,A
    CLR  E2
    RET
Displ_Read1:  MOV  A,#0FFh
    SETB  R_W
    SETB  A0
    SETB  E1
    MOV  A,Daten
    CLR  E1
    RET
Displ_Read2:  MOV  A,#0FFh
    SETB  R_W
    SETB  A0
    SETB  E2
    MOV  A,Daten
    CLR  E2
    RET

Das Display läuft jetzt seit ca. 2 Monaten ohne Probleme.

Gruß
Guido

von Bernd (Gast)


Lesenswert?

ok, vielen dank

ich werde die beiden dinge heute abend testen...ich hoffe es wird
funktionieren...


mfg,

bernd

von Bernd (Gast)


Lesenswert?

@ tenner


betreibst du das display auch direkt an den msp ports?? oder ist ein
pegelwandler um auf die 5v zu kommen zwischengeschaltet???

mfg,

bernd

von Bernd (Gast)


Lesenswert?

@tenner

ich habe gerade gesehen, dass du beim schreiben auf das display den RW
auf 1 setzt. Sollte das so sein?? ich dachte beim schreiben muss der
wert 0 sein.

mfg,

Bernd

von tenner (Gast)


Lesenswert?

moin bernd,

das ist nicht ganz richtig, ich setze vor und nach dem schreiben RW auf
1. dann werden die daten auf den bus gelegt und erst dann wird RW auf 0
gesetzt und mit E1 bzw. E2 der chip gewählt.zumindest beim
writecommand(), beim writedate() bleibt RW auf 0.

ich betreibe das display direkt am msp. allerdings sollte der msp dann
mindestens mit 3,3V laufen.

RESET auf 3,3V
VCC auf 5V
VSS auf GND

das dispay kann auch mit VCC 3,3V betrieben werden, allerdings braucht
es dann mehr negative spannung für den kontrast.

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.