S65 Display initialisieren (LS020)

OP Persönliche Seite #1331830
Lesenswert?

Hallo an alle,

Ich bin gerade beim initialisieren des S65 Displays LS020. Als 
Mikrocontroller verwende ich einen ARM Cortex mit 5MHz SPI Takt.

Leider funktioniert es noch nicht ganz. Im Anhang habe ich einen Bild, 
wie das Display nach der Initialisierung aussieht.
1
void lcd_init(void)
2
{
3
  //reset
4
  LCD_CS_LOW();
5
  LCD_RS_HIGH();
6
  LCD_RESET_LOW();
7
  delay_ms(100);
8
  LCD_RESET_HIGH();
9
  delay_ms(100);
10

11
  lcd_cmd(0xFD, 0xFD);
12
  lcd_cmd(0xFD, 0xFD);
13

14
  delay_ms(50);
15

16
  //init 1
17
  lcd_cmd(0xEF, 0x00);
18
  lcd_cmd(0xEE, 0x04);
19
  lcd_cmd(0x1B, 0x04);
20
  lcd_cmd(0xFE, 0xFE);
21
  lcd_cmd(0xFE, 0xFE);
22
  lcd_cmd(0xEF, 0x90);
23
  lcd_cmd(0x4A, 0x04);
24
  lcd_cmd(0x7F, 0x3F);
25
  lcd_cmd(0xEE, 0x04);
26
  lcd_cmd(0x43, 0x06);
27

28
  delay_ms(7); //important: 7-8 ms
29

30
  //init 2
31
  lcd_cmd(0xEF, 0x90);
32
  lcd_cmd(0x09, 0x83);
33
  lcd_cmd(0x08, 0x00);
34
  lcd_cmd(0x0B, 0xAF);
35
  lcd_cmd(0x0A, 0x00);
36
  lcd_cmd(0x05, 0x00);
37
  lcd_cmd(0x06, 0x00);
38
  lcd_cmd(0x07, 0x00);
39
  lcd_cmd(0xEF, 0x00);
40
  lcd_cmd(0xEE, 0x0C);
41
  lcd_cmd(0xEF, 0x90);
42
  lcd_cmd(0x00, 0x80);
43
  lcd_cmd(0xEF, 0xB0);
44
  lcd_cmd(0x49, 0x02);
45
  lcd_cmd(0xEF, 0x00);
46
  lcd_cmd(0x7F, 0x01);
47
  lcd_cmd(0xE1, 0x81);
48
  lcd_cmd(0xE2, 0x02);
49
  lcd_cmd(0xE2, 0x76);
50
  lcd_cmd(0xE1, 0x83);
51

52
  delay_ms(50);
53

54
  //init 3
55
  lcd_cmd(0x80, 0x01); //display on
56
}

Nach dem Display-On Kommando schaltet sich das Display ein, so wie es im 
Bild ersichtlich ist.

Weiß jemand was da falsch laufen könnte??

Danke für eure Hilfe.
lg Robert
Angehängte Dateien:
OP Persönliche Seite #1331858
Lesenswert?

Das mache ich danach
1
void lcd_draw(unsigned int color)
2
{
3
  ssi1_write((uint8_t)(color>>8));
4
  ssi1_write((uint8_t)color);
5
}
6

7
void fillDisplay(void)
8
{
9
  lcd_cmd(0xEF, 0x90);
10
  lcd_cmd(0x05, 0x00);
11
  lcd_cmd(0x06, 0x00);
12
  lcd_cmd(0x07, 0x00);
13

14
  for(int i=0; i<0xB580; i++)
15
  {
16
    lcd_draw(0);
17
  }
18
  
19
}

Wenn ich diese Funktion danach aufrufe, schaut es aus als ob das Bild 
einmal aktualisiert wird. Danach ist sofort wieder dieser Datenmüll am 
Display.

Weiß jemand warum?

lg Robert

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren