Probleme mit LCD SSD1803

Lschreyer
Schreiberling
Avatar
Gender: n/a
Posts: 527
Registered: 02 / 2007
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 07:36  ·  #57
Das wird dieselben Probleme haben, aber spi scheint ja zu gehen.
Ich werde noch mal eins auslöten, auf spi umstellen und noch mal testen. Es lässt mich nicht ruhen...
Ich bin sehr gespannt und melde mich sobald ich mehr weiss.

Louis
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 11:03  ·  #58
Habs wieder 4Bit parallel angeschlossen. Sieht seltsam aus. Er fängt bei X=16 an wenn ich auf 0 ausgebe und es sieht so aus, als ob bei allen Zeichen die erste Spalte fehlt ..... die ist dann eine Position vorher rechts am vorigen Zeichen.

Gruss
Harry
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 12:09  ·  #59
Ich habs glaub ich :angel8:
mit {$LCDnoInit} und folgendes als Initialisierung:
Code

Procedure Init_Ports;
  Begin
    PortC:=%00000000;
    DDRC:=%10000000;
    mDelay(200);
  End Init_Ports;

Procedure Start;                                 // Initialisierung LCD
  Begin
    LCDCTRL($24);                                // 4 Bit, Extension Bit RE=1   24
    mDelay(5);
    LCDCTRL($09);                                // Font=5-Dot, 4 Line-Mode     09
    mDelay(5);
    LCDCTRL($20);                                // 4 Bit, Extension Bit RE=0   20
    mDelay(5);
    LCDCTRL($02);                                // Return Home                 02
    mDelay(5);
    LCDCTRL($0C);                                // Disp on, Cursor&Blink off   0C
    mDelay(5);
    LCDCTRL($01);                                // Display clear, Cursor 0,0   01
    mDelay(5);
    LCDCTRL($24);                                // 4 Bit, Extension Bit RE=1   24
    mDelay(5);
    LCDCTRL($06);                                // Incr-Mode, Entire Shift off 06
    mDelay(5);
    LCDCTRL($80);                                // Horizontal Scroll=0         80
    mDelay(5);
    LCDCTRL($10);                                // Scroll Quantity=0           10
    mDelay(5);
    LCDCTRL($20);                                // 4 Bit, Extension Bit RE=0   20
    mDelay(5);
  End Start;

Ich hab das LCDCtrl($80) und ($10) eingefügt.

Position bei 0,0 paßt jetzt und die Zeichen sind nicht mehr um eine Spalte verschoben.

Nen kleinen Haken gibt's aber doch noch: nach einem µC-Reset geht's immer, nach Spannung aus/an nicht - es muß ein µC-Reset (per Taste am EVA-Board) folgen. Ich denke am besten wäre es den Display-Reset anzuschliessen und vom µC einen definierten Display-Reset machen zu lassen. Ich werde das mal schnell anlöten ......

Gruss
Harry

[EDIT]Der Reset-Pin des µC darf nicht Pin7 des LCD-Ports sein :(
[EDIT #2]Hab die Initialisierung geändert nach dem Controllerdatenblatt (nicht Display-Datenblatt !)
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 13:05  ·  #60
wohl wieder mal ein typischer 44780 "kompatibler" Kontroller :aerger:
rolf
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 13:17  ·  #61
Ja Rolf .... so ist es. Aber ohne die Dinger wäre es mir doch langweilig :D
Seltsam finde ich nur, daß das mit SPI problemlos funktioniert und bei 4-Bit solche Zicken macht. Das Init bei 4-Bit sollte eigentlich identisch sein (bis auf das Bit der 8-/4-Bit-Umschaltung).
Lschreyer
Schreiberling
Avatar
Gender: n/a
Posts: 527
Registered: 02 / 2007
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 14:53  ·  #62
Also...wenn ich über den Computer Küsse und Blumen verschicken könnte würde jetzt ein dicker Schmatzer am Monitor kleben und Blumen würden regnen. Ok, ich muss es über Smilies sagen:

:freude: :happy2: :colors: :goodman: ☀ :toothy4:


Display ausgelötet, SPI aktiviert, 2 Minuten später habe ich plötzlich ein perfekt funktionierendes Display hier ohne jedes Problem!
DANKE! DANKE! DANKE!

Das rettet mein Projekt, viele Nutznießer werden sich sehr freuen!

Warum das parallel solche Probleme macht aber über SPI nicht ist mir wirklich rätselhaft, kann ja eigentlich nur am Display liegen, evtl. kommt es mit längeren Leitungen nicht klar, meine sind ca. 12 cm lang (über Platine, nicht Kabel).
Auf jeden Fall eine Sache, die man sich merken muss. In Zukunft läuft das nur noch per Soft-SPI.

Louis
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 17:01  ·  #63
Hi Louis,

freut mich O:) ..... wenn jetzt noch WOM seine Schaltung/Programm so umstellen kann bin ich zufrieden. Hab ich jetzt was gewonnen ? :D :D :D

Gruss
Harry
Harald_K
 
Avatar
 
Subject:

Re: Probleme mit LCD SSD1803

 · 
Posted: 17.03.2014 - 17:10  ·  #64
also beim Init ist es extrem wichtig, die Sequenz genau einzuhalten.

normal läuft das so:
1. warte reichlich Millisekunden
2. setze 8Bit-Modus
3. warte reichlich Millisekunden
4. setze 8Bit-Modus
5. warte reichlich Millisekunden
6. setze 4Bit-Modus

Erst ab jetzt darf man das Busy-Flag des LCD zur Synchronisation nutzen, drum muß man vorher auch immer warten bis das Disp sicher fertig ist.

Das mit LCDctrl() funzt da nicht!!!! (und wenn dann isses Zufall)

Begründung:
kriegt der MC nen Reset und das LCD ist im 4Bit-Modus, gibts da 2 Möglichkeiten:
1- das LCD ist nicht angesprochen oder ein 2-Nibbel-Zyklus ist fertig
2. das LCD war grad im Zugriff, die ersten 4bit sind schon drüben

wegen (2) ist der doppelte 8Bit-Setzbefehl (jeweils nur 1xE-Klappern!) am Anfang der Initsequenz nötig. Der 1. Befehl macht die grade laufende 4Bit-Sequenz fertig, der 2te schaltet auf 8 Bit. Der nächste Zugriff (der ist auch noch 8bittig d.h. nur 1xE-Klappern) setzt den 4Bit-Modus und ab hier muß man dann jeden 4-Bit-Zugriff als 2-Nibbel-Sequenz (Hi/E-Klappern/Lo/E-Klappern) machen, sonst kommt das LCD aus dem Takt. Erst hier kann man dann auch die unteren 4Bit des LCD-Controllers steuern, vorher ist das alles "dont care" und damit auch egal wie es verdrahtet ist.

Bei den 3,3V-Dingern muß man dann noch auf die Dauer des E-Pulses und die Preset- und Hold-Zeiten für RS und R/W bzw. Daten achten, die Angaben dazu stehen im Datenblatt des LCDs oder des Controllers.



(Hab da auf nem alten ST6-Controller auch lange rumprogrammiert bis es bei jedem PowerOn- und Watchdogreset sauber funzte ... damals gabs noch kein e-lab und alles ging in asm :( )
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   136   150 · Page-Gen-Time: 0.037403s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI