1.. _nucleo_h7a3zi_q_board:
2
3ST Nucleo H7A3ZI-Q
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/V3E 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- USB OTG or full-speed device (depending on STM32 support)
28- 3 user LEDs
29- 2 user and reset push-buttons
30- 32.768 kHz crystal oscillator
31- Board connectors:
32
33 - USB with Micro-AB
34 - SWD
35 - ST Zio connector including Arduino* Uno V3
36 - ST morpho
37
38- Flexible power-supply options: ST-LINK USB VBUS or external sources.
39- On-board ST-LINK/V3E debugger/programmer with USB re-enumeration
40- capability: mass storage, virtual COM port and debug port.
41- Comprehensive free software libraries and examples available with the
42  STM32Cube MCU package.
43- Arm* Mbed Enabled* compliant (only for some Nucleo part numbers)
44
45.. image:: img/nucleo_h7a3zi_q.jpg
46   :align: center
47   :alt: Nucleo H7A3ZI-Q
48
49More information about the board can be found at the `Nucleo H7A3ZI-Q website`_.
50
51Hardware
52********
53
54Nucleo H7A3ZI-Q provides the following hardware components:
55
56- STM32H7A3ZI in LQFP144 package
57- ARM 32-bit Cortex-M7 CPU with FPU
58- Chrom-ART Accelerator
59- Hardware JPEG Codec
60- 280 MHz max CPU frequency
61- VDD from 1.62 V to 3.6 V
62- 2 MB Flash
63- ~1.4 Mbytes SRAM
64- 32-bit timers(2)
65- 16-bit timers(15)
66- SPI(6)
67- I2C(4)
68- I2S (3)
69- USART(5)
70- UART(5)
71- USB OTG Full Speed and High Speed(1)
72- CAN FD(2)
73- SAI(2)
74- SPDIF_Rx(4)
75- HDMI_CEC(1)
76- Dual Mode Quad SPI(1)
77- Camera Interface
78- GPIO (up to 114) with external interrupt capability
79- 16-bit ADC(2) with 24 channels / 3.6 MSPS
80- 12-bit DAC with 1/2 channels(2)
81- True Random Number Generator (RNG)
82- 16-channel DMA
83- LCD-TFT Controller with XGA resolution
84
85Supported Features
86==================
87
88The Zephyr nucleo_h7a3zi_q board configuration supports the following hardware
89features:
90
91+-------------+------------+------------------------------------+
92| Interface   | Controller | Driver/Component                   |
93+=============+============+====================================+
94| NVIC        | on-chip    | nested vector interrupt controller |
95+-------------+------------+------------------------------------+
96| UART        | on-chip    | serial port                        |
97+-------------+------------+------------------------------------+
98| PINMUX      | on-chip    | pinmux                             |
99+-------------+------------+------------------------------------+
100| GPIO        | on-chip    | gpio                               |
101+-------------+------------+------------------------------------+
102| PWM         | on-chip    | pwm                                |
103+-------------+------------+------------------------------------+
104| ADC         | on-chip    | adc                                |
105+-------------+------------+------------------------------------+
106| Backup SRAM | on-chip    | Backup SRAM                        |
107+-------------+------------+------------------------------------+
108| USB OTG HS  | on-chip    | USB device                         |
109+-------------+------------+------------------------------------+
110| RNG         | on-chip    | True Random number generator       |
111+-------------+------------+------------------------------------+
112
113
114
115Other hardware features are not yet supported on this Zephyr port.
116
117The default configuration can be found in the defconfig file:
118:zephyr_file:`boards/st/nucleo_h7a3zi_q/nucleo_h7a3zi_q_defconfig`
119
120For more details please refer to `STM32 Nucleo-144 board User Manual`_.
121
122Default Zephyr Peripheral Mapping:
123----------------------------------
124
125The Nucleo H7A3ZI-Q board features a ST Zio connector (extended Arduino Uno V3)
126and a ST morpho connector. Board is configured as follows:
127
128- USART3 TX/RX : PD8/PD9 (ST-Link Virtual Port Com)
129- USER_PB : PC13
130- LD1 : PB0
131- LD2 : PE1
132- LD3 : PB14
133- ADC1_INP15 : PA3 (Arduino analog, A0)
134
135System Clock
136------------
137
138Nucleo H7A3ZI-Q System Clock could be driven by an internal or external
139oscillator, as well as the main PLL clock. By default, the System clock is
140driven by the PLL clock at 96MHz, driven by an 8MHz high-speed external clock.
141
142Serial Port
143-----------
144
145Nucleo H7A3ZI-Q board has 4 UARTs and 4 USARTs. The Zephyr console output is
146assigned to USART3. Default settings are 115200 8N1.
147
148Programming and Debugging
149*************************
150
151Applications for the ``nucleo_h7a3zi_q`` board configuration can be built and
152flashed in the usual way (see :ref:`build_an_application` and
153:ref:`application_run` for more details).
154
155Flashing
156========
157
158Nucleo H7A3ZI-Q board includes an ST-LINK/V3E embedded debug tool interface.
159
160Flashing an application to Nucleo H7A3ZI-Q
161------------------------------------------
162
163Here is an example for the :ref:`hello_world` application.
164
165Run a serial host program to connect with your Nucleo board.
166
167.. code-block:: console
168
169   $ minicom -b 115200 -D /dev/ttyACM0
170
171Build and flash the application:
172
173.. zephyr-app-commands::
174   :zephyr-app: samples/hello_world
175   :board: nucleo_h7a3zi_q
176   :goals: build flash
177
178You should see the following message on the console:
179
180.. code-block:: console
181
182   $ Hello World! nucleo_h7a3zi_q
183
184Debugging
185=========
186
187You can debug an application in the usual way.  Here is an example for the
188:ref:`hello_world` application.
189
190.. zephyr-app-commands::
191   :zephyr-app: samples/hello_world
192   :board: nucleo_h7a3zi_q
193   :maybe-skip-config:
194   :goals: debug
195
196.. _Nucleo H7A3ZI-Q website:
197   https://www.st.com/en/evaluation-tools/nucleo-h7a3zi-q.html#overview
198
199.. _STM32 Nucleo-144 board User Manual:
200   https://www.st.com/resource/en/user_manual/um2408-stm32h7-nucleo144-boards-mb1363-stmicroelectronics.pdf
201
202.. _STM32H7A3ZI-Q on www.st.com:
203   https://www.st.com/en/microcontrollers-microprocessors/stm32h7a3zi.html
204
205.. _STM32H7A3ZI-Q reference manual:
206   https://www.st.com/resource/en/reference_manual/rm0455-stm32h7a37b3-and-stm32h7b0-value-line-advanced-armbased-32bit-mcus-stmicroelectronics.pdf
207