ART-Pi
Overview
The ART-Pi is an open-source hardware platform designed by the RT-Thread team specifically for embedded software engineers and open-source makers, offering extensive expandability for DIY projects.
Key Features
STM32H750XBH6 microcontroller featuring 128 Kbytes of Flash and 1024 Kbytes of SRAM in an TFBGA225 package
On-board ST-LINK/V2.1 debugger/programmer
SDIO TF Card slot
SDIO WIFI:AP6212
HDC UART BuleTooth:AP6212
32-MB SDRAM
16-Mbytes SPI FLASH
8-Mbytes QSPI FLASH
One Power LED (blue) for 3.3 V power-on
Two user LEDs blue and red
Two ST-LINK LEDs: blue and red
Two push-buttons (user and reset)
Board connectors:
USB OTG with Type-C connector
RGB888 FPC connector
More information about the board can be found at the ART-Pi website [1].
Hardware
ART-Pi provides the following hardware components:
The STM32H750xx devices are a high-performance microcontrollers family (STM32H7 Series) based on the high-performance Arm® Cortex®-M7 32-bit RISC core. They operate at a frequency of up to 480 MHz.
More information about STM32H750xx can be found here:
Supported Features
The art_pi
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.
art_pi/stm32h750xx
target
Type |
Location |
Description |
Compatible |
---|---|---|---|
CPU |
on-chip |
ARM Cortex-M7 CPU1 |
|
ADC |
on-chip |
STM32 ADC4 |
|
CAN |
on-chip |
STM32H7 series 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 counters12 |
|
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 |
STM32 Ethernet Controller1 |
|
on-chip |
STM32H7 Ethernet1 |
||
on-board |
Generic MII PHY1 |
||
Flash controller |
on-chip |
STM32 Family flash controller1 |
|
on-board |
STM32 QSPI Flash controller supporting the JEDEC CFI interface1 |
||
GPIO & Headers |
on-chip |
STM32 GPIO Controller11 |
|
I2C |
on-chip |
||
I2S |
on-chip |
STM32H7 I2S controller3 |
|
on-chip |
STM32 SAI controller2 |
||
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 |
|
MDIO |
on-chip |
STM32 MDIO Controller1 |
|
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 |
||
MMC |
on-chip |
||
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) memory3 |
||
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 |
||
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 |
|
PWM |
on-chip |
STM32 PWM12 |
|
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 |
|||
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-chip |
STM32 OTGFS controller1 |
|
Video |
on-chip |
STM32 Digital Camera Memory Interface (DCMI)1 |
|
Watchdog |
on-chip |
STM32 watchdog1 |
|
on-chip |
STM32 system window watchdog1 |
Default Zephyr Peripheral Mapping:
The ART-Pi board features a On-board ST-LINK/V2.1 debugger/programmer. Board is configured as follows:
UART4 TX/RX : PA0/PI9 (ST-Link Virtual Port Com)
LED1 (red) : PC15
LED2 (blue) : PI8
USER PUSH-BUTTON : PH4
Programming and Debugging
The art_pi
board supports the runners and associated west commands listed below.
flash | debug | rtt | debugserver | attach | |
---|---|---|---|---|---|
openocd | ✅ | ✅ (default) | ✅ | ✅ | ✅ |
stm32cubeprogrammer | ✅ (default) |
Note
Check if your ST-LINK V2.1 has newest FW version. It can be done with STM32CubeProgrammer [3]
Flashing
First, connect the art_pi to your host computer using the USB port to prepare it for flashing. Then build and flash your application.
Here is an example for the Hello World application.
Run a serial host program to connect with your art_pi board.
$ minicom -b 115200 -D /dev/ttyACM0
or use screen:
$ screen /dev/ttyACM0 115200
Build and flash the application:
# From the root of the zephyr repository
west build -b art_pi samples/hello_world
west flash
You should see the following message on the console:
*** Booting Zephyr OS build v4.2.0-3809-g1d6b6759aa1a ***
Hello World! art_pi/stm32h750xx
Blinky example can also be used:
# From the root of the zephyr repository
west build -b art_pi samples/basic/blinky
west flash
To flash an application that requires loading firmware on external flash, see ART_PI Externloader [4]
Debugging
You can debug an application in the usual way. Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b art_pi samples/hello_world
west debug