1.. zephyr:board:: nucleo_f746zg 2 3Overview 4******** 5 6The STM32 Nucleo-144 boards offer combinations of performance and power that 7provide an affordable and flexible way for users to build prototypes and try 8out new concepts. For compatible boards, the SMPS significantly reduces power 9consumption in Run mode. 10 11The Arduino-compatible ST Zio connector expands functionality of the Nucleo 12open development platform, with a wide choice of specialized Arduino* Uno V3 13shields. 14 15The STM32 Nucleo-144 board does not require any separate probe as it integrates 16the ST-LINK/V2-1 debugger/programmer. 17 18The STM32 Nucleo-144 board comes with the STM32 comprehensive free software 19libraries and examples available with the STM32Cube MCU Package. 20 21Key Features 22 23- STM32 microcontroller in LQFP144 package 24- Ethernet compliant with IEEE-802.3-2002 (depending on STM32 support) 25- USB OTG or full-speed device (depending on STM32 support) 26- 3 user LEDs 27- 2 user and reset push-buttons 28- 32.768 kHz crystal oscillator 29- Board connectors: 30 31 - USB with Micro-AB 32 - SWD 33 - Ethernet RJ45 (depending on STM32 support) 34 - ST Zio connector including Arduino* Uno V3 35 - ST morpho 36 37- Flexible power-supply options: ST-LINK USB VBUS or external sources. 38- On-board ST-LINK/V2-1 debugger/programmer with USB re-enumeration 39- capability: mass storage, virtual COM port and debug port. 40- Comprehensive free software libraries and examples available with the 41 STM32Cube MCU package. 42- Arm* Mbed Enabled* compliant (only for some Nucleo part numbers) 43 44More information about the board can be found at the `Nucleo F746ZG website`_. 45 46Hardware 47******** 48 49Nucleo F746ZG provides the following hardware components: 50 51- STM32F746ZG in LQFP144 package 52- ARM 32-bit Cortex-M7 CPU with FPU 53- Chrom-ART Accelerator 54- ART Accelerator 55- 216 MHz max CPU frequency 56- VDD from 1.7 V to 3.6 V 57- 1 MB Flash 58- 320 KB SRAM 59- 16-bit timers(10) 60- 32-bit timers(2) 61- SPI(6) 62- I2C(4) 63- I2S (3) 64- USART(4) 65- UART(4) 66- USB OTG Full Speed and High Speed(1) 67- USB OTG Full Speed(1) 68- CAN(2) 69- SAI(2) 70- SPDIF_Rx(4) 71- HDMI_CEC(1) 72- Dual Mode Quad SPI(1) 73- Camera Interface 74- GPIO(up to 168) with external interrupt capability 75- 12-bit ADC(3) with 24 channels / 2.4 MSPS 76- 12-bit DAC with 2 channels(2) 77- True Random Number Generator (RNG) 78- 16-channel DMA 79- LCD-TFT Controller with XGA resolution 80 81Supported Features 82================== 83 84The Zephyr nucleo_f746zg board configuration supports the following hardware 85features: 86 87+-------------+------------+-------------------------------------+ 88| Interface | Controller | Driver/Component | 89+=============+============+=====================================+ 90| NVIC | on-chip | nested vector interrupt controller | 91+-------------+------------+-------------------------------------+ 92| UART | on-chip | serial port | 93+-------------+------------+-------------------------------------+ 94| PINMUX | on-chip | pinmux | 95+-------------+------------+-------------------------------------+ 96| GPIO | on-chip | gpio | 97+-------------+------------+-------------------------------------+ 98| ETHERNET | on-chip | ethernet | 99+-------------+------------+-------------------------------------+ 100| USB | on-chip | usb_device | 101+-------------+------------+-------------------------------------+ 102| COUNTER | on-chip | rtc | 103+-------------+------------+-------------------------------------+ 104| I2C | on-chip | i2c | 105+-------------+------------+-------------------------------------+ 106| PWM | on-chip | pwm | 107+-------------+------------+-------------------------------------+ 108| SPI | on-chip | spi | 109+-------------+------------+-------------------------------------+ 110| WATCHDOG | on-chip | independent watchdog | 111+-------------+------------+-------------------------------------+ 112| ADC | on-chip | ADC Controller | 113+-------------+------------+-------------------------------------+ 114| DAC | on-chip | DAC Controller | 115+-------------+------------+-------------------------------------+ 116| Backup SRAM | on-chip | Backup SRAM | 117+-------------+------------+-------------------------------------+ 118| RTC | on-chip | rtc | 119+-------------+------------+-------------------------------------+ 120 121Other hardware features are not yet supported on this Zephyr port. 122 123The default configuration can be found in 124:zephyr_file:`boards/st/nucleo_f746zg/nucleo_f746zg_defconfig` 125 126For more details please refer to `STM32 Nucleo-144 board User Manual`_. 127 128Default Zephyr Peripheral Mapping: 129---------------------------------- 130 131The Nucleo F746ZG board features a ST Zio connector (extended Arduino Uno V3) 132and a ST morpho connector. Board is configured as follows: 133 134- UART_2 TX/RX/RTS/CTS : PD5/PD6/PD4/PD3 135- UART_3 TX/RX : PD8/PD9 (ST-Link Virtual Port Com) 136- UART_6 TX/RX : PG14/PG9 (Arduino UART) 137- USER_PB : PC13 138- LD1 : PB0 139- LD2 : PB7 140- LD3 : PB14 141- ETH : PA1, PA2, PA7, PB13, PC1, PC4, PC5, PG11, PG13 142- USB DM : PA11 143- USB DP : PA12 144- I2C : PB8, PB9 145- PWM : PE13 146- SPI : PD14, PA5, PA6, PA7 147- ADC1_IN0 : PA0 148- DAC1_OUT1 : PA4 149 150Note. The Arduino Uno v3 specified SPI device conflicts with the on-board ETH 151device on pin PA7. 152 153System Clock 154------------ 155 156Nucleo F746ZG System Clock could be driven by an internal or external 157oscillator, as well as the main PLL clock. By default, the System clock is 158driven by the PLL clock at 72MHz, driven by an 8MHz high-speed external clock. 159 160Serial Port 161----------- 162 163Nucleo F746ZG board has 4 UARTs and 4 USARTs. The Zephyr console output is 164assigned to UART3. Default settings are 115200 8N1. 165 166Backup SRAM 167----------- 168 169In order to test backup SRAM you may want to disconnect VBAT from VDD. You can 170do it by removing ``SB156`` jumper on the back side of the board. 171 172Programming and Debugging 173************************* 174 175Nucleo F746ZG board includes an ST-LINK/V2-1 embedded debug tool interface. 176 177Applications for the ``nucleo_f746zg`` board configuration can be built and 178flashed in the usual way (see :ref:`build_an_application` and 179:ref:`application_run` for more details). 180 181Flashing 182======== 183 184The board is configured to be flashed using west `STM32CubeProgrammer`_ runner, 185so its :ref:`installation <stm32cubeprog-flash-host-tools>` is required. 186 187Alternatively, OpenOCD or JLink can also be used to flash the board using 188the ``--runner`` (or ``-r``) option: 189 190.. code-block:: console 191 192 $ west flash --runner openocd 193 $ west flash --runner jlink 194 195Flashing an application to Nucleo F746ZG 196---------------------------------------- 197 198Here is an example for the :zephyr:code-sample:`hello_world` application. 199 200Run a serial host program to connect with your Nucleo board. 201 202.. code-block:: console 203 204 $ minicom -b 115200 -D /dev/ttyACM0 205 206Build and flash the application: 207 208.. zephyr-app-commands:: 209 :zephyr-app: samples/hello_world 210 :board: nucleo_f746zg 211 :goals: build flash 212 213You should see the following message on the console: 214 215.. code-block:: console 216 217 $ Hello World! nucleo_f746zg 218 219Debugging 220========= 221 222You can debug an application in the usual way. Here is an example for the 223:zephyr:code-sample:`hello_world` application. 224 225.. zephyr-app-commands:: 226 :zephyr-app: samples/hello_world 227 :board: nucleo_f746zg 228 :maybe-skip-config: 229 :goals: debug 230 231.. _Nucleo F746ZG website: 232 https://www.st.com/en/evaluation-tools/nucleo-f746zg.html 233 234.. _STM32 Nucleo-144 board User Manual: 235 https://www.st.com/resource/en/user_manual/dm00244518.pdf 236 237.. _STM32F746ZG on www.st.com: 238 https://www.st.com/content/st_com/en/products/microcontrollers/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32f7-series/stm32f7x6/stm32f746zg.html 239 240.. _STM32F746 reference manual: 241 https://www.st.com/resource/en/reference_manual/dm00124865.pdf 242 243.. _STM32CubeProgrammer: 244 https://www.st.com/en/development-tools/stm32cubeprog.html 245