1.. zephyr:board:: nucleo_u083rc
2
3Overview
4********
5
6The Nucleo U083RC board, featuring an ARM Cortex-M0+ based STM32U083RC MCU,
7provides an affordable and flexible way for users to try out new concepts and
8build prototypes by choosing from the various combinations of performance and
9power consumption features. Here are some highlights of the Nucleo U083RC
10board:
11
12
13- STM32U083RC microcontroller in LQFP64 package
14- Two types of extension resources:
15
16  - Arduino Uno V3 connectivity
17  - ST morpho extension pin headers for full access to all STM32U0 I/Os
18
19- On-board STLINK-V2EC debugger/programmer with USB re-enumeration
20  capability: mass storage, Virtual COM port, and debug port
21- Flexible board power supply:
22
23  - USB VBUS or external source(3.3V, 5V, 7 - 12V)
24
25- User LED shared with ARDUINO |reg| Uno V3
26- Two push-buttons: USER and RESET
27- USB Type-C |reg| connector for the ST-LINK
28
29More information about the board can be found at the `NUCLEO_U083RC website`_.
30
31Hardware
32********
33
34The STM32U083xC devices are an ultra-low-power microcontrollers family (STM32U0
35Series) based on the high-performance Arm |reg| Cortex |reg|-M0+ 32-bit RISC core.
36They operate at a frequency of up to 56 MHz.
37
38- Includes ST state-of-the-art patented technology
39- Ultra-low-power with FlexPowerControl:
40
41  - 1.71 V to 3.6 V power supply
42  - -40 °C to +85/125 °C temperature range
43  - 130 nA VBAT mode: supply for RTC, 9 x 32-bit backup registers
44  - 16 nA Shutdown mode (6 wake-up pins)
45  - 30 nA Standby mode (6 wake-up pins) without RTC
46  - 160 nA Standby mode with RTC
47  - 825 nA Stop 2 mode with RTC
48  - 695 nA Stop 2 mode without RTC
49  - 4 µA wake-up from Stop mode
50  - 52 µA/MHz Run mode
51  - Brownout reset
52  - SPI (3)
53  - DMA Controller (2)
54
55- Core:
56
57  - 32-bit Arm |reg| Cortex |reg|-M0+ CPU, frequency up to 56 MHz
58
59- ART Accelerator:
60
61  - 1-Kbyte instruction cache allowing 0-wait-state execution from flash memory
62
63- Benchmarks:
64
65  - 1.13 DMIPS/MHz (Drystone 2.1)
66  - 134 CoreMark |reg| (2.4 CoreMark/MHz at 56 MHz)
67  - 407 ULPMark™-CP
68  - 143 ULPMark™-PP
69  - 19.7 ULPMark™-CM
70
71- Memories:
72
73  - 256-Kbyte single bank flash memory, proprietary code readout protection
74  - 40-Kbyte SRAM with hardware parity check
75
76- General-purpose input/outputs:
77
78  - Up to 69 fast I/Os, most of them 5 V‑tolerant
79
80- Clock management:
81
82  - 4 to 48 MHz crystal oscillator
83  - 32 kHz crystal oscillator for RTC (LSE)
84  - Internal 16 MHz factory-trimmed RC (±1%)
85  - Internal low-power 32 kHz RC (±5%)
86  - Internal multispeed 100 kHz to 48 MHz oscillator,
87    auto-trimmed by LSE (better than ±0.25 % accuracy)
88  - Internal 48 MHz with clock recovery
89  - PLL for system clock, USB, ADC
90
91- Security:
92
93  - Customer code protection
94  - Robust read out protection (RDP): 3 protection level states
95    and password-based regression (128-bit PSWD)
96  - Hardware protection feature (HDP)
97  - Secure boot
98  - AES: 128/256-bit key encryption hardware accelerator
99  - True random number generation, candidate for NIST SP 800-90B certification
100  - Candidate for Arm |reg| PSA level 1 and SESIP level 3 certifications
101  - 5 passive anti-tamper pins
102  - 96-bit unique ID
103  - True Random Number Generator (RNG) NIST SP800-90B compliant
104
105- Up to 10 timers, 2 watchdogs and RTC:
106
107  - 1x 16-bit advanced motor-control, 1x 32-bit and 3x 16-bit general purpose,
108    2x 16-bit basic, 3x low-power 16-bit timers (available in Stop mode),
109    2x watchdogs, SysTick timer
110  - RTC with hardware calendar, alarms and calibration
111
112- 3 low-power 16-bit timers (available in Stop mode).
113
114- Up to 20 communication peripherals:
115
116  - 1 USB 2.0 full-speed crystal-less solution with LPM and BCD
117  - 7 USARTs/LPUARTs (SPI, ISO 7816, LIN, IrDA, modem)
118  - 4 I2C interfaces supporting Fast-mode and Fast-mode Plus (up to 1 Mbit/s)
119  - 3 SPIs, plus 4x USARTs in SPI mode
120  - IRTIM (Infrared interface)
121
122- Rich analog peripherals (independent supply):
123
124  - 1x 12-bit ADC (0.4 µs conversion time), up to 16-bit with hardware oversampling
125  - 1x 12-bit DAC output channel, low-power sample and hold
126  - 1x general-purpose operational amplifier with built-in PGA (variable gain up to 16)
127  - 2x ultra-low-power comparators
128
129- ECOPACK2 compliant packages
130
131More information about STM32U083RC can be found here:
132
133- `STM32U083RC on www.st.com`_
134- `STM32U083 reference manual`_
135
136Supported Features
137==================
138
139The Zephyr nucleo_u083rc board configuration supports the following hardware features:
140
141+-----------+------------+-------------------------------------+
142| Interface | Controller | Driver/Component                    |
143+===========+============+=====================================+
144| CLOCK     | on-chip    | reset and clock control             |
145+-----------+------------+-------------------------------------+
146| GPIO      | on-chip    | gpio                                |
147+-----------+------------+-------------------------------------+
148| NVIC      | on-chip    | nested vector interrupt controller  |
149+-----------+------------+-------------------------------------+
150| UART      | on-chip    | serial port-polling;                |
151|           |            | serial port-interrupt               |
152+-----------+------------+-------------------------------------+
153| WATCHDOG  | on-chip    | independent watchdog                |
154+-----------+------------+-------------------------------------+
155| ADC       | on-chip    | adc                                 |
156+-----------+------------+-------------------------------------+
157| DAC       | on-chip    | DAC Controller                      |
158+-----------+------------+-------------------------------------+
159| I2C       | on-chip    | i2c                                 |
160+-----------+------------+-------------------------------------+
161| PWM       | on-chip    | pwm                                 |
162+-----------+------------+-------------------------------------+
163| RTC       | on-chip    | Real Time Clock                     |
164+-----------+------------+-------------------------------------+
165| SPI       | on-chip    | spi                                 |
166+-----------+------------+-------------------------------------+
167| USB       | on-chip    | USB full-speed host/device bus      |
168+-----------+------------+-------------------------------------+
169| DMA       | on-chip    | Direct Memory Access Controller     |
170+-----------+------------+-------------------------------------+
171| RNG       | on-chip    | True Random number generator        |
172+-----------+------------+-------------------------------------+
173| AES       | on-chip    | crypto                              |
174+-----------+------------+-------------------------------------+
175| LPTIM     | on-chip    | Low Power Timer                     |
176+-----------+------------+-------------------------------------+
177
178Other hardware features are not yet supported on this Zephyr port.
179
180The default configuration can be found in the defconfig file:
181:zephyr_file:`boards/st/nucleo_u083rc/nucleo_u083rc_defconfig`
182
183
184Connections and IOs
185===================
186
187Nucleo U083RC Board has 10 GPIO controllers. These controllers are responsible
188for pin muxing, input/output, pull-up, etc.
189
190For more details please refer to `STM32U083 User Manual`_.
191
192Default Zephyr Peripheral Mapping:
193----------------------------------
194
195- DAC1_OUT1 : PA4
196- I2C1_SCL : PB8
197- I2C1_SDA : PB9
198- LPUART_1_TX : PG7
199- LPUART_1_RX : PG8
200- SPI1_NSS : PA4
201- SPI1_SCK : PA5
202- SPI1_MISO : PA6
203- SPI1_MOSI : PA7
204- UART_2_TX : PA2
205- UART_2_RX : PA3
206- USER_PB : PC13
207
208System Clock
209------------
210
211Nucleo U083RC System Clock could be driven by internal or external oscillator,
212as well as main PLL clock. By default System clock is driven by PLL clock at
21348MHz, driven by 4MHz medium speed internal oscillator.
214
215Serial Port
216-----------
217
218Nucleo U083RC board has 7 U(S)ARTs. The Zephyr console output is assigned to
219USART2. Default settings are 115200 8N1.
220
221
222Programming and Debugging
223*************************
224
225Nucleo U083RC board includes an ST-LINK/V3 embedded debug tool interface.
226This probe allows to flash the board using various tools.
227
228Flashing
229========
230
231The board is configured to be flashed using west `STM32CubeProgrammer`_ runner,
232so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required.
233
234Alternatively, JLink or pyOCD can also be used to flash the board using
235the ``--runner`` (or ``-r``) option:
236
237.. code-block:: console
238
239   $ west flash --runner jlink
240   $ west flash --runner pyocd
241
242For pyOCD, additional target information needs to be installed.
243This can be done by executing the following commands.
244
245.. code-block:: console
246
247   $ pyocd pack --update
248   $ pyocd pack --install stm32u0
249
250
251Flashing an application to Nucleo U083RC
252------------------------------------------
253
254Connect the Nucleo U083RC to your host computer using the USB port.
255Then build and flash an application. Here is an example for the
256:zephyr:code-sample:`hello_world` application.
257
258Run a serial host program to connect with your Nucleo board:
259
260.. code-block:: console
261
262   $ minicom -D /dev/ttyACM0
263
264Then build and flash the application.
265
266.. zephyr-app-commands::
267   :zephyr-app: samples/hello_world
268   :board: nucleo_u083rc
269   :goals: build flash
270
271You should see the following message on the console:
272
273.. code-block:: console
274
275   Hello World! nucleo_u083rc/stm32u083xx
276
277Debugging
278=========
279
280Default flasher for this board is openocd. It could be used in the usual way.
281Here is an example for the :zephyr:code-sample:`blinky` application.
282
283.. zephyr-app-commands::
284   :zephyr-app: samples/basic/blinky
285   :board: nucleo_u083rc
286   :goals: debug
287
288Note: Check the ``build/tfm`` directory to ensure that the commands required by these scripts
289(``readlink``, etc.) are available on your system. Please also check ``STM32_Programmer_CLI``
290(which is used for initialization) is available in the PATH.
291
292.. _NUCLEO_U083RC website:
293   https://www.st.com/en/evaluation-tools/nucleo-u083rc.html
294
295.. _STM32U083 User Manual:
296   https://www.st.com/resource/en/user_manual/um3261-stm32u0-series-safety-manual-stmicroelectronics.pdf
297
298.. _STM32U083RC on www.st.com:
299   https://www.st.com/en/microcontrollers-microprocessors/stm32u083rc
300
301.. _STM32U083 reference manual:
302   https://www.st.com/resource/en/reference_manual/rm0503-stm32u0-series-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
303
304.. _STM32CubeProgrammer:
305   https://www.st.com/en/development-tools/stm32cubeprog.html
306