Forum: Mikrocontroller und Digitale Elektronik STM32F429, 480x800 TFT und STEmwin


von Mitch3l B. (mitch3l_b)


Angehängte Dateien:

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?

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
Noch kein Account? Hier anmelden.