Forum: Mikrocontroller und Digitale Elektronik HD44780 Initialisierung


von P. F. (funkpurzel)


Lesenswert?

Hallo,

Ich habe hier ein Projekt mit einem HD44780, PICF452 in MPLAB /C18 in 
der Entwicklung. Prinzipiell funktioniert die Anzeige, wenn ich den 
Debugger (PICKIT3) zum ersten Mal (nach dem Einchalten der 
Stromversorgung des Targets) starte (RESET und dann RUN oder GO TO 
CURSOR).
Beim zweiten und nach allen folgenden Starts des Debuggers zeigt das 
Display nur noch dunkle Zeilen.
Ich nehme an, dass der wiederholte Aufruf der SW-Initialisierung den 
HD44780 aus der Fassung bringt.
Am fertigen Gerät würde das Verhalten ja nicht stören aber während der 
Entwicklung nervt das.
Ich hatte früher bereits einmal den HD44780 eingesetzt und das Problem 
ist mir damals nicht aufgefallen.
Ist dieses Verhalten des HD44780 normal und kann man da Abhilfe 
schaffen?

von Oliver J. (skriptkiddy)


Lesenswert?

Ein ähnliches Problem hatte ich auch mal, als ich den 4-Bit-Modus nicht 
richtig initialisiert hatte. Da hab ich einfach mal das Datenblatt 
konsultiert und timing-exakt die Initialisierungssequenz drauf gegeben 
und voila: es funktionierte, wie es sollte.

Gruß Oliver

von MaWin (Gast)


Lesenswert?

> Beim zweiten und nach allen folgenden Starts des Debuggers
> zeigt das Display nur noch dunkle Zeilen.

Tja, du hast also aus dem Datenblatt stumpf die Initialisierungssequenz 
abgeschrieben, und nicht so eine genommen, die man im Netz findet, die 
sagt, daß sie sowohl bei uninitialisierten als auch bei schon 
initialisierten, insbesondere auf 4 bit geschalteten, Displays 
funktioniert.

von Michael (Gast)


Lesenswert?

Was sagt den die Busy Anzeige. Ist der Display Prozessor immer bereit, 
bevor du das nächste Kommando schickst?

von P. F. (funkpurzel)


Lesenswert?

@Oliver:
Ich verwende die XLCD-Library von C18. Für das Timimg muss man aber 
eigene Routine erstllen. (18 Cyclen bzw. 5 ms bzw. 15 ms. Diese habe ich 
überprüft.

von P. F. (funkpurzel)


Lesenswert?

@MaWin:

Kannst du mir sagen, wo ich diese Beschreibung der 
Initialisierungs-Routine im Netz finde?

von P. F. (funkpurzel)


Lesenswert?

@Michael:

Ich frage vor jedem Befehl an den HD die busy-Routine (der der C18 - 
XLCD-Library) ab. Das funktioniert, andernfalls würde das Programm ja 
hängen.

von flobo4711 (Gast)


Lesenswert?

Wenn man die Busy-Abfrage bleiben lässt und Delays benutzt, dann kann 
man einen Portpin sparen. Die Displays sind sowieso so schnarchlangsam 
dass das keinen Unterschied macht.

Florian

von P. F. (funkpurzel)


Lesenswert?

@flbo4711:

Das mit dem Portpin ist ein guter Tip. Aber gerade bei langsamer 
Peripherie ist es ja günstig, die busy-Abfrage zu nutzen um nicht 
andernfalls worst Case-Bedingungen einhalten zu müssen.

Im Übrigen glaube ich nicht, dass ein Timing-Problem vorliegt, das ich 
mit dem Debugger ja von Hand von einem zum folgenden Aufruf der HD44780 
_Routinen weiter steppe. Da vergeht ja reichlich Zeit.

von Wolfgang H. (Gast)


Lesenswert?

Hi, P. F.,

ein ähnliches Symptom ließ sich zurückführen, weil ich ein Portpin 
bneutzt hatte, das auch für JTAG gebraucht wurde.

Ciao, ein Bekennender
Wolfgang Horn

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.