Projekt hochauflösendes TFT Display am ESP32

  • Bisher sind mir keine Lösungen bekannt, mit der ein TFT Display mit zum Beispiel 800x480 Pixel Auflösung und "True Color" an einen ESP32 angeschlossen werden kann.

    Ja, der ESP32 kann grundsätzlich VGA Auflösung erzeugen, aber nur mit sehr wenigen Farben. Der Framepuffer muss sich ausserdem im internen SRAM befinden.

    Für eine Auflösung von 800x480 Pixeln und je 6 Bit für Rot, Grün und Blau reicht das interne SRAM natürlich nicht aus.


    Also wird ein externer Framepuffer benötigt.


    Kleinere Displays mit bis zu 480x320 Pixeln gibt es mit internem Framepuffer.

    Darüber hinaus offensichtlich nicht.


    Zunächst hatte ich die Idee, das VGA Bild wie bei meiner Videkarte für die WANG mit einem FPGA zu erzeugen und dazu eines zu verwenden, welche genügend Speicher intern hat. Diese sind aber weder bezahlbar noch verfügbar.


    Schritt zwei war dann die Suche nach einem externen RAM, welches sich an ein FPGA anschliessen lässt und auch mit einem FPGA im Takt mithalten kann.

    Normale asynchrone SRAMs schaffen das nicht.

    Es gibt aber synchrone SRAMs mit 200 MHz Takt bzw. 5ns Zykluszeit.

    Zufälligerweise auch eines mit 1024K Worten zu 18 Bit.


    Dieses wird an ein FPGA anschlossen und mit dem doppelten Pixeltakt getaktet. Jeder zweite Zyklus dient dem Auslesen des Framepuffers zum Display, die Zyklen dazwischen dem Schreib- und Lesezugriff der "Zeichenlogik". Die Kopplung mit dem ESP32 erfolgt über SPI bzw. QSPI.



    Schaltplan und Layout sind gemacht, Platinen bestellt.

  • Der Framepuffer muss sich ausserdem im internen SRAM befinden.

    Für eine Auflösung von 800x480 Pixeln und je 6 Bit für Rot, Grün und Blau reicht das interne SRAM natürlich nicht aus.

    Ich weiss nicht ob es technisch ueberhaupt moeglich/nutzbar ist, aber einige ESP32 haben doch bis zu 8MB PSRAM

    Ich weiss nur nicht wie sich sich gegenueber dem normalen SRAM verhaelt.

    Der VGA32 von TTGO hat z.B. PSRAM mit drauf.

  • Hatte "4dsystems.com.au" da nicht was passendes im Program ?

    Denn mit der Beschaffbarkeit von FPGAs sieht es im allgemeinen

    recht dürftig aus :/

    Es gibt da noch den FT800 mit SPI Interface, der kann aber

    leider nur die 480*272.

  • Der Framepuffer muss sich ausserdem im internen SRAM befinden.

    Ich weiss nicht ob es technisch ueberhaupt moeglich/nutzbar ist, aber einige ESP32 haben doch bis zu 8MB PSRAM

    Ich weiss nur nicht wie sich sich gegenueber dem normalen SRAM verhaelt.

    Der VGA32 von TTGO hat z.B. PSRAM mit drauf.

    Eigentlich hast du die Antwort ja zitiert...

    Das PSRAM ist seriell(!) extern am ESP32 angeschlossen (genauso wie das FLASH) und funktioniert über den Cache. Die DMA kann darauf nicht zugreifen.

  • Denn mit der Beschaffbarkeit von FPGAs sieht es im allgemeinen

    recht dürftig aus :/

    Zur Zeit ist alles schwer beschaffbar, wenn es einigermassen moderne Technologie ist. Auch meine bisherige Lösung mit i.MX28.

    Außerdem ist der parallele Anschluss ans TFT Display nur eine der gängigen Methoden. Panellink, Displayport und HDMI bekomme ich mit dem FPGA auch hin, falls mal nur noch solche Displays verfügbar sind. Und von meinem "Lieblings-FPGAs" habe ich einige auf Lager, genug für Prototypen.

  • ALTERA EP2C5F144 und EP2C8F144 und EP4CE22F22

    (alle im QUAD 144 Gehäuse)

  • Für AVRs gab‘s mal ein Projekt, eine ISA-VGA-Karte anzusteuern. Das wäre für den ESP32 vielleicht auch ne Lösung.

    Das Genie beherrscht das Chaos

  • Viel zu groß, wenig Serientauglich und zu teuer :)

  • Vielleicht noch eine Anmerkung:


    Angeschlossen sollen ja TFT-Displays von 5 bis 10 Zoll mit Auflösungen von 800x480 bis 1024x768 mit Touchscreen, also sozusagen "Tabletts".



    Die Platine ist jetzt so groß, dass sie problemlos hinter ein 5 Zoll Display passt (ESP+FPGA+SSRAM).

  • Musterleiterplatten sind angekommen:



    (rechts). Links ist ein Standard FPGA Protoboard, welches ich gerne bei Versuchsaufbauten nutze.

    Ist derzeit auch besser zu bekommen als die FPGAs alleine :)

  • Gestern sind die bestückten Muster angekommen...



    ...und gleich ausprobiert mit einem 7" 800x480 Display mit kapazitivem Touchscreen.


    Der ESP32 tut derzeit noch nichts, das Bild wird im FPGA erzeugt.


    Das recheckige IC ist das 1Mx18 SSRAM. Reicht für eine maximale Auflösung von 1 MPixel im RGB666 Format.


    Das FPGA ist auf einem recht verbreiteten Demoboard und dieses ist von unten drangesteckt:



    In der späteren "Serie" wird das FPGA dann direkt aufgelötet.