-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
boards: arm: introduce support for ST Nucleo F722ZE board
Nucleo F722ZE is a development board for the STM32F722ZE, one of ST's higher-end MCU offerings. Add support for the board, aligning with conventions set by similar boards already in the Zephyr distribution. Signed-off-by: Evan Perry Grove <evan@4grove.com>
- Loading branch information
1 parent
8611317
commit 63a4711
Showing
14 changed files
with
714 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# STM32F722ZE Nucleo board configuration | ||
|
||
# Copyright (c) 2023 Evan Perry Grove | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
config BOARD_NUCLEO_F722ZE | ||
bool "Nucleo F722ZE Development Board" | ||
depends on SOC_STM32F722XX |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# STM32F722ZE Nucleo board configuration | ||
# | ||
# Copyright (c) 2023 Evan Perry Grove | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
if BOARD_NUCLEO_F722ZE | ||
|
||
config BOARD | ||
default "nucleo_f722ze" | ||
|
||
config SPI_STM32_INTERRUPT | ||
default y | ||
depends on SPI | ||
|
||
endif # BOARD_NUCLEO_F722ZE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/* | ||
* Copyright (c) 2021, Tom Owen | ||
* Copyright (c) 2023 Evan Perry Grove | ||
* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
*/ | ||
|
||
/ { | ||
arduino_header: connector { | ||
compatible = "arduino-header-r3"; | ||
#gpio-cells = <2>; | ||
gpio-map-mask = <0xffffffff 0xffffffc0>; | ||
gpio-map-pass-thru = <0 0x3f>; | ||
gpio-map = <0 0 &gpioa 3 0>, /* A0 */ | ||
<1 0 &gpioc 0 0>, /* A1 */ | ||
<2 0 &gpioc 3 0>, /* A2 */ | ||
<3 0 &gpiof 3 0>, /* A3 */ | ||
<4 0 &gpiof 5 0>, /* A4 */ | ||
<5 0 &gpiof 10 0>, /* A5 */ | ||
<6 0 &gpiog 9 0>, /* D0 */ | ||
<7 0 &gpiog 14 0>, /* D1 */ | ||
<8 0 &gpiof 15 0>, /* D2 */ | ||
<9 0 &gpioe 13 0>, /* D3 */ | ||
<10 0 &gpiof 14 0>, /* D4 */ | ||
<11 0 &gpioe 11 0>, /* D5 */ | ||
<12 0 &gpioe 9 0>, /* D6 */ | ||
<13 0 &gpiof 13 0>, /* D7 */ | ||
<14 0 &gpiof 12 0>, /* D8 */ | ||
<15 0 &gpiod 15 0>, /* D9 */ | ||
<16 0 &gpiod 14 0>, /* D10 */ | ||
<17 0 &gpioa 7 0>, /* D11 */ | ||
<18 0 &gpioa 6 0>, /* D12 */ | ||
<19 0 &gpioa 5 0>, /* D13 */ | ||
<20 0 &gpiob 9 0>, /* D14 */ | ||
<21 0 &gpiob 8 0>; /* D15 */ | ||
}; | ||
}; | ||
|
||
arduino_i2c: &i2c1 {}; | ||
arduino_spi: &spi1 {}; | ||
arduino_serial: &usart6 {}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# SPDX-License-Identifier: Apache-2.0 | ||
|
||
board_runner_args(jlink "--device=STM32F722ZE" "--speed=4000") | ||
|
||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake) | ||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake) |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,243 @@ | ||
.. _nucleo_f722ze_board: | ||
|
||
ST Nucleo F722ZE | ||
################ | ||
|
||
Overview | ||
******** | ||
|
||
The Nucleo F722ZE board features an ARM Cortex-M7 based STM32F722ZE MCU. | ||
|
||
Key Features: | ||
|
||
- STM32 microcontroller in LQFP144 package | ||
- USB full-speed/high-speed device | ||
- 3 user LEDs | ||
- 1 user button and 1 reset button | ||
- 32.768 kHz crystal oscillator | ||
- Board connectors: | ||
- USB Micro-AB | ||
- SWD | ||
- ST Zio connector (Arduino Uno R3 compatible) | ||
- ST Morpho connector | ||
- On-board ST-LINK debugger/programmer | ||
- Flexible power supply options, including ST-LINK VBUS and external sources. | ||
|
||
.. image:: img/nucleo_f722ze.jpg | ||
:width: 800px | ||
:align: center | ||
:alt: Nucleo F722ZE | ||
|
||
Hardware | ||
******** | ||
|
||
Nucleo F722ZE provides the following hardware components: | ||
|
||
- STM32F722ZET6 microcontroller in LQFP144 package | ||
- ARM |reg| Cortex |reg|-M4 with FPU | ||
- Adaptive Real-Time Accelerator (ART Accelerator) | ||
- 216MHz max CPU frequency | ||
- 512 KB flash | ||
- 256 KB RAM | ||
- I2C (3) | ||
- USART/UART (4) | ||
- SPI (5) | ||
- I2S (3) | ||
- SAI (2) | ||
- USB OTG Full-speed (1) | ||
- USB OTG Full-speed/high-speed (1) | ||
- SDMMC (2) | ||
- CAN (1) | ||
- Dual mode Quad-SPI | ||
- Random number generator (RNG) | ||
- 3x 12-bit ADC, up to 2.4 MSPS with 24 channels or 7.2 MSPS in triple-interleaved mode | ||
- 2x 12-bit DAC | ||
- 16-channel DMA controller | ||
- 16-bit timers (13) with PWM, pulse counter, and quadrature features | ||
- 32-bit timers (2) with PWM, pulse counter, and quadrature features | ||
- CRC | ||
- 96-bit unique ID | ||
- Die temperature | ||
|
||
Supported Features | ||
================== | ||
|
||
+---------------+------------+-------------------------------+ | ||
| Interface | Controller | Driver/Component | | ||
+===============+============+===============================+ | ||
| NVIC | on-chip | arch/arm | | ||
+---------------+------------+-------------------------------+ | ||
| MPU | on-chip | arch/arm | | ||
+---------------+------------+-------------------------------+ | ||
| ADC | on-chip | adc | | ||
+---------------+------------+-------------------------------+ | ||
| CAN | on-chip | can | | ||
+---------------+------------+-------------------------------+ | ||
| USART/UART | on-chip | console, serial | | ||
+---------------+------------+-------------------------------+ | ||
| TIMER | on-chip | counter, pwm, timer | | ||
+---------------+------------+-------------------------------+ | ||
| DAC | on-chip | dac | | ||
+---------------+------------+-------------------------------+ | ||
| DMA | on-chip | dma | | ||
+---------------+------------+-------------------------------+ | ||
| GPIO | on-chip | gpio | | ||
+---------------+------------+-------------------------------+ | ||
| HWINFO | on-chip | hwinfo | | ||
+---------------+------------+-------------------------------+ | ||
| I2C | on-chip | i2c | | ||
+---------------+------------+-------------------------------+ | ||
| EXTI | on-chip | interrupt_controller | | ||
+---------------+------------+-------------------------------+ | ||
| BACKUP_SRAM | on-chip | memory | | ||
+---------------+------------+-------------------------------+ | ||
| QUADSPI | on-chip | memory | | ||
+---------------+------------+-------------------------------+ | ||
| PINMUX | on-chip | pinctrl | | ||
+---------------+------------+-------------------------------+ | ||
| RCC | on-chip | reset | | ||
+---------------+------------+-------------------------------+ | ||
| RTC | on-chip | rtc | | ||
+---------------+------------+-------------------------------+ | ||
| DIE_TEMP | on-chip | sensor | | ||
+---------------+------------+-------------------------------+ | ||
| VREF | on-chip | sensor | | ||
+---------------+------------+-------------------------------+ | ||
| VBAT | on-chip | sensor | | ||
+---------------+------------+-------------------------------+ | ||
| SPI | on-chip | spi | | ||
+---------------+------------+-------------------------------+ | ||
| USBOTG_HS | on-chip | usb | | ||
+---------------+------------+-------------------------------+ | ||
| USBOTG_FS | on-chip | usb | | ||
+---------------+------------+-------------------------------+ | ||
| IWDG | on-chip | watchdog | | ||
+---------------+------------+-------------------------------+ | ||
| WWDG | on-chip | watchdog | | ||
+---------------+------------+-------------------------------+ | ||
|
||
Connections and IOs | ||
=================== | ||
|
||
- SDMMC1: Pins marked as "SDMMC" on the ST Zio connector. | ||
- D0: PC8 (CN8 pin 2) | ||
- D1: PC9 (CN8 pin 4) | ||
- D2: PC10 (CN8 pin 6) | ||
- D3: PC11 (CN8 pin 8) | ||
- CK: PC12 (CN8 pin 10) | ||
- CMD: PD2 (CN8 pin 12) | ||
- ADC1: | ||
- IN3: PA3 (CN9 pin 1, Arduino A0) | ||
- IN10: PC0 (CN9 pin 3, Arduino A1) | ||
- DAC1: | ||
- OUT1: PA4 (CN7 pin 17) | ||
- I2C2: Pins marked as "I2C" on the ST Zio connector. | ||
- SCL: PF1 (CN9 pin 19) | ||
- SDA: PF0 (CN9 pin 21) | ||
- CAN1: Pins marked as "CAN" on the ST Zio connector. | ||
- RX: PD0 (CN9 pin 25) | ||
- TX: PD1 (CN9 pin 27) | ||
- USART2: Pins marked as "USART" on the ST Zio connector. | ||
- RX: PD6 (CN9 pin 4) | ||
- TX: PD5 (CN9 pin 6) | ||
- RTS: PD4 (CN9 pin 8) | ||
- CTS: PD3 (CN9 pin 10) | ||
- PWM1: Uses TIMER1. | ||
- PE13 (CN10 pin 10, Arduino D3) | ||
- PE11 (CN10 pin 6, Arduino D5) | ||
- USART3: Connected to ST-Link virtual COM port. | ||
- TX: PD8 | ||
- RX: PD9 | ||
- USART6: Arduino UART port. | ||
- RX: PG9 (CN10 pin 16, Arduino D0) | ||
- TX: PG14 (CN10 pin 14, Arduino D1) | ||
- USBOTG_FS: Connected to USB Micro-AB connector (CN13) | ||
- DM: PA11 | ||
- DP: PA12 | ||
- ID: PA10 | ||
- QUADSPI: Pins marked as "QSPI" on the ST Zio connector. | ||
- CS: PB6 (CN10 pin 13) | ||
- CLK: PB2 (CN10 pin 15) | ||
- IO3: PD13 (CN10 pin 19) | ||
- IO1: PD12 (CN10 pin 21) | ||
- IO0: PD11 (CN10 pin 23) | ||
- IO2: PE2 (CN10 pin 25) | ||
|
||
System Clock | ||
------------ | ||
|
||
By default, the system clock is driven by the external clock supplied by | ||
the ST-LINK interface. Nucleo F722ZE system clock can be driven by internal | ||
or external sources. | ||
|
||
Serial Port | ||
----------- | ||
|
||
Zephyr console is assigned to UART3 (ST-Link Virtual COM Port) by default, | ||
using 115200 8N1. | ||
|
||
Programming and Debugging | ||
************************* | ||
|
||
The ``nucleo_f722ze`` can be flashed and debugged in the typical manner. | ||
The Nucleo F722ZE board includes an ST-LINK V2-1 debugger, which can be used | ||
with the OpenOCD version provided with the Zephyr SDK. Refer to | ||
:ref:`build_an_application` and :ref:`application_run` for detailed | ||
instructions. | ||
|
||
Flashing | ||
======== | ||
|
||
Build the :ref:`hello_world` application and flash it using the on-board | ||
ST-LINK interface: | ||
|
||
.. zephyr-app-commands:: | ||
:zephyr-app: samples/hello_world | ||
:board: nucleo_f722ze | ||
:goals: build flash | ||
|
||
Debugging | ||
========= | ||
|
||
.. zephyr-app-commands:: | ||
:zephyr-app: samples/hello_world | ||
:board: nucleo_f722ze | ||
:maybe-skip-config: | ||
:goals: debug | ||
|
||
J-Link OB Firmware | ||
------------------ | ||
|
||
Like many other STM32 evaluation boards, the Nucleo F722ZE's on-board ST-LINK | ||
debug interface may be flashed with `SEGGER J-Link OB firmware`_. This | ||
firmware turns the ST-LINK into a J-Link probe. If the on-board debugger has | ||
been re-flashed with J-Link OB firmware, simply append ``--runner jlink`` to | ||
all flashing/debugging commands. | ||
|
||
References | ||
********** | ||
|
||
More information about the STM32F722ZE: | ||
|
||
- `STM32F722ZE on www.st.com`_ | ||
- `STM32F722ZE Reference Manual (RM0431)`_ (PDF) | ||
|
||
More information about Nucleo F722ZE: | ||
|
||
- `Nucleo F722ZE on www.st.com`_ | ||
- `STM32 Nucleo-144 User Manual (UM1974)`_ (PDF) | ||
|
||
.. _SEGGER J-Link OB firmware: | ||
https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/ | ||
|
||
.. _STM32F722ZE on www.st.com: | ||
https://www.st.com/en/microcontrollers-microprocessors/stm32f722ze.html | ||
|
||
.. _STM32F722ZE Reference Manual (RM0431): | ||
https://www.st.com/resource/en/reference_manual/rm0431-stm32f72xxx-and-stm32f73xxx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf | ||
|
||
.. _Nucleo F722ZE on www.st.com: | ||
https://www.st.com/en/evaluation-tools/nucleo-f722ze.html | ||
|
||
.. _STM32 Nucleo-144 User Manual (UM1974): | ||
https://www.st.com/resource/en/user_manual/um1974-stm32-nucleo144-boards-mb1137-stmicroelectronics.pdf |
Oops, something went wrong.