PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Merkwürdiges LCD Problem (mal gehts, mal nicht...)



Bender_U22
19.10.2007, 12:41
Hi all!

Bin gerade dabei mir eine neue Platine zu bauen, da die alte leider defekt ist. Habe mir gestern ein 16 x 2 Display angeschlossen, und es hat die ersten 10 min auch wirklich gut funktioniert.

$regfile = "m32def.dat"
$crystal = 16000000

Config Lcd = 20 * 4 'wir verwenden ein 4 x 20 Zeichen Display
' Im I/O Mode wird jeder Prozessor Pin einzeln angegeben
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4

Cls 'loesche das LCD Display
Locate 1 , 1 'Cursor auf 1 Zeile, 1 Spalte
Lcd "Hello world." 'String auf Display anzeigen

Danach sah es so aus als würde das Display alle Buchstaben nacheinander mit schwarzen Kästchen überschreiben. Wenn ich die Platine jetzt einschalte, habe ich das Problem das das Display meistens nichts anzeigt, und die DATA Leitungen +5V führen. Habe gestern auch noch einen 2. Mega32 mit 1Mhz aufgesteckt, plötzlich gings wieder. (auch mit dem alten) Nachdem ich aber nochmal aus/eingeschalten habe, hatte ich wieder das selbe Problem. Habe alle leitungen überprüft, finde keinen Fehler!! Wo könnte das Problem liegen? Darf ich so ein Display villeicht nicht an einen 16Mhz uC anschliessen?? Das Display ist ein DataVision DV-16252...

T.J.
19.10.2007, 14:15
Das Display sollte die Prozessorfrequenz eigentlich nicht stören. Und ein Mega32 kommt mit 16MHz auch prima klar.

Sind die Leitungen wirklich gut angelötet? Meist habe ich Kontaktprobleme, wenn sowas auftaucht.
Ansonsten könnte der µC vllt. noch durch was anderes kaputt gehen?

wischwasch
19.10.2007, 14:48
Und ein Mega32 kommt mit 16MHz auch prima klar

Wenn du die Etwas billigere Version hast vom atmega32 mit der bezeichnung ATMEGA32L-8xx dan kannst du ihn mit höchstens 8MHz takten. Aber das ist wohl kaum das Problem, da er sonst warscheinlich garnicht funktioniert und nicht teilweise.

Bender_U22
19.10.2007, 15:34
hi!

Thx für die Antworten!

Die Leitungen hab ich überprüft, bzw neu gelötet... Es ist ein AT-Mega32PU
hatte bis jetzt keine Probleme mit 16Mhz... Woher kommen die 5V auf den Datenleitungen wenn es nicht geht?? Wenn der uC nicht funktioniert müsste ja alle auf 0V sein, oder? Werd heute mal ein Led anschliessen und blinken lassen sobald der uC läuft... Hatte jemand villeicht schon mal so ein ähnliches Problem??

chr-mt
19.10.2007, 15:55
Hast du 100 nF Kondensatoren am chip ?
Kondensatoren am Spannungsregler ?


Gruß
Christopher

Bender_U22
19.10.2007, 18:47
Hi! Ja, hab ich!! Habe gerade wieder den 1 MHZ controller angeschlossen, ging sofort! Danach den 16Mhz, dann ging der auch!! Schön langsam glaube ich das es irgendwas mit der Taktfrequenz zu tun hat! immer wenn ich erst den 1mhz und dann den 16mhz uC verwende geht es! wenn ich aber mit dem 16mhz Uc zum ersten mal einschalte geht es nicht. Warum? Ich versteh das nicht.

Mfg DanielSan

Bender_U22
19.10.2007, 19:30
Kleiner Nachtrag: Habe gerad etwas über das Problem Nachgedacht. (und auch google verwendet) Ich habe gelesen das der Controller des Displays eine gewisse Zeit für die Initialisierung braucht. Kann es sein das der uC mit 16Mhz das Signal zu schnell sendet (vor der initialisierung des uC am Display) und damit Probleme (abstürze oder so) verursacht?? Währe eine erklärung... Doch bleibt immer noch die Frage warum es nach dem start mit einem 1 Mhz uC auch mit einem 16Mhz Uc geht. Und wo im "störfall" die 5V herkommen. 5v konstant sind ja wohl kaum irgend ein Datensignal!

Mfg

Bender_U22
19.10.2007, 20:12
Update: Habe die Schaltung ca. 40min mit dem Mega32 (16Mhz) laufen lassen! Ging auch gut! Nach 40 min warenplötzlich seltsame zeichen am Display. Habe ein/aus geschalten, jetzt reagiert das Display immer, zeigt aber irgendwelche Zeichen an!

linux_80
19.10.2007, 21:05
Hallo,

nach dem einschalten kanns auch mal sein, dass das LCD noch nicht soweit ist, wenn der AVR die ersten Daten sendet, hier kann eine kleine Pause im AVR helfen, danach nochmal ein Initlcd aufrufen.
Ansonsten könnt die Leitung zu lange sein, und/oder die stören sich Gegenseitig, deshalb kommen nicht alle Befehle beim LCD ordentlich an.