board: add support for VCC-GND STM32H750VB
YD-STM23H750VB board has 128 Kbytes of flash memory, 1 Mbytes of SRAM and 16 Mbytes onboard SPI norflash. Signed-off-by: John Sanpe <sanpeqf@gmail.com>
This commit is contained in:
parent
84572a6532
commit
0cd3f56f0d
10 changed files with 372 additions and 0 deletions
11
boards/vcc-gnd/yd_stm32h750vb/Kconfig.defconfig
Normal file
11
boards/vcc-gnd/yd_stm32h750vb/Kconfig.defconfig
Normal file
|
@ -0,0 +1,11 @@
|
|||
# YD-STM32H750VB board configuration
|
||||
|
||||
# Copyright(c) 2024 John Sanpe <sanpeqf@gmail.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if BOARD_YD_STM32H750VB
|
||||
|
||||
config DISK_DRIVER_SDMMC
|
||||
default y if DISK_DRIVERS
|
||||
|
||||
endif # BOARD_YD_STM32H750VB
|
7
boards/vcc-gnd/yd_stm32h750vb/Kconfig.yd_stm32h750vb
Normal file
7
boards/vcc-gnd/yd_stm32h750vb/Kconfig.yd_stm32h750vb
Normal file
|
@ -0,0 +1,7 @@
|
|||
# YD-STM32H750VB board configuration
|
||||
|
||||
# Copyright(c) 2024 John Sanpe <sanpeqf@gmail.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_YD_STM32H750VB
|
||||
select SOC_STM32H750XX
|
11
boards/vcc-gnd/yd_stm32h750vb/board.cmake
Normal file
11
boards/vcc-gnd/yd_stm32h750vb/board.cmake
Normal file
|
@ -0,0 +1,11 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(dfu-util "--pid=0483:df11" "--alt=0" "--dfuse")
|
||||
board_runner_args(jlink "--device=STM32H735IG" "--speed=4000")
|
||||
board_runner_args(openocd --target-handle=_CHIPNAME.cpu0)
|
||||
board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw")
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/dfu-util.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
5
boards/vcc-gnd/yd_stm32h750vb/board.yml
Normal file
5
boards/vcc-gnd/yd_stm32h750vb/board.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
name: yd_stm32h750vb
|
||||
vendor: vcc-gnd
|
||||
socs:
|
||||
- name: stm32h750xx
|
BIN
boards/vcc-gnd/yd_stm32h750vb/doc/img/yd_stm32h750vb.png
Normal file
BIN
boards/vcc-gnd/yd_stm32h750vb/doc/img/yd_stm32h750vb.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
133
boards/vcc-gnd/yd_stm32h750vb/doc/index.rst
Normal file
133
boards/vcc-gnd/yd_stm32h750vb/doc/index.rst
Normal file
|
@ -0,0 +1,133 @@
|
|||
.. _yd_stm32h750vb:
|
||||
|
||||
YD-STM32H750VB
|
||||
##############
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The YD-STM32H750VB development board is a complete demonstration and development
|
||||
platform for Arm |reg| Cortex |reg|-M7 core-based STM32H750VBT6 microcontroller, with
|
||||
128Kbytes of Flash memory and 1 Mbytes of SRAM.
|
||||
|
||||
.. image:: img/yd_stm32h750vb.png
|
||||
:align: center
|
||||
:alt: YD-STM32H750VB
|
||||
|
||||
More information about STM32H750 can be found here:
|
||||
|
||||
- `STM32H750 on www.st.com`_
|
||||
- `STM32H750xx reference manual`_
|
||||
- `STM32H750xx datasheet`_
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
The current Zephyr YD-STM32H750VB board supports the following features:
|
||||
|
||||
+-----------+------------+-------------------------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+=====================================+
|
||||
| CLOCK | on-chip | reset and clock control |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| NVIC | on-chip | nested vector interrupt controller |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| UART | on-chip | serial port-polling; |
|
||||
| | | serial port-interrupt |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| PINMUX | on-chip | pinmux |
|
||||
+-----------+------------+-------------------------------------+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+-------------------------------------+
|
||||
|
||||
Other hardware features are not yet supported on Zephyr porting.
|
||||
|
||||
The default configuration can be found in the defconfig file:
|
||||
:zephyr_file:`boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb_defconfig`
|
||||
|
||||
Pin Mapping
|
||||
===========
|
||||
|
||||
Default Zephyr Peripheral Mapping:
|
||||
----------------------------------
|
||||
|
||||
- UART_1_TX : PA9
|
||||
- UART_1_RX : PA10
|
||||
- LED_1 : PA13 (SWDIO)
|
||||
- LED_2 : PA14 (SWCLK)
|
||||
- LED_3 : PA15
|
||||
- LED_4 : PB4
|
||||
- KEY : PB3
|
||||
|
||||
System Clock
|
||||
============
|
||||
|
||||
The STM32H750VB System Clock can be driven by an internal or external oscillator,
|
||||
as well as by the main PLL clock. By default, the System clock
|
||||
is driven by the PLL clock at 480MHz. PLL clock is feed by a 25MHz high speed external clock.
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
There are 2 main entry points for flashing STM32H750VB SoCs, one using the ROM
|
||||
bootloader, and another by using the SWD debug port (which requires additional
|
||||
hardware such as ST-Link). Flashing using the ROM bootloader requires a special activation
|
||||
pattern, which can be triggered by using the BOOT0 button.
|
||||
|
||||
Installing dfu-util
|
||||
-------------------
|
||||
|
||||
It is recommended to use at least v0.8 of `dfu-util`_. The package available in
|
||||
debian/ubuntu can be quite old, so you might have to build dfu-util from source.
|
||||
|
||||
There is also a Windows version which works, but you may have to install the
|
||||
right USB drivers with a tool like `Zadig`_.
|
||||
|
||||
Flashing an application to YD-STM32H750VB
|
||||
-----------------------------------------
|
||||
|
||||
Connect a USB-C cable and the board should power ON. Force the board into DFU mode
|
||||
by keeping the BOOT0 switch pressed while pressing and releasing the RST switch.
|
||||
|
||||
The dfu-util runner is supported on this board and so a sample can be built and
|
||||
tested easily.
|
||||
|
||||
Here is an example for the :zephyr:code-sample:`blinky` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/basic/blinky
|
||||
:board: yd_stm32h750vb
|
||||
:goals: build flash
|
||||
|
||||
You will see the LED blinking every second.
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
You can debug an application in the usual way. Here is an example for the
|
||||
:ref:`hello_world` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: yd_stm32h750vb
|
||||
:goals: debug
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
.. target-notes::
|
||||
|
||||
.. _Zadig:
|
||||
https://zadig.akeo.ie/
|
||||
|
||||
.. _dfu-util:
|
||||
http://dfu-util.sourceforge.net/build.html
|
||||
|
||||
.. _STM32H750 on www.st.com:
|
||||
https://www.st.com/en/microcontrollers-microprocessors/stm32h750-value-line.html
|
||||
|
||||
.. _STM32H750xx reference manual:
|
||||
https://www.st.com/resource/en/reference_manual/rm0433-stm32h742-stm32h743753-and-stm32h750-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
|
||||
|
||||
.. _STM32H750xx datasheet:
|
||||
https://www.st.com/resource/en/datasheet/stm32h750vb.pdf
|
30
boards/vcc-gnd/yd_stm32h750vb/support/openocd.cfg
Normal file
30
boards/vcc-gnd/yd_stm32h750vb/support/openocd.cfg
Normal file
|
@ -0,0 +1,30 @@
|
|||
source [find interface/stlink-dap.cfg]
|
||||
transport select dapdirect_swd
|
||||
|
||||
set WORKAREASIZE 0x2000
|
||||
set CHIPNAME STM23H750VB
|
||||
set BOARDNAME YD_STM23H750VB
|
||||
|
||||
source [find target/stm32h7x.cfg]
|
||||
|
||||
# Use connect_assert_srst here to be able to program
|
||||
# even when core is in sleep mode
|
||||
reset_config srst_only srst_nogate connect_assert_srst
|
||||
|
||||
$_CHIPNAME.cpu0 configure -event gdb-attach {
|
||||
echo "Debugger attaching: halting execution"
|
||||
gdb_breakpoint_override hard
|
||||
}
|
||||
|
||||
$_CHIPNAME.cpu0 configure -event gdb-detach {
|
||||
echo "Debugger detaching: resuming execution"
|
||||
resume
|
||||
}
|
||||
|
||||
# Due to the use of connect_assert_srst, running gdb requires
|
||||
# to reset halt just after openocd init.
|
||||
rename init old_init
|
||||
proc init {} {
|
||||
old_init
|
||||
reset halt
|
||||
}
|
134
boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb.dts
Normal file
134
boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb.dts
Normal file
|
@ -0,0 +1,134 @@
|
|||
/*
|
||||
* Copyright(c) 2024 John Sanpe <sanpeqf@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include <st/h7/stm32h750Xb.dtsi>
|
||||
#include <st/h7/stm32h750vbtx-pinctrl.dtsi>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
model = "VCC-GND Studio STM32H750VB";
|
||||
compatible = "st,stm32h750vb";
|
||||
|
||||
aliases {
|
||||
led0 = &yellow_led;
|
||||
led1 = &blue_led;
|
||||
sw0 = &user_button;
|
||||
spi-flash0 = &w25q128jv;
|
||||
};
|
||||
|
||||
chosen {
|
||||
zephyr,console = &usart1;
|
||||
zephyr,shell-uart = &usart1;
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,flash-controller = &w25q128jv;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
red_led: led_1 {
|
||||
gpios = <&gpioa 13 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED1";
|
||||
status = "disabled";
|
||||
};
|
||||
green_led: led_2 {
|
||||
gpios = <&gpioa 14 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED2";
|
||||
status = "disabled";
|
||||
};
|
||||
yellow_led: led_3 {
|
||||
gpios = <&gpioa 15 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED3";
|
||||
};
|
||||
blue_led: led_4 {
|
||||
gpios = <&gpiob 4 GPIO_ACTIVE_HIGH>;
|
||||
label = "LED4";
|
||||
};
|
||||
};
|
||||
|
||||
gpio_keys {
|
||||
compatible = "gpio-keys";
|
||||
user_button: button {
|
||||
gpios = <&gpiob 3 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>;
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
label = "USR";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&clk_hse {
|
||||
clock-frequency = <DT_FREQ_M(25)>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&clk_lse {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pll {
|
||||
div-m = <5>;
|
||||
mul-n = <192>;
|
||||
div-p = <2>;
|
||||
div-q = <4>;
|
||||
div-r = <4>;
|
||||
clocks = <&clk_hse>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&rcc {
|
||||
clocks = <&pll>;
|
||||
clock-frequency = <DT_FREQ_M(480)>;
|
||||
d1cpre = <1>;
|
||||
hpre = <2>;
|
||||
d1ppre = <2>;
|
||||
d2ppre1 = <2>;
|
||||
d2ppre2 = <2>;
|
||||
d3ppre = <2>;
|
||||
};
|
||||
|
||||
&usart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>;
|
||||
current-speed = <115200>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&sdmmc1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&sdmmc1_d0_pc8 &sdmmc1_d1_pc9
|
||||
&sdmmc1_d2_pc10 &sdmmc1_d3_pc11
|
||||
&sdmmc1_ck_pc12 &sdmmc1_cmd_pd2>;
|
||||
cd-gpios = <&gpioa 8 GPIO_ACTIVE_LOW>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&quadspi {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&quadspi_clk_pb2 &quadspi_bk1_ncs_pb10
|
||||
&quadspi_bk1_io0_pd11 &quadspi_bk1_io1_pd12
|
||||
&quadspi_bk1_io2_pe2 &quadspi_bk1_io3_pd13>;
|
||||
status = "okay";
|
||||
|
||||
w25q128jv: qspi-nor-flash@90000000 {
|
||||
compatible = "st,stm32-qspi-nor";
|
||||
reg = <0x90000000 DT_SIZE_M(16)>;
|
||||
qspi-max-frequency = <80000000>;
|
||||
spi-bus-width = <4>;
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
storage_partition: partition@0 {
|
||||
label = "storage";
|
||||
reg = <0x0 DT_SIZE_M(16)>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
15
boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb.yaml
Normal file
15
boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb.yaml
Normal file
|
@ -0,0 +1,15 @@
|
|||
identifier: yd_stm32h750vb
|
||||
name: YD-STM32H750VB
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
ram: 1024
|
||||
flash: 128
|
||||
supported:
|
||||
- gpio
|
||||
- uart
|
||||
- qspi
|
||||
vendor: vcc-gnd
|
26
boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb_defconfig
Normal file
26
boards/vcc-gnd/yd_stm32h750vb/yd_stm32h750vb_defconfig
Normal file
|
@ -0,0 +1,26 @@
|
|||
# Copyright(c) 2024 John Sanpe <sanpeqf@gmail.com>
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Enable the internal SMPS regulator
|
||||
CONFIG_POWER_SUPPLY_LDO=y
|
||||
|
||||
# Enable MPU
|
||||
CONFIG_ARM_MPU=y
|
||||
|
||||
# Enable HW stack protection
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
CONFIG_SERIAL=y
|
||||
|
||||
# console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
# enable GPIO
|
||||
CONFIG_GPIO=y
|
||||
|
||||
# Enable Clocks
|
||||
CONFIG_CLOCK_CONTROL=y
|
||||
|
||||
# enable pin controller
|
||||
CONFIG_PINCTRL=y
|
Loading…
Add table
Add a link
Reference in a new issue