Armfly STM32H743XIH6
Overview
The Armfly STM32H743XIH6 board is a development board based on the STMicroelectronics STM32H743XIH6 microcontroller in a TFBGA240 package. It combines the STM32H743 MCU with external SDRAM, display and touch hardware, multiple storage devices, dual Ethernet interfaces, audio, sensors, and a large number of board-level expansion interfaces.
The current Zephyr board port provides initial support for the board. The upstream description currently focuses on the base MCU, external SDRAM, USART1 console, LTDC display path, GT911 touch controller, SPI NOR flash, MicroSD socket, Ethernet MAC and PHY path, RTC, keys, and optional board-private FMC latch GPIO outputs used for the onboard LEDs.
For more information about the SoC, see:
Hardware
The full Armfly STM32H743XIH6 board includes the following hardware:
STM32H743XIH6 MCU in a TFBGA240 package
ARM Cortex-M7 core with FPU
Up to 480 MHz CPU frequency
2 MB internal flash
1 MB internal SRAM
32 MB SDRAM connected over a 32-bit FMC bus
32 MB QSPI flash with XIP capability
128 MB NAND flash connected over an 8-bit FMC bus
16 KB serial EEPROM
8 MB SPI NOR flash
RGB888 LCD interface with I2C touch and adjustable backlight
Dual Ethernet interfaces:
One interface using the STM32 internal MAC with a DM9162 PHY
One DM9000AEP controller connected on a 16-bit FMC bus
One USB full-speed host port
One USB full-speed device port
One RS-485 interface
One RS-232 interface with DB9 and TTL UART header access
Two CAN interfaces
One MicroSD card socket
One SDIO expansion connector with two TTL serial ports
WM8978 full-duplex I2S audio codec
On-board speaker and microphone
Si4704 FM radio receiver
One PS/2 keyboard or mouse connector
Infrared receive and transmit hardware
One buzzer shared with the infrared transmit function
MPU6050 motion sensor
BH1750 ambient light sensor
BMP180 barometric pressure sensor
Three user buttons and one 5-way joystick
One camera connector
ADC and DAC expansion interface
Expansion headers for SPI, TTL UART, and I2C modules compatible with the Armfly V5 and V6 expansion ecosystem, including support for:
AD7705 or TM7705 dual-channel 16-bit ADC modules
VS1053B audio modules
GPS and GPRS modules
ESP8266 UART Wi-Fi modules
OLED modules with an 8-bit parallel interface
AD7606 16-bit 8-channel ADC modules
ADS1256 8-channel 24-bit ADC modules
DAC8501 dual-channel DAC modules
DAC8563 dual-channel DAC modules
AD9833 DDS waveform generator modules
Additional 5 V and 3.3 V expansion outputs implemented through a fast, FMC-connected 32-bit latch interface
The Zephyr board port currently provides only initial support. Many peripherals present on the full board are not yet modeled or validated in the upstream board description.
Supported Features
The armfly_stm32h743xih6 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.
armfly_stm32h743xih6/stm32h743xx target
On-target memory for this board target: 512 KiB of RAM, 2 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 |
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 |
|||
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 |
STM32H7 Ethernet1 |
|
on-chip |
STM32 MDIO Controller1 |
||
on-board |
Generic MII PHY1 |
||
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
GPIO & Headers |
on-chip |
STM32 GPIO Controller11 |
|
on-board |
Memory-mapped latch GPIO controller1 |
||
I2C |
on-chip |
||
I2S |
on-chip |
STM32H7 I2S controller3 |
|
on-chip |
STM32 SAI Block controller1 |
||
Input |
on-board |
GT9xx / GT9xxx capacitive touch panels1 |
|
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 |
||
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
on-board |
Group of PWM-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 |
||
on-board |
STM32 Flexible Memory Controller (NOR Flash/PSRAM/SRAM controller)1 |
||
MMC |
on-chip |
||
MMU / MPU |
on-chip |
ARMv7-M Memory Protection Unit (MPU)1 |
|
MTD |
on-chip |
STM32 flash memory1 |
|
on-board |
Properties supporting Zephyr spi-nor flash driver (over the Zephyr SPI API) control of serial flash memories using the standard M25P80-based command set1 |
||
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 |
||
QSPI |
on-chip |
STM32 QSPI Controller1 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
RNG |
on-chip |
STM32 Random Number Generator1 |
|
RTC |
on-chip |
STM32 RTC1 |
|
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 |
||
on-chip |
STM32 UART4 |
||
on-chip |
STM32 LPUART1 |
||
SMbus |
on-chip |
STM32 SMBus controller4 |
|
SPI |
on-chip |
||
Timer |
on-chip |
ARMv7-M System Tick1 |
|
on-chip |
|||
on-chip |
STM32 low-power timer (LPTIM)1 |
||
USB |
on-chip |
STM32 OTGFS controller1 |
|
Video |
on-chip |
STM32 DCMI1 |
|
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
The current board definition enables or describes the following hardware blocks:
STM32H743XIH6 SoC core support
Internal flash and SRAM
External SDRAM on FMC
USART1 console
GPIO keys
Optional board-private FMC latch GPIO controller for the onboard LEDs
I2C1 with the GT911 touch controller
SPI3 with SPI NOR flash
SDMMC1 for the MicroSD socket
LTDC display controller using external SDRAM
PWM-based LCD backlight control
RTC using the low-speed clock source
Ethernet MAC with MDIO and external PHY
Note
The onboard LEDs are connected through an external latch on FMC Bank1. They are disabled by default because the FMC controller must be enabled by the application before accessing the latch. Applications that use these LEDs must enable MEMC support and enable the latch GPIO node in an application overlay.
Pin Mapping
Default Zephyr peripheral mapping:
USART1 TX/RX: PA9 / PA10
I2C1 SCL/SDA: PB6 / PB9
GT911 INT: PH7
SPI3 SCK/MISO/MOSI: PB3 / PB4 / PB5
SPI3 CS: PD13
SDMMC1 D0-D3/CK/CMD: PC8 / PC9 / PC10 / PC11 / PC12 / PD2
SDMMC1 card detect: PG12
PWM backlight control: TIM1 CH1 on PA8
Ethernet RMII REF_CLK/CRS_DV/TX_EN/TXD0/TXD1/RXD0/RXD1: PA1 / PA7 / PG11 / PG13 / PB13 / PC4 / PC5
Ethernet MDC/MDIO: PC1 / PA2
System Clock
The board is populated with a 25 MHz high-speed external oscillator and a 32.768 kHz low-speed external crystal for RTC operation. The current Zephyr board port uses the RCC and PLL configuration described in devicetree for system and peripheral clocks.
Display and Touch
The board DTS enables the STM32 LTDC controller for an RGB display path and
assigns the external SDRAM1 memory region as framebuffer backing storage.
The GT911 touch controller is connected on I2C1 and selected as the board
touch device through zephyr,touch.
The LVGL pointer pseudo-device is intentionally not part of the base board DTS. Applications that use LVGL can provide it in an overlay when needed.
Serial Port
The default Zephyr console is assigned to USART1 with 115200 8N1 settings.
Programming and Debugging
The armfly_stm32h743xih6 board supports the runners and associated west commands listed below.
| flash | debug | reset | debugserver | rtt | attach | |
|---|---|---|---|---|---|---|
| jlink | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| openocd | ✅ | ✅ (default) | ✅ | ✅ | ✅ | |
| pyocd | ✅ | ✅ | ✅ | ✅ | ✅ | |
| stm32cubeprogrammer | ✅ (default) |
Applications for the armfly_stm32h743xih6 board can be built and flashed in
the usual way. The board definition provides runner support for
STM32CubeProgrammer, OpenOCD, J-Link, and pyOCD.
Flashing
The default runner is STM32CubeProgrammer. OpenOCD, J-Link, and pyOCD can also be selected explicitly:
$ west flash --runner openocd
$ west flash --runner jlink
$ west flash --runner pyocd
Example build and flash command for the Hello World application:
# From the root of the zephyr repository
west build -b armfly_stm32h743xih6 samples/hello_world
west flash
Debugging
Debugging can be started in the usual way:
# From the root of the zephyr repository
west build -b armfly_stm32h743xih6 samples/hello_world
west debug