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