.. _nucleo_f303re_board:

ST Nucleo F303RE
################

Overview
********

The Nucleo F303RE board features an ARM Cortex-M4 based STM32F303RE
mixed-signal MCU with FPU and DSP instructions capable of running at 72 MHz.
Here are some highlights of the Nucleo F303RE board:

- STM32 microcontroller in LQFP64 package
- LSE crystal: 32.768 kHz crystal oscillator
- Two types of extension resources:

  - Arduino* Uno V3 connectors
  - ST morpho extension pin headers for full access to all STM32 I/Os

- On-board ST-LINK/V2-1 debugger/programmer with SWD connector
- Flexible board power supply:

  - 5 V from ST-LINK/V2-1 USB VBUS
  - External power sources: 3.3 V and 7 - 12 V on ST Zio or ST morpho
    connectors, 5 V on ST morpho connector

- One user LED
- Two push-buttons: USER and RESET

.. image:: img/nucleo_f303re.jpg
   :width: 500px
   :height: 367px
   :align: center
   :alt: Nucleo F303RE

More information about the board can be found at the `Nucleo F303RE website`_,
and in the `STM32 Nucleo-64 board User Manual`_.

Hardware
********

The Nucleo F303RE provides the following hardware components:

- STM32F303RET6 in QFP64 package
- ARM |reg| 32-bit Cortex |reg| -M4 CPU with FPU
- 72 MHz max CPU frequency
- VDD from 2.0 V to 3.6 V
- 512 MB Flash
- 64 + 16 KB SRAM
- RTC
- Advanced-control Timer
- General Purpose Timers (4)
- Basic Timer
- Watchdog Timers (2)
- PWM channels (18)
- SPI/I2S (2)
- I2C (3)
- USART/UART (3/3)
- USB 2.0 FS with on-chip PHY
- CAN (2)
- GPIO with external interrupt capability
- DMA channels (12)
- Capacitive sensing channels (18)
- 12-bit ADC with 40 channels (4)
- 12-bit D/A converter with two channels
- Analog comparator (7)
- Op amp (4)
- Capacitive sensing 24 channels


More information about the STM32F303RE can be found here:

- `STM32F303RE on www.st.com`_
- `STM32F303RE reference manual`_
- `STM32F303RE datasheet`_

Supported Features
==================

The Zephyr nucleo_f302r8 board configuration supports the following hardware
features:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component                    |
+===========+============+=====================================+
| NVIC      | on-chip    | nested vector interrupt controller  |
+-----------+------------+-------------------------------------+
| UART      | on-chip    | serial port-polling;                |
|           |            | serial port-interrupt               |
+-----------+------------+-------------------------------------+
| PINMUX    | on-chip    | pinmux                              |
+-----------+------------+-------------------------------------+
| GPIO      | on-chip    | gpio                                |
+-----------+------------+-------------------------------------+
| RTC       | on-chip    | rtc                                 |
+-----------+------------+-------------------------------------+

Other hardware features are not yet supported on this Zephyr port.

The default configuration can be found in the defconfig file:
``boards/arm/nucleo_f303re/nucleo_f303re_defconfig``

Connections and IOs
===================

The Nucleo F303RE Board has 5 GPIO controllers. These controllers are
responsible for pin muxing, input/output, pull-up, etc.

Board connectors:
-----------------
.. image:: img/nucleo_connectors.png
   :width: 800px
   :align: center
   :height: 619px
   :alt: Nucleo F303RE connectors

Default Zephyr Peripheral Mapping:
----------------------------------

The Nucleo F303RE board features an Arduino Uno V3 connector and a ST
morpho connector. Board is configured as follows:

- UART_2 TX/RX : PA2/PA3 (ST-Link Virtual Port Com)
- USER_PB   : PC13
- LD2       : PA5

System Clock
------------

The Nucleo F303RE System Clock can be driven by an internal or
external oscillator, as well as by the main PLL clock. By default the
System Clock is driven by the PLL clock at 72 MHz. The input to the
PLL is an 8 MHz external clock supplied by the processor of the
on-board ST-LINK/V2-1 debugger/programmer.

Serial Port
-----------

The Nucleo F303RE board has 2 UARTs. The Zephyr console output is assigned
to UART2.  Default settings are 115200 8N1.

Programming and Debugging
*************************

The Nucleo F303RE board includes an ST-LINK/V2-1 embedded debug tool interface.
This interface is supported by the openocd version included in Zephyr SDK.


.. _Nucleo F303RE website:
   http://www.st.com/en/evaluation-tools/nucleo-f303re.html

.. _STM32 Nucleo-64 board User Manual:
   http://www.st.com/resource/en/user_manual/dm00105823.pdf

.. _STM32F303RE on www.st.com:
   http://www.st.com/en/microcontrollers/stm32f303re.html

.. _STM32F303RE reference manual:
   https://www.st.com/resource/en/reference_manual/dm00043574.pdf

.. _STM32F303RE datasheet:
   http://www.st.com/resource/en/datasheet/stm32f303re.pdf
