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