Hallo,
nachdem mir bei einem anderen Display mit einem anderen Controller schon
sehr gut geholfen wurde und ich den Fehler (den konnte hier keiner
wissen) dann doch eher zufaellig selbst gefunden habe haenge ich jetzt
am naechsten Display, einem popeligen EA DIP081-CNLED
Diesmal habe ich die Ehre, das Ding nach meinen Beduerfnissen
anzuschliessen und so habe ich mich fuer den PortC eines ATM162
entschieden. Im Prinzip sollte der Prozessor keine Rolle spielen, ich
schaffe nichtmal einen blinkenden Cursor auf das Ding.
Angeschlossen habe ich es wie folgt:
PC0-PC3 -> DB5-DB7
PC4 -> R/W
PC5 -> RS
PC6 -> E
Hier mal meine Initialisierungsroutine:
lcd_init:
ldi temp,0x06
powerupwait:
rcall delay5ms
dec temp
cpi temp, 0x00
brne powerupwait
ldi temp, 0b00000011
out portc, temp
cbi portc, 4
cbi portc, 5
rcall lcd_enable
rcall delay5ms
rcall lcd_enable
rcall delay5ms
rcall lcd_enable
rcall delay5ms
ldi temp, 0b00000010
out portc, temp
rcall lcd_enable
rcall delay5ms
ldi data1, 0b00100000
rcall lcd_command
ldi data1, 0x0F
rcall lcd_command
ldi data1, 0x01
rcall lcd_command
ldi data1, 0x06
rcall lcd_command
rcall lcd_clear
rcall lcd_home
ret
Den Enable-Impuls erzeuge ich so:
lcd_enable:
sbi portc, 6 ;Enable high
rcall delay50us
cbi portc, 6 ; Enable wieder low
ret ; Und wieder zurück
Ein Kommando wird wie folgt ans Display gesandt:
lcd_command: ;wie lcd_data, nur mit RS = 0
push Data1
swap Data1
andi Data1, 0b00001111
out Portc, Data1
cbi Portc, 5
cbi portc, 4
rcall lcd_enable ;Enable-Routine aufrufen
pop Data1
andi Data1, 0b00001111
out portc, Data1
cbi Portc, 5 ;RS auf 0 setzen
cbi portc, 4
rcall lcd_enable ;Enable-Routine aufrufen
rcall delay50us ;Verzoegerung von 50us
ret ; zurück zum Hauptprogramm
Das UP fuer die Datenausgabe ist bis auf RS mit der Command-Routine
identisch. Nach meinem Verstaendnis sollte nach der Initialisierung
wenigstens der Cursor blinken, aber das Display bleibt tot.
Vielleicht sehe ich den Wald vor lauter Baeumen nicht und jemanden
faellt der grosse Denkfehler ins Auge... wenn ja und er kann mir helfen
danke ich im Voraus, wenn nein danke ich fuer die Aufmerksamkeit.
Viele Gruesse und einen guten Start ins neue Jahr,
Thomas
holger schrieb:
> Bei Problemen mit PORTC immer erstmal JTAG Fuse ausschalten;)
Hi,
danke, daran habe ich tatsaechlich keinen Gedanken verschwendet, die
Fuse war (und bleibt) aber aus und das Display trotzdem tot.
Ist es eigentlich normal, dass man bei jedem Displaytyp erstmal an der
Init haengt?
>und das Display trotzdem tot. Was heisst tot? Siehst du was wenn du am Kontrast drehst? >Ist es eigentlich normal, dass man bei jedem Displaytyp erstmal an der >Init haengt? Jo. Wo schaltest du die PORTC Pins auf Ausgang?
holger schrieb: >>und das Display trotzdem tot. > > Was heisst tot? Siehst du was wenn du am Kontrast drehst? Kontrast ist nicht angeschlossen... war beim letzten Problemkandidaten (EA DIP204) auch nicht noetig. Tot heisst, dass ich ausser der Beleuchtung nichts sehe, kein Cursor, keine Ausgabe. > >>Ist es eigentlich normal, dass man bei jedem Displaytyp erstmal an der >>Init haengt? > > Jo. Ich habe schon an mit selbst gezweifelt :-) hat man irgendwann alle durch? > > Wo schaltest du die PORTC Pins auf Ausgang? Ziemlich am Anfang: ldi temp, 0x7F ;PortC0-C6 ist Ausgang fuer LCD out ddrc, temp Das Ganze ist ein riesen (bereits funktionierendes) Projekt, das Display dient in erster Linie mir als Debughilfe (eine LED ist etwas mager) und koennte evtl. auch fuer den Anwender von Nutzen sein. Ja, ich haette ein DIP204 verwenden koennen aber das ist mir fuer diesen Zweck doch etwas zu teuer und von den 081ern hatte ich zwei herumliegen... (bald fliegen die an die naechste Wand)
>Kontrast ist nicht angeschlossen... war beim letzten Problemkandidaten >(EA DIP204) auch nicht noetig. Also bei meinen EA DIP082 muss man die Kontrastspannung anlegen. Leg den Pin doch mal auf GND. Siehst du dann was?
holger schrieb: > > Also bei meinen EA DIP082 muss man die Kontrastspannung anlegen. > Leg den Pin doch mal auf GND. Siehst du dann was? Mach ich, allerdings evtl. erst morgen. Das Zeug ist im Keller und ich muss Babysitten. Wenn es das ist bin ich happy... auf jeden Fall tausend Dank, ich melde mich :-)
Hi, das mit dem Kontrast koennte es gewesen sein... ich habe hier ein Pollin-Evaluationsboard mit Addon-Board, auf dem ein aehnliches Display (so ein Russendisplay TC1602A) steckt. Einmal den Kontrast herumgerissen und schon blinkt der Cursor... das koennte morgen ein schoener Tag werden :-)) Vielen Dank nochmal und ein schoenes Restwochenende, bis zum naechsten Displaytyp >:-) Thomas
Thomas Wyschkony schrieb:
> Wenn es das ist bin ich happy...
Es wird schon so sein. Ich zitiere mal das Datenblatt:
"Die Displays der EA DIP081-C Serie benötigen als Kontrastspannung typ.
4,9V. Das heisst bei 3,3V Betrieb ist eine zusätzliche negative Spannung
erforderlich."
Hi Leute, nachdem es auf dem Eval-Board funtioniert hat war ichbez. dem DIP081 im Keller zuversichtlich. Also habe ich VEE mit - verbunden und, analog zum Testsystem (wegen der JTAG-Geschichte) das Ganze mit PortA verbunden. Leider ohne Erfolg, man erkennt nur die 8 Kaestchen. Ist aber auch nicht weiter tragisch, dieses Projekt bz. diese Erweiterung ist wegen anderen Gruenden zu den Akten gelegt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.