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?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en543091 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=000000267A5557515F5744655751415347 Bin für jeden Hinweis oder Code zu diesem Problem sehr dankbar! Gruss Andy
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.
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/SSD1963EvalRev2A/SSD1963%20Eval%20Board%20Rev2A.htm Hab ich gekauft und läuft einwandfrei mit den Microchip Demos...
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:
1 | // Using TFT_ET0350G0DH6 Display Panel
|
2 | #if (DISPLAY_PANEL == TFT_ET0350G0DH6)
|
3 | #define DISP_ORIENTATION 0
|
4 | #define DISP_HOR_RESOLUTION 320
|
5 | #define DISP_VER_RESOLUTION 240
|
6 | #define DISP_DATA_WIDTH 18
|
7 | #define DISP_HOR_PULSE_WIDTH 25
|
8 | #define DISP_HOR_BACK_PORCH 68 // 8
|
9 | #define DISP_HOR_FRONT_PORCH 20 // 8
|
10 | #define DISP_VER_PULSE_WIDTH 8
|
11 | #define DISP_VER_BACK_PORCH 18 // 7
|
12 | #define DISP_VER_FRONT_PORCH 4 // 5
|
13 | |
14 | #if (DISPLAY_CONTROLLER == MCHP_DA210)
|
15 | #define GFX_LCD_TYPE GFX_LCD_TFT
|
16 | #define GFX_DISPLAYENABLE_ENABLE
|
17 | #define GFX_HSYNC_ENABLE
|
18 | #define GFX_VSYNC_ENABLE
|
19 | #define GFX_DISPLAYPOWER_ENABLE
|
20 | #define GFX_CLOCK_POLARITY GFX_ACTIVE_LOW
|
21 | #define GFX_DISPLAYENABLE_POLARITY GFX_ACTIVE_HIGH
|
22 | #define GFX_HSYNC_POLARITY GFX_ACTIVE_LOW
|
23 | #define GFX_VSYNC_POLARITY GFX_ACTIVE_LOW
|
24 | #define GFX_DISPLAYPOWER_POLARITY GFX_ACTIVE_HIGH
|
25 | #endif
|
26 | #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:
1 | /* note: For SSD1289
|
2 |
|
3 | tHBP (horizontal back porch)= DISP_HOR_BACK_PORCH + DISP_HOR_PULSE_WIDTH
|
4 | tVBP (vertical back porch) = DISP_VER_BACK_PORCH + DISP_VER_PULSE_WIDTH
|
5 | |
6 | Horizontal Cycle (280) = tHBP + DISP_HOR_FRONT_PORCH + DISP_HOR_RESOLUTION
|
7 | Vertical Cycle (326) = tVBP + DISP_VER_FRONT_PORCH + DISP_VER_RESOLUTION
|
8 | |
9 | In summary, the DISP_HOR_PULSE_WIDTH should not exceed tHBP and
|
10 | the DISP_VER_PULSE_WIDTH should not exceed tVBP. See SSD1289 data sheet for
|
11 | details.
|
12 | */
|
Das Datenblatt zum Display findet Ihr ja ganz oben. Im Voraus herzlichen Dank...
>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.
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...
>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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.