Forum: Mikrocontroller und Digitale Elektronik LCD Initialisierung fehlerhaft, warum?


von Micha Gueth (Gast)


Angehängte Dateien:

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.

von Sebastian (Gast)


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?

von Micha Gueth (Gast)


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);
}

von Micha Gueth (Gast)


Lesenswert?

upps,

also

LCD_OUT = P5OUT
LCD_E = 0x80 da es auch am Pin P5.7 hängt

von Denis Gérard (Gast)


Lesenswert?

genügend kontrast?

von Sebastian (Gast)


Lesenswert?

Ist der KS0073 kompatibel zum HD44780? Falls ja, probier mal meine
Init-Routinen von www.mathar.com. Die klappen 100%ig.

von Helmut Weiß (Gast)


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ß

von crazy horse (Gast)


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.

von Micha Gueth (Gast)


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

von Dirk (Gast)


Lesenswert?

Hi,

die Init ist wie Crazy Horse gesagt hat anders. In der Codesammlung
findet ihr ein Beispiel von mir. Es ist fuer HW SPI aber da koennt ihr
euch das abschaun.


Mfg

Dirk

von Micha Gueth (Gast)


Angehängte Dateien:

Lesenswert?

ich habe das mal probiert und umgeschrieben.
Aber auch keinen Erfolg. Ich verzweifel bald. Hab mal den Code
mitgeschickt. Da sollte doch wenigstens der Cursor blinken, tut er aber
nicht.

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

hier mal die lcd_dip.h und lcd_dip.lib.
Wie gesagt, für CodeVision und AVR. Funktioniert problemlos, vielleicht
findest du darin den entscheidenden Tip für dich.

von crazy horse (Gast)


Angehängte Dateien:

Lesenswert?

Geht nur eine Datei?

von Florian (Gast)


Angehängte Dateien:

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.

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

do hier noch die .h vlt hilfts
Der code ist für msp;) unter msp-gcc.

von Florian (Gast)


Lesenswert?

Also die Logic sollte mit 3.3 V schon noch gehen das ham die in der ct
auch gemacht allerdings die 5v vcc fürs display brauchst du schon.

von Florian (Gast)


Angehängte Dateien:

Lesenswert?

tools.h fehlt auch noch aber da is nix wichtiges mehr drinn.
aber wers will kommts hier auch noch.
cu Flo
sorry das ich so oft postet hab....

von Sebastian (Gast)


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.

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.