Forum: Mikrocontroller und Digitale Elektronik ATMEGA16 LCD2x16


von Franz (Gast)


Angehängte Dateien:

Lesenswert?

Bitte helft mir.

Ich bin Programmieranfänger und versuche nun schon seit drei Tagen ein 
externes LCD auf meinem easyavr5 zum laufen zu bringen.

Beim LCD-Display handelt es sich um das HMC-16223.


Am easyavr5 habe ich den PortD gewählt und es ist ein ATMEGA16 µc drin.

Die Beschaltung des LCD an den µc erfolgte gleich wie im AVR-Tutorial.

Pin #-LCD Bezeichnung-LCD Pin-μC
1              Vss           GND
2              Vcc           5V
3              Vee           GND oder Poti (siehe oben)
4              RS            PD4 am AVR
5              RW            GND
6              E             PD5 am AVR
7              DB0           offen
8              DB1           offen
9              DB2           offen
10             DB3           offen
11             DB4           PD0 am AVR
12             DB5           PD1 am AVR
13             DB6           PD2 am AVR
14             DB7           PD3 am AVR

Weiß jemand wie die richtige Dip Switch Stellung am easyavr5 für diese 
Schaltung zu treffen ist?
Muss man den Jumper von PortD auf Pull Up oder Pull Down setzen?
An den Anschlüssen des PortD sind insgesamt 10 Pins.
PD0 - PD7, VCC und GND.
Muss VCC an Spannung und GND an Masse gelegt werden?

Anbei noch meine verwendeten file`s.

Danke schon im Vorhinein für Eure Hilfe.

MfG

Franz

von Michael (Gast)


Lesenswert?

Hallo Franz!

Hab mir deine Files angesehen.
Sollte eigentlich funktionieren. Bist du sich alles richtig 
angeschlossen zu haben?

von Franz (Gast)


Lesenswert?

Hi Michael!

Hab ich schon kontrolliert.
Die Schaltung ist meiner Meinung nach richtig angeschlossen.

MfG

von Stefan W. (wswbln)


Lesenswert?

Was ist denn nun an Vee angeschlossen? GND oder Poti?
Wenn's GND ist: probier's mal mit einem Poti. Vielleicht stimmt ja 
wirklich nur der Kontrast nicht. Siehst Du denn die berühmte Zeile mit 
schwarzen Kästchen, die auf ein eingeschaltetes, aber nicht richtig 
initialisiertes Display deutet?

von Franz (Gast)


Lesenswert?

Hallo Stefan.

An VEE hängt das Poti. Ich seh die berühmten schwarzen Kästchen.
Allerdings ist nur die untere Reihe mit diesen Kästchen ausgefüllt.

mfg

von Franz (Gast)


Lesenswert?

Hat denn keiner mehr einen Tipp was ich noch machen könnte?

von L. B. (power_uiser)


Lesenswert?

zeigt das display gar nichts an??
wenn jo kontrast verändern?!

von Franz (Gast)


Lesenswert?

Im Display sind die schwarzen Kästchen zu sehen welchen ihren Kontrast 
auch verändern wenn ich am Poti drehe.

von Martin (Gast)


Lesenswert?

Hallo,

hast du mit dem initialisierung "timing" probiert?? habe auch ein 
normales LCD kompatibel zu HDD44780 gekauft und hat leider nicht SOFORT 
funktioniert, nach paar änderungen in der Initialisierungsdatei hat dann 
fuktioniert, ich verwende allerdings Notepad (von WinAVR) unter C wenn 
du interesse hat kann ich dan mein code posten der allerdings nicht 
anders al von Tutorial ist

Gruß
Martin

von Martin (Gast)


Lesenswert?

ist der Pin 5 von LCD auf Mase??

von tom (Gast)


Lesenswert?

scheinst das ja im 4-bit modus betreiben zu wollen.
schwarze kästchen = nicht oder falsch initialisiertes display, wie schon 
jemand bemerkt hat.

wenn alles andere richtig verkabelt ist, brücke die offenen pins und 
lege sie hart oder per pull-up auf Vcc. Ist sicherer...

Falls nicht funzt, kannst du im source-level debugger mal die 
initialisierung im single step durchführen und mit multimeter die 
einzelnen pins (steuerleitungen UND Datenleitungen zu LCD) mit den 
soll-pegeln und deinem benutzten I/O port vergleichen.

Der rest sollte dann SW sein (Timing..., Portzuordnung). falls du ein 
scope oder logicanalyser hast - nun benutzen und schauen wenn immer noch 
nicht geht ;-).

gruss, tom.

von alibaba (Gast)


Lesenswert?

Hallo zusammen,

ich sitze ebenfalls seit geraumer Zeit an diesem Display (HMC16223 SG 
von Pollin).
Gibt es hier jemanden, der einmal einen funktionierenden Beispielcode 
hochladen könnte?

Mein Problem ist folgendes:
Das Display lässt sich nicht initialisieren.
Vor und nach der Initialisierung zeigt die erste Zeile einen schwarzen 
Balken.

Ich habe verschiedene Init-verfahren ausprobiert - zuletzt das aus dem 
Datenblatt des KS0070B. Ohne Erfolg.

Die Init-methode wäre schon vollkommen ausreichend.

Ich betreibe das Display im 4-Bit-Modus und programmiere einen ATMega16 
mit C über PonyProg.
Das Programm wird korrekt übertragen.
Die Anschlussbelegung habe ich mehrfach geprüft, sie kann also nicht 
falsch sein:

Vss -> GND
Vdd -> 5V
V0 -> GND
RS -> PD7
RW -> PC5
E -> PC4
DB4 -> PC0
DB5 -> PC1
DB6 -> PC2
DB7 -> PC3

Ich habe ebenfalls die Timings in astronomische Größen erhöht und auch 
dadurch keine Besserung erreicht.

Der Quelltext befindet sich leider auf einem anderen Rechner, weshalb 
ich den erst später mal posten kann.

Vielen Dank schonmal im Voraus!

Gruß

alibaba

von holger (Gast)


Lesenswert?

JTAG Fuse abschalten.

von alibaba (Gast)


Lesenswert?

Hei,

juhuuu! Es funktioniert! :D

Dankeschön für den Tipp!
Hatte den selben Fehler vor zwei Jahren glaube schonmal gemacht,
aber erfolgreich wieder verdrängt. :)

Gruß

alibaba

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.