STM32F429, 480x800 TFT und STEmwin

OP #4560146
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

Eine eigene Frage? Dieser Thread ist über 10 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.