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