|
| 1 | +.. _nucleo_f446ze_board: |
| 2 | + |
| 3 | +ST Nucleo F446ZE |
| 4 | +################ |
| 5 | + |
| 6 | + |
| 7 | +Overview |
| 8 | +******** |
| 9 | + |
| 10 | +The Nucleo F446ZE board features an ARM Cortex-M4 based STM32F446ZE MCU |
| 11 | +with a wide range of connectivity support and configurations. Here are |
| 12 | +some highlights of the Nucleo F446ZE board: |
| 13 | + |
| 14 | +- STM32F446 microcontroller in QFP144 package |
| 15 | +- Two types of extension resources: |
| 16 | + |
| 17 | + - ST zio support for Arduino™ Uno V3 connectivity (A0 to A5, D0 to D15) and additional signals exposing a wide range of peripherals |
| 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 | +- USB re-enumeration capability. Three different interfaces supported on USB: |
| 22 | + - Virtual Com port |
| 23 | + - Mass storage (USB Disk drive) for drag'n'drop programming |
| 24 | + - Debug port |
| 25 | +- Flexible board power supply: |
| 26 | + - USB VBUS or external source(3.3V, 5V, 7 - 12V) |
| 27 | + - Power management access point |
| 28 | + - USB OTG |
| 29 | + |
| 30 | +- Three LEDs: USB communication (LD1), user LED (LD2), power LED (LD3) |
| 31 | +- Two push-buttons: USER and RESET |
| 32 | + |
| 33 | +.. image:: img/nucleo_f446ze.jpg |
| 34 | + :width: 720px |
| 35 | + :align: center |
| 36 | + :height: 720px |
| 37 | + :alt: Nucleo F446ZE |
| 38 | + |
| 39 | +More information about the board can be found at the `Nucleo F446ZE website`_. |
| 40 | + |
| 41 | +Hardware |
| 42 | +******** |
| 43 | + |
| 44 | +Nucleo F446ZE provides the following hardware components: |
| 45 | + |
| 46 | +- STM32F446ZET6 in LQFP144 package |
| 47 | +- ARM |reg| 32-bit Cortex |reg|-M4 CPU with FPU |
| 48 | +- Adaptive real-time accelerator (ART Accelerator) |
| 49 | +- 180 MHz max CPU frequency |
| 50 | +- VDD from 1.7 V to 3.6 V |
| 51 | +- 512 KB Flash |
| 52 | +- 128 KB SRAM |
| 53 | +- 10 General purpose timers |
| 54 | +- 2 Advanced control timers |
| 55 | +- 2 basic timers |
| 56 | +- SPI(4) |
| 57 | +- I2C(4) |
| 58 | +- USART(4) |
| 59 | +- UART(2) |
| 60 | +- USB OTG Full Speed and High Speed |
| 61 | +- CAN(2) |
| 62 | +- SAI(2) |
| 63 | +- SPDIF_Rx(1) |
| 64 | +- HDMI_CEC(1) |
| 65 | +- Quad SPI(1) |
| 66 | +- Camera Interface |
| 67 | +- GPIO(50) with external interrupt capability |
| 68 | +- 12-bit ADC(3) with 16 channels |
| 69 | +- 12-bit DAC with 2 channels |
| 70 | + |
| 71 | +More information about STM32F446ZE can be found here: |
| 72 | + |
| 73 | +- `STM32F446ZE on www.st.com`_ |
| 74 | +- `STM32F446 reference manual`_ |
| 75 | + |
| 76 | +Supported Features |
| 77 | +================== |
| 78 | + |
| 79 | +The Zephyr nucleo_f446ze board configuration supports the following hardware features: |
| 80 | + |
| 81 | ++-------------+------------+-------------------------------------+ |
| 82 | +| Interface | Controller | Driver/Component | |
| 83 | ++=============+============+=====================================+ |
| 84 | +| NVIC | on-chip | nested vector interrupt controller | |
| 85 | ++-------------+------------+-------------------------------------+ |
| 86 | +| UART | on-chip | serial port | |
| 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 | +| USB | on-chip | usb | |
| 97 | ++-------------+------------+-------------------------------------+ |
| 98 | +| Backup SRAM | on-chip | Backup SRAM | |
| 99 | ++-------------+------------+-------------------------------------+ |
| 100 | +| CAN 1/2 | on-chip | Controller Area Network | |
| 101 | ++-------------+------------+-------------------------------------+ |
| 102 | +| ADC | on-chip | Analog Input | |
| 103 | ++-------------+------------+-------------------------------------+ |
| 104 | +| DAC | on-chip | Analog Output | |
| 105 | ++-------------+------------+-------------------------------------+ |
| 106 | + |
| 107 | +Other hardware features are not yet supported on this Zephyr port. |
| 108 | + |
| 109 | +The default configuration can be found in the defconfig file: |
| 110 | +``boards/arm/nucleo_f446ze/nucleo_f446ze_defconfig`` |
| 111 | + |
| 112 | + |
| 113 | +Connections and IOs |
| 114 | +=================== |
| 115 | + |
| 116 | +Nucleo F446ZE Board has 8 GPIO controllers. These controllers are responsible for pin muxing, |
| 117 | +input/output, pull-up, etc. |
| 118 | + |
| 119 | +Available pins: |
| 120 | +--------------- |
| 121 | +.. image:: img/nucleo_f446ze_zio_left_2019_8_29.png |
| 122 | + :width: 720px |
| 123 | + :align: center |
| 124 | + :height: 540px |
| 125 | + :alt: Nucleo F446ZE Zio/Arduino connectors (left) |
| 126 | +.. image:: img/nucleo_f446ze_zio_right_2019_8_29.png |
| 127 | + :width: 720px |
| 128 | + :align: center |
| 129 | + :height: 540px |
| 130 | + :alt: Nucleo F446ZE Zio/Arduino connectors (right) |
| 131 | +.. image:: img/nucleo_f446ze_morpho_left_2019_8_29.png |
| 132 | + :width: 720px |
| 133 | + :align: center |
| 134 | + :height: 540px |
| 135 | + :alt: Nucleo F446ZE Morpho connectors (left) |
| 136 | +.. image:: img/nucleo_f446ze_morpho_right_2019_8_29.png |
| 137 | + :width: 720px |
| 138 | + :align: center |
| 139 | + :height: 540px |
| 140 | + :alt: Nucleo F446ZE Morpho connectors (right) |
| 141 | + |
| 142 | +For mode details please refer to `STM32 Nucleo-144 board User Manual`_. |
| 143 | + |
| 144 | +Default Zephyr Peripheral Mapping: |
| 145 | +---------------------------------- |
| 146 | + |
| 147 | +- UART_2_TX : PD5 |
| 148 | +- UART_2_RX : PD6 |
| 149 | +- UART_3_TX : PD8 |
| 150 | +- UART_3_RX : PD9 |
| 151 | +- USER_PB : PC13 |
| 152 | +- LD0 : PB0 |
| 153 | +- LD1 : PB7 |
| 154 | +- LD2 : PB14 |
| 155 | +- I2C1_SDA : PB9 |
| 156 | +- I2C1_SCL : PB8 |
| 157 | +- I2C2_SDA : PF0 |
| 158 | +- I2C2_SCL : PF1 |
| 159 | +- SPI1_CS : PD14 |
| 160 | +- SPI1_SCK : PA5 |
| 161 | +- SPI1_MISO : PA6 |
| 162 | +- SPI1_MOSI : PA7 |
| 163 | +- SPI2_NSS : PB12 |
| 164 | +- SPI2_SCK : PB13 |
| 165 | +- SPI2_MISO : PB14 |
| 166 | +- SPI2_MOSI : PB15 |
| 167 | +- CAN1_RX : PD0 |
| 168 | +- CAN1_TX : PD1 |
| 169 | +- USB_DP : PA11 |
| 170 | +- USB_DM : PA12 |
| 171 | +- ADC1_IN0 : PA0 |
| 172 | +- DAC_OUT1 : PA4 |
| 173 | + |
| 174 | + |
| 175 | +System Clock |
| 176 | +------------ |
| 177 | + |
| 178 | +Nucleo F446ZE System Clock could be driven by an internal or external oscillator, |
| 179 | +as well as the main PLL clock. By default, the System clock is driven by the PLL clock at 84MHz, |
| 180 | +driven by an 8MHz high-speed external clock. |
| 181 | + |
| 182 | +Serial Port |
| 183 | +----------- |
| 184 | + |
| 185 | +Nucleo F446ZE board has 2 UARTs and 4 USARTs. The Zephyr console output is assigned to USART3. |
| 186 | +Default settings are 115200 8N1. |
| 187 | + |
| 188 | +Backup SRAM |
| 189 | +----------- |
| 190 | + |
| 191 | +In order to test backup SRAM you may want to disconnect VBAT from VDD. You can |
| 192 | +do it by removing ``SB156`` jumper on the back side of the board. |
| 193 | + |
| 194 | +Controller Area Network |
| 195 | +----------------------- |
| 196 | + |
| 197 | +The TX/RX wires are connected with pins 25/27 of CN9 connector. |
| 198 | + |
| 199 | +Programming and Debugging |
| 200 | +************************* |
| 201 | + |
| 202 | +Applications for the ``nucleo_f446ze`` board configuration can be built and |
| 203 | +flashed in the usual way (see :ref:`build_an_application` and |
| 204 | +:ref:`application_run` for more details). |
| 205 | + |
| 206 | +Flashing |
| 207 | +======== |
| 208 | + |
| 209 | +Nucleo F446ZE board includes an ST-LINK/V2-1 embedded debug tool interface. |
| 210 | +This interface is supported by the openocd version included in the Zephyr SDK. |
| 211 | + |
| 212 | +Flashing an application to Nucleo F446ZE |
| 213 | +---------------------------------------- |
| 214 | + |
| 215 | +Here is an example for the :ref:`hello_world` application. |
| 216 | + |
| 217 | +Run a serial host program to connect with your Nucleo board. |
| 218 | + |
| 219 | +.. code-block:: console |
| 220 | +
|
| 221 | + $ minicom -b 115200 -D /dev/ttyACM0 |
| 222 | +
|
| 223 | +Build and flash the application: |
| 224 | + |
| 225 | +.. zephyr-app-commands:: |
| 226 | + :zephyr-app: samples/hello_world |
| 227 | + :board: nucleo_f446ze |
| 228 | + :goals: build flash |
| 229 | + |
| 230 | +You should see the following message on the console: |
| 231 | + |
| 232 | +.. code-block:: console |
| 233 | +
|
| 234 | + $ Hello World! arm |
| 235 | +
|
| 236 | +Debugging |
| 237 | +========= |
| 238 | + |
| 239 | +You can debug an application in the usual way. Here is an example for the |
| 240 | +:ref:`hello_world` application. |
| 241 | + |
| 242 | +.. zephyr-app-commands:: |
| 243 | + :zephyr-app: samples/hello_world |
| 244 | + :board: nucleo_f446ze |
| 245 | + :maybe-skip-config: |
| 246 | + :goals: debug |
| 247 | + |
| 248 | +.. _Nucleo F446ZE website: |
| 249 | + http://www.st.com/en/evaluation-tools/nucleo-f446ze.html |
| 250 | + |
| 251 | +.. _STM32 Nucleo-144 board User Manual: |
| 252 | + https://www.st.com/resource/en/user_manual/um1974-stm32-nucleo144-boards-mb1137-stmicroelectronics.pdf |
| 253 | + |
| 254 | +.. _STM32F446ZE on www.st.com: |
| 255 | + http://www.st.com/en/microcontrollers/stm32f446ze.html |
| 256 | + |
| 257 | +.. _STM32F446 reference manual: |
| 258 | + http://www.st.com/resource/en/reference_manual/dm00135183.pdf |
0 commit comments