www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Grafikcontroller S1D13A04 von Epson


Autor: Steffen M. (Firma: student) (steffen84)
Datum:

Bewertung
0 lesenswert
nicht 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:
static S1D_REGS init_values[] =  \
  { \
  { 0x14,       0x00000000 },   /* Power Save Configuration Register(0x00000000) */ \
  { 0x64,       0x28D70000 },   /* GPIO Status and Control Register */ \
  { 0x04,       0x00000000 },   /* Memory Clock Configuration Register */ \
  { 0x08,       0x00000032 },   /* Pixel Clock Configuration Register */ \
  { 0x0C,       0x00000041 },   /* Panel Type and MOD Rate Register 0x61*/ \
  { 0x10,       0x00000010 },   /* Display Settings Register */ \
  { 0x20,       0x00000030 },   /* Horizontal Total Register */ \
  { 0x24,       0x00000027 },   /* Horizontal Display Period Register */ \
  { 0x28,       0x0000000F },   /* Horizontal Display Period Start Position Register */ \
  { 0x2C,       0x00870156 },   /* FPLINE Register */ \
  { 0x30,       0x00000103 },   /* Vertical Total Register */ \
  { 0x34,       0x000000EF },  /* Vertical Display Period Register */ \
  { 0x38,       0x00000013 },   /* Vertical Display Period Start Position Register */ \
  { 0x3C,       0x00800000 },   /* FPFRAME Register */ \
  { 0x40,       0x00000000 },   /* Main Window Display Start Address Register */ \
  { 0x44,       0x000000A0 },  /* Main Window Line Address Offset Register */ \
  { 0x50,       0x00000000 },   /* PIP+ Window Display Start Address Register */ \
  { 0x54,       0x000000A0 },   /* PIP+ Window Line Address Offset Register */ \
  { 0x58,       0x00000000 },   /* PIP+ Window X Positions Register */ \
  { 0x5C,       0x00000000 },   /* PIP+ Window Y Positions Register */ \
  { 0x60,       0x00000000 },   /* Special Purpose Register */ \
  { 0x70,       0x00000000 },   /* PWM Clock Configuration Register */ \
  { 0x74,       0x00000000 },   /* PWMOUT Duty Cycle Register */ \
  { 0x80,       0x00000000 },   /* Scratch Pad A Register */ \
  { 0x84,       0x00000000 },   /* Scratch Pad B Register */ \
  { 0x88,       0x00000000 },   /* Scratch Pad C Register */ \
  { S1D_REGDELAYON,   0x00000032 },   /* LCD Panel Power On Delay (in ms) */ \
  { 0x64,       0x28D70001 },   /* GPIO Status and Control Register */ \
  { 0x14,       0x00000000 }   /* Power Save Configuration Register */ \
};

Des weiteren findet man auf der HP von Epson:
  for (i=0; i<sizeof(init_values)/sizeof(init_values[0]); i++ )
  {
    if ( init_values[i].Index < S1D_REGRESERVED )
    {

    ......

    }
    else
    {
      switch ( init_values[i].Index )
      {
          case S1D_REGDELAYOFF:
          case S1D_REGDELAYON:
          Delay( init_values[i].Value );
        break;

          default:
        break;
      }
    }
  }
}

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

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

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

Autor: Steffen M. (Firma: student) (steffen84)
Datum:

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

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.