From 7fd3a785a3f550f1f49d11dd05c3705137b28682 Mon Sep 17 00:00:00 2001 From: Fabrice DJIATSA Date: Wed, 28 Aug 2024 15:36:48 +0200 Subject: [PATCH] boards: st: add nucleo_u031r8 board support add board support for nucleo_u031r8 Signed-off-by: Fabrice DJIATSA --- boards/st/nucleo_u031r8/Kconfig.nucleo_u031r8 | 5 + .../nucleo_u031r8/arduino_r3_connector.dtsi | 38 +++ boards/st/nucleo_u031r8/board.cmake | 9 + boards/st/nucleo_u031r8/board.yml | 5 + .../nucleo_u031r8/doc/img/nucleo_u031r8.jpg | Bin 0 -> 69013 bytes boards/st/nucleo_u031r8/doc/index.rst | 262 ++++++++++++++++++ boards/st/nucleo_u031r8/nucleo_u031r8.dts | 83 ++++++ boards/st/nucleo_u031r8/nucleo_u031r8.yaml | 12 + .../st/nucleo_u031r8/nucleo_u031r8_defconfig | 21 ++ 9 files changed, 435 insertions(+) create mode 100644 boards/st/nucleo_u031r8/Kconfig.nucleo_u031r8 create mode 100644 boards/st/nucleo_u031r8/arduino_r3_connector.dtsi create mode 100644 boards/st/nucleo_u031r8/board.cmake create mode 100644 boards/st/nucleo_u031r8/board.yml create mode 100644 boards/st/nucleo_u031r8/doc/img/nucleo_u031r8.jpg create mode 100644 boards/st/nucleo_u031r8/doc/index.rst create mode 100644 boards/st/nucleo_u031r8/nucleo_u031r8.dts create mode 100644 boards/st/nucleo_u031r8/nucleo_u031r8.yaml create mode 100644 boards/st/nucleo_u031r8/nucleo_u031r8_defconfig diff --git a/boards/st/nucleo_u031r8/Kconfig.nucleo_u031r8 b/boards/st/nucleo_u031r8/Kconfig.nucleo_u031r8 new file mode 100644 index 00000000000..799a9d6d9d4 --- /dev/null +++ b/boards/st/nucleo_u031r8/Kconfig.nucleo_u031r8 @@ -0,0 +1,5 @@ +# Copyright (c) 2024 STMicroelectronics +# SPDX-License-Identifier: Apache-2.0 + +config BOARD_NUCLEO_U031R8 + select SOC_STM32U031XX diff --git a/boards/st/nucleo_u031r8/arduino_r3_connector.dtsi b/boards/st/nucleo_u031r8/arduino_r3_connector.dtsi new file mode 100644 index 00000000000..9dbbb45ec52 --- /dev/null +++ b/boards/st/nucleo_u031r8/arduino_r3_connector.dtsi @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + arduino_header: connector { + compatible = "arduino-header-r3"; + #gpio-cells = <2>; + gpio-map-mask = <0xffffffff 0xffffffc0>; + gpio-map-pass-thru = <0 0x3f>; + gpio-map = <0 0 &gpioa 0 0>, /* A0 */ + <1 0 &gpioa 1 0>, /* A1 */ + <2 0 &gpioa 4 0>, /* A2 */ + <3 0 &gpiob 0 0>, /* A3 */ + <4 0 &gpioc 1 0>, /* A4 */ + <5 0 &gpioc 0 0>, /* A5 */ + <6 0 &gpioa 3 0>, /* D0 */ + <7 0 &gpioa 2 0>, /* D1 */ + <8 0 &gpioa 10 0>, /* D2 */ + <9 0 &gpiob 3 0>, /* D3 */ + <10 0 &gpiob 5 0>, /* D4 */ + <11 0 &gpiob 4 0>, /* D5 */ + <12 0 &gpiob 10 0>, /* D6 */ + <13 0 &gpioa 8 0>, /* D7 */ + <14 0 &gpioa 9 0>, /* D8 */ + <15 0 &gpioc 7 0>, /* D9 */ + <16 0 &gpiob 6 0>, /* D10 */ + <17 0 &gpioa 7 0>, /* D11 */ + <18 0 &gpioa 6 0>, /* D12 */ + <19 0 &gpioa 5 0>, /* D13 */ + <20 0 &gpiob 9 0>, /* D14 */ + <21 0 &gpiob 8 0>; /* D15 */ + }; +}; + +arduino_serial: &usart1 {}; diff --git a/boards/st/nucleo_u031r8/board.cmake b/boards/st/nucleo_u031r8/board.cmake new file mode 100644 index 00000000000..7028d124f20 --- /dev/null +++ b/boards/st/nucleo_u031r8/board.cmake @@ -0,0 +1,9 @@ +board_runner_args(stm32cubeprogrammer "--port=swd" "--reset-mode=hw") + +board_runner_args(pyocd "--target=stm32u031r8tx") + +board_runner_args(jlink "--device=STM32U031R8" "--reset-after-load") + +include(${ZEPHYR_BASE}/boards/common/stm32cubeprogrammer.board.cmake) +include(${ZEPHYR_BASE}/boards/common/pyocd.board.cmake) +include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) diff --git a/boards/st/nucleo_u031r8/board.yml b/boards/st/nucleo_u031r8/board.yml new file mode 100644 index 00000000000..afbb6b5b6b6 --- /dev/null +++ b/boards/st/nucleo_u031r8/board.yml @@ -0,0 +1,5 @@ +board: + name: nucleo_u031r8 + vendor: st + socs: + - name: stm32u031xx diff --git a/boards/st/nucleo_u031r8/doc/img/nucleo_u031r8.jpg b/boards/st/nucleo_u031r8/doc/img/nucleo_u031r8.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f57de5f8efd54319f28f6f09b1ac2b676ac66747 GIT binary patch literal 69013 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�bG)$(U+;E2#P%PD4eQNMFCX<|L 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 literal 0 HcmV?d00001 diff --git a/boards/st/nucleo_u031r8/doc/index.rst b/boards/st/nucleo_u031r8/doc/index.rst new file mode 100644 index 00000000000..fbf9338e421 --- /dev/null +++ b/boards/st/nucleo_u031r8/doc/index.rst @@ -0,0 +1,262 @@ +.. _nucleo_u031r8_board: + +ST Nucleo U031R8 +################ + +Overview +******** + +The Nucleo U031R8 board, featuring an ARM Cortex-M0+ based STM32U031R8 MCU, +provides an affordable and flexible way for users to try out new concepts and +build prototypes by choosing from the various combinations of performance and +power consumption features. Here are some highlights of the Nucleo U031R8 +board: + + +- STM32U031R8 microcontroller in LQFP48 package +- Two types of extension resources: + + - Arduino Uno V3 connectivity + - ST morpho extension pin headers for full access to all STM32U0 I/Os + +- On-board STLINK-V2EC debugger/programmer with USB re-enumeration + capability: mass storage, Virtual COM port, and debug port +- Flexible board power supply: + + - USB VBUS or external source(3.3V, 5V, 7 - 12V) + +- User LED shared with ARDUINO |reg| Uno V3 +- Two push-buttons: USER and RESET +- USB Type-C |reg| connector for the ST-LINK + +Hardware +******** + +The STM32U031x4/6/8 devices are an ultra-low-power microcontrollers family (STM32U0 +Series) based on the high-performance Arm |reg| Cortex |reg|-M0+ 32-bit RISC core. +They operate at a frequency of up to 56 MHz. + +- Includes ST state-of-the-art patented technology +- Ultra-low-power with FlexPowerControl: + + - 1.71 V to 3.6 V power supply + - -40 °C to +85/125 °C temperature range + - 130 nA VBAT mode: supply for RTC, 9 x 32-bit backup registers + - 16 nA Shutdown mode (4 wake-up pins) + - 30 nA Standby mode (6 wake-up pins) without RTC + - 160 nA Standby mode with RTC + - 630 nA Stop 2 mode with RTC + - 515 nA Stop 2 mode without RTC + - 4 µA wake-up from Stop mode + - 52 µA/MHz Run mode + - Brownout reset + +- Core: + + - 32-bit Arm |reg| Cortex |reg|-M0+ CPU, frequency up to 56 MHz + +- ART Accelerator: + + - 1-Kbyte instruction cache allowing 0-wait-state execution from flash memory + +- Benchmarks: + + - 1.13 DMIPS/MHz (Drystone 2.1) + - 134 CoreMark |reg| (2.4 CoreMark/MHz at 56 MHz) + - 430 ULPMark™-CP + - 167 ULPMark™-PP + - 20.3 ULPMark™-CM + +- Memories: + + - 64-Kbyte single bank flash memory, proprietary code readout protection + - 12-Kbyte SRAM with hardware parity check + +- General-purpose input/outputs: + + - Up to 53 fast I/Os, most of them 5 V‑tolerant + +- Clock management: + + - 4 to 48 MHz crystal oscillator + - 32 kHz crystal oscillator for RTC (LSE) + - Internal 16 MHz factory-trimmed RC (±1%) + - Internal low-power 32 kHz RC (±5%) + - Internal multispeed 100 kHz to 48 MHz oscillator, + auto-trimmed by LSE (better than ±0.25 % accuracy) + - PLL for system clock, ADC + +- Security: + + - Customer code protection + - Robust read out protection (RDP): 3 protection level states + and password-based regression (128-bit PSWD) + - Hardware protection feature (HDP) + - Secure boot + - True random number generation, candidate for NIST SP 800-90B certification + - Candidate for Arm |reg| PSA level 1 and SESIP level 3 certifications + - 5 passive anti-tamper pins + - 96-bit unique ID + +- Up to 9 timers, RTC, and 2 watchdogs : + + - 1x 16-bit advanced motor-control, 1x 32-bit and 3x 16-bit general purpose, + 2x 16-bit basic, 2x low-power 16-bit timers (available in Stop mode), + 2x watchdogs, SysTick timer + - RTC with hardware calendar, alarms and calibration + +- Up to 16 communication peripherals: + + - 6x USARTs/LPUARTs (SPI, ISO 7816, LIN, IrDA, modem) + - 3x I2C interfaces supporting Fast-mode and Fast-mode Plus (up to 1 Mbit/s) + - 2x SPIs, plus 4x USARTs in SPI mode + - IRTIM (Infrared interface) + +- Rich analog peripherals (independent supply): + + - 1x 12-bit ADC (0.4 µs conversion time), up to 16-bit with hardware oversampling + - 1x 12-bit DAC output channel, low-power sample and hold + - 1x general-purpose operational amplifier with built-in PGA (variable gain up to 16) + - 1x ultra-low-power comparator + +- ECOPACK2 compliant packages + +More information about STM32U031R8 can be found here: + +- `STM32U031R8 on www.st.com`_ +- `STM32U031R8 reference manual`_ + +Supported Features +================== + +The Zephyr _nucleo_u031r8_ board configuration supports the following hardware features: + ++-----------+------------+-------------------------------------+ +| Interface | Controller | Driver/Component | ++===========+============+=====================================+ +| CLOCK | on-chip | reset and clock control | ++-----------+------------+-------------------------------------+ +| GPIO | on-chip | gpio | ++-----------+------------+-------------------------------------+ +| NVIC | on-chip | nested vector interrupt controller | ++-----------+------------+-------------------------------------+ + + +Other hardware features are not yet supported on this Zephyr port. + +The default configuration can be found in the defconfig file: +:zephyr_file:`boards/st/nucleo_u031r8/nucleo_u031r8_defconfig` + + +Connections and IOs +=================== + +Nucleo U031R8 Board has 10 GPIO controllers. These controllers are responsible +for pin muxing, input/output, pull-up, etc. + +For more details please refer to `STM32U031 User Manual`_. + +Default Zephyr Peripheral Mapping: +---------------------------------- + +- LD1 : PA5 +- UART_1_TX : PA9 +- UART_1_RX : PA10 +- UART_2_TX : PA2 +- UART_2_RX : PA3 +- USER_PB : PC13 + +System Clock +------------ + +Nucleo U031R8 System Clock could be driven by internal or external oscillator, +as well as main PLL clock. By default System clock is driven by PLL clock at +48MHz, driven by 4MHz medium speed internal oscillator. + +Serial Port +----------- + +Nucleo U031R8 board has 4 U(S)ARTs. The Zephyr console output is assigned to +USART2. Default settings are 115200 8N1. + + +Programming and Debugging +************************* + +Nucleo U031R8 board includes an ST-LINK/V3 embedded debug tool interface. +This probe allows to flash the board using various tools. + +Flashing +======== + +Board is configured to be flashed using west STM32CubeProgrammer runner. +Installation of `STM32CubeProgrammer`_ is then required to flash the board. + +Alternatively, pyocd or jlink via an external probe can also be used to flash +and debug the board if west is told to use it as runner, which can be done by +passing either or ``-r pyocd``, or ``-r jlink``. + +For pyocd additional target information needs to be installed. +This can be done by executing the following commands. + +.. code-block:: console + + $ pyocd pack --update + $ pyocd pack --install stm32u0 + + +Flashing an application to Nucleo U031R8 +------------------------------------------ + +Connect the Nucleo U031R8 to your host computer using the USB port. +Then build and flash an application. Here is an example for the +:ref:`hello_world` application. + +Run a serial host program to connect with your Nucleo board: + +.. code-block:: console + + $ minicom -D /dev/ttyACM0 + +Then build and flash the application. + +.. zephyr-app-commands:: + :zephyr-app: samples/hello_world + :board: nucleo_u031r8 + :goals: build flash + +You should see the following message on the console: + +.. code-block:: console + + Hello World! nucleo_u031r8 + +Debugging +========= + +Default flasher for this board is openocd. It could be used in the usual way. +Here is an example for the :zephyr:code-sample:`blinky` application. + +.. zephyr-app-commands:: + :zephyr-app: samples/basic/blinky + :board: nucleo_u031r8 + :goals: debug + +Note: Check the ``build/tfm`` directory to ensure that the commands required by these scripts +(``readlink``, etc.) are available on your system. Please also check ``STM32_Programmer_CLI`` +(which is used for initialization) is available in the PATH. + +.. _NUCLEO_U031R8 website: + https://www.st.com/en/evaluation-tools/nucleo-u031r8.html + +.. _STM32U031 User Manual: + https://www.st.com/resource/en/user_manual/um3261-stm32u0-series-safety-manual-stmicroelectronics.pdf + +.. _STM32U031R8 on www.st.com: + https://www.st.com/en/microcontrollers-microprocessors/stm32u031r8 + +.. _STM32U031R8 reference manual: + https://www.st.com/resource/en/reference_manual/rm0503-stm32u0-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf + +.. _STM32CubeProgrammer: + https://www.st.com/en/development-tools/stm32cubeprog.html diff --git a/boards/st/nucleo_u031r8/nucleo_u031r8.dts b/boards/st/nucleo_u031r8/nucleo_u031r8.dts new file mode 100644 index 00000000000..9c75bc12c5c --- /dev/null +++ b/boards/st/nucleo_u031r8/nucleo_u031r8.dts @@ -0,0 +1,83 @@ +/* + * Copyright (c) 2024 STMicroelectronics + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/dts-v1/; +#include +#include +#include "arduino_r3_connector.dtsi" +#include + +/ { + model = "STMicroelectronics STM32U83RC-NUCLEO board"; + compatible = "st,stm32u031r8-nucleo"; + + #address-cells = <1>; + #size-cells = <1>; + + chosen { + zephyr,console = &usart2; + zephyr,shell-uart = &usart2; + zephyr,sram = &sram0; + zephyr,flash = &flash0; + }; + + leds: leds { + compatible = "gpio-leds"; + green_led_1: led_1 { + gpios = <&gpioa 5 GPIO_ACTIVE_HIGH>; + label = "User LD4"; + }; + }; + + gpio_keys { + compatible = "gpio-keys"; + user_button: button { + label = "User"; + gpios = <&gpioc 13 GPIO_ACTIVE_HIGH>; + zephyr,code = ; + }; + }; + + aliases { + led0 = &green_led_1; + sw0 = &user_button; + }; +}; + +&usart1 { + pinctrl-0 = <&usart1_tx_pa9 &usart1_rx_pa10>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&usart2 { + pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>; + pinctrl-names = "default"; + current-speed = <115200>; + status = "okay"; +}; + +&clk_hsi { + status = "okay"; +}; + +&pll { + div-m = <1>; + mul-n = <6>; + div-p = <2>; + div-q = <2>; + div-r = <2>; + clocks = <&clk_hsi>; + status = "okay"; +}; + +&rcc { + clocks = <&pll>; + clock-frequency = ; + ahb-prescaler = <1>; + apb1-prescaler = <1>; +}; diff --git a/boards/st/nucleo_u031r8/nucleo_u031r8.yaml b/boards/st/nucleo_u031r8/nucleo_u031r8.yaml new file mode 100644 index 00000000000..2d2f0e4290f --- /dev/null +++ b/boards/st/nucleo_u031r8/nucleo_u031r8.yaml @@ -0,0 +1,12 @@ +identifier: nucleo_u031r8 +name: ST Nucleo U031R8 +type: mcu +arch: arm +toolchain: + - zephyr +supported: + - arduino_gpio + - gpio + - usart +ram: 12 +flash: 64 diff --git a/boards/st/nucleo_u031r8/nucleo_u031r8_defconfig b/boards/st/nucleo_u031r8/nucleo_u031r8_defconfig new file mode 100644 index 00000000000..9d57c7df503 --- /dev/null +++ b/boards/st/nucleo_u031r8/nucleo_u031r8_defconfig @@ -0,0 +1,21 @@ +# SPDX-License-Identifier: Apache-2.0 + +# Enable MPU +CONFIG_ARM_MPU=y + +# Serial Drivers +CONFIG_SERIAL=y +CONFIG_UART_INTERRUPT_DRIVEN=y + +# enable console +CONFIG_CONSOLE=y +CONFIG_UART_CONSOLE=y + +# GPIO Controller +CONFIG_GPIO=y + +# Enable Clocks +CONFIG_CLOCK_CONTROL=y + +# enable pin controller +CONFIG_PINCTRL=y