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
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
ok, vielen dank ich werde die beiden dinge heute abend testen...ich hoffe es wird funktionieren... mfg, bernd
@ tenner betreibst du das display auch direkt an den msp ports?? oder ist ein pegelwandler um auf die 5v zu kommen zwischengeschaltet??? mfg, bernd
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.