Forum: Mikrocontroller und Digitale Elektronik LCD Ausgabe Atmega 32 -16PU


von Norman B. (anykeysykwalker)


Lesenswert?

Hallo Community,

ich benötige nochmal eure Hilfe.

Ich habe ja mal wieder meine uC rausgeholt und etwas mit ihm 
rumgespielt. Dazu ein Programm geschrieben welches einen analogen Wert 
über den ADC einließt und per PWM-Signal (Tiefpass wird die Tage mal 
realisiert) die Kontrasteinstellung  des LC-Display regelt über Pin 3.

Soweit so gut, nach mehrmaligen Transport und entsprechendem Alter des 
ATMEGA ca. 4 Jahre hat er den Geist aufgegeben. Sprich am LC-Display 
(WD-C2704M-1HNN) werden fortlaufend zwei Buchstaben ausgegeben, welche 
meine Ausgabe überschreiben.

Deswegen habe ich einen neuen ATMEGA 32-16 PU eingesetzt und mit dem 
gleichen Programm programmiert, ich hatte alle Funktionen allerdings ist 
jeweils die erste Zeile jedes Controller der LC-Anzeige komplett 
angesteuert. Zeile zwei lässt keine Ausgabe zu. Ich kann somit keine 
Ausgabe mehr am LC-Display vornehmen. Wenn ich den „alten defekten“ 
ATMEGA 32-16PU einsetzte bekomme ich eine Anzeige und kann auch Text 
editieren allerdings mit den fortlaufenden fehlerhaften Zeichen die das 
Display überschreiben.

Wo könnte das Problem liegen?

Link zum Datenblatt des LCD 
https://www.dropbox.com/s/6o9p4biytsuhzv0/Display%20WD-C2704M-1HNN.pdf

Danke im vorraus.

von Martin S. (tungl)


Lesenswert?

Haengt das LCD an Port C?

von Norman B. (anykeysykwalker)


Lesenswert?

Ja das LCD hängt am Port C. Von der Verdrahtung wurde nichts geändert, 
habe nur den defekten ATMEGA getauscht.

von Karl H. (kbuchegg)


Lesenswert?

Norman Bec schrieb:
> Ja das LCD hängt am Port C.

JTAG per Fuse deaktivieren!

von Norman B. (anykeysykwalker)


Lesenswert?

Habe das JTAG bereits aktiviert, leider ohne Erfolg.

MCUCSR = (1<<JTD);

Hier mal ein Bild wie es aussieht.
https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-27%2022.19.16.jpg

von Norman B. (anykeysykwalker)


Lesenswert?

Norman Bec schrieb:
> Habe das JTAG bereits aktiviert, leider ohne Erfolg.
>
> MCUCSR = (1<<JTD);
>
> Hier mal ein Bild wie es aussieht.
> https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-...

Nachdem ich die Displays Initialisiere kommt die Anweisung:
MCUCSR = (1<<JTD);

von Karl H. (kbuchegg)


Lesenswert?

Norman Bec schrieb:
> Habe das JTAG bereits aktiviert, leider ohne Erfolg.
>
> MCUCSR = (1<<JTD);
>
> Hier mal ein Bild wie es aussieht.
> https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-27%2022.19.16.jpg


Dann lies dir mal auf Seite 228 vom Datenblatt durch, welches Prozedere 
du einzuhalten hast, damit das JTAG tatsächlich deaktiviert wird.

Die JTAGEN Fuse zurücknehmen ist einfacher :-)

von Karl H. (kbuchegg)


Lesenswert?

Norman Bec schrieb:
> Norman Bec schrieb:
>> Habe das JTAG bereits aktiviert, leider ohne Erfolg.
>>
>> MCUCSR = (1<<JTD);
>>
>> Hier mal ein Bild wie es aussieht.
>> https://www.dropbox.com/s/wcibvsimxegf2xr/2013-01-...
>
> Nachdem ich die Displays Initialisiere kommt die Anweisung:
> MCUCSR = (1<<JTD);

Und die Initialisieung macht keine Ausgabe auf PORTC?

von Norman B. (anykeysykwalker)


Lesenswert?

Leider nein, hab die Woche wenig Zeit. Werde aber am Freitag mal den 
Quelltext posten und auch noch schreiben welche Entwicklungsumgebung ich 
benutze und noch ein wenig über die Ansteuerung des LCDs.

Aber schon einmal danke für die jetzigen Antworten.

von Martin S. (tungl)


Lesenswert?

Bevor du dir die Muehe machst, was zu posten: Hast du jetzt mal JTAG per 
Fuse abgeschaltet?
Sonst wird das nichts.

von Norman B. (anykeysykwalker)


Lesenswert?

Laut Datenblatt müsste es damit gehen.

MCUCSR = (1<<JTD);

Allerdings ist keine Änderung eingetroffen.

von Spess53 (Gast)


Lesenswert?

HI

>Laut Datenblatt müsste es damit gehen.
>MCUCSR = (1<<JTD);

Nein. Im Datenblatt Datenblatt steht es so:

In order to avoid unintentional disabling or enabling of
the JTAG interface, a timed sequence must be followed when changing this 
bit:
The application software must write this bit to the desired value 
twice
within four cycles to change its value.

MfG Spess

von holger (Gast)


Lesenswert?

>The application software must write this bit to the desired value
>twice
>within four cycles to change its value.

Also zweimal den Befehl ausführen.
Wenn er das aber nach wie vor NACH der
LCD Initialisierung macht wird auch das nichts nützen;)

JTAG Fuse abschalten und gut ists.

von Norman B. (anykeysykwalker)


Lesenswert?

Danke für dem Tip, ich werde dann am Freitag nochmal drüber lesen und 
mich dann nochmal melden ob es nun geht oder nicht.

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.