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