Forum: Mikrocontroller und Digitale Elektronik LCD Nokia 5510 Initialisierungsproblem


von daniel (Gast)


Lesenswert?

Hallo,

hab ein Display Nokia 5510 und auch fertige Initialisierungsroutinen von 
http://www.yourportablelab.com/eeproduct/5110/download.zip
1
void LCD_init(void)
2
{
3
  sce1;
4
  res1;
5
  _delay_us(200);
6
  res0;    
7
    _delay_ms(20);
8
    res1;  
9
  _delay_us(200);
10
  LCD_write_byte(0x21,0);
11
  LCD_write_byte(0xd0,0);//3.00-10.68
12
  //Vlcd=3.06+(VOP)*0.06
13
  LCD_write_byte(0x20,0);
14
  LCD_write_byte(0x0C,0);
15
  sce1;
16
}

nur weiss ich nicht ob ich das Display richtig beschalten habe. Nach dem 
einschalten sehe ich kurz die Zeichen und den Text, danach sind aber 
gleich alle Pixel aktiv, also das gesamte Display gefuellt.

Laut Datenblatt PCD8544 
(http://www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf) ist 
das Display tollerant gegenueber 5V (Seite 17), aber alle Logic Pegel 
sind bis 3,3V (Seite 18). Ich betreibe es mit 5V.
Arbeitet das Display nur mit 3V als Versorgungspannung?

Andererseits muss man bei der Initialisierung eine gewisse Bias Spannung 
in Abhaengigkeit von Vlcd, Vth, Vcc setzen (Seite 15, 16). Sicherlich 
ist dies nicht korrekt eingestellt bei der Initialisierung fuer 5V VCC.
Was macht diese Spannung und was nimmt man als Temperaturkoeffizient?
Gibt es Standardwerte fuer diese LCD - Displays?

Vielen Dank fuer weiterfuehrende Hinweise!

Gruss daniel

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

daniel schrieb:
> Laut Datenblatt PCD8544
> (http://www.sparkfun.com/datasheets/LCD/Monochrome/...) ist
> das Display tollerant gegenueber 5V (Seite 17), aber alle Logic Pegel
> sind bis 3,3V (Seite 18). Ich betreibe es mit 5V.
> Arbeitet das Display nur mit 3V als Versorgungspannung?


Auf Seite 3 des Datenblatts steht eindeutig

> Logic supply voltage range VDDto VSS: 2.7 to 3.3 V

Daran solltest Du Dich also schon halten.

Deine Interpretation der Daten auf Seite 17 solltest Du Dir nochmal 
genau ansehen. Da ist nichts 5V-Tolerant, die Spannung an den 
Logikeingängen darf maximal 0.5V höher sein als die Versorgungsspannung.

Also:
Das Display ist mit maximal 3.3 V zu versorgen, und auch die 
Steuersignale dürfen keinen höheren Pegel haben.

von Thomas F. (igel)


Lesenswert?

Ich habe schon drei von diesen Displays angeschlossen. Alle laufen 
problemlos mit 5V, auch wenn es im Datenblatt anders steht.

In deiner init-routine fehlt auf alle Fälle das LCD_clear.

Du kennst:

http://www.microsyl.com/index.php/2010/03/24/nokia-lcd-library/

http://serdisplib.sourceforge.net/ser/pcd8544.html

Dort gibts noch mehr Libs für das Display.

Thomas

von u8glib (Gast)


Lesenswert?

Hi

Mit den hier benutzten Einstellungen zu Bias und Temperatur bin ich ganz 
gut gefahren:
http://code.google.com/p/u8glib/source/browse/csrc/u8g_dev_pcd8544_84x48.c

Grüße,
Oliver

von daniel (Gast)


Lesenswert?

Hallo,
>problemlos mit 5V
naja irgendwas passierte doch schon, denn das Display weist von der 
Seite betrachted, dunkele stellen auf. Es sieht aus wie eingebrannt. 
Sicherlich ist der Bias falsch eingestellt und der Kontrast 
uebersteuert.

>In deiner init-routine fehlt auf alle Fälle das LCD_clear
Nein ist drin, nutze den Code aus download.zip (mega88 portiert auf 
mega8 (IO sind da ziemlich kompatibel)).

>den hier benutzten Einstellungen zu Bias und Temperatur
In Bezug zu was fuer einer Versorgungsspannung?

Gestern mal mit 3,3 Volt probiert (Versorgungsspannung, Dioden in Serie) 
nun wird der Bildschirm nicht voll gefuellt, aber der Kontrast hat 
bedeutend nachgelassen und Zeichen und Text sind kaum zu erkennen.

Vielen Dank fuer eure Hinweise, werde dem ganzen heute abend mal 
intensiver nachgehen und auch andere Bibliotheken verwenden, ist ja 
moeglich das es auch ein Softwarefehler ist.

Gruss daniel

von daniel (Gast)


Lesenswert?

Hallo,
also waren gleich mehrere Probleme.
1. Vielleicht mag es mit 5 V gut funktionieren, aber ich wuerde 3 V 
empfehlen.
2. mein Display ist auf einer Adapterplatine und der Kontakt ist naja, 
bescheiden.
3. Die initroutinen aus download.zip sind meiner ansicht nach 
unvollstaendig, sollte so aussehen:
1
void LCD_init(void)
2
{
3
   int i;
4
  sce1;
5
  res1;
6
        for (i=0; i< 10; i++)
7
          _delay_us(20);
8
  res0;    
9
        for (i=0; i< 10; i++)
10
          _delay_ms(2);
11
//    _delay_ms(20);
12
    res1;  
13
        for (i=0; i< 10; i++)
14
  _delay_us(20);
15
  LCD_write_byte(0x21,0);//LCD¹ŠÄÜÉèÖãºÐŸÆ¬»î¶¯£¬Ë®ÆœÑ°Ö·£¬Ê¹ÓÃÀ©Õ¹ÖžÁî
16
  LCD_write_byte(0xC8,0);//ÉèÖÃVOPÖµ£¬ÊÒÎÂϵıà³Ì·¶Î§Îª3.00-10.68
17
  //Vlcd=3.06+(VOP)*0.06,±ŸÀýVOPΪ0B0101 0000ΪʮœøÖƵÄ80£¬Vlcd=7.86V
18
  LCD_write_byte(0x06,0);//ÉèÖÃVOPÖµ£¬ÊÒÎÂϵıà³Ì·¶Î§Îª3.00-10.68
19
  LCD_write_byte(0x13,0);//ÉèÖÃVOPÖµ£¬ÊÒÎÂϵıà³Ì·¶Î§Îª3.00-10.68
20
  LCD_write_byte(0x20,0);//LCD¹ŠÄÜÉèÖãºÐŸÆ¬»î¶¯£¬Ë®ÆœÑ°Ö·£¬Ê¹Óûù±ŸÖžÁî
21
  LCD_write_byte(0x0C,0);//É趚ÏÔÊŸÅäÖÃ:ÆÕ͚ģʜ
22
  sce1;

Wenn ich die 3 Punkte beachte, kann ich ein bisschen Hanzi und Latein 
ordentlich erkennen.

> http://www.microsyl.com/index.php/2010/03/24/nokia-lcd-library/
Der Schaltplan passt nicht zum Code, genauere Infos stehen in den 
Kommentaren. Naja wollte nun nicht alles umloeten, also hab ich nur die 
Initialisierungsroutinen herauskopiert.

Die anderen Links werd ich mir mal anschauen, nachdem ich ein richtiges 
Breakout habe und nicht die klumpigen Adern vom Flachbandkabel an die 
Beinchen vom TQFP loeten muss.

Gruss daniel

Gruss Daniel

von yast (Gast)


Lesenswert?

Hi Daniel,

hab auch 2 von den displays, bzw Handys rumliegen. bis jetzt
habe ich nur mit zeilendisplays gearbeitet.
Die Ansteuerung von dem 5510Display ist ja scheinbar machbar.
Könntest du noch mal die Pins/Schaltplan aufschreiben und ne endgültige
Code-Version?
Hast ja geschrieben das die Pins nicht stimmen.

Danke schon mal, und immer weiter so ;-)

Gruß

von yast (Gast)


Lesenswert?

habe mich vertan, habe das display eines 3510(ohne i).

wie sieht da das pinout aus?

geht das trotzdem mit der lib?

von daniel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo
>eines 3510(ohne i), wie sieht da das pinout aus?
Da kann ich dir leiderns nicht weiterhelfen.

Ist fuer einen ATmega8A, 8Mhz intern. Programmiere mit Bootloader 
Fastboot, weiss leiderns die Fuseseinstellung nicht. Aber man muss 
CLKDIV in den Fuses deaktivieren.

Quick und Dirty fuer einen Test der Displays , nicht gerade beispielhaft 
und alles verwendet was so da war.

Gruss daniel

von Rudi K. (yast)


Angehängte Dateien:

Lesenswert?

also habe es soweit das sich die kiste initialisiert.

Jetzt das aber.

Irgendwas tut sich auch, es bewegen sich balken,

mal oben mal unten, mal von rechts nach links
und so weiter. mal auf dem ganzen lcd mal auf

der oberen oder unteren hälfte.

was mir auch auffällt, du hast den at mit 8mhz laufen, ich mit
1mhz, habe aber defined, ist das trotzdem ein problem?

habt ihr einen rat? pins habe ich überprüft, ist so wie im header
eingestellt.

da ich es am stk500 hängen habe bin ich mit 5v drauf und habe dann zu 
den
pins des displays immer 3 dioden(1N4001) in reihe gehängt.

das einzige was super ist, ist der kontrast ;-)

achso das pinout vom 3510 scheint anders zusein, fällt mir gerade auf.

    Pin1 _Reset
    Pin2 _Cs
    Pin3 Gnd
    Pin4 Sdata
    Pin5 Sclk
    Pin6 Vio  1.8V
    Pin7 Vbooster in  2.7V
    Pin8 Vlcd  max.12V

das habe ich auch grad wieder gefunden, ist wieder anders zudem was
ich angeschloßen habe.

hat das 3510 schon einer zum laufen gebracht? wie ist es angeschlossen 
worden?

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.