www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Displaydramen (diesmal EADIP081)


Autor: Thomas Wyschkony (thomas-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei Problemen mit PORTC immer erstmal JTAG Fuse ausschalten;)

Autor: Thomas Wyschkony (thomas-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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?

Autor: Thomas Wyschkony (thomas-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>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?

Autor: Thomas Wyschkony (thomas-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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  :-)

Autor: Thomas Wyschkony (thomas-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bernd S. (wird_schon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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."

Autor: Thomas Wyschkony (thomas-w)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.