LCD Initialisierung fehlerhaft, warum?

Gast #105411
Lesenswert?

Hallo,

hab hier ein LCD von Assembly 4x20 Zeichen.
Nur ein Problem, es tut sich nichts. Hab es am MSP430F149 am Port 5
angeschlossen im 4bit Modus, aber …. nichts geht! Der Controller läuft
mit einem 8Mhz Quarz.
Der Hintergrund leuchtet, und meine Initialisierung ist wie beschrieben
vom Datenblatt des KS0073 Controllers.
Ein Cursor bekomm ich nicht zum blinken. Kann mir vielleicht jemand
helfen?
Mein Init Code in der Datei.
Angehängte Dateien:
Gast #105412
Lesenswert?

Als erstes musst du mal den 8-bit-Modus wählen, um sicherzustellen, wo
der Fehler liegt. Display kaputt? Oder Ansteurung? Also: Auf Nummer
sicher gehen, der MSP hat doch 48 GPIOs, wieso also so geizig? ;-)

Deine Enable-Funktion setzt auch mit Sicherheit den Enable-Pin korrekt?
Gast #105413
Lesenswert?

Also 8bit geht nicht, dann muss ich die Platine umlöten und
herumkratzen. Ist ein fertiges Layout, was funzen sollte.

Die Enable Funktion denke ich doch das sie das tut.

#define SET_BIT(byte, bit) ((byte) |=  (bit))
#define CLR_BIT(byte, bit) ((byte) &= ~(bit))

void Lcd_Enable(void)
{
  SET_BIT(LCD_OUT, LCD_E);
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  asm("nop");
  CLR_BIT(LCD_OUT, LCD_E);
}
Gast #105417
Lesenswert?

>> genügend Kontrast?

Ist auch meine Vermutung.

Wahrscheinlich kein Software, sondern Hardwareproblem. Der MSP ist ein
3V-Controller, das Display benötigt für den Contrast aber 5V, auch wenn
der Displaycontroller mit 3V laufen würde. Bleibt nur, die
Contrastspannung des Diplays um ca 2V gegenüber Masse negativer zu
machen.

Wie hoch ist denn die Versorgungsspannung des GEsamtsystems?

Viele Grüße

Helmut Weiß
Gast #105418
Lesenswert?

also ich hatte auch gerade erst gewaltige Probleme mit dem KS0073.
AVR mit 3,3V, CodeVision. Das Display (DIP204-6, 4x20 blau) selbst
läuft problemlos mit 3,3V, Kontrasteinstellung ebenso an 3,3V.
Das Problem ist die Initialisierung, lief mit keiner der üblichen
HD44780-Routinen (die Controller sind fast 100% kompatibel :-), genau
da kommt das "fast" zum Tragen. Ich habe dann eine CV-Init-Routine im
Netz gefunden, die funktioniert, aus Zeitgründen aber noch nicht weiter
analysiert, ich war froh, dass es erstmal lief.
Gast #105419
Lesenswert?

danke jungs für eure Hilfe, aber ....   ;-(
bis jetzt kein Erfolg.

@Sebastian:
Ich habe deine Routine mir mal angeschaut, die kann ich leider so nicht
nehmen. Mein LCD ist auf einer Platine schon fest eingebaut, ich müste
hier basteln und die kleinen Füßchen vom Controller irgendwie anzapfen
damit cih auf 8-bit modus komm. Sorry.

@Denis und Helmut:
Ja, Kontrast ist da. Die Spannung ist auch korrekt.

@crazy:
Genau so siehts aus mit deiner Beschreibung. Wo hast du die Rotine her?
kannst du die mir mal geben?

gruß micha
Gast #105424
Lesenswert?

Also der zweite code ist mies.
Keine Magic-Numers!!!!!0x37 da weist du nie mehr was das war.
Im Anhang hab ich ne .c und .h für 4bit dran gehängt.
bzw die .h kommt noch is blos a weng schlecht kommentiert aber ich
glaub doch so weit verständlich.
Angehängte Dateien:
Gast #105428
Lesenswert?

Hast du mal die Pegel nachgemessen? Ich benutze ein HD44780-LCD an dem
MSP430, was problemlos geht. Aber vielleicht sieht dein komischer
Controller die 3V des MSP nicht mehr korrekt als "high" an? Oder
vielleicht geht dir auf dem Weg noch irgendwo irgendwas verloren? Ich
habe deine NOPs jetzt nicht gezählt, aber bist du dir sicher, dass die
reichen? Ich habe bei meinem LCD irgendwas im µs-Bereich benutzt.
Sicherheitshalber erst mal mehr, schneller kann man immer noch werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren