Neues Hardware Projekt : STM32+FPGA+HDMI
Habe ein neues Hardware Projekt gestartet:ein FPGA board mit HDMI Ausgang und integriertem STM32F4.
Das ganze ist noch am Anfang (das Konzept steht) und wird
wohl etwas länger dauern 🙂
https://circuitmaker.com/Projects/Details/Uwe-Becker/FMV-S3A-F407-H
FMV Board fast fertig
Hier ein Bild vom aktuellen Stand:
was noch fehlt ist der Silkscreen und ein paar andere Feinheiten
dann dauert es leider wieder 4 Wochen bis die Platinen von China da sind.
Platinen sind da…
das erste “Blinky” sieht ok aus, CPU läuft also
FPGA läuft auch…
FPGA Library
die Library um ein bitfile in ein Xilinx-FPGA zu programmieren war doch sehr viel einfacher als gedacht.
hier der Link, falls es jemand brauchen kann.
erster HDMI screenshot
hier ein Screenshot vom ersten HDMI Bild mit 640 x 480 Pixel @ 60Hz
Die Farbtreppe wird im Moment noch kombinatorisch vom FPGA erzeugt. Ich sehe keine Bildfehler, die Hardware scheint also ok zu sein.
Der 250MHz Datenclock wird über DDR2-Outputs erzeugt damit kommt man intern mit 125MHz aus. Ich muss mal ausprobieren ob der Spartan-3A auch größere Auflösungen schafft.
SDRAM read
sieht unspektakulär aus … aber hier der Inhalt vom SDRAM als 8bit Graustufenbild.
Initialisierung, Refresh und Read vom SDRam scheinen also ok zu sein. VHDL ist nicht gerade meine stärke …da wird man zum schluß bestimmt noch einiges optimieren können.
Im Moment habe ich zwei buffer für je eine komplette Zeile Pixeldaten. Wären die Daten vom SDRAM in eine Zeile kopiert werden, kann das HDMI-Modul die andere Zeile am Screen darstellen.
Am ende vom Bild wird der refresh vom SDRAM gemacht bei 60Hz also alle 16ms (wobei 64ms eigentlich ausreichen würden)
Projekt : STM32+FPGA+HDMI
Fertige Platine :(noch nicht komplett bestückt und nicht komplett getestet)
Übersicht :
Abmessung : 80 x 65mm
Anzahl der Layer : 4
FPGA : Xilinx Spartan-3 (XC3S50A oder XC3S200A) (LQFP 100pin)
MCU : STM32 (F4xx oder F2xx oder F10xx) (LQFP 100pin)
VIDEO : HDMI-A Output
Spannungsregler : 3,3V und 1,2V
Peripherals der MCU :
Quarz : 8MHz
Zwei Buttons : Reset und Boot
Programmierung : JTAG/SWD
GPIOs MCU : Header mit freien 8 GPIOs (4 davon mit LEDs)
SPI : Flash (64MBit) + 6pol Header (CLK, MISO, MOSI, CS1, CS2, GND)
I2C : EEprom (512kBit) + 3pol Header (SCL, SDA, GND)
UART : 3pol Header (Rx, Tx, GND) mit LEDs
Peripherals vom FPGA :
Quarz : 50MHz
Programmierung : JTAG (oder per MCU auf dem board)
QSPI : Flash (64MBit)
RAM : SDRAM (32MBtye)
UART : 3pol Header (Rx, Tx, GND) mit LEDs
Skizze :
Schaltplan :
PDF : FMV_S3A-F407-H
The board layout and schematics are open source and made with the free version of Altium “circuit maker”. For the source files go to :
https://circuitmaker.com/Projects/Details/Uwe-Becker/FMV-S3A-F407-H
Bilder :
Doku :
Bill-Of-Materials (www.DigiKey.de) PDF : fmv_bom
Known Bugs!!
- holes of the DC connector (J6) are too small
- Signal “NRST” must be connected to SWD header (J2, Pin6)
Kosten :
Die nackte Platine kostet ca 6 EUR (wenn man 10 fertigen lässt)
Die Bauteile kosten ca. 50 EUR
In Summe kommt die Platine also knapp auf 60 EUR.
Software :
Librarys :
Hi!
Is the software for FPGA entirely done by you? Seems to do HDMI output and RAM reading like FMC on STM32, some time is required to program all this on FPGA.
Yes, the first version is written by me to check the functionality. Later on it’s open hardware/software
so everyone can change it. HDMI output is an easy task and allready finish (see screenshot).
I don’t have a time line it’s a hobby to have fun with. If you are interrested in this project
i will sell the remaining naked boards then you can speed the things up
Falls Du noch eine Platine über hast würde ich diese gern nehmen.