STM32H7 HDMI Board
Overview
STM32H7 HDMI Board [1] integrates an STMEWH747XIH6 MCU, along with multiple external peripherals. The PCB utilizes extended memory resources such as external SDRAM, eMMC, microSD card, NOR flash and interfaces such as USB, Ethernet (with PoE+), HDMI, analog audio and CAN.
Key features include:
STM32H747XIH6 MCU
External SDRAM on SODIMM 144-pin
MicroSD card slot
4 GB eMMC memory
2 Gb QSPI NOR flash
2x USB-A ports
HDMI support
DSI support
10/100Mbit Ethernet with PoE+
Debug USB-C interface with Power Delivery support
USB-C OTG support
PMOD connector
CAN and industrial standard GPIOs
Analog audio interface
120 x 120 mm (4.72 x 4.72 inch) PCB
Hardware
The STM32H7 HDMI Board provides the following hardware:
STM32H747XI MCU
ARM Cortex-M7 + Cortex-M4 MCU
Memory:
1 MB RAM
2 MB Flash
2 Gbit QSPI NOR external flash memory
External SDRAM on SODIMM 144-pin
4 GB eMMC memory
MicroSD card slot
Communication interfaces:
1x FDCAN
1x I2C Fast Mode SMBus/PMBus support
1x UART via USB-C Debug port
1x USB-C OTG full-speed
2x USB-A
Ethernet MAC (10/100 MBit/s) with PoE+
HDMI / DSI display
4x industrial GPIOs with control up to 24V and read up to 58V
PMOD Connector:
1x SPI (Type 2) / 1x USART (Type 3) selected via on board dip switch
4x GPIOs on pins 7-10
Other peripherals:
1x RGB Led connected via GPIOs
1x user button
Chrom-ART Accelerator (DMA2D), LCD-TFT controller, JPEG Codec
True Random Number Generator (RNG)
CRC calculation unit
Real-time clock
More information about the STM32H747XI can be found here:
Full component list for the board can be found here:
Supported Features
The stm32h7_hdmi_board board supports the hardware features listed below.
- on-chip / on-board
- Feature integrated in the SoC / present on the board.
- 2 / 2
-
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files. -
vnd,foo -
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.
stm32h7_hdmi_board/stm32h747xx/m4 target
On-target memory for this board target: 128 KiB of RAM, 1 MiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M4F CPU1 |
|
ADC |
on-chip |
STM32 ADC4 |
|
Audio |
on-chip |
STMicroelectronics DFSDM block1 |
|
on-chip |
STMicroelectronics DFSDM DMIC4 |
||
CAN |
on-chip |
STM32H7 series (and compatible) FDCAN CAN FD controller2 |
|
Clock control |
on-chip |
STM32H7 RCC (Reset and Clock controller)1 |
|
on-chip |
STM32 HSE Clock1 |
||
on-chip |
STM32 HSI Clock1 |
||
on-chip |
Generic fixed-rate clock provider3 |
||
on-chip |
STM32 LSE Clock1 |
||
on-chip |
STM32H7 main PLL3 |
||
on-chip |
STM32 Clock multiplexer1 |
||
on-chip |
STM32 Microcontroller Clock Output (MCO)2 |
||
Comparator |
on-chip |
STM32H7 series Comparator2 |
|
Counter |
on-chip |
STM32 counters14 |
|
CRC |
on-chip |
STM32 CRC calculation unit1 |
|
DAC |
on-chip |
STM32 family DAC1 |
|
Display |
on-chip |
STM32 LCD-TFT display controller1 |
|
DMA |
on-chip |
STM32 DMA controller (V1)2 |
|
on-chip |
STM32 BDMA controller1 |
||
on-chip |
STM32 DMAMUX controller2 |
||
Ethernet |
on-chip |
ST STM32 Ethernet MAC1 |
|
on-chip |
Synopsys DesignWare MAC MDIO controller1 |
||
on-chip |
Synopsys DesignWare MAC PTP (Precision Time Protocol) Clock1 |
||
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
GPIO & Headers |
on-chip |
STM32 GPIO Controller11 |
|
I2C |
on-chip |
STM32 I2C V2 controller4 |
|
I2S |
on-chip |
STM32H7 I2S controller3 |
|
on-chip |
STM32 SAI Block controller1 |
||
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
IPM |
on-chip |
STM32 HSEM MAILBOX1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Memory controller |
on-chip |
STM32 Battery Backed RAM1 |
|
on-chip |
STM32H7 Flexible Memory Controller (FMC)1 |
||
on-chip |
STM32 Flexible Memory Controller (SDRAM controller)1 |
||
MIPI-DSI |
on-chip |
STM32 MIPI DSI host1 |
|
MTD |
on-chip |
STM32 flash memory1 |
|
NVMEM |
on-chip |
Fixed layout for Non-Volatile memory1 |
|
OTP memory |
on-chip |
STM32 embedded NVM OTP1 |
|
PHY |
on-chip |
This binding is to be used by all the usb transceivers which are built-in with USB IP1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
Power management |
on-chip |
STM32H7 power controller1 |
|
PWM |
on-chip |
STM32 PWM12 |
|
QSPI |
on-chip |
STM32 QSPI Controller1 |
|
Regulator |
on-chip |
STM32 VREFBUF regulator1 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RNG |
on-chip |
STM32 Random Number Generator1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
SDHC |
on-chip |
STM32 SDMMC Host Controller2 |
|
Sensors |
on-chip |
STM32 quadrature decoder6 |
|
on-chip |
STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 |
||
on-chip |
STM32 VBAT1 |
||
on-chip |
STM32 VREF+1 |
||
Serial controller |
on-chip |
STM32 USART4 |
|
on-chip |
STM32 UART4 |
||
on-chip |
STM32 LPUART1 |
||
SMbus |
on-chip |
STM32 SMBus controller4 |
|
SPI |
on-chip |
STM32H7 SPI controller6 |
|
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
STM32 timers14 |
||
on-chip |
STM32 low-power timer (LPTIM)1 |
||
USB |
on-chip |
STM32 OTGHS controller1 |
|
on-chip |
STM32 OTGFS controller1 |
||
Video |
on-chip |
STM32 DCMI1 |
|
on-chip |
STM32 JPEG HW Codec1 |
||
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
stm32h7_hdmi_board/stm32h747xx/m7 target
On-target memory for this board target: 512 KiB of RAM, 1 MiB of Flash.
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M7 CPU1 |
|
ADC |
on-chip |
STM32 ADC4 |
|
Audio |
on-chip |
STMicroelectronics DFSDM block1 |
|
on-chip |
STMicroelectronics DFSDM DMIC4 |
||
CAN |
on-chip |
||
Clock control |
on-chip |
STM32H7 RCC (Reset and Clock controller)1 |
|
on-chip |
STM32 HSE Clock1 |
||
on-chip |
STM32 HSI Clock1 |
||
on-chip |
|||
on-chip |
STM32 LSE Clock1 |
||
on-chip |
|||
on-chip |
STM32 Clock multiplexer1 |
||
on-chip |
STM32 Microcontroller Clock Output (MCO)2 |
||
Comparator |
on-chip |
STM32H7 series Comparator2 |
|
Counter |
on-chip |
STM32 counters14 |
|
CRC |
on-chip |
STM32 CRC calculation unit1 |
|
DAC |
on-chip |
STM32 family DAC1 |
|
Display |
on-chip |
STM32 LCD-TFT display controller1 |
|
DMA |
on-chip |
STM32 DMA controller (V1)2 |
|
on-chip |
STM32 BDMA controller1 |
||
on-chip |
STM32 DMAMUX controller2 |
||
Ethernet |
on-chip |
ST STM32 Ethernet MAC1 |
|
on-chip |
Synopsys DesignWare MAC MDIO controller1 |
||
on-board |
Single Port Ethernet PHY with RMII 10/100 trancsceiver1 |
||
on-chip |
Synopsys DesignWare MAC PTP (Precision Time Protocol) Clock1 |
||
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
on-board |
STM32 QSPI Flash controller supporting the JEDEC CFI interface2 |
||
GPIO & Headers |
on-chip |
STM32 GPIO Controller11 |
|
I2C |
on-chip |
||
I2S |
on-chip |
STM32H7 I2S controller3 |
|
on-chip |
STM32 SAI Block controller1 |
||
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv7-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
IPM |
on-chip |
STM32 HSEM MAILBOX1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Memory controller |
on-chip |
STM32 Battery Backed RAM1 |
|
on-chip |
STM32H7 Flexible Memory Controller (FMC)1 |
||
on-chip |
STM32 Flexible Memory Controller (SDRAM controller)1 |
||
MIPI-DSI |
on-chip |
STM32 MIPI DSI host1 |
|
MMU / MPU |
on-chip |
ARMv7-M Memory Protection Unit (MPU)1 |
|
MTD |
on-chip |
STM32 flash memory1 |
|
on-board |
Fixed partitions of a flash (or other non-volatile storage) memory1 |
||
NVMEM |
on-chip |
Fixed layout for Non-Volatile memory1 |
|
OTP memory |
on-chip |
STM32 embedded NVM OTP1 |
|
PHY |
on-chip |
This binding is to be used by all the usb transceivers which are built-in with USB IP1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
Power management |
on-chip |
STM32H7 power controller1 |
|
PWM |
on-chip |
STM32 PWM12 |
|
QSPI |
on-chip |
STM32 QSPI Controller1 |
|
Regulator |
on-chip |
STM32 VREFBUF regulator1 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RNG |
on-chip |
STM32 Random Number Generator1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
SDHC |
on-chip |
STM32 SDMMC Host Controller2 |
|
Sensors |
on-chip |
STM32 quadrature decoder6 |
|
on-chip |
STM32 family TEMP node for production calibrated sensors with two calibration temperatures1 |
||
on-chip |
STM32 VBAT1 |
||
on-chip |
STM32 VREF+1 |
||
Serial controller |
on-chip |
STM32 USART4 |
|
on-chip |
|||
on-chip |
STM32 LPUART1 |
||
SMbus |
on-chip |
STM32 SMBus controller4 |
|
SPI |
on-chip |
||
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
STM32 timers14 |
||
on-chip |
STM32 low-power timer (LPTIM)1 |
||
USB |
on-board |
MAX3421E USB Peripheral/Host Controller controller with SPI interface2 |
|
on-chip |
STM32 OTGHS controller1 |
||
on-chip |
STM32 OTGFS controller1 |
||
Video |
on-chip |
STM32 DCMI1 |
|
on-chip |
STM32 JPEG HW Codec1 |
||
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
Connections and IOs
Antmicro’s STM32H7 HDMI Board uses the following default pin mappings for peripherals:
I2C2 SCL/SDA : PH4/PH5
I2C4 SCL/SDA : PD12/PB7
QSPI CLK/NCS/IO10/IO11/IO12/IO13/IO20/IO21/IO22/IO23 : PF10/PG6/PF8/PF9/PF7/PD13/PH2/PH3/PG9/PG14
SPI4 NSS/SCK/MOSI/MISO : PE4/PE2/PE6/PE5
PMOD SPI5 NSS/SCK/MOSI/MISO : PI8/PD3/PJ10/PJ11
PMOD USART2 CTS/TX/RX/RTS : PD3/PD5/PA3/PD4
UART5 TX/RX : PB6/PB12
PMOD GPIO 1/2/3/4 : PK3/PK4/PK5/PJ15
ETH : PA7, PC1, PA2, PA1, PC4, PC5, PB11, PG13, PG12, PB2
FDCAN2 RX/TX/SHDN/STB : PB5/PB13/PJ6/PJ7
SDMMC (SD) CK/CMD/D0/D1/D2/D3/SD_SEN : PC12/PD2/PC8/PC9/PC10/PC11/PA8
SDMMC (eMMC) CK/CMD/D0/D1/D2/D3/D4/D5/D6/D7/NRST/STRB : PD6/PA0/PB14/PB15/PG11/PB4/PB8/PB9/PC6/PC7/PK6/PK7
USBA1 NRES/INT/GPX : PC13/PE3/PI14
USBA2 NRES/INT/GPX : PJ8/PJ9/PI15
USB OTG D-/D+/ID/VBUS : PA11/PA12/PA10/PA9
I2S1 CK/SDI/SDO/LRCLK : PA5/PA6/PD7/PG10
IGPIO O1/O2/I1/I2 : PB0/PB1/PJ3/PJ4
LED R/G/B : PJ0/PJ1/PJ2
BTN : PI12
JTAG TMS/TCK/TDO/TDI : PA13/PA14/PB3/PA15
Serial Port
The Zephyr console output is assigned to UART5, which is connected to USB-UART converter on USB PD port.
External Displays
The STM32H7 HDMI Board is capable of connecting HDMI display or external DSI display over DSI FMC connector. Both displays are connected to the same MIPI DSI lines, which means using HDMI and DSI FMC at the same time is impossible.
Resources sharing
The dual core nature of STM32H747 SoC requires sharing HW resources between the two cores. This is done in 3 ways:
Compilation: Clock configuration is only accessible to M7 core. M4 core only has access to bus clock activation and deactivation.
Static pre-compilation assignment: Peripherals such as a UART are assigned in devicetree before compilation. The user must ensure peripherals are not assigned to both cores at the same time.
Run time protection: Interrupt-controller and GPIO configurations could be accessed by both cores at run time. Accesses are protected by a hardware semaphore to avoid potential concurrent access issues.
Programming and Debugging
The stm32h7_hdmi_board board supports the runners and associated west commands listed below.
| flash | debug | debugserver | rtt | attach | |
|---|---|---|---|---|---|
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
Applications for the stm32h7_hdmi_board board should be built per core target,
using either stm32h7_hdmi_board/stm32h747xx/m7 or stm32h7_hdmi_board/stm32h747xx/m4
as the target.
See Building an Application for more information about application builds.
Note
The FTDI4232HP chip used for flashing the board may require a newer version of OpenOCD than the one provided by Zephyr SDK.
Flashing
This board has a USB-JTAG interface and can be used with OpenOCD.
Connect the board to your host computer using USB PD port, then build and flash the application.
Flashing an application to STM32H747I M7 Core
Here is an example for the Blinky application.
# From the root of the zephyr repository
west build -b stm32h7_hdmi_board/stm32h747xx/m7 samples/basic/blinky
west flash
Run a serial host program to connect with the board:
$ picocom /dev/ttyUSB2 -b 115200
Similarly, you can build and flash samples on the M4 target. For this, please take care of the resource sharing (UART port used for console for instance).
Here is an example for the Hello World application on M4 core.
# From the root of the zephyr repository
west build -b stm32h7_hdmi_board/stm32h747xx/m4 samples/hello_world
west flash
Debugging
You can debug an application on Cortex M7 in the usual way. Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b stm32h7_hdmi_board/stm32h747xx/m7 samples/hello_world
west debug
Debugging a Zephyr application on Cortex M4 side with west is currently not available.