STM32MP215F-DK Evaluation Board
Overview
The STM32MP215F-DK Discovery kit is designed as a complete demonstration and development platform for the STMicroelectronics STM32MP215F microprocessor based on the Arm® Cortex®-A35 (1.5 GHz) and Cortex®-M33 processors. Zephyr OS is ported to run on the Cortex®-M33 core, as a coprocessor of the Cortex®-A35 core.
Features:
STM32MP215FAN3 microprocessor based on the Arm® Cortex®-A35 up to 1.5 GHz and Cortex®-M33 at 300 MHz in a VFBGA273 package
STMicroelectronics power management STPMIC2L
16-Gbit LPDDR4 DRAM
100-Mbit/s Ethernet (RMII)
USB 2.0 Bus Powered
Four user LEDs
Two user, one tamper, and one reset push-buttons
Wake-up button
Four boot pin switches
Board connectors:
Ethernet RJ45
USB 2.0 USB Type-C®
microSD™ card holder
Dual-lane MIPI CSI-2® camera module expansion connector
LTDC display connector
M.2 E-Key connector to support Wi-Fi® and Bluetooth® SDIO modules
GPIO expansion connector
VBAT for power backup
MIPI10 JTAG connector
STDC14 connector for debug
Mainlined open-source Linux® STM32 MPU OpenSTLinux Distribution and STM32CubeMP2 software with examples
Linux® Yocto Project®, Buildroot, and STM32CubeIDE as development environments
More information about the board can be found at the STM32MP215F-DK website [1].
Hardware
Cores:
64-bit single-core Arm® Cortex®-A35 - Up to 1.5 GHz - 32-Kbyte I + 32-Kbyte D level 1 cache for each core - 128-Kbyte level 2 cache - Arm® NEON™ and Arm® TrustZone®
32-bit Arm® Cortex®-M33 with FPU/MPU - Up to 300 MHz - L1 16-Kbyte I / 16-Kbyte D - Arm® TrustZone®
Memories:
External DDR memory up to 4 Gbytes - DDR3L-1600 16-bit - DDR4-1600 16-bit - LPDDR4-1600 16-bit
456-Kbyte internal SRAM: 256-Kbyte AXI SYSRAM, 64-Kbyte AHB SRAM, 128-Kbyte AHB SRAM with ECC in backup domain, 8-Kbyte SRAM with ECC in backup domain
One Octo-SPI memory interfaces
Flexible external memory controller with up to 16-bit data bus: parallel interface to connect external ICs, and SLC NAND memories with up to 8-bit ECC
Security/safety:
Secure boot, TrustZone® peripherals, active tamper, environmental monitors, display secure layer, hardware accelerators
Complete resource isolation framework
Reset and power management:
1.71 to 1.95 V and 2.7/3.0 to 3.6 V multiple section I/O supply
POR, PDR, PVD, and BOR
On-chip LDO and power-switches for RETRAM, BKPSRAM, and VSW
Dedicated supplies for Cortex®-A35
Internal temperature sensor
Low-power modes: Sleep, Stop, and Standby
DDR memory retention in Standby mode
Controls for PMIC companion chip
Clock management:
Internal oscillators: 64 MHz HSI, 16 MHz MSI, 32 kHz LSI
External oscillators: 16-48 MHz HSE, 32.768 kHz LSE
Up to 7x PLLs with fractional mode General-purpose inputs/outputs
Up to 123 secure I/O ports with interrupt capability
Up to six wake-up inputs
Up to seven tamper input pins + 5 active tampers output pins Interconnect matrix
Bus matrices
128-, 64-, 32-bit STNoC interconnect, up to 600 MHz
32-bit Arm® AMBA® AHB interconnect, up to 300 MHz
3 DMA controllers to unload the CPU
48 physical channels in total
3x dual master port, high-performance, general-purpose, direct memory access controller (HPDMA), 16 channels each
Up to 37 communication peripherals:
3x I2C FM+ (1 Mbit/s, SMBus/PMBus®)
3x I3C (12.5 Mbit/s)
3x UART + 4x USART (12.5 Mbit/s, ISO7816 interface, LIN, IrDA, SPI) + 1x LPUART
6x SPI (50 Mbit/s, including 3 with full duplex I2S audio class accuracy via internal audio PLL or external clock)(+1 with OCTOSPI + 4 with USART)
4x SAI (stereo audio: I2S, PDM, SPDIF Tx)
SPDIF Rx with four inputs
3x SDMMC up to 8-bit (SD/eMMC™/SDIO)
Up to 2x CAN controllers supporting CAN FD protocol, out of which one supports time-triggered CAN (TTCAN)
1x USB 2.0 high-speed Host with embedded 480 Mbits/s PHY
1x USB 2.0 high-speed dual role data with embedded 480 Mbits/s PHY
Up to 2x Gigabit Ethernet interfaces
TSN, IEEE 1588v2 hardware, MII/RMII/RGMII
Camera interface #1 (5 Mpixels at 30 fps)
MIPI CSI-2®, 2x data lanes up to 2.5 Gbit/s each
8- to 16-bit parallel, up to 120 MHz
RGB, YUV, JPG, RawBayer with light ISP
Lite-ISP, demosaicing, downscaling, cropping, 3 pixel pipelines
Camera interface #2 (1 Mpixels at 15 fps)
8- to 14-bit parallel, up to 80 MHz
RGB, YUV, JPG
Cropping
Digital parallel interface up to 16-bit input or output
5 analog peripherals:
2x ADCs with 12-bit max. resolution (up to 5 Msps each, up to 23 channels)
Internal temperature sensor (DTS)
1x multifunction digital filter (MDF) with up to 4 channels/4 filters
Internal (VREFBUF) or external ADC reference VREF+
Graphics:
LCD-TFT controller, up to 24-bit // RGB888
Up to FHD (1920 x 1080) at 60 fps
3 layers including a secure layer
YUV support
Up to 28 timers and 5 watchdogs:
4x 32-bit timers with up to 4 IC/OC/PWM or pulse counter and quadrature (incremental) encoder input
2x 16-bit advanced motor control timers
10x 16-bit general-purpose timers (including 2 basic timers without PWM)
5x 16-bit low-power timers
Secure RTC with subsecond accuracy and hardware calendar
4 Cortex®-A35 system timers (secure, nonsecure, virtual, hypervisor)
2x SysTick Cortex®-M33 timer (secure, nonsecure)
5x watchdogs (4x independent and 1x window)
Hardware acceleration:
2x cryptographic processors (CRYP), AES-128, -192, -256, DES/TDES
Secure AES-256 with SCA
RSA, ECC, ECDSA with SCA
2x HASH (SHA-1, SHA-224, SHA-256, SHA3), HMAC
2x true random number generator
CRC calculation unit
“On-the-fly” DDR encryption/decryption (AES-128, AES-256)
“On-the-fly” OTFDEC Octo-SPI flash memory decryption (AES-128)
Debug mode:
Arm® CoreSight™ trace and debug: SWD and JTAG interfaces
More information about STM32MP215F can be found here:
Supported Features
The stm32mp215f_dk 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.
stm32mp215f_dk/stm32mp215fxx/m33 target
Type |
Location |
Description |
Compatible |
|---|---|---|---|
CPU |
on-chip |
ARM Cortex-M33 CPU1 |
|
CAN |
on-chip |
STM32H7 series (and compatible) FDCAN CAN FD controller2 |
|
Clock control |
on-chip |
STM32MP2 RCC (Reset and Clock controller)1 |
|
on-chip |
Generic fixed-rate clock provider2 |
||
GPIO & Headers |
on-chip |
STM32MP2 GPIO Controller12 |
|
I2C |
on-chip |
STM32 I2C V2 controller3 |
|
I3C |
on-chip |
STM32H5 I3C controller3 |
|
Input |
on-board |
Group of GPIO-bound input keys1 |
|
Interrupt controller |
on-chip |
ARMv8-M NVIC (Nested Vectored Interrupt Controller)1 |
|
on-chip |
STM32 External Interrupt Controller1 |
||
IPM |
on-chip |
STM32 IPCC MAILBOX1 |
|
LED |
on-board |
Group of GPIO-controlled LEDs1 |
|
Pin control |
on-chip |
STM32 Pin controller1 |
|
Reset controller |
on-chip |
STM32 Reset and Clock Control (RCC) Controller1 |
|
Serial controller |
on-chip |
STM32 USART4 |
|
on-chip |
|||
SPI |
on-chip |
||
Timer |
on-chip |
ARMv8-M System Tick1 |
|
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
Connections and IOs
STM32MP215F-DK Evaluation Board schematic is not yet available.
System Clock
Cortex®-A35
Not yet supported in Zephyr.
Cortex®-M33
The Cortex®-M33 Core is configured to run at a 300 MHz clock speed.
Programming and Debugging
The stm32mp215f_dk board supports the runners and associated west commands listed below.
| flash | debug | attach | rtt | debugserver | |
|---|---|---|---|---|---|
| openocd | ✅ (default) | ✅ (default) | ✅ | ✅ | ✅ |
Prerequisite
Before you can run Zephyr on the STM32MP215F-DK Discovery kit, you need to set up the Cortex®-A35 core with a Linux® environment. The Cortex®-M33 core runs Zephyr as a coprocessor, and it requires the Cortex®-A35 to load and start the firmware using remoteproc.
One way to set up the Linux environment is to use the official ST OpenSTLinux distribution, following the Starter Package [4]. (more information about the procedure can be found in the STM32MPU Wiki [5])
Loading the firmware
Once the OpenSTLinux distribution is installed on the board, the Cortex® -A35 is responsible (in the current distribution) for loading the Zephyr firmware image in DDR and/or SRAM and starting the Cortex®-M33 core. The application can be built using west, taking the Blinky as an example.
# From the root of the zephyr repository
west build -b stm32mp215f_dk/stm32mp215fxx/m33 samples/basic/blinky
The firmware can be copied to the board file system and started with the Linux remoteproc framework. (more information about the procedure can be found in the STM32MP215F boot Cortex-M33 firmware [3])
Debugging
Applications can be debugged using OpenOCD and GDB. The OpenOCD files can be found at device-stm-openocd [6]. The firmware must first be started by the Cortex®-A35. The debugger can then be attached to the running Zephyr firmware using OpenOCD.
Build the sample:
# From the root of the zephyr repository
west build -b stm32mp215f_dk/stm32mp215fxx/m33 samples/basic/blinky
Copy the firmware to the board, load it and start it with remoteproc (STM32MP215F boot Cortex-M33 firmware [3]). The orange LED should be blinking.
Attach to the target:
$ west attach