Skip to content

Commit 18a3f6f

Browse files
ric96kartben
authored andcommitted
board: arm: Add support for WeAct Mini STM31H7B0
This board is mostly the same as mini_stm32h743. Noatable diffrences for dt: - rcc config - octospi in quadspi mode - pinmux naming for USB and quadspi Signed-off-by: Sahaj Sarup <[email protected]>
1 parent f254280 commit 18a3f6f

File tree

9 files changed

+553
-0
lines changed

9 files changed

+553
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Copyright (c) 2024 Linaro Limited
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
# WeAct Studio MiniSTM32H7B0 board configuration
5+
6+
if BOARD_MINI_STM32H7B0
7+
8+
if DISPLAY
9+
10+
config INPUT
11+
default y
12+
13+
if LVGL
14+
15+
configdefault LV_COLOR_16_SWAP
16+
default y
17+
18+
config LV_Z_BITS_PER_PIXEL
19+
default 16
20+
21+
endif # LVGL
22+
23+
endif # DISPLAY
24+
25+
if USB_DEVICE_STACK
26+
27+
config UART_CONSOLE
28+
default CONSOLE
29+
30+
config USB_DEVICE_INITIALIZE_AT_BOOT
31+
default y
32+
33+
endif # USB_DEVICE_STACK
34+
35+
endif # BOARD_MINI_STM32H7B0
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2024 Linaro Limited
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
config BOARD_MINI_STM32H7B0
5+
select SOC_STM32H7B0XX
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Copyright (c) 2024 Linaro Limited
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
5+
board_runner_args(jlink "--device=STM32H7B0VB" "--speed=4000")
6+
7+
include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
8+
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)

boards/weact/mini_stm32h7b0/board.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
board:
2+
name: mini_stm32h7b0
3+
full_name: MiniSTM32H7B0 Core Board
4+
vendor: weact
5+
socs:
6+
- name: stm32h7b0xx
Binary file not shown.
Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
.. zephyr:board:: mini_stm32h7b0
2+
3+
Overview
4+
********
5+
6+
The MiniSTM32H7B0 Core board is a compact development board equipped with
7+
an STM32H7B0VBT6 microcontroller. It features a variety of peripherals,
8+
including a user LED and button, a display, and external SPI and QuadSPI
9+
NOR flash memory.
10+
11+
Key Features
12+
13+
- STM32 microcontroller in LQFP100 package
14+
- USB OTG or full-speed device
15+
- 1 user LED
16+
- User, boot, and reset push-buttons
17+
- 32.768 kHz and 25MHz HSE crystal oscillators
18+
- External NOR Flash memories: 64-Mbit Quad-SPI and 64-Mbit SPI
19+
- Board connectors:
20+
21+
- Camera (8 bit) connector
22+
- ST7735 TFT-LCD 160 x 80 pixels (RGB565 3-SPI)
23+
- microSD |trade| card
24+
- USB Type-C Connector
25+
- SWD header for external debugger
26+
- 2x 40-pin GPIO connector
27+
28+
29+
More information about the board can be found on the `Mini_STM32H7B0 website`_.
30+
31+
Hardware
32+
********
33+
34+
The MiniSTM32H7B0 Core board provides the following hardware components:
35+
36+
- STM32H7B0VBT6 in LQFP100 package
37+
- ARM 32-bit Cortex-M7 CPU with FPU
38+
- Chrom-ART Accelerator
39+
- Hardware JPEG Codec
40+
- 280 MHz max CPU frequency
41+
- VDD from 1.62 V to 3.6 V
42+
- 128 KB Flash
43+
- 1.4 MB SRAM
44+
- High-resolution timer (2.1 ns)
45+
- 32-bit timers(2)
46+
- 16-bit timers(10)
47+
- SPI(5)
48+
- I2C(4)
49+
- I2S (4)
50+
- USART(5)
51+
- UART(5)
52+
- USB OTG Full Speed and High Speed(1)
53+
- CAN FD(2)
54+
- SAI(4)
55+
- SPDIF_Rx(4)
56+
- HDMI_CEC(1)
57+
- Dual Mode Quad SPI(1)
58+
- Camera Interface
59+
- GPIO (up to 80) with external interrupt capability
60+
- 16-bit ADC(2) with 16 channels
61+
- 12-bit DAC with 2 channels(2)
62+
- True Random Number Generator (RNG)
63+
- 16-channel DMA
64+
- LCD-TFT Controller with XGA resolution
65+
66+
More information about STM32H7BO can be found here:
67+
68+
- `STM32H7B0VB on www.st.com`_
69+
- `STM32H7B0VB reference manual`_
70+
- `STM32H7B0VB datasheet`_
71+
72+
Supported Features
73+
==================
74+
75+
The ``mini_stm32h7b0`` board target supports the following hardware features:
76+
77+
+-----------+------------+-------------------------------------+
78+
| Interface | Controller | Driver/Component |
79+
+===========+============+=====================================+
80+
| NVIC | on-chip | nested vector interrupt controller |
81+
+-----------+------------+-------------------------------------+
82+
| WDT | on-chip | watchdog |
83+
+-----------+------------+-------------------------------------+
84+
| PINMUX | on-chip | pinmux |
85+
+-----------+------------+-------------------------------------+
86+
| FLASH | on-chip | flash memory |
87+
+-----------+------------+-------------------------------------+
88+
| GPIO | on-chip | gpio |
89+
+-----------+------------+-------------------------------------+
90+
| SPI | on-chip | spi |
91+
+-----------+------------+-------------------------------------+
92+
| QSPI NOR | on-chip | off-chip flash |
93+
+-----------+------------+-------------------------------------+
94+
| SDMMC | on-chip | disk access |
95+
+-----------+------------+-------------------------------------+
96+
| DISPLAY | on-chip | display |
97+
+-----------+------------+-------------------------------------+
98+
99+
Other hardware features have not been enabled yet for this board.
100+
101+
The default configuration per core can be found in the defconfig file:
102+
:zephyr_file:`boards/weact/mini_stm32h7b0/mini_stm32h7b0_defconfig`
103+
104+
Pin Mapping
105+
===========
106+
107+
MiniSTM32H7B0 Core board has 5 GPIO controllers. These controllers are responsible for pin muxing,
108+
input/output, pull-up, etc.
109+
110+
For more details please refer to `Mini_STM32H7B0 website`_.
111+
112+
Default Zephyr Peripheral Mapping:
113+
----------------------------------
114+
115+
The MiniSTM32H7B0 Core board is configured as follows
116+
117+
- USER_LED : PE3
118+
- USER_PB : PC13
119+
- SPI1 SCK/MISO/MOSI/NSS : PB3/PB4/PD7/PD6 (NOR Flash memory)
120+
- SPI4 SCK/MOSI/NSS : PE12/PE14/PE11 (LCD)
121+
- QuadSPI CLK/NCS/IO0/IO1/IO2/IO3 : PB2/PB6/PD11/PD12/PE2/PD13 (NOR Flash memory)
122+
- SDMMC1 CLK/DCMD/CD/D0/D1/D2/D3 : PC12/PD2/PD4/PC8/PC9/PC10/PC11 (microSD card)
123+
- USB DM/DP : PA11/PA12 (USB CDC ACM)
124+
125+
System Clock
126+
============
127+
128+
The STM32H7B0VB System Clock can be driven by an internal or external oscillator,
129+
as well as by the main PLL clock. By default, the System clock is driven
130+
by the PLL clock at 280MHz. PLL clock is fed by a 25MHz high speed external clock.
131+
132+
Serial Port (USB CDC ACM)
133+
=========================
134+
135+
The Zephyr console output is assigned to the USB CDC ACM virtual serial port.
136+
Virtual COM port interface. Default communication settings are 115200 8N1.
137+
138+
Programming and Debugging
139+
*************************
140+
141+
The MiniSTM32H7B0 Core board facilitates firmware flashing via the USB DFU
142+
bootloader. This method simplifies the process of updating images, although
143+
it doesn't provide debugging capabilities. However, the board provides header
144+
pins for the Serial Wire Debug (SWD) interface, which can be used to connect
145+
an external debugger, such as ST-Link.
146+
147+
Flashing
148+
========
149+
150+
To activate the bootloader, follow these steps:
151+
152+
1. Press and hold the BOOT0 key.
153+
2. While still holding the BOOT0 key, press and release the RESET key.
154+
3. Wait for 0.5 seconds, then release the BOOT0 key.
155+
156+
Upon successful execution of these steps, the device will transition into
157+
bootloader mode and present itself as a USB DFU Mode device. You can program
158+
the device using the west tool or the STM32CubeProgrammer.
159+
160+
Flashing an application to MiniSTM32H7B0
161+
----------------------------------------
162+
163+
Here is an example for the :zephyr:code-sample:`hello_world` application.
164+
165+
First, put the board in bootloader mode as described above. Then build and flash
166+
the application in the usual way. Just add ``CONFIG_BOOT_DELAY=5000`` to the
167+
configuration, so that USB CDC ACM is initialized before any text is printed,
168+
as below:
169+
170+
.. zephyr-app-commands::
171+
:zephyr-app: samples/hello_world
172+
:board: mini_stm32h7b0
173+
:goals: build flash
174+
:gen-args: -DCONFIG_BOOT_DELAY=5000
175+
176+
Run a serial host program to connect with your board:
177+
178+
.. code-block:: console
179+
180+
$ minicom -D <tty_device> -b 115200
181+
182+
Then, press the RESET button, you should see the following message after few seconds:
183+
184+
.. code-block:: console
185+
186+
Hello World! mini_stm32h7b0
187+
188+
Replace :code:`<tty_device>` with the port where the board XIAO BLE
189+
can be found. For example, under Linux, :code:`/dev/ttyACM0`.
190+
191+
Debugging
192+
---------
193+
194+
This current Zephyr port does not support debugging.
195+
196+
Testing the LEDs in the MiniSTM32H7B0
197+
*************************************
198+
199+
There is a sample that allows to test that LED on the board are working
200+
properly with Zephyr:
201+
202+
.. zephyr-app-commands::
203+
:zephyr-app: samples/basic/blinky
204+
:board: mini_stm32h7b0
205+
:goals: build flash
206+
:gen-args: -DCONFIG_BOOT_DELAY=5000
207+
208+
You can build and flash the examples to make sure Zephyr is running correctly on
209+
your board. The LED definitions can be found in
210+
:zephyr_file:`boards/weact/mini_stm32h7b0/mini_stm32h7b0.dts`.
211+
212+
Testing shell over USB in the MiniSTM32H7B0
213+
*******************************************
214+
215+
There is a sample that allows to test shell interface over USB CDC ACM interface
216+
with Zephyr:
217+
218+
.. zephyr-app-commands::
219+
:zephyr-app: samples/subsys/shell/shell_module
220+
:board: mini_stm32h7b0
221+
:goals: build flash
222+
:gen-args: -DCONFIG_BOOT_DELAY=5000
223+
224+
.. _Mini_STM32H7B0 website:
225+
https://github.com/WeActStudio/WeActStudio.MiniSTM32H7B0
226+
227+
.. _STM32H7B0VB on www.st.com:
228+
https://www.st.com/en/microcontrollers-microprocessors/stm32h7b0vb.html
229+
230+
.. _STM32H7B0VB reference manual:
231+
https://www.st.com/resource/en/reference_manual/rm0455-stm32h7a37b3-and-stm32h7b0-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
232+
233+
.. _STM32H7B0VB datasheet:
234+
https://www.st.com/resource/en/datasheet/stm32h7b0vb.pdf

0 commit comments

Comments
 (0)