1.. zephyr:board:: nucleo_f303re
2
3Overview
4********
5
6The Nucleo F303RE board features an ARM Cortex-M4 based STM32F303RE
7mixed-signal MCU with FPU and DSP instructions capable of running at 72 MHz.
8Here are some highlights of the Nucleo F303RE board:
9
10- STM32 microcontroller in LQFP64 package
11- LSE crystal: 32.768 kHz crystal oscillator
12- Two types of extension resources:
13
14  - Arduino* Uno V3 connectors
15  - ST morpho extension pin headers for full access to all STM32 I/Os
16
17- On-board ST-LINK/V2-1 debugger/programmer with SWD connector
18- Flexible board power supply:
19
20  - 5 V from ST-LINK/V2-1 USB VBUS
21  - External power sources: 3.3 V and 7 - 12 V on ST Zio or ST morpho
22    connectors, 5 V on ST morpho connector
23
24- One user LED
25- Two push-buttons: USER and RESET
26
27More information about the board can be found at the `Nucleo F303RE website`_,
28and in the `STM32 Nucleo-64 board User Manual`_.
29
30Hardware
31********
32
33The Nucleo F303RE provides the following hardware components:
34
35- STM32F303RET6 in QFP64 package
36- ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU
37- 72 MHz max CPU frequency
38- VDD from 2.0 V to 3.6 V
39- 512 KB Flash
40- 64 + 16 KB SRAM
41- RTC
42- Advanced-control Timer
43- General Purpose Timers (4)
44- Basic Timer
45- Watchdog Timers (2)
46- PWM channels (18)
47- SPI/I2S (2)
48- I2C (3)
49- USART/UART (3/3)
50- USB 2.0 FS with on-chip PHY
51- CAN (2)
52- GPIO with external interrupt capability
53- DMA channels (12)
54- Capacitive sensing channels (18)
55- 12-bit ADC with 40 channels (4)
56- 12-bit D/A converter with two channels
57- Analog comparator (7)
58- Op amp (4)
59- Capacitive sensing 24 channels
60
61
62More information about the STM32F303RE can be found here:
63
64- `STM32F303RE on www.st.com`_
65- `STM32F303RE reference manual`_
66- `STM32F303RE datasheet`_
67
68Supported Features
69==================
70
71The Zephyr nucleo_f303re board configuration supports the following hardware
72features:
73
74+-----------+------------+-------------------------------------+
75| Interface | Controller | Driver/Component                    |
76+===========+============+=====================================+
77| NVIC      | on-chip    | nested vector interrupt controller  |
78+-----------+------------+-------------------------------------+
79| UART      | on-chip    | serial port-polling;                |
80|           |            | serial port-interrupt               |
81+-----------+------------+-------------------------------------+
82| PINMUX    | on-chip    | pinmux                              |
83+-----------+------------+-------------------------------------+
84| GPIO      | on-chip    | gpio                                |
85+-----------+------------+-------------------------------------+
86| RTC       | on-chip    | rtc                                 |
87+-----------+------------+-------------------------------------+
88| I2C       | on-chip    | i2c                                 |
89+-----------+------------+-------------------------------------+
90| SPI       | on-chip    | spi                                 |
91+-----------+------------+-------------------------------------+
92
93Other hardware features are not yet supported on this Zephyr port.
94
95The default configuration can be found in
96:zephyr_file:`boards/st/nucleo_f303re/nucleo_f303re_defconfig`
97
98Connections and IOs
99===================
100
101The Nucleo F303RE Board has 5 GPIO controllers. These controllers are
102responsible for pin muxing, input/output, pull-up, etc.
103
104Board connectors:
105-----------------
106.. image:: img/nucleo_connectors.jpg
107   :align: center
108   :alt: Nucleo F303RE connectors
109
110Default Zephyr Peripheral Mapping:
111----------------------------------
112
113The Nucleo F303RE board features an Arduino Uno V3 connector and a ST
114morpho connector. Board is configured as follows:
115
116- UART_2 TX/RX : PA2/PA3 (ST-Link Virtual Port Com)
117- USER_PB   : PC13
118- LD2       : PA5
119
120System Clock
121------------
122
123The Nucleo F303RE System Clock can be driven by an internal or
124external oscillator, as well as by the main PLL clock. By default the
125System Clock is driven by the PLL clock at 72 MHz. The input to the
126PLL is an 8 MHz external clock supplied by the processor of the
127on-board ST-LINK/V2-1 debugger/programmer.
128
129Serial Port
130-----------
131
132The Nucleo F303RE board has 2 UARTs. The Zephyr console output is assigned
133to UART2.  Default settings are 115200 8N1.
134
135Programming and Debugging
136*************************
137
138The Nucleo F303RE board includes an ST-LINK/V2-1 embedded debug tool interface.
139
140Flashing
141========
142
143The board is configured to be flashed using west `STM32CubeProgrammer`_ runner,
144so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required.
145
146Alternatively, OpenOCD or JLink can also be used to flash the board using
147the ``--runner`` (or ``-r``) option:
148
149.. code-block:: console
150
151   $ west flash --runner openocd
152   $ west flash --runner jlink
153
154
155.. _Nucleo F303RE website:
156   https://www.st.com/en/evaluation-tools/nucleo-f303re.html
157
158.. _STM32 Nucleo-64 board User Manual:
159   https://www.st.com/resource/en/user_manual/dm00105823.pdf
160
161.. _STM32F303RE on www.st.com:
162   https://www.st.com/en/microcontrollers/stm32f303re.html
163
164.. _STM32F303RE reference manual:
165   https://www.st.com/resource/en/reference_manual/dm00043574.pdf
166
167.. _STM32F303RE datasheet:
168   https://www.st.com/resource/en/datasheet/stm32f303re.pdf
169
170.. _STM32CubeProgrammer:
171   https://www.st.com/en/development-tools/stm32cubeprog.html
172