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

arm,cortex-m4f

ADC

on-chip

STM32 ADC4

st,stm32-adc

Audio

on-chip

STMicroelectronics DFSDM block1

st,stm32-dfsdm

on-chip

STMicroelectronics DFSDM DMIC4

st,stm32-dfsdm-dmic

CAN

on-chip

STM32H7 series (and compatible) FDCAN CAN FD controller2

st,stm32h7-fdcan

Clock control

on-chip

STM32H7 RCC (Reset and Clock controller)1

st,stm32h7-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

STM32 HSI Clock1

st,stm32h7-hsi-clock

on-chip

Generic fixed-rate clock provider3

fixed-clock

on-chip

STM32 LSE Clock1

st,stm32-lse-clock

on-chip

STM32H7 main PLL3

st,stm32h7-pll-clock

on-chip

STM32 Clock multiplexer1

st,stm32-clock-mux

on-chip

STM32 Microcontroller Clock Output (MCO)2

st,stm32-clock-mco

Comparator

on-chip

STM32H7 series Comparator2

st,stm32h7-comp

Counter

on-chip

STM32 counters14

st,stm32-counter

CRC

on-chip

STM32 CRC calculation unit1

st,stm32-crc

DAC

on-chip

STM32 family DAC1

st,stm32-dac

Display

on-chip

STM32 LCD-TFT display controller1

st,stm32-ltdc

DMA

on-chip

STM32 DMA controller (V1)2

st,stm32-dma-v1

on-chip

STM32 BDMA controller1

st,stm32-bdma

on-chip

STM32 DMAMUX controller2

st,stm32-dmamux

Ethernet

on-chip

ST STM32 Ethernet MAC1

st,stm32h7-ethernet

on-chip

Synopsys DesignWare MAC MDIO controller1

snps,dwmac-mdio

on-chip

Synopsys DesignWare MAC PTP (Precision Time Protocol) Clock1

snps,dwmac-ptp-clock

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

GPIO & Headers

on-chip

STM32 GPIO Controller11

st,stm32-gpio

I2C

on-chip

STM32 I2C V2 controller4

st,stm32-i2c-v2

I2S

on-chip

STM32H7 I2S controller3

st,stm32h7-i2s

on-chip

STM32 SAI Block controller1

st,stm32-sai

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

IPM

on-chip

STM32 HSEM MAILBOX1

st,stm32-hsem-mailbox

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Memory controller

on-chip

STM32 Battery Backed RAM1

st,stm32-bbram

on-chip

STM32H7 Flexible Memory Controller (FMC)1

st,stm32h7-fmc

on-chip

STM32 Flexible Memory Controller (SDRAM controller)1

st,stm32-fmc-sdram

MIPI-DSI

on-chip

STM32 MIPI DSI host1

st,stm32-mipi-dsi

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

NVMEM

on-chip

Fixed layout for Non-Volatile memory1

fixed-layout

OTP memory

on-chip

STM32 embedded NVM OTP1

st,stm32-nvm-otp

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

Power management

on-chip

STM32H7 power controller1

st,stm32h7-pwr

PWM

on-chip

STM32 PWM12

st,stm32-pwm

QSPI

on-chip

STM32 QSPI Controller1

st,stm32-qspi

Regulator

on-chip

STM32 VREFBUF regulator1

st,stm32-vrefbuf

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

SDHC

on-chip

STM32 SDMMC Host Controller2

st,stm32-sdmmc

Sensors

on-chip

STM32 quadrature decoder6

st,stm32-qdec

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VBAT1

st,stm32-vbat

on-chip

STM32 VREF+1

st,stm32-vref

Serial controller

on-chip

STM32 USART4

st,stm32-usart

on-chip

STM32 UART4

st,stm32-uart

on-chip

STM32 LPUART1

st,stm32-lpuart

SMbus

on-chip

STM32 SMBus controller4

st,stm32-smbus

SPI

on-chip

STM32H7 SPI controller6

st,stm32h7-spi

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 timers14

st,stm32-timers

on-chip

STM32 low-power timer (LPTIM)1

st,stm32-lptim

USB

on-chip

STM32 OTGHS controller1

st,stm32-otghs

on-chip

STM32 OTGFS controller1

st,stm32-otgfs

Video

on-chip

STM32 DCMI1

st,stm32-dcmi

on-chip

STM32 JPEG HW Codec1

st,stm32-jpeg

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

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

arm,cortex-m7

ADC

on-chip

STM32 ADC4

st,stm32-adc

Audio

on-chip

STMicroelectronics DFSDM block1

st,stm32-dfsdm

on-chip

STMicroelectronics DFSDM DMIC4

st,stm32-dfsdm-dmic

CAN

on-chip

STM32H7 series (and compatible) FDCAN CAN FD controller11

st,stm32h7-fdcan

Clock control

on-chip

STM32H7 RCC (Reset and Clock controller)1

st,stm32h7-rcc

on-chip

STM32 HSE Clock1

st,stm32-hse-clock

on-chip

STM32 HSI Clock1

st,stm32h7-hsi-clock

on-chip

Generic fixed-rate clock provider12

fixed-clock

on-chip

STM32 LSE Clock1

st,stm32-lse-clock

on-chip

STM32H7 main PLL21

st,stm32h7-pll-clock

on-chip

STM32 Clock multiplexer1

st,stm32-clock-mux

on-chip

STM32 Microcontroller Clock Output (MCO)2

st,stm32-clock-mco

Comparator

on-chip

STM32H7 series Comparator2

st,stm32h7-comp

Counter

on-chip

STM32 counters14

st,stm32-counter

CRC

on-chip

STM32 CRC calculation unit1

st,stm32-crc

DAC

on-chip

STM32 family DAC1

st,stm32-dac

Display

on-chip

STM32 LCD-TFT display controller1

st,stm32-ltdc

DMA

on-chip

STM32 DMA controller (V1)2

st,stm32-dma-v1

on-chip

STM32 BDMA controller1

st,stm32-bdma

on-chip

STM32 DMAMUX controller2

st,stm32-dmamux

Ethernet

on-chip

ST STM32 Ethernet MAC1

st,stm32h7-ethernet

on-chip

Synopsys DesignWare MAC MDIO controller1

snps,dwmac-mdio

on-board

Single Port Ethernet PHY with RMII 10/100 trancsceiver1

microchip,lan8742

on-chip

Synopsys DesignWare MAC PTP (Precision Time Protocol) Clock1

snps,dwmac-ptp-clock

Flash controller

on-chip

STM32 Family flash controller1

st,stm32-flash-controller

on-board

STM32 QSPI Flash controller supporting the JEDEC CFI interface2

st,stm32-qspi-nor

GPIO & Headers

on-chip

STM32 GPIO Controller11

st,stm32-gpio

I2C

on-chip

STM32 I2C V2 controller13

st,stm32-i2c-v2

I2S

on-chip

STM32H7 I2S controller3

st,stm32h7-i2s

on-chip

STM32 SAI Block controller1

st,stm32-sai

Input

on-board

Group of GPIO-bound input keys1

gpio-keys

Interrupt controller

on-chip

ARMv7-M NVIC (Nested Vectored Interrupt Controller)1

arm,v7m-nvic

on-chip

STM32 External Interrupt Controller1

st,stm32-exti

IPM

on-chip

STM32 HSEM MAILBOX1

st,stm32-hsem-mailbox

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

Memory controller

on-chip

STM32 Battery Backed RAM1

st,stm32-bbram

on-chip

STM32H7 Flexible Memory Controller (FMC)1

st,stm32h7-fmc

on-chip

STM32 Flexible Memory Controller (SDRAM controller)1

st,stm32-fmc-sdram

MIPI-DSI

on-chip

STM32 MIPI DSI host1

st,stm32-mipi-dsi

MMU / MPU

on-chip

ARMv7-M Memory Protection Unit (MPU)1

arm,armv7m-mpu

MTD

on-chip

STM32 flash memory1

st,stm32-nv-flash

on-board

Fixed partitions of a flash (or other non-volatile storage) memory1

fixed-partitions

NVMEM

on-chip

Fixed layout for Non-Volatile memory1

fixed-layout

OTP memory

on-chip

STM32 embedded NVM OTP1

st,stm32-nvm-otp

PHY

on-chip

This binding is to be used by all the usb transceivers which are built-in with USB IP1

usb-nop-xceiv

Pin control

on-chip

STM32 Pin controller1

st,stm32-pinctrl

Power management

on-chip

STM32H7 power controller1

st,stm32h7-pwr

PWM

on-chip

STM32 PWM12

st,stm32-pwm

QSPI

on-chip

STM32 QSPI Controller1

st,stm32-qspi

Regulator

on-chip

STM32 VREFBUF regulator1

st,stm32-vrefbuf

Reset controller

on-chip

STM32 Reset and Clock Control (RCC) Controller1

st,stm32-rcc-rctl

RNG

on-chip

STM32 Random Number Generator1

st,stm32-rng

RTC

on-chip

STM32 RTC1

st,stm32-rtc

SDHC

on-chip

STM32 SDMMC Host Controller2

st,stm32-sdmmc

Sensors

on-chip

STM32 quadrature decoder6

st,stm32-qdec

on-chip

STM32 family TEMP node for production calibrated sensors with two calibration temperatures1

st,stm32-temp-cal

on-chip

STM32 VBAT1

st,stm32-vbat

on-chip

STM32 VREF+1

st,stm32-vref

Serial controller

on-chip

STM32 USART4

st,stm32-usart

on-chip

STM32 UART13

st,stm32-uart

on-chip

STM32 LPUART1

st,stm32-lpuart

SMbus

on-chip

STM32 SMBus controller4

st,stm32-smbus

SPI

on-chip

STM32H7 SPI controller24

st,stm32h7-spi

Timer

on-chip

ARMv7-M System Tick1

arm,armv7m-systick

on-chip

STM32 timers14

st,stm32-timers

on-chip

STM32 low-power timer (LPTIM)1

st,stm32-lptim

USB

on-board

MAX3421E USB Peripheral/Host Controller controller with SPI interface2

maxim,max3421e-spi

on-chip

STM32 OTGHS controller1

st,stm32-otghs

on-chip

STM32 OTGFS controller1

st,stm32-otgfs

Video

on-chip

STM32 DCMI1

st,stm32-dcmi

on-chip

STM32 JPEG HW Codec1

st,stm32-jpeg

Watchdog

on-chip

STM32 watchdog1

st,stm32-watchdog

on-chip

STM32 system window watchdog1

st,stm32-window-watchdog

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.

References