Forum: Mikrocontroller und Digitale Elektronik HMC-16223 (HDD44780 kompatibel) zeigt kein ASCII nur "?", "_" usw


von Frank (Gast)


Lesenswert?

Hallo,

ich habe zwei HMC-16223 (laut "Datenblatt" HHD44780 kompatibel) von 
Pollin und Neuhold versucht an einen atmega8 anzuschließen.

Das Display funktioniert, also lässt sich initialisieren und zeigt 
Zeichen an.
Problem: es kommen nicht die eingegebenen Zeichen sondern nur 
Fragezeichen, Leerzeichen usw.

Ich verwende das Display im 4-bit-modus, p.fleury-lib, 8mhz an atmega8l, 
fuses: low: ff, high: d9.

die 4 freien Pins des LCDs hängen "in der Luft" (musste an dem 
Displaystecker ziemlich rumbiegen um ihn überhaupt auf die 
Lochstreifenplatine zu kriegen).

Weiß da jemand Rat, wo ich zur Fehlersuche ansetzen sollte?
Als nächstes wird 'ne LED angelötet :)

Gruß,

Frank

von Werner (Gast)


Lesenswert?

Frank schrieb:
> Problem: es kommen nicht die eingegebenen Zeichen sondern nur
> Fragezeichen, Leerzeichen usw.

Und was hast du hingeschickt?
Stimmt die Zeichenanzahl?
Funktionieren Kommandos zur Cursorpositionierung?
Läßt sich das Display löschen?

von holger (Gast)


Lesenswert?

>Weiß da jemand Rat, wo ich zur Fehlersuche ansetzen sollte?

a) Display falsch angeschlossen.
b) Controller viel schneller als im Code angegeben. Timing stimmt nicht.

usw. Das übliche halt.

von Frank (Gast)


Lesenswert?

Hallo

also:
hingeschickt habe ich "0\n" bis "100\n" - löschen lässt sich das 
Display.
Taktung müsste auch Stimmen (LED)

Kursorpositionierung geht komplett daneben.
Zeichen (char)0 bis 255 ausgeben klappt auch niccht (keine Anzeige).
Eigentlich würde ich vermuten, dass die Datenpins falsch angeschlossen 
sind, aber das habe ich eigentlich schon 3x gecheckt:

DataPin4..7 -> PB4..1 -> DataPin0..3
(datenblatt) -> (atmega8) -> (lib)

Gruß,

Frank

von holger (Gast)


Lesenswert?

>Eigentlich würde ich vermuten, dass die Datenpins falsch angeschlossen
>sind, aber das habe ich eigentlich schon 3x gecheckt:

Auch auf Kurzschlüsse?

Schreib dir ein Programm das immer nur einen Pin auf 1 setzt.
Dann misst du am Display mal ALLE Pins nach ob wirklich immer
nur einer (der gewünschte) 1 ist. Das machst du sieben mal und
findest mit Sicherheit in 30 Minuten deinen Fehler.

von Werner (Gast)


Lesenswert?

Frank schrieb:
> DataPin4..7 -> PB4..1 -> DataPin0..3

Bestimmt ... -> PB1..4 -> ...
Oder etwa nicht?

> hingeschickt habe ich "0\n" bis "100\n" - löschen lässt sich das

Und was soll das Display mit dem "\n" anfangen?

von Frank (Gast)


Angehängte Dateien:

Lesenswert?

doch data4..7(lcd 11..14)-> pb4..1, so liegen die pins nebeneinander und 
ich kann das löten :)

das '\n' am Ende soll das LCD veranlassen in die nächste Zeile zu 
springen - hat mit der Library eigentlich immer funktioniert.

Die Pins habe ich jetzt alle, wie oben empfohlen, durchgemessen - 
stimmen mit den angaben in der header-Datei überein.

Ich hab' mal die Header-Datei angehängt. Aufgrund des fehlenden 
Datenblattes (ich finde nur eine Pinbelegung) kann ich nicht sagen, wie 
die Addressen, internen Zeilengrößen, etc. aussehen.


danke für die Hilfe bisher :)

Frank

von Frank (Gast)


Lesenswert?

:) gelöst

war am Ende nur eine Riesendummheit: VCC (LCD) zwar brav verbunden (z.B. 
mit den I²C-Pullups) aber die Leitung ned an VCC (µC) angeschlossen :(

hängt mit dem ersten Fehler, den ich ausgemacht hab' zusammen - deswegen 
vermutlich verdrängt.

Und nochmal riesen Dankeschön für die schnelle und gezielte Hilfe :)

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.