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