Forum: Mikrocontroller und Digitale Elektronik Grafikcontroller S1D13A04 von Epson


von Steffen M. (Firma: student) (steffen84)


Lesenswert?

Hallo zusammen!

Ich wollte einfach mal fragen ob jemand vll. Erfahrungen mit dem oben 
genannten Grafikcontroller hat.
Da ich schon seit einiger Zeit versuche ein 320x280 Pixel LCD mit 
TouchScreen und intrgriertem Grafikcontroller vom Typ S1D13A04 ans 
Laufen zu bekommen, käme mit jede Information sehr gelegen.

In den Datenblättern ist eine Struktur mit der folgenden 
Initialisierungssequenz gegeben:
1
static S1D_REGS init_values[] =  \
2
  { \
3
  { 0x14,       0x00000000 },   /* Power Save Configuration Register(0x00000000) */ \
4
  { 0x64,       0x28D70000 },   /* GPIO Status and Control Register */ \
5
  { 0x04,       0x00000000 },   /* Memory Clock Configuration Register */ \
6
  { 0x08,       0x00000032 },   /* Pixel Clock Configuration Register */ \
7
  { 0x0C,       0x00000041 },   /* Panel Type and MOD Rate Register 0x61*/ \
8
  { 0x10,       0x00000010 },   /* Display Settings Register */ \
9
  { 0x20,       0x00000030 },   /* Horizontal Total Register */ \
10
  { 0x24,       0x00000027 },   /* Horizontal Display Period Register */ \
11
  { 0x28,       0x0000000F },   /* Horizontal Display Period Start Position Register */ \
12
  { 0x2C,       0x00870156 },   /* FPLINE Register */ \
13
  { 0x30,       0x00000103 },   /* Vertical Total Register */ \
14
  { 0x34,       0x000000EF },  /* Vertical Display Period Register */ \
15
  { 0x38,       0x00000013 },   /* Vertical Display Period Start Position Register */ \
16
  { 0x3C,       0x00800000 },   /* FPFRAME Register */ \
17
  { 0x40,       0x00000000 },   /* Main Window Display Start Address Register */ \
18
  { 0x44,       0x000000A0 },  /* Main Window Line Address Offset Register */ \
19
  { 0x50,       0x00000000 },   /* PIP+ Window Display Start Address Register */ \
20
  { 0x54,       0x000000A0 },   /* PIP+ Window Line Address Offset Register */ \
21
  { 0x58,       0x00000000 },   /* PIP+ Window X Positions Register */ \
22
  { 0x5C,       0x00000000 },   /* PIP+ Window Y Positions Register */ \
23
  { 0x60,       0x00000000 },   /* Special Purpose Register */ \
24
  { 0x70,       0x00000000 },   /* PWM Clock Configuration Register */ \
25
  { 0x74,       0x00000000 },   /* PWMOUT Duty Cycle Register */ \
26
  { 0x80,       0x00000000 },   /* Scratch Pad A Register */ \
27
  { 0x84,       0x00000000 },   /* Scratch Pad B Register */ \
28
  { 0x88,       0x00000000 },   /* Scratch Pad C Register */ \
29
  { S1D_REGDELAYON,   0x00000032 },   /* LCD Panel Power On Delay (in ms) */ \
30
  { 0x64,       0x28D70001 },   /* GPIO Status and Control Register */ \
31
  { 0x14,       0x00000000 }   /* Power Save Configuration Register */ \
32
};

Des weiteren findet man auf der HP von Epson:
1
  for (i=0; i<sizeof(init_values)/sizeof(init_values[0]); i++ )
2
  {
3
    if ( init_values[i].Index < S1D_REGRESERVED )
4
    {
5
6
    ......
7
8
    }
9
    else
10
    {
11
      switch ( init_values[i].Index )
12
      {
13
          case S1D_REGDELAYOFF:
14
          case S1D_REGDELAYON:
15
          Delay( init_values[i].Value );
16
        break;
17
18
          default:
19
        break;
20
      }
21
    }
22
  }
23
}

Ich habe den ganzen Krempel nun so zusammengebaut das die 
Initialisierungssquenz entsprechend den Vorgaben abgearbeitet wird.(Habe 
dies auch überprüft). Leider scheint dies aber im Grafikcontroller nicht 
anzukommen. Sprich, wenn ich die Konfigurationsregister auslese kommt 
nur Muell bei rum. Das lässt vermuten das meine Schreib- und/oder 
Lesevorgänge wohl nicht funktionieren. Leider sind die Angaben im 
Datenblatt mehr als schwammig und meine Erfahrung mit Grafikcontrollern 
ist begrenzt.

Falls also jemand vll Tipps, Anregungen oder Quellen für mich hat wäre 
ich echt dankbar!

mfg, Steffen

von Benedikt K. (benedikt)


Lesenswert?

Das wichtigste ist das Power Save Register. Ohne das stellt sich der 
Controller tot. Daher wird das in dem Code von Epson immer als erstes 
beschrieben.
Ich gehe immer so vor: Als erstes die Chip ID auslesen, dann weiß ich, 
dass der Controller sich mit mir unterhält.
Beschreibe also mal nur da Power Save register und lese dann die ID aus.
Wenns nicht passt, dann liegt der Fehler entweder in der Hardware oder 
in den elementaren Ansteuerroutinen.

von Steffen M. (Firma: student) (steffen84)


Lesenswert?

Danke Benedikt für die schnelle Antwort! Damit lässt sich ja schonmal 
was anfangen :)

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.