boards: ruiside: art-pi2: add minimum support
- introduced a new vendor ruiside, updated `dts/bindings/vendor-prefixes.txt` - add art-pi2 board basic support Signed-off-by: Shan Pen <bricle031@gmail.com>
This commit is contained in:
parent
b469fc188b
commit
46f5e7b722
10 changed files with 347 additions and 0 deletions
5
boards/ruiside/art_pi2/Kconfig.art_pi2
Normal file
5
boards/ruiside/art_pi2/Kconfig.art_pi2
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# Copyright (c) 2025 Shan Pen <bricle031@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
config BOARD_ART_PI2
|
||||||
|
select SOC_STM32H7R7XX
|
119
boards/ruiside/art_pi2/art_pi2.dts
Normal file
119
boards/ruiside/art_pi2/art_pi2.dts
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025 Shan Pen <bricle031@gmail.com>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
#include <st/h7rs/stm32h7r7X8.dtsi>
|
||||||
|
#include <st/h7/stm32h7r7l8hxh-pinctrl.dtsi>
|
||||||
|
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||||
|
|
||||||
|
/ {
|
||||||
|
model = "Ruiside Electronic ART-Pi2 board";
|
||||||
|
compatible = "ruiside,art-pi2";
|
||||||
|
|
||||||
|
chosen {
|
||||||
|
zephyr,console = &uart4;
|
||||||
|
zephyr,shell-uart = &uart4;
|
||||||
|
zephyr,sram = &sram0;
|
||||||
|
zephyr,flash = &flash0;
|
||||||
|
};
|
||||||
|
|
||||||
|
leds: leds {
|
||||||
|
compatible = "gpio-leds";
|
||||||
|
|
||||||
|
red_led: led_1 {
|
||||||
|
gpios = <&gpioo 1 GPIO_ACTIVE_HIGH>;
|
||||||
|
label = "User LED1";
|
||||||
|
};
|
||||||
|
|
||||||
|
blue_led: led_2 {
|
||||||
|
gpios = <&gpioo 5 GPIO_ACTIVE_LOW>;
|
||||||
|
label = "User LED2";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gpio_keys {
|
||||||
|
compatible = "gpio-keys";
|
||||||
|
|
||||||
|
user_button: button_0 {
|
||||||
|
label = "User";
|
||||||
|
gpios = <&gpioc 13 GPIO_ACTIVE_LOW>;
|
||||||
|
zephyr,code = <INPUT_KEY_0>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
aliases {
|
||||||
|
led0 = &red_led;
|
||||||
|
led1 = &blue_led;
|
||||||
|
sw0 = &user_button;
|
||||||
|
watchdog0 = &iwdg;
|
||||||
|
die-temp0 = &die_temp;
|
||||||
|
volt-sensor0 = &vref;
|
||||||
|
volt-sensor1 = &vbat;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&dtcm {
|
||||||
|
reg = <0x20000000 DT_SIZE_K(64)>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&clk_hsi48 {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&clk_hse {
|
||||||
|
clock-frequency = <DT_FREQ_M(24)>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&pll {
|
||||||
|
div-m = <12>;
|
||||||
|
mul-n = <250>;
|
||||||
|
div-p = <2>;
|
||||||
|
div-q = <2>;
|
||||||
|
div-r = <2>;
|
||||||
|
div-s = <2>;
|
||||||
|
div-t = <2>;
|
||||||
|
clocks = <&clk_hse>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rcc {
|
||||||
|
clocks = <&pll>;
|
||||||
|
clock-frequency = <DT_FREQ_M(250)>;
|
||||||
|
dcpre = <1>;
|
||||||
|
hpre = <1>;
|
||||||
|
ppre1 = <2>;
|
||||||
|
ppre2 = <2>;
|
||||||
|
ppre4 = <2>;
|
||||||
|
ppre5 = <2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
&uart4 {
|
||||||
|
pinctrl-0 = <&uart4_tx_pd1 &uart4_rx_pd0>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
current-speed = <115200>;
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&rng {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&iwdg {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&wwdg {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&vref {
|
||||||
|
status = "okay";
|
||||||
|
};
|
||||||
|
|
||||||
|
&vbat {
|
||||||
|
status = "okay";
|
||||||
|
};
|
14
boards/ruiside/art_pi2/art_pi2.yaml
Normal file
14
boards/ruiside/art_pi2/art_pi2.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
identifier: art_pi2
|
||||||
|
name: art pi2
|
||||||
|
type: mcu
|
||||||
|
arch: arm
|
||||||
|
toolchain:
|
||||||
|
- zephyr
|
||||||
|
ram: 640
|
||||||
|
flash: 64
|
||||||
|
supported:
|
||||||
|
- gpio
|
||||||
|
- uart
|
||||||
|
- watchdog
|
||||||
|
- entropy
|
||||||
|
vendor: ruiside
|
20
boards/ruiside/art_pi2/art_pi2_defconfig
Normal file
20
boards/ruiside/art_pi2/art_pi2_defconfig
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Copyright (c) 2025 Shan Pen <bricle031@gmail.com>
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# Enable SMPS
|
||||||
|
CONFIG_POWER_SUPPLY_DIRECT_SMPS=y
|
||||||
|
|
||||||
|
# Enable MPU
|
||||||
|
CONFIG_ARM_MPU=y
|
||||||
|
|
||||||
|
# Enable HW stack protection
|
||||||
|
CONFIG_HW_STACK_PROTECTION=y
|
||||||
|
|
||||||
|
# Enable UART driver
|
||||||
|
CONFIG_SERIAL=y
|
||||||
|
# Enable console
|
||||||
|
CONFIG_CONSOLE=y
|
||||||
|
CONFIG_UART_CONSOLE=y
|
||||||
|
|
||||||
|
# Enable GPIO
|
||||||
|
CONFIG_GPIO=y
|
9
boards/ruiside/art_pi2/board.cmake
Normal file
9
boards/ruiside/art_pi2/board.cmake
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
# keep first
|
||||||
|
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw")
|
||||||
|
board_runner_args(pyocd "--target=stm32h7r7l8hxh")
|
||||||
|
|
||||||
|
# keep first
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake)
|
||||||
|
include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake)
|
6
boards/ruiside/art_pi2/board.yml
Normal file
6
boards/ruiside/art_pi2/board.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
board:
|
||||||
|
name: art_pi2
|
||||||
|
full_name: ART-Pi2
|
||||||
|
vendor: ruiside
|
||||||
|
socs:
|
||||||
|
- name: stm32h7r7xx
|
BIN
boards/ruiside/art_pi2/doc/img/art_pi2.webp
Normal file
BIN
boards/ruiside/art_pi2/doc/img/art_pi2.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
163
boards/ruiside/art_pi2/doc/index.rst
Normal file
163
boards/ruiside/art_pi2/doc/index.rst
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
.. zephyr:board:: art_pi2
|
||||||
|
|
||||||
|
Overview
|
||||||
|
********
|
||||||
|
|
||||||
|
The ART-Pi2 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
|
||||||
|
|
||||||
|
- STM32H7R7L8HxH microcontroller featuring 64 Kbytes of Flash and 620 Kbytes of SRAM in an TFBGA225 package
|
||||||
|
- On-board ST-LINK/V2.1 debugger/programmer
|
||||||
|
- SDIO TF Card slot
|
||||||
|
- SDIO WIFI:CYWL6208
|
||||||
|
- HDC UART BuleTooth:CYWL6208
|
||||||
|
- 32-MB HyperRAM
|
||||||
|
- 64-MB HyperFlash
|
||||||
|
- 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-Pi2 website`_.
|
||||||
|
|
||||||
|
Hardware
|
||||||
|
********
|
||||||
|
|
||||||
|
ART-Pi2 provides the following hardware components:
|
||||||
|
|
||||||
|
The STM32H7R7xx devices are a high-performance microcontrollers family (STM32H7
|
||||||
|
Series) based on the high-performance Arm |reg| Cortex |reg|-M7 32-bit RISC core.
|
||||||
|
They operate at a frequency of up to 600 MHz.
|
||||||
|
|
||||||
|
More information about STM32H7R7 can be found here:
|
||||||
|
|
||||||
|
- `STM32H7R7L8 on www.st.com`_
|
||||||
|
- `STM32H7Rx reference manual`_
|
||||||
|
|
||||||
|
|
||||||
|
Supported Features
|
||||||
|
==================
|
||||||
|
|
||||||
|
.. zephyr:board-supported-hw::
|
||||||
|
|
||||||
|
Default Zephyr Peripheral Mapping:
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
The ART-Pi2 board features a On-board ST-LINK/V2.1 debugger/programmer. Board is configured as follows:
|
||||||
|
|
||||||
|
- UART4 TX/RX : PD1/PD0 (ST-Link Virtual Port Com)
|
||||||
|
- LED1 (red) : PO1
|
||||||
|
- LED2 (blue) : PO5
|
||||||
|
- USER PUSH-BUTTON : PC13
|
||||||
|
|
||||||
|
System Clock
|
||||||
|
------------
|
||||||
|
|
||||||
|
ART-Pi2 System Clock could be driven by an internal or external
|
||||||
|
oscillator, as well as the main PLL clock. By default, the System clock is
|
||||||
|
driven by the PLL clock at 250MHz, driven by an 24MHz high-speed external clock.
|
||||||
|
|
||||||
|
Serial Port
|
||||||
|
-----------
|
||||||
|
|
||||||
|
ART-Pi2 board has 4 UARTs and 3 USARTs plus one LowPower UART. The Zephyr console
|
||||||
|
output is assigned to UART4. Default settings are 115200 8N1.
|
||||||
|
|
||||||
|
Backup SRAM
|
||||||
|
-----------
|
||||||
|
|
||||||
|
In order to test backup SRAM you may want to disconnect VBAT from VDD. You can
|
||||||
|
do it by removing ``SB13`` jumper on the back side of the board.
|
||||||
|
|
||||||
|
Programming and Debugging
|
||||||
|
*************************
|
||||||
|
|
||||||
|
.. zephyr:board-supported-runners::
|
||||||
|
|
||||||
|
ART-Pi2 board includes an ST-LINK/V2.1 embedded debug tool interface.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Check if your ST-LINK V2.1 has newest FW version. It can be done with `STM32CubeProgrammer`_
|
||||||
|
|
||||||
|
Flashing
|
||||||
|
========
|
||||||
|
|
||||||
|
The board is configured to be flashed using west `STM32CubeProgrammer`_ runner,
|
||||||
|
so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required.
|
||||||
|
|
||||||
|
Flashing an application to ART-Pi2
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
First, connect the art_pi2 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 :zephyr:code-sample:`hello_world` application.
|
||||||
|
|
||||||
|
Run a serial host program to connect with your art_pi2 board.
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ minicom -b 115200 -D /dev/ttyACM0
|
||||||
|
|
||||||
|
or use screen:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
$ screen /dev/ttyACM0 115200
|
||||||
|
|
||||||
|
Build and flash the application:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: art_pi2
|
||||||
|
:goals: build flash
|
||||||
|
|
||||||
|
You should see the following message on the console:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
*** Booting Zephyr OS build v4.1.0-1907-g415ab379a8af ***
|
||||||
|
Hello World! art_pi2/stm32h7r7xx
|
||||||
|
|
||||||
|
Blinky example can also be used:
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/basic/blinky
|
||||||
|
:board: art_pi2
|
||||||
|
:goals: build flash
|
||||||
|
|
||||||
|
Debugging
|
||||||
|
=========
|
||||||
|
|
||||||
|
You can debug an application in the usual way. Here is an example for the
|
||||||
|
:zephyr:code-sample:`hello_world` application.
|
||||||
|
|
||||||
|
.. zephyr-app-commands::
|
||||||
|
:zephyr-app: samples/hello_world
|
||||||
|
:board: art_pi2
|
||||||
|
:maybe-skip-config:
|
||||||
|
:goals: debug
|
||||||
|
|
||||||
|
References
|
||||||
|
**********
|
||||||
|
.. target-notes::
|
||||||
|
|
||||||
|
.. _ART-Pi2 website:
|
||||||
|
https://github.com/RT-Thread-Studio/sdk-bsp-stm32h7r-realthread-artpi2
|
||||||
|
|
||||||
|
.. _STM32H7R7L8 on www.st.com:
|
||||||
|
https://www.st.com/en/microcontrollers-microprocessors/stm32h7r7l8.html
|
||||||
|
|
||||||
|
.. _STM32H7Rx reference manual:
|
||||||
|
https://www.st.com/resource/en/reference_manual/rm0477-stm32h7rx7sx-armbased-32bit-mcus-stmicroelectronics.pdf
|
||||||
|
|
||||||
|
.. _STM32CubeProgrammer:
|
||||||
|
https://www.st.com/en/development-tools/stm32cubeprog.html
|
10
boards/ruiside/index.rst
Normal file
10
boards/ruiside/index.rst
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
.. _boards-Ruiside:
|
||||||
|
|
||||||
|
Ruiside
|
||||||
|
#######
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
:glob:
|
||||||
|
|
||||||
|
**/*
|
|
@ -582,6 +582,7 @@ ronbo Ronbo Electronics
|
||||||
ronoth Ronoth
|
ronoth Ronoth
|
||||||
roofull Shenzhen Roofull Technology Co, Ltd
|
roofull Shenzhen Roofull Technology Co, Ltd
|
||||||
roseapplepi RoseapplePi.org
|
roseapplepi RoseapplePi.org
|
||||||
|
ruiside Shanghai Ruiside Electronic Technology Co., Ltd.
|
||||||
ruuvi Ruuvi Innovations Ltd (Oy)
|
ruuvi Ruuvi Innovations Ltd (Oy)
|
||||||
samsung Samsung Semiconductor
|
samsung Samsung Semiconductor
|
||||||
samtec Samtec/Softing company
|
samtec Samtec/Softing company
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue