Forum: Mikrocontroller und Digitale Elektronik LCD Module 162C Displaytech


von Marten M. (mcgonahy148)


Lesenswert?

Hallo zusammen,

nach meinen ersten Übungsstunden mit dem ATmega16 bin ich nun am Thema 
LCD angelangt und hab mir hierzu ein das oben genannte Display beim 
Reichelt gekauft: 
http://docs-europe.origin.electrocomponents.com/webdocs/06dd/0900766b806dda16.pdf

So, anhand des hier beschriebenen Tutorials 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung 
wollte ich es natürlich gleich mal ausprobieren.

Leider bisher ohne Erfolg. Befehlssatz und Zeiten müssten ja passen bei 
dem Modul, habs mir mal alles etwas durchgesehen.

Die schwarzen Balken auf dem LCD sind nicht da, es wird lediglich eines 
der Stellen kompett schwarz ausgegeben und ein Pfeil steht an anderer 
Stelle. Ausgegeben soll ja "Hallo World!" werden...

Meine Vermutung war anfangs Timingprobleme, dann hab ich entdeckt dass 
im Makefile 8MHz statt 16MHz (16MHz Quarz am Atmega) drinstand. Im 
Headerfile des c-files der lcd routine hab ich nun auch 16 MHz 
drinstehen.

Ähm, bevor einer fragt...Hardwaretechnisch ist es richtig verbunden, hab 
dazu Port C verwendet und möchte es im 4-Bit mode betreiben.

Die Kontrastspannun liegt auf GND, hoffe es hat nichts damit zu tun? 
Denn zumindest wird ja was angezeigt, wenn auch falsch.

Hat wer Erfahrungen mit dem LCD-Controller, oder wo könnten Fehler sein, 
wenn ich schon 1:1 den Code aus dem Tut. kopiert habe?!


Schöne Grüße,
MG

von spess53 (Gast)


Lesenswert?

Hi

>Ähm, bevor einer fragt...Hardwaretechnisch ist es richtig verbunden, hab
>dazu Port C verwendet und möchte es im 4-Bit mode betreiben.

Reflexartig: JTAG abgeschaltet?

MfG Spess

von Marten M. (mcgonahy148)


Lesenswert?

spess53 schrieb:
> Reflexartig: JTAG abgeschaltet?

Oh oh...daran hab ich garnicht gedacht...

von Marten M. (mcgonahy148)


Lesenswert?

Wird die Funktion über die fusebits oder über mein Programm und Register 
deaktiviert?

von spess53 (Gast)


Lesenswert?

Hi

>Wird die Funktion über die fusebits oder über mein Programm und Register
>deaktiviert?

Es gibt beide Möglichkeiten. Wenn du nicht Debuggen willst ist wegfusen 
einfacher.

MfG Spess

von Marten M. (mcgonahy148)


Lesenswert?

In dem AVR-GCC Tut steht hier folgendes:

 /* Beispiel Anfang
     JTAG-Interface eines ATmega16 per Software deaktivieren
     und damit die JTAG-Pins an PORTC für "general I/O" nutzbar machen
     ohne die JTAG-Fuse-Bit zu aendern. Dazu ist eine "timed sequence"
     einzuhalten (vgl Datenblatt ATmega16, Stand 10/04, S. 229):
     Das JTD-Bit muss zweimal innerhalb von 4 Taktzyklen geschrieben
     werden. Ein Interrupt zwischen den beiden Schreibzugriffen wuerde
     die erforderliche Sequenz "brechen", das JTAG-Interface bliebe
     weiterhin aktiv und die IO-Pins weiterhin für JTAG reserviert. */

   MCUCSR |= (1<<JTD);
   MCUCSR |= (1<<JTD); // 2 mal in Folge ,vgl. Datenblatt fuer mehr 
Information


Wenn ich das in die main-routine reinsetze bevor ich das display 
initialisiere kommt weiterhin Müll raus, nur dass jetzt der Curser 
blinkt.

Dann schau ich mich mal um die fusebits...

von Marten M. (mcgonahy148)


Lesenswert?

Fusebit auf 0 bringt leider auch nix :-(

von spess53 (Gast)


Lesenswert?

Hi

>Fusebit auf 0 bringt leider auch nix :-(

Dann bleibt nur noch dein Programm übrig.

MfG Spess

von Marten M. (mcgonahy148)


Lesenswert?

Ohne debugging und Oszi ist dass halt immer so ne Sache :-)

von Michael (Gast)


Angehängte Dateien:

Lesenswert?

Dann zeig doch mal dein Programm und den Schaltplan. Ich habe das 162C 
schon mehrfach ohne Probleme eingesetzt.
Hast Du vielleicht am Display DB0-3 statt DB4-7 benutzt? Das waren meine 
häufigsten Fehler dabei ;)

Die angehängte Datei ist mein AVR-Studio Projekt zum Test eines 
Displays. Das sollte funktionieren.
ATmega88, Fuses im Auslieferungszustand, also 1MHz.

von spess53 (Gast)


Lesenswert?

Hi

> Ausgegeben soll ja "Hallo World!" werden...

Vielleicht solltest du erst mal kleinere Brötchen backen. Speck das 
Programm auf das Notwendigste, also LCD-Init und Ausgabe von einem 
Zeichen, ab. Erst wenn das funktioniert, kannst du anfangen Strings 
auszugeben.

>Ohne debugging und Oszi ist dass halt immer so ne Sache :-)

Meine ersten LCDs/GLCDs habe ich auch ohne das (und ohne Internet) zu 
Laufen
bekommen.

MfG Spess

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.