Bei der Erweiterung einer bestehenden Schaltung mit 4,3"-TFT-Display bot es sich an, diese um ein paar Schnittstellen zu ergänzen und für ein derzeit günstiges Display benutzbar zu machen. Das Display ED043003DH6 ist als Restposten in hinreichender Stückzahl erhältlich: https://www.pollin.de/p/lcd-modul-et043003dh6-tft-480x272-121498 Ausgelegt für STM32F7xx/H7xx µCs ist hier ein vorläufiger Zwischenschritt zu sehen, der die Ansteuerung und Zeichen/Grafikausgabe erledigt. Verwendet wird ein STM32F730, der per internem Speicher und DMA das Display mit max. 64 Farben betreibt. Wer vorhat, sich damit seine Urlaubsfotos anzeigen zu lassen, wird wohl enttäuscht sein. Wer eine einfache und affenschnelle Anzeige-/Bedieneinheit sucht, kann hiermit zu einer kostengünstigen Lösung kommen. Das TFT-Display wird über den FMC-Bus (ext. Daten-/Adressbus) per DMA angesteuert, wobei lediglich die Leitungen D0-D5, A16, A17 und /WR auf GPIOD und GPIOE benötigt werden. Nutzt man die Helligkeitssteuerung per DAC sowie die Auswertung der touch-Folie nicht, können alle Pins von GPIOA – GPIOC kollisionsfrei genutzt werden. Als Minimalschaltung sind neben dem µC nebst Abblockkondensatoren die Steckverbinder und Bauteile im Schaltbild rechts vom Controller notwendig. Hinzu kommen ein LDO-Spannungsregler 3,3 V und der Aufwärtwandler für die Hintergrundbeleuchtung. Optional sind der Spannungswandler für die 5 V Versorgung, der RS232 Treiber nebst Piepser und der Anschluß für die SPI2-Schnittstelle. Das Bestückungsbild zeigt die minimale Beschaltung auf der Leiterplatte. Die SPI2-Schnittstelle erlaubt schnellste Datenübertragung, was selbst mit einem Arduino flotten Bildaufbau ermöglicht. Im Unterschied zu anderen Displays mit eingebautem TFT-Controller und RAM ist bei der gezeigten Schaltung der µC nicht nur für die Generierung von Text und Grafik zuständig, sondern kann auch eigenständige Programme ausführen. Der vorhandene Zeichensatz CP850 ist vollständig implementiert. Andere, neue Zeichensätze können ergänzt werden. Das Programm kann den eigenen Bedürfnissen angepaßt werden: Startbildschirm (Logo) beim Einschalten, Fensterverwaltung, programmierbare Makros, ... Der F730 ist der kleinste und günstigste Controller dieser Familie. Reichen die 64 KB Flash nicht aus, kann über F722 (512 KB) bis zum F767 (2 MB) jeder Typ im TQFP100 verwendet werden. Der aktuelle Softwareentwurf (20 KB) ist mit einer IAR EWARM 8.22 Demoversion entwickelt worden. Dabei wurde mit CubeMX die "main.c" erzeugt, die lediglich die Takteinstellungen einfach konfigurierbar macht. Der Rest ist SPL- und HAL-frei ;-) Andere IDEs sollten kein Problem sein. Anbei noch ein Programm "spi_tft.ino" für einen UNO R3. Mit ein paar Steckleitungen kann das Demoprogramm die Möglichkeiten aufzeigen. Zur Verwendung der touch-Funktion muß eine RS232-Verbindung per USART3 hergestellt werden. Höchste Baudrate sorgt für höchste Geschwindigkeit.
Hallo Michael , der stm32f746 Discovery hat dieses Display auch. Könntest du nicht dein Programm umschreiben das Es auf dem Discovery Board läüft ? Für den Bluepill wäre Es auch interesannt. ps.: Für die vorschau der Urlaubfotos reicht der stm32f429 Discovery (Hat auch FMC) und ein Display mit 800x480 (LTDC). Du benutzt schon CubeMX , wann wechselst du zur System-Workbench ? mfg UNGRES
Hallo UNGRES, da ich kein F746-Disco-Board habe, kann ich das Programm auch nicht umschreiben. Das Disco-Board ist zudem so mit für mich unnützer Hardware überladen, daß es für mich auch keinen Anschaffungsgrund gibt. Auf einen BluePill wird das Programm nicht laufen, da dort nicht genug RAM und kein FSMC vorhanden sind. Ich benutze nicht schon CubeMX sondern noch. Lediglich main.c wird davon erzeugt und dort nur die wichtigen Initialisierungen mit HAL_Init() und SystemClock_Config(). Das macht es anfangs leichter, bei einem neuen Controller bei der Initialisierung nichts vergessen zu haben. Ab HSE_init() ist dann der Spaß schon vorbei und es wird automatisch auf internen oder externen Takt umgeschaltet; und ab hauptprogramm() wird nur noch direkt auf die Register zugegriffen. Der F730 hat ja schon einen internen TFT-Controller, den man auch nutzen könnte. Bei einem 100-pol. Gehäuse "klaut" mir dieser aber wesentliche Pins, die ich gerne anders verwenden möchte. Aktuell mache ich eine Programmversion für den pinkompatiblen H750, dessen großes, internes RAM es erlaubt, mehrere Seiten vorzuhalten, auf die dann nur noch umgeschaltet werden muß.
Hallo Michael , natürlich wird Es auf einem BluePill nicht laufen. Er hat zu wenig Speicher und kein FMC. Ich dachte als ersatz für den Arduino. (Für Touch und ansteurung des Terminals) Immerhin hat der H750 über 1MB Ram. Mein Display hat 800*480*2 Byte = 750 KB und damit Passt nur Ein Bild hinein. Im Letzten Jahr habe ich Es auf dem F429 zum laufen bekommen (FMC). (8 MB extern) Aber der Bildaufbau war sehr ernüchternd. Mit dem SDIO habe ich mich sehr gequält und hatte auch kontakt mit CubeMX . Schade das ST so wenig Ram mit integriert ansonsten schaut der H750 vielversprechend aus. Vor allem Hardware JPEG Codec etc.
UNGRES schrieb: > Ich dachte als ersatz für den Arduino. > (Für Touch und ansteurung des Terminals) Dafür ist ein BluePill Platinchen natürlich besser geeignet, als ein ATmega. Nicht, weil die Schnittstelle (SPI oder UART) zu lange für die Datenausgabe brauchen würde, sondern weil es je nach Anwendung viel Zeit brauchen kann, dynamische Daten zu errechnen. Noch besser ist es allerdings, das Steuerprogramm gleich mit auf dem STM32Fxxx laufen zu lassen, was aber zumeist ein eigenes Layout voraussetzt. > Immerhin hat der H750 über 1MB Ram. > > Mein Display hat 800*480*2 Byte = 750 KB und damit Passt nur Ein Bild > hinein. Das Bild paßt aber nur in zwei Stücken ins RAM. AXI bietet 512 KB und SRAM1+SRAM2 256 KB, wobei zwischen beiden Bereichen eine Lücke bleibt. Mit 800x480 ist Dein Display mehr als Faktor 3 größer als ein WQVGA. Bei statischen Bildern ist das nicht so bedeutend. Ein Rollen bei Textausgabe muß da sichtbar langsamer sein. Sofern man Schrift augengerecht anzeigen will, reicht auch kein 5x7 Zeichensatz, sondern 16x32 oder größer sollte es schon sein. Renesas hat µCs mit viel RAM auf dem Chip; das schlägt sich aber auch deutlich im Preis nieder.
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.