1.. _nucleo_h743zi_board:
2
3ST Nucleo H743ZI
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 (Switched-Mode Power Supply)
12significantly reduces power consumption 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_h743zi.jpg
48   :align: center
49   :alt: Nucleo H743ZI
50
51More information about the board can be found at the `Nucleo H743ZI website`_.
52
53Hardware
54********
55
56Nucleo H743ZI provides the following hardware components:
57
58- STM32H743ZI in LQFP144 package
59- ARM 32-bit Cortex-M7 CPU with FPU
60- Chrom-ART Accelerator
61- Hardware JPEG Codec
62- 480 MHz max CPU frequency
63- VDD from 1.62 V to 3.6 V
64- 2 MB Flash
65- 1 MB SRAM
66- High-resolution timer (2.1 ns)
67- 32-bit timers(2)
68- 16-bit timers(12)
69- SPI(6)
70- I2C(4)
71- I2S (3)
72- USART(4)
73- UART(4)
74- USB OTG Full Speed and High Speed(1)
75- USB OTG Full Speed(1)
76- CAN FD(2)
77- SAI(2)
78- SPDIF_Rx(4)
79- HDMI_CEC(1)
80- Dual Mode Quad SPI(1)
81- Camera Interface
82- GPIO (up to 114) with external interrupt capability
83- 16-bit ADC(3) with 36 channels / 3.6 MSPS
84- 12-bit DAC with 2 channels(2)
85- True Random Number Generator (RNG)
86- 16-channel DMA
87- LCD-TFT Controller with XGA resolution
88
89Supported Features
90==================
91
92The Zephyr nucleo_h743zi board configuration supports the following hardware
93features:
94
95+-------------+------------+-------------------------------------+
96| Interface   | Controller | Driver/Component                    |
97+=============+============+=====================================+
98| NVIC        | on-chip    | nested vector interrupt controller  |
99+-------------+------------+-------------------------------------+
100| UART        | on-chip    | serial port                         |
101+-------------+------------+-------------------------------------+
102| PINMUX      | on-chip    | pinmux                              |
103+-------------+------------+-------------------------------------+
104| GPIO        | on-chip    | gpio                                |
105+-------------+------------+-------------------------------------+
106| RTC         | on-chip    | counter                             |
107+-------------+------------+-------------------------------------+
108| I2C         | on-chip    | i2c                                 |
109+-------------+------------+-------------------------------------+
110| PWM         | on-chip    | pwm                                 |
111+-------------+------------+-------------------------------------+
112| ADC         | on-chip    | adc                                 |
113+-------------+------------+-------------------------------------+
114| DAC         | on-chip    | DAC Controller                      |
115+-------------+------------+-------------------------------------+
116| RNG         | on-chip    | True Random number generator        |
117+-------------+------------+-------------------------------------+
118| ETHERNET    | on-chip    | ethernet                            |
119+-------------+------------+-------------------------------------+
120| SPI         | on-chip    | spi                                 |
121+-------------+------------+-------------------------------------+
122| Backup SRAM | on-chip    | Backup SRAM                         |
123+-------------+------------+-------------------------------------+
124| WATCHDOG    | on-chip    | independent watchdog                |
125+-------------+------------+-------------------------------------+
126| USB         | on-chip    | usb_device                          |
127+-------------+------------+-------------------------------------+
128| CAN/CANFD   | on-chip    | canbus                              |
129+-------------+------------+-------------------------------------+
130| die-temp    | on-chip    | die temperature sensor              |
131+-------------+------------+-------------------------------------+
132| RTC         | on-chip    | rtc                                 |
133+-------------+------------+-------------------------------------+
134
135Other hardware features are not yet supported on this Zephyr port.
136
137The default configuration can be found in the defconfig file:
138:zephyr_file:`boards/st/nucleo_h743zi/nucleo_h743zi_defconfig`
139
140For more details please refer to `STM32 Nucleo-144 board User Manual`_.
141
142Default Zephyr Peripheral Mapping:
143----------------------------------
144
145The Nucleo H743ZI board features a ST Zio connector (extended Arduino Uno V3)
146and a ST morpho connector. Board is configured as follows:
147
148- UART_3 TX/RX : PD8/PD9 (ST-Link Virtual Port Com)
149- USER_PB : PC13
150- LD1 : PB0
151- LD2 : PB7
152- LD3 : PB14
153- I2C : PB8, PB9
154- ADC1_INP15 : PA3
155- DAC1_OUT1 : PA4
156- ETH : PA1, PA2, PA7, PB13, PC1, PC4, PC5, PG11, PG13
157- SPI1 NSS/SCK/MISO/MOSI : PD14/PA5/PA6/PB5 (Arduino SPI)
158- CAN/CANFD : PD0, PD1
159
160System Clock
161------------
162
163Nucleo H743ZI System Clock could be driven by an internal or external
164oscillator, as well as the main PLL clock. By default, the System clock is
165driven by the PLL clock at 96MHz, driven by an 8MHz high-speed external clock.
166
167Serial Port
168-----------
169
170Nucleo H743ZI board has 4 UARTs and 4 USARTs. The Zephyr console output is
171assigned to UART3. Default settings are 115200 8N1.
172
173Backup SRAM
174-----------
175
176In order to test backup SRAM you may want to disconnect VBAT from VDD. You can
177do it by removing ``SB156`` jumper on the back side of the board.
178
179CAN, CANFD
180----------
181
182Requires an external CAN or CANFD transceiver.
183
184Programming and Debugging
185*************************
186
187Applications for the ``nucleo_h743zi`` board configuration can be built and
188flashed in the usual way (see :ref:`build_an_application` and
189:ref:`application_run` for more details).
190
191.. note::
192
193   If using OpenOCD you will need a recent development version as the last
194   official release does not support H7 series yet. You can also choose the
195   ``stm32cubeprogrammer`` runner.
196
197Flashing
198========
199
200Nucleo H743ZI board includes an ST-LINK/V2-1 embedded debug tool interface.
201
202Flashing an application to Nucleo H743ZI
203----------------------------------------
204
205Here is an example for the :ref:`hello_world` application.
206
207Run a serial host program to connect with your Nucleo board.
208
209.. code-block:: console
210
211   $ minicom -b 115200 -D /dev/ttyACM0
212
213Build and flash the application:
214
215.. zephyr-app-commands::
216   :zephyr-app: samples/hello_world
217   :board: nucleo_h743zi
218   :goals: build flash
219
220You should see the following message on the console:
221
222.. code-block:: console
223
224   $ Hello World! nucleo_h743zi
225
226Debugging
227=========
228
229You can debug an application in the usual way.  Here is an example for the
230:ref:`hello_world` application.
231
232.. zephyr-app-commands::
233   :zephyr-app: samples/hello_world
234   :board: nucleo_h743zi
235   :maybe-skip-config:
236   :goals: debug
237
238.. _Nucleo H743ZI website:
239   https://www.st.com/en/evaluation-tools/nucleo-h743zi.html
240
241.. _STM32 Nucleo-144 board User Manual:
242   https://www.st.com/resource/en/user_manual/dm00244518.pdf
243
244.. _STM32H743ZI on www.st.com:
245   https://www.st.com/content/st_com/en/products/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus/stm32-high-performance-mcus/stm32h7-series/stm32h743-753/stm32h743zi.html
246
247.. _STM32H743 reference manual:
248   https://www.st.com/resource/en/reference_manual/dm00314099.pdf
249