Hallo, ich versuche seit zwei Tagen ein LCD anzusteuern, bisher jedoch nur mit wenig Erfolg. Ich benutze das TMS320F2808 Experimenter Kit von TI, dazu das Display TC1602A-08 mit einem HD44780 Controller. Da ich keine fertige lcd.c Datei finden konnte wollte ich das ganze erst mal selber programmieren, um zu sehen ob ich was anzeigen lassen kann. Hier ein Ausschnitt aus meinem Programm: void LCD_WRITE(char *data) { int i; for(i=0; i<=9; i++) { //RS if(i == 0 && data[i] == '0')GpioDataRegs.GPACLEAR.bit.GPIO11 = 1; if(i == 0 && data[i] == '1')GpioDataRegs.GPASET.bit.GPIO11 = 1; //RW ... Ich hab das LCD durchgepiept und an allen Pins liegt das an was ich geschickt habe. Zwischendurch konnte ich mal was senden, nach einem Reset des MC ging aber nichts mehr (mit dem gleichen Programm) Möglicherweise liegt das Signal am Enable vom Display zu lang/kurz an? Ich benutze den MC mit 20Mhz. hier meine Sendefunktion: void LCD_ENABLE(void) // => Daten übertragen { DELAY_US(100); GpioDataRegs.GPASET.bit.GPIO10 = 1; //E wenn auf 1, übernimmt mc die daten asm(" nop"); asm(" nop"); asm(" nop"); GpioDataRegs.GPACLEAR.bit.GPIO10 = 1; } Ich habs auch mit 1, 10, 100 µs Versucht, was meiner Meinung aber zu lange ist. Da ich das Display mit dem 8-bit Modus benutze hab ich keine Initialisierung geschrieben, ist das trotzdem nötig? Muss ich das Register des Displays am Anfang erst löschen und den Cursor auf die 1,1 Position setzen? Wo finde ich eine passende lcd.c? Leider konnte ich im Forum nichts finden das mir weitergeholfen hat. Ich kenne mich bisher nur mit Atmel aus, TI ist Neuland. Grüße aus Baden, Alex
Ich denke schon, dass man das Display initialisieren muss. Gibt es dazu irgendwo ein Datenblatt, ich hab es nicht gefunden? Funktioniert das Interface überhaupt mit 3,3 Volt? Grüße, Peter
Hallo Peter, Danke für deine Antwort. In diesem Tutorial steht, dass das Display am Anfang unter dem 8-bit Modus läuft, initialisiert werden muss es nur bei dem 4-bit Modus: http://www.mikrocontroller.net/articles/AVR-Tutorial:_LCD "Allerdings gibt es noch ein Problem. Wenn ein LCD eingeschaltet wird, dann läuft es zunächst im 8 Bit Modus." Wenn du "nur" denkst, dass man es initialisieren muss, glaub ich lieber dem Tutorial, nichts für ungut ;) Das Datenblatt für das Display gibts hier: http://www.jameco.com/Jameco/Products/ProdDS/1585979.pdf Hatte dafür auch ewig gesucht... Ich hab an VSS/K GND, an Vdd/A 5V und für V0 ein 10k Poti eingebaut, so wie auf der Tutorial Seite beschrieben. Die Hintergrundbeleuchtung funktioniert, ich kann den Kontrast einstellen und hatte mit dem selben Aufbau schon mal was angezeigt (Mit dem gleichen MC). Aus dem Datenblatt entnehme ich, dass die 3,3V für die DB0-7 Pins am Display völlig aussreichen sind? Zur Vervollständigung noch das Datenblatt des Controllers: http://www.sparkfun.com/datasheets/LCD/HD44780.pdf Ich hab grade in einem andren Forum gesehen, dass mehrere Leute mit dem Display Probleme hatte, das lag aber daran, dass R/W frei lag. Mein R/W liegt an einem Pin an. Das Display wird als 2 Zeilen Display verkauft, ich kann jedoch nur eine sehen. Liegt aber bestimmt daran, dass man die zweite jedes mal extra anschalten muss? Ich hatte das Display mal versucht über ein kaputtes Flachbandkabel anzusteuern (mit einem Atmega32), könnte es deswegen kaputt gegangen sein? Der eine schwarze Balken wird ja angezeigt... Ich bin für jede Hilfe dankbar! Einen schönen Tag noch, Alex
Hallo nochmal, ich hab möglicherweise die Lösung meines Problems. Ich bin die ganze Zeit von einem HD44780 Controller ausgegangen, weil alle "normalen" LCDs diesen verwenden. Jetzt hab ich grad diese Seite gefunden: http://www.alibaba.com/product-gs/200683260/Character_LCD_Module.html Anscheinend ist in meinem Display ein SPLC780D1 Controller drin. Ob da ein Unterschied besteht und obs dann geht versuch ich jetzt gleich mal. Grüße
So, also das wars echt. Das LCD TC1602A-08 benutzt den Controller SPLC780D1, Datenblatt gibts hier: http://andilcd.de.www28.your-server.de/medien/en/download/controller/andilcd_conchar_sheet_en_splc780d1.pdf Wenn man die Befehle der Seite 9 nacheinander schickt, klappt alles. Und jetzt darf sich Peter freuen, es lag eigentlich nur an der Initialisierung :D die anderen Befehle sind soweit ich das bisher gesehen habe gleich. Alex
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.