www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TMS320F2808 mit LCD


Autor: Alex B. (plex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Diener (pdiener) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Alex B. (plex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Alex B. (plex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/Charac...
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

Autor: Alex B. (plex)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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/d...
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.