1.. zephyr:board:: nucleo_f410rb 2 3Overview 4******** 5 6The Nucleo F410RB board features an ARM Cortex-M4 based STM32F410RB MCU 7with a wide range of connectivity support and configurations. Here are 8some highlights of the Nucleo F410RB board: 9 10- STM32 microcontroller in QFP64 package 11- Two types of extension resources: 12 13 - Arduino Uno V3 connectivity 14 - ST morpho extension pin headers for full access to all STM32 I/Os 15 16- On-board ST-LINK/V2-1 debugger/programmer with SWD connector 17- Flexible board power supply: 18 19 - USB VBUS or external source(3.3V, 5V, 7 - 12V) 20 - Power management access point 21 22- Three LEDs: USB communication (LD1), user LED (LD2), power LED (LD3) 23- Two push-buttons: USER and RESET 24 25More information about the board can be found at the `Nucleo F410RB website`_. 26 27Hardware 28******** 29 30Nucleo F410RB provides the following hardware components: 31 32- STM32F410RBT6 in LQFP64 package 33- ARM |reg| 32-bit Cortex |reg|-M4 CPU with FPU 34- Adaptive real-time accelerator (ART Accelerator) 35- 100 MHz max CPU frequency 36- VDD from 1.7 V to 3.6 V 37- 128 KB Flash 38- 32 KB SRAM 39- General purpose timer (4) 40- Low-power timer (1) 41- Advanced-control timer (1) 42- Random number generator (TRNG for HW entropy) 43- SPI/I2S (3) 44- I2C (3) 45- USART (3) 46- GPIO (50) with external interrupt capability 47- 12-bit ADC with 16 channels 48- 12-bit DAC with 1 channel 49- RTC 50 51 52More information about STM32F410RB can be found here: 53 54- `STM32F410RB on www.st.com`_ 55- `STM32F410 reference manual`_ 56 57Supported Features 58================== 59 60The Zephyr nucleo_f410rb board configuration supports the following hardware features: 61 62+-----------+------------+-------------------------------------+ 63| Interface | Controller | Driver/Component | 64+===========+============+=====================================+ 65| NVIC | on-chip | nested vector interrupt controller | 66+-----------+------------+-------------------------------------+ 67| UART | on-chip | serial port | 68+-----------+------------+-------------------------------------+ 69| PINMUX | on-chip | pinmux | 70+-----------+------------+-------------------------------------+ 71| GPIO | on-chip | gpio | 72+-----------+------------+-------------------------------------+ 73| PWM | on-chip | pwm | 74+-----------+------------+-------------------------------------+ 75| I2C | on-chip | i2c | 76+-----------+------------+-------------------------------------+ 77| I2S | on-chip | i2s | 78+-----------+------------+-------------------------------------+ 79| SPI | on-chip | spi | 80+-----------+------------+-------------------------------------+ 81| ADC | on-chip | ADC Controller | 82+-----------+------------+-------------------------------------+ 83| DAC | on-chip | DAC Controller | 84+-----------+------------+-------------------------------------+ 85| WATCHDOG | on-chip | window & independent | 86+-----------+------------+-------------------------------------+ 87 88 89Other hardware features are not yet supported on this Zephyr port. 90 91The default configuration can be found in 92:zephyr_file:`boards/st/nucleo_f410rb/nucleo_f410rb_defconfig` 93 94 95Connections and IOs 96=================== 97 98Nucleo F410RB Board has 8 GPIO controllers. These controllers are responsible for pin muxing, 99input/output, pull-up, etc. 100 101Available pins: 102--------------- 103.. image:: img/nucleo_f410rb_arduino_top_left.jpg 104 :align: center 105 :alt: Nucleo F410RB Arduino connectors (top left) 106.. image:: img/nucleo_f410rb_arduino_top_right.jpg 107 :align: center 108 :alt: Nucleo F410RB Arduino connectors (top right) 109.. image:: img/nucleo_f410rb_morpho_top_left.jpg 110 :align: center 111 :alt: Nucleo F410RB Morpho connectors (top left) 112.. image:: img/nucleo_f410rb_morpho_top_right.jpg 113 :align: center 114 :alt: Nucleo F410RB Morpho connectors (top right) 115 116For more details please refer to `STM32 Nucleo-64 board User Manual`_. 117 118Default Zephyr Peripheral Mapping: 119---------------------------------- 120 121- UART_1_TX : PB6 122- UART_1_RX : PB7 123- UART_2_TX : PA2 124- UART_2_RX : PA3 125- USER_PB : PC13 126- LD2 : PA5 127- I2C1_SDA : PB9 128- I2C1_SCL : PB8 129- I2C2_SDA : PB3 130- I2C2_SCL : PB10 131 132System Clock 133------------ 134 135Nucleo F410RB System Clock could be driven by an internal or external oscillator, 136as well as the main PLL clock. By default, the System clock is driven by the PLL clock at 84MHz, 137driven by an 8MHz high-speed external clock. 138 139Serial Port 140----------- 141 142Nucleo F410RB board has 3 USARTs. The Zephyr console output is assigned to UART2. 143Default settings are 115200 8N1. 144 145 146Programming and Debugging 147************************* 148 149Nucleo F410RB board includes an ST-LINK/V2-1 embedded debug tool interface. 150 151Applications for the ``nucleo_f410rb`` board configuration can be built and 152flashed in the usual way (see :ref:`build_an_application` and 153:ref:`application_run` for more details). 154 155Flashing 156======== 157 158The board is configured to be flashed using west `STM32CubeProgrammer`_ runner, 159so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required. 160 161Alternatively, OpenOCD or JLink can also be used to flash the board using 162the ``--runner`` (or ``-r``) option: 163 164.. code-block:: console 165 166 $ west flash --runner openocd 167 $ west flash --runner jlink 168 169Flashing an application to Nucleo F410RB 170---------------------------------------- 171 172Here is an example for the :zephyr:code-sample:`hello_world` application. 173 174Run a serial host program to connect with your Nucleo board. 175 176.. code-block:: console 177 178 $ minicom -b 115200 -D /dev/ttyACM0 179 180Build and flash the application: 181 182.. zephyr-app-commands:: 183 :zephyr-app: samples/hello_world 184 :board: nucleo_f410rb 185 :goals: build flash 186 187You should see the following message on the console: 188 189.. code-block:: console 190 191 $ Hello World! arm 192 193Debugging 194========= 195 196You can debug an application in the usual way. Here is an example for the 197:zephyr:code-sample:`hello_world` application. 198 199.. zephyr-app-commands:: 200 :zephyr-app: samples/hello_world 201 :board: nucleo_f410rb 202 :maybe-skip-config: 203 :goals: debug 204 205.. _Nucleo F410RB website: 206 https://www.st.com/en/evaluation-tools/nucleo-F410RB.html 207 208.. _STM32 Nucleo-64 board User Manual: 209 https://www.st.com/resource/en/user_manual/dm00105823.pdf 210 211.. _STM32F410RB on www.st.com: 212 https://www.st.com/en/microcontrollers/stm32f410rb.html 213 214.. _STM32F410 reference manual: 215 https://www.st.com/resource/en/reference_manual/dm00180366.pdf 216 217.. _STM32CubeProgrammer: 218 https://www.st.com/en/development-tools/stm32cubeprog.html 219