1.. zephyr:board:: nucleo_l433rc_p
2
3Overview
4********
5
6The Nucleo L433RC board features an ARM Cortex-M4 based STM32L433RC MCU
7with a wide range of connectivity support and configurations. Here are
8some highlights of the Nucleo L433RC board:
9
10- STM32 microcontroller in LQFP64 package
11- Arduino Uno V3 connectivity
12- On-board ST-LINK/V2-1 debugger/programmer with SWD connector
13- Flexible board power supply:
14
15  - USB VBUS or external source(3.3V, 5V, 7 - 12V)
16  - Power management access point
17
18- Three LEDs: USB communication (LD1), power LED (LD3), user LED (LD4)
19- One push-button: RESET
20
21More information about the board can be found at the `Nucleo L433RC-P website`_.
22
23Hardware
24********
25
26The STM32L433RC SoC provides the following hardware IPs:
27
28- Ultra-low-power with FlexPowerControl (down to 28 nA Standby mode and 84
29  |micro| A/MHz run mode)
30- Core: ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU, frequency up to 80 MHz,
31  100DMIPS/1.25DMIPS/MHz (Dhrystone 2.1)
32- Clock Sources:
33
34  - 32 kHz crystal oscillator for RTC (LSE)
35  - Internal 16 MHz factory-trimmed RC ( |plusminus| 1%)
36  - Internal low-power 32 kHz RC ( |plusminus| 5%)
37  - Internal multispeed 100 kHz to 48 MHz oscillator, auto-trimmed by
38    LSE (better than |plusminus| 0.25 % accuracy)
39  - 2 PLLs for system clock, USB, audio, ADC
40
41- RTC with HW calendar, alarms and calibration
42- Up to 21 capacitive sensing channels: support touchkey, linear and rotary touch sensors
43- 11x timers:
44
45  - 1x 16-bit advanced motor-control
46  - 1x 32-bit and 2x 16-bit general purpose
47  - 2x 16-bit basic
48  - 2x low-power 16-bit timers (available in Stop mode)
49  - 2x watchdogs
50  - SysTick timer
51
52- Up to 83 fast I/Os, most 5 V-tolerant
53- Memories
54
55  - Up to 256 KB single bank Flash, proprietary code readout protection
56  - 64 KB of SRAM including 16 KB with hardware parity check
57  - Quad SPI memory interface
58
59- Rich analog peripherals (independent supply)
60
61  - 1x 12-bit ADC 5 MSPS, up to 16-bit with hardware oversampling, 200
62    |micro| A/MSPS
63  - 2x 12-bit DAC output channels, low-power sample and hold
64  - 1x operational amplifiers with built-in PGA
65  - 2x ultra-low-power comparators
66
67- 17x communication interfaces
68
69  - USB 2.0 full-speed crystal less solution with LPM and BCD
70  - 1x SAI (serial audio interface)
71  - 3x I2C FM+(1 Mbit/s), SMBus/PMBus
72  - 4x USARTs (ISO 7816, LIN, IrDA, modem)
73  - 1x LPUART (Stop 2 wake-up)
74  - 3x SPIs (and 1x Quad SPI)
75  - CAN (2.0B Active) and SDMMC interface
76  - SWPMI single wire protocol master I/F
77  - IRTIM (Infrared interface)
78
79- 14-channel DMA controller
80- True random number generator
81- CRC calculation unit, 96-bit unique ID
82- Development support: serial wire debug (SWD), JTAG, Embedded Trace Macrocell*
83
84
85More information about STM32L433RC can be found here:
86
87- `STM32L433RC on www.st.com`_
88- `STM32L432 reference manual`_
89
90Supported Features
91==================
92
93The Zephyr nucleo_l433rc_p board configuration supports the following hardware features:
94
95+-----------+------------+-------------------------------------+
96| Interface | Controller | Driver/Component                    |
97+===========+============+=====================================+
98| NVIC      | on-chip    | nested vector interrupt controller  |
99+-----------+------------+-------------------------------------+
100| UART      | on-chip    | serial port-polling;                |
101|           |            | serial port-interrupt               |
102+-----------+------------+-------------------------------------+
103| PINMUX    | on-chip    | pinmux                              |
104+-----------+------------+-------------------------------------+
105| GPIO      | on-chip    | gpio                                |
106+-----------+------------+-------------------------------------+
107| I2C       | on-chip    | i2c                                 |
108+-----------+------------+-------------------------------------+
109| PWM       | on-chip    | pwm                                 |
110+-----------+------------+-------------------------------------+
111| CAN       | on-chip    | can                                 |
112+-----------+------------+-------------------------------------+
113| SPI       | on-chip    | spi                                 |
114+-----------+------------+-------------------------------------+
115
116.. note:: CAN feature requires CAN transceiver
117
118Other hardware features are not yet supported on this Zephyr port.
119
120The default configuration can be found in the defconfig file:
121:zephyr_file:`boards/st/nucleo_l433rc_p/nucleo_l433rc_p_defconfig`
122
123
124Connections and IOs
125===================
126
127Nucleo L433RC-P Board has 6 GPIO controllers. These controllers are responsible for pin muxing,
128input/output, pull-up, etc.
129
130Available pins:
131---------------
132.. image:: img/nucleo_l433rc_p_pinout.jpg
133   :align: center
134   :alt: Nucleo L433RC-P
135
136For more details please refer to `ST Nucleo L433RC-P User Manual`_.
137
138Default Zephyr Peripheral Mapping:
139----------------------------------
140
141- LPUART_1_TX : PA2
142- LPUART_1_RX : PA3
143- UART_1_TX : PA9
144- UART_1_RX : PA10
145- I2C_1_SCL : PB6
146- I2C_1_SDA : PB7
147- PWM_2_CH1 : PA0
148- LD4 : PB13
149- SPI_1: NSS/SCK/MISO/MOSI : PA4/PA5/PA6/PA7
150- SPI_2: NSS/SCK/MISO/MOSI : PA11/PB13/PB14/PB15 (Arduino SPI)
151
152System Clock
153------------
154
155Nucleo L433RC-P System Clock could be driven by internal or external oscillator,
156as well as main PLL clock. By default System clock is driven by PLL clock at 80MHz,
157driven by 16MHz high speed internal oscillator.
158
159Serial Port
160-----------
161
162Nucleo L433RC-P board has 4 U(S)ARTs and 1 LPUART. The Zephyr console output is assigned
163to LPUART1. Default settings are 115200 8N1.
164
165
166Programming and Debugging
167*************************
168
169Nucleo L433RC-P board includes an ST-LINK/V2-1 embedded debug tool interface.
170
171Applications for the ``nucleo_l433rc_p`` board configuration can be built and
172flashed in the usual way (see :ref:`build_an_application` and
173:ref:`application_run` for more details).
174
175Flashing
176========
177
178The board is configured to be flashed using west `STM32CubeProgrammer`_ runner,
179so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required.
180
181Alternatively, OpenOCD or JLink can also be used to flash the board using
182the ``--runner`` (or ``-r``) option:
183
184.. code-block:: console
185
186   $ west flash --runner openocd
187   $ west flash --runner jlink
188
189Flashing an application to Nucleo L433RC-P
190------------------------------------------
191
192Connect the Nucleo L433RC-P to your host computer using the USB port,
193then run a serial host program to connect with your Nucleo board.
194
195.. code-block:: console
196
197   $ picocom /dev/ttyACM0 -b 115200
198
199Now build and flash an application. Here is an example for
200:zephyr:code-sample:`hello_world`.
201
202.. zephyr-app-commands::
203   :zephyr-app: samples/hello_world
204   :board: nucleo_l433rc_p
205   :goals: build flash
206
207You should see the following message on the console:
208
209.. code-block:: console
210
211   $ Hello World! nucleo_l433rc_p
212
213
214Debugging
215=========
216
217You can debug an application in the usual way.  Here is an example for the
218:zephyr:code-sample:`hello_world` application.
219
220.. zephyr-app-commands::
221   :zephyr-app: samples/hello_world
222   :board: nucleo_l433rc_p
223   :maybe-skip-config:
224   :goals: debug
225
226.. _Nucleo L433RC-P website:
227   https://www.st.com/en/evaluation-tools/nucleo-l433rc-p.html
228
229.. _ST Nucleo L433RC-P User Manual:
230   https://www.st.com/resource/en/user_manual/dm00387966.pdf
231
232.. _STM32L433RC on www.st.com:
233   https://www.st.com/en/microcontrollers-microprocessors/stm32l433rc.html
234
235.. _STM32L432 reference manual:
236   https://www.st.com/resource/en/reference_manual/dm00151940.pdf
237
238.. _STM32CubeProgrammer:
239   https://www.st.com/en/development-tools/stm32cubeprog.html
240