Forum: Mikrocontroller und Digitale Elektronik Initialisierung M50530 LCD Display


von Torsten B. (torty)


Angehängte Dateien:

Lesenswert?

Hallo Gemeinde

Habe leider auch Probleme mit dem M50530 LCD Display und der 
Initialisierung.
Ich habe die (durchaus verstandene) Software an meine Schaltung 
angepasst, aber außer den alt bekannten Balken tut sich nichts.

Routingbedingt musste ich die CTR-Leitungen auf einen anderen Port legen 
als die Daten-Leitungen.

Durchgeklingelt habe ich alles schon 10x
F_CPU ist richtig.
CKDIV8 ist auh gelöscht.

Im Schaltplan ist noch ein ATMega8 vermerkt, aber es hängt ein 
pingleicher ATMega328P dran.
Compiler weiß darüber bescheid.


Vielleicht kann jemand kurz mal reingucken.

Danke
Torsten

von Thomas (Gast)


Lesenswert?

Meiner Meinung nach stimmt die PIN-Belegung nicht.

Deine Belegung:
PIN  PORT
2  PD4
9  PD5
10  PD6
11  PD7
23  PC0
24  PC1
25  PC2
26  PC3

Belegung laut Datenblatt:
PIN  PORT
2  PD0
9  PB6
10  PB7
11  PD5
23  PC0
24  PC1
25  PC2
26  PC3

Thomas

von Daniel J. (deejay)


Lesenswert?

Moin Torsten,

interessant, dass mein alter Code noch Verwendung findet :-)

Prüfe bitte mal die Anschlussbelegung des Displays an JP2. Meine 
Pinbelegung sagt nämlich, dass Display-seitig an Pin 11 R/W liegt und an 
Pin 13 OC1. Das ist bei Dir im Schaltplan genau andersrum eingezeichnet. 
Eventuell ist hier ein Fehler, falls das Display 1:1 mit JP2 verbunden 
ist.

Ohne jetzt durch den kompletten Code geschaut zu haben... aber darf ich 
fragen, warum Du in der Software einige Delays verändert bzw 
auskommentiert hast (z.B. in der Funktion LCD_execute())? Längere Delays 
sind in der Regel unproblematisch, auskommentieren unter Umständen 
schon.

@Thomas: Die Belegung scheint sich in den verschiedenen Bauformen des 
AVRs zu unterscheiden. Evtl. verwendet Torsten PDIP statt TQFP?

Gruß,
 Daniel J.

von Torsten B. (torty)


Lesenswert?

Hallo Daniel

Ja, Danke für den Code :-)) Ist sehr weit rumgekommen ...

Das mit der Anschlussbelegung werde ich prüfen.
Delays habe ich aber keine verändert oder gestrichen, sondern den Code 
von hier probiert und nur die Ports angepasst:
Beitrag "Re: LCD Display 8x24 mit M50530"

Timing könnte aber DER Hinweis sein, da ich bei einem anderen Code aus 
dem Netz, der aber scheinbar auch auf Deinem basiert mal das CLKDIV8 
Fuse gesetz hatte und dann ging was.

Verwende auch TQFP.

Ist Dein Code von hier:
Beitrag "Re: LCD Display 8x24 mit M50530"
Das Original mit original Delay Werten ?


Melde mich, wenn alles geht.

Danke
Torsten

von Daniel J. (deejay)


Lesenswert?

Hi Torsten,

ja, dein zweiter Link führt zu meinem originalen Code. Dort habe ich 
kurz reingeschaut und sehe z.B. in der LCD_execute()-Funktion Aufrufe 
von delay_short(). In deinem Code stehen hingegen auskommentierte 
delay(1).
Das muss nicht in jedem Fall gleich ein Problem sein (je nach Takt usw.) 
- es war mir halt aufgefallen. Mein Code ist sicherlich nicht perfekt, 
vielleicht ist das Delay gar nicht erforderlich.

Wenn Du meinst Deine Pinbelegung sei richtig, kannst Du das Timing ja 
mal testen. Einfach mal den Takt stark reduzieren (der Clock-Prescaler 
kann beim ATmega328P zur Laufzeit per Software geändert werden) oder 
signifikante Delays einbauen.

Viel Erfolg bei der Fehlersuche!

Gruß,
 Daniel J.

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.