www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik TFT- Ansteuerung ET0350G0DH6 (Glyn) mit HX8238 LCD Driver und Microchip Graphic Lib


Autor: Andreas Häusler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute

Ich brauche wieder mal Euren geschätzten Rat.
Ich muss in der Firma das obengenannte TFT- Display an einem 
PIC24FJ256DA210 zum Laufen bringen. (Dieser uP besitzt ein "onboard" 
Graphic Controller).
Leider bin ich mit der Ansteuerung ziemlich überfordert.

Microchip liefert gratis eine umfangreiche Grafik- Bibliothek mit:
http://www.microchip.com/stellent/idcplg?IdcServic...
Dort sind auch schon diverse Treiber vordefiniert. Leider ist meine 
Konfiguration nicht dabei.

Nun meine Frage:

Muss der HX8238 auf dem LCD nach dem Reset initiallisiert werden, so wie 
dies bei den alten (Bsp. 2x16 Zeilen) Displays der Fall war oder reicht 
es, den Graphic Controller mit den entsprechenden Daten wie Auflösung, 
Frequenz, Back Porch usw. zu füttern.
Ist der HX8238 vom LCD Hersteller evt. schon im Werk an das LCD 
angepasst worden (OTP)? und ich kann nun einfach die 18Bit- RGB 
Schnittstelle bedienen.

Blicke einfach nicht recht durch, wie das gemacht wird. Fast jedes LCD 
Glas kommt mit einem anderen Timing Controller / Gate-Source Treiber 
usw. daher.

Habe geplant neben der QVGA Variante auch die VGA- Displays mit externem 
LCD Controller (SSD1963 Solomon Systech) zu verwenden. Wie verhält es 
sich denn damit?

Bin übrigens auf das Familienkonzept von Glyn gestossen. Ist ne feine 
Sache. Mehrere Displays in verschiedenen Auflösungen und Grössen mit 
immer identischem Anschlusskabel. Selbst die Touch- Signale sind im 
40pol. Anschluss integriert. Somit muss "nur" die Software an das 
jeweilige Display angepasst werden.

http://www.glyn.de/content_xl.asp?wdid=2225&sid=00...


Bin für jeden Hinweis oder Code zu diesem Problem sehr dankbar!

Gruss Andy

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um den HX8238 brauchst Du Dich garnicht zu kümmern. Du mußt lediglich 
dem Display die Signale laut Datenblatt liefern. Dabei hast Du die Wahl 
zwischen SYNC-mode und DE-mode, wenn ich nicht irre.
Nimm den SYNC-mode, dann würden auch andere Displays funktionieren.

Dein PIC hat 96kB RAM? Dann reicht es für 256 Farben bei QVGA.
Konzentriere Dich zunächst darauf, die Sync-Signale zu erzeugen 
(korrektes Timing). Danach kannst Du das Display anschließen und z. B. 
farbige Balken anzeigen lassen; vergiss nicht die LUT zu initialisieren.

Das Solomon-Teil fasse erst an, wenn Du die QVGA-Anzeige in Betrieb 
genommen hast. Meiner Ansicht nach ist ein VGA an einem PIC24 etwas 
unterversorgt. Hohe Geschwindigkeit darf man nicht erwarten.

Autor: Andreas Häusler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hi Entwickler

Danke für Deine Infos, sind sehr hilfreich!
Werde mich gleich mal dranmachen.
Habe übrigens vor, das VGA Display mit einem PIC32 (80MIPS) zu bedienen. 
Damit sollte es in Zusammenhang mit dem ext. Controller keine Probleme 
geben.

Für alle die's interessiert. Im Anhang noch das Datenblatt zum Solomon 
Controller.

Die Firma Techtoys bietet übrigens ein Board inkl. Schema(!) und SW- 
Treiber für die Microchip Graphic Lib mit diesem Controller an:

http://www.techtoys.com.hk/Displays/SSD1963EvalRev...

Hab ich gekauft und läuft einwandfrei mit den Microchip Demos...

Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab jetzt das Display zum Laufen gebracht, der Controller ist aber noch 
nicht optimal konfiguriert.

Villeicht kann mir ja noch mal jemand weiterhelfen.
Brauche im SW- Treiber folgende Angaben:
// Using TFT_ET0350G0DH6 Display Panel
  #if (DISPLAY_PANEL == TFT_ET0350G0DH6)  
    #define DISP_ORIENTATION    0
        #define DISP_HOR_RESOLUTION    320
        #define DISP_VER_RESOLUTION    240
        #define DISP_DATA_WIDTH      18
        #define DISP_HOR_PULSE_WIDTH    25
        #define DISP_HOR_BACK_PORCH     68  // 8
        #define DISP_HOR_FRONT_PORCH    20  // 8
        #define DISP_VER_PULSE_WIDTH    8
        #define DISP_VER_BACK_PORCH     18  // 7
        #define DISP_VER_FRONT_PORCH    4  // 5
        
        #if (DISPLAY_CONTROLLER == MCHP_DA210)
            #define GFX_LCD_TYPE                        GFX_LCD_TFT
            #define GFX_DISPLAYENABLE_ENABLE
            #define GFX_HSYNC_ENABLE
            #define GFX_VSYNC_ENABLE
            #define GFX_DISPLAYPOWER_ENABLE
            #define GFX_CLOCK_POLARITY                  GFX_ACTIVE_LOW
            #define GFX_DISPLAYENABLE_POLARITY          GFX_ACTIVE_HIGH
            #define GFX_HSYNC_POLARITY                  GFX_ACTIVE_LOW
            #define GFX_VSYNC_POLARITY                  GFX_ACTIVE_LOW
            #define GFX_DISPLAYPOWER_POLARITY           GFX_ACTIVE_HIGH
        #endif
  #endif // #if (DISPLAY_PANEL == TFT_ET0350G0DH6) 

Bis auf #define DISP_HOR_PULSE_WIDTH und #define DISP_VER_PULSE_WIDTH 
ist alles klar. Nur diese beiden Werte kann ich nicht aus dem Datenblatt 
lesen.

Hier noch ein Kommentar im Sourde für den SSD1289 Controller, vielleicht 
hilft das noch ein wenig weiter:
/* note: For SSD1289 
      
      tHBP (horizontal back porch)= DISP_HOR_BACK_PORCH + DISP_HOR_PULSE_WIDTH
      tVBP (vertical back porch)  = DISP_VER_BACK_PORCH + DISP_VER_PULSE_WIDTH

      Horizontal Cycle (280) = tHBP + DISP_HOR_FRONT_PORCH + DISP_HOR_RESOLUTION
      Vertical Cycle (326)   = tVBP + DISP_VER_FRONT_PORCH + DISP_VER_RESOLUTION

      In summary, the DISP_HOR_PULSE_WIDTH should not exceed tHBP and 
      the DISP_VER_PULSE_WIDTH should not exceed tVBP. See SSD1289 data sheet for 
      details.
    */

Das Datenblatt zum Display findet Ihr ja ganz oben.

Im Voraus herzlichen Dank...

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Bis auf #define DISP_HOR_PULSE_WIDTH und #define DISP_VER_PULSE_WIDTH

Da muß man sich das Diagramm ansehen; Minimum für beide ist wohl jeweils 
2. Ich verwende für Vsync 3 und für Hsync 30. Die Werte sind unkritisch, 
da die hintere Schulter immer mit der fallenden Flanke beginnt. 
Wichtiger sind daher die Werte 18 und 68. Hiermit wird die Lage des 
Bildes vorgegeben.

Noch etwas: ENB sollte auf '1' liegen und wichtig ist noch die richtige 
(steigende) Flanke von Dclk in der Mitte der gültigen Daten.
Der S1D13705 Controller macht es zum Beispiel anders herum; hier ist ein 
Inverter für Dclk notwendig.

Autor: Andreas Häusler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Werde ich morge gleich ausprobieren, danke!

Mit den jetzigen Einstellungen ist mein rechteckiger Rahmen, den ich am 
Rand des Displays mit Pixelbreite= 1 gezeichnet habe komischerweise ein 
paar Pixel nach rechts verschoben. D.h. der rechte Rand des Rechtecks 
ist nicht mehr auf dem Display sichtbar. Ich habe also scheinbar noch 
ein Problem mit der horizontalen Verschiebung.

Wünsche noch einen schönen Abend...

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich habe also scheinbar noch
>ein Problem mit der horizontalen Verschiebung.


Ich kenne den PIC24 nicht. Beim Epson S1D13705 kann man den 
DISP_HOR_BACK_PORCH nur in 8er Schritten eingeben. Das war recht blöde, 
weil man nur 64 eingeben konnte und für die Pixel immer noch einen 
Offset von 4 zur x-Position addieren mußte, um das Bild ganz links 
beginnen zu lassen.
Vielleicht macht der PIC ähnliche Faxen. Probiere es einfach aus!

Autor: Andreas Häusler (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So, läuft alles perfekt.
Möchte mich bei allen beteiligten Bedanken.

Im Anhang noch die relevanten Dateien, welche für den Betrieb des Gyln- 
Displays im Zusammenhang mit der Microchip Grafic Library notwendig 
sind.

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.