Hallo zusammen, ich sitze hier an einem STM32F429BI Board mit Display, SDRam uvm. Das Board ist ein "Überbleibsel" von einem Projekt und ich möchte mich damit in die STM32-Welt einarbeiten. Diverse Sachen funktionieren ganz gut, wie Bit schupsen, Timer, Encoder, SPI, usw. Nur die Königsdisziplin TFT und externer SDRam will nicht so. Mein Ziel ist es mit der emWin Library zu arbeiten, doch schon die Initialisierung funzt nicht. Die Parameter für das Display und den SDRam liegen mir vor und ich meine das ich alles im CubeMX richtig eingetragen habe. Ich habe auch schon viel rum probiert (über Tage) aber... Bisher habe ich das Backlight an, und die Backcolor wird angezeigt. In der emWin Doku habe ich gelesen, dass als erstes GUI_Init() ausgeführt wird und diese bei Erfolg eine 0 zurück gibt. Nun ich bekomme eine -1. Im weiteren Programmverlauf, der von cubeMX generieten Code wird noch ein "Hello world" abgesetzt. Das aber nicht angezeigt wird. So der Stand der Dinge. Meine Fragen: Wenn ich eine -1 von GUI_Init() zurückbekomme, kann das bedeuten, dass TFT und/oder SDRAM falsch initialisiert sind? Oder sind da noch Einstellungen am emWin zu machen? Muss einer der Layer explizit ausgewählt werden bevor da was angezeigt wird. Oder ist einer immer aktiv. GUI Memory Size: Der wird im cubeMX auf 110 Kbytes gesetzt, was doch eigentlich für ein 640x480 mit 16bpp zu wenig ist, oder? Doch wenn ich ihn erhöhe, wird das Programm nicht compiliert. Muss man im TrueStudio den externen Ram eintragen? Zum SDRam: Laut Datenblatt vom STM32F429BI ist der Adressbereich vom SDRam Bank 2 ab 0xd000 0000. Die Color Framebuffer Start Adress vom Layer0 habe ich dann auf 0xd000 0000 und den Layer 1 auf 0xd010 0000. Ist das richtig? Kann man mit TrueStudio eigentlich externen Ram debuggen? Wenn ich in dem Adressbereich händisch Werte ändere, sollte sich dann auf dem TFT was ändern. Ja, viele Fragen... Ich hoffe jemand kann sie beantworten. Danke fürs lesen und die Antworten!
Eine böse Falle, in die ich bei meinen ersten Versuchen mit emwin getappt bin ist, daß ich übersehen hatte, vorher die CRC-Hardware zu aktivieren. emwin läuft Ohne nicht. Steht im Doc an gut versteckter Stelle. Vielleicht hilft dir das ja.
Danke für den Tipp, aber cubeMX hat diese Fehlerquelle schon ausgemerzt indem das aktivieren des CRC Voraussetzung für die Aktivierung des Grafik Frames ist. Du hast wohl ohne cubeMX gearbeitet. Vieleicht kannst du mir noch ein paar Tipps geben: Wie ist da mit den Layern? Muss man da erst was "aktivieren"? Wie hast du die Layer Startadressen gesetzt?
STM32 Starter schrieb im Beitrag #5736008: > Du hast wohl ohne cubeMX gearbeitet. Ich hab schon CubeMX genutzt, aber mit einer Grafik-Hardware, die nicht direkt von CubeMX unterstützt wird. (China STM32F407-Board + ILI9341 mit 16bit-Parallel-Interface) STM32 Starter schrieb im Beitrag #5736008: > Wie ist da mit den Layern? Muss man da erst was "aktivieren"? Ich mußte da nichts extra aktivieren. Ich hab mich darauf beschränkt, den Treiber für emwin zu schreiben. Hier ist der Code - vielleicht hilft dir das ja. https://cloud.it-livetalk.de/index.php/s/RxwpGTNTtRmGqAF Das sieht dann z.B. so aus: https://www.youtube.com/watch?v=02-vUJkdGzs Viel Erfolg!
:
Bearbeitet durch User
Ja, dank dir! Cool! Schaue ich mir heute Abend mal an... VG
Probiere erstmal aus ob der SDRAM arbeitet! Es gibt da noch die Falle das nicht nur die Timingwerte des SDRAM im Controller bekannt sein müssen sondern der RAM-Baustein selbst muss auch noch initialisiert werden. Falls das noch nicht geschehen ist schau mal im Cube-Paket des F4 in den BSPs des Discoveryboards mit TFT wie es dort gemacht wird.
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.