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