STM32F429, 480x800 TFT und STEmwin

OP #4560146
Lesenswert?

Hallo zusammen.
Ich sitze an einer Applikation die dem STM32F49 Discovery ähnelt. D.h. 
auf der Platine sitzt auch der STM32F429ZIT6 und auch das SDRAM 
IS42S16400J. Mit dem Unterschied, dass hier das SDRAM mit 12 
Adressleitungen und nur 8 Datenleitungen angesteuert wird. Eine 
Testroutine gibt mir auch aus, dass das SDRAM richtig angeschlossen und 
initialisiert ist.
Ein 480x800 Pixel TFT soll über die HAL Driver von ST initialisiert 
werden. Ansteuerung erfolgt über den STM32F429ZIT6 und RGB565. Die GUI 
von STEmwin lässt sich auch initialisieren und über den Window Manager 
von STEmwin, kann (wie auf dem Foto zu sehen ist) auch schon ein Fenster 
dargestellt werden. Jedoch kann dies nicht auf der vollen Fläche des 
Displays angezeigt werden. Nur auf der rechten Seite und auf einem 
schmalen Streifen der linken Seite, kann richtig gezeichnet werden. 
Zeichne ich mittels GUI_DrawLine(x0,y0,x1,y1) vertikale Linien, so 
werden diese auf dem kompletten Display dargestellt. Bei Horzontalen 
Linien wird die linke Seite ausgelassen. Vielleicht hat ja jemand 
schonmal ein ähnliches Problem gehabt...

Ich hab jetzt mehrere Vermutungen zur Auswahl, woran es liegen könnte:
1. Initialisierung des Displays (HorizontalSync, VerticalSync, 
HSPolarity...) ist falsch. (Aber dann würde die rechte Seite ja nicht so 
klar dargestellt werden, oder?)
2. Die Layer Config ist falsch. Immerhin sieht es so aus, als würde ein 
zweiter Layer drüber liegen. (Aber selbst wenn ich nur einen Layer 
initialisiere, passiert das!)
3. Der Framebuffer für den Layer ist zu klein oder wird nicht richtig 
beschrieben und ausgelesen. (Aber würde dann nur ein Hälfte auf dem 
Display richtig dargestellt werden?)
4. DMA2D Initialisierung oder DMA Zugriff auf SDRAM ist falsch 
initialisiert. Immerhin hat der SDRAM-Datenbus hier im Gegensatz zum 
Discoveryboard statt einer Breite von 16 nur 8 Bit. Vielleicht erwartet 
die DMA2D irgendwo ein WORD und bekommt nur ein Byte oder so. (Aber kann 
das so einen Fehler auslösen?)
5. Das Display ist einfach schrott. (Aber ich hab ein zweites davon und 
es macht den selben Fehler.)
6. Irgendeine Leitung vom Controller zum Display ist aufgetrennt. (Kann 
das so einen Fehler verursachen?)

Hat jemand vielleicht eine Idee?
Angehängte Dateien:

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