Forum: Mikrocontroller und Digitale Elektronik HD44780 an Atmega32


von Andi D. (hackbert)


Lesenswert?

Moin moin!
Ich versuche seit fast zwei Tagen ein HD44780 kompatibles Display an 
meinem Atmega32 im 4-Bit-Modus zum Laufen zu bekommen.
Beim Einschalten ist ein Balken auf der ersten Zeile zu sehen. Dieser 
verschwindet, nachdem ich das erste mal 0x03 gesendet habe (siehe 
Quellen). Aber egal was als nächstes danach gesendet wird: der Balken 
kommt wieder. Ich habe gelesen, dass der Balken nach der Initialisierung 
dauerhaft verschwinden soll. Spätestens beim Display löschen sollte er 
weg sein.

Die Verkabelung sieht folgendermaßen aus:
-----------------------------------------
RS an PC5
RW auf GND
ENA auf PC6
DB7 auf PC3
DB6 auf PC2
DB5 auf PC1
DB4 auf PC0

Weitere Infos:
----------------------------------------
µC: Atmega32
LCD: 2 Zeilen à 24 Zeichen, HD44780 kompatibel, Aufschriften auf der 
Rückseite: "SEC 627 KS0063" auf dem einen Chip und "UC-24211 -GNARD-A 
96072006 auf dem anderen

Hat jemand eine Idee?

von The D. (devil_86)


Lesenswert?

Ich hatte auch mal so nen schwarzen Balken auf meinem Display, weil ein 
GND  beim Stecker einen Wackler hatte.

von Andi D. (hackbert)


Lesenswert?

Das kann ich ausschließen. Habe es inzwischen mit 3 Displays (alle 
baugleich) versucht.

von The D. (devil_86)


Lesenswert?

OK, Hardware-seitig µC (Kontakte)??
Ansonsten kann's ja nur mehr die Software sein.

von Toni (Gast)


Lesenswert?

Dein Problem wird sein, das du Port C verwendest.
Dieser Port wird für JTAG verwendet. Wenn du ihn als normalen Port 
verwenden willst, must du die entsprechende Fuse aktivieren.
An sonsten mimmst für das Display einfach nen anderen Port

von Holger K. (krulli) Benutzerseite


Lesenswert?

JTAGEN-Fuse abschalten hilft bestimmt.

von Nixweiss (Gast)


Lesenswert?


von Andi D. (hackbert)


Lesenswert?

Hab's jetzt mal mit PORTA versucht. Immernoch dasselbe.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Lade Dir mal das Datenblatt vom HD44780 und gucke mal, ob Du genau das 
machst, was dort steht (Wartezeiten, Initialisierung etc.)

von Joe (Gast)


Lesenswert?

Kannst du mal deinen Code hereinstellen ? ist nen bischen Rätselraten.

von Andi D. (hackbert)


Lesenswert?

Joe wrote:
> Kannst du mal deinen Code hereinstellen ? ist nen bischen Rätselraten.

Hmmm... Eigentlich hatte ich die Datei mit hochgeladen. Hat sich jetzt 
aber sowieso erledigt. Jetzt geht es. Fragt mich nicht, was es war: auf 
einmal ging's (vielleicht ein Wackler). Danke für alle Antworten.

von Toni (Gast)


Lesenswert?

Gehts jezt mit Port A oder mit Port C ?

von Karoly Kovacs (Gast)


Lesenswert?

Andi! Pass auf!
Es ist dann "nicht gut", dass es plötzlich "richtig" ist.
Meiner Meinung nach (habe schon viele solche LCD-Schaltungen aufgebaut), 
das Problem liegt bei Delays! Wenn man z.B. eine Schaltung nimmt, was 
damals mit einem 8051er aufgebaut wurde, und adaptiert es dann an AVR, 
es wird nicht meistens funktionieren, weil die AVRs "schneller" sind 
(nicht alle).
Also:
1. bitte die Delays überprüfen/anpassen, oder
2. VIEL BESSER, wenn Du das LCD-Status ordentlich abfragst (und nicht 
Delays verwendest).

Wünsche viel Erfolg,
Karoly

von Karoly Kovacs (Gast)


Lesenswert?

"...es wird meistens nicht funktionieren..."

Sorry!
Karoly

von Andi D. (hackbert)


Lesenswert?

Es geht jetzt mit PORT A.

Karoly Kovacs wrote:
> Andi! Pass auf!
> Es ist dann "nicht gut", dass es plötzlich "richtig" ist.
> Meiner Meinung nach (habe schon viele solche LCD-Schaltungen aufgebaut),
> das Problem liegt bei Delays! Wenn man z.B. eine Schaltung nimmt, was
> damals mit einem 8051er aufgebaut wurde, und adaptiert es dann an AVR,
> es wird nicht meistens funktionieren, weil die AVRs "schneller" sind
> (nicht alle).
> Also:
> 1. bitte die Delays überprüfen/anpassen, oder
> 2. VIEL BESSER, wenn Du das LCD-Status ordentlich abfragst (und nicht
> Delays verwendest).
Ich habe jetzt die genaue Ursache herausgefunden. Die eine 
Steckverbindung auf dem Breadboard hatte tatsächlich einen Wackler. Ich 
kann den Fehler sogar reproduzieren. Ist also alles in bester Ordnung.

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.