.. | |||
STM32Cube_FW | 2 years ago | ||
TARGET_STM32H723xG | 1 year ago | ||
TARGET_STM32H725xE | 1 year ago | ||
TARGET_STM32H735xG | 2 years ago | ||
TARGET_STM32H743xI | 2 years ago | ||
TARGET_STM32H745xI | 3 years ago | ||
TARGET_STM32H747xI | 1 year ago | ||
TARGET_STM32H750xB | 2 years ago | ||
TARGET_STM32H753xI | 2 years ago | ||
TARGET_STM32H7A3xIQ | 2 years ago | ||
TARGET_STM32H7B3xIQ | 2 years ago | ||
CMakeLists.txt | 2 years ago | ||
PeripheralNames.h | 2 years ago | ||
README.md | 3 years ago | ||
analogin_device.c | 2 years ago | ||
analogout_device.c | 2 years ago | ||
cmsis.h | 3 years ago | ||
flash_api.c | 2 years ago | ||
gpio_irq_device.c | 3 years ago | ||
gpio_irq_device.h | 3 years ago | ||
i2c_device.c | 2 years ago | ||
i2c_device.h | 2 years ago | ||
objects.h | 1 year ago | ||
pin_device.h | 3 years ago | ||
pwmout_device.c | 3 years ago | ||
pwmout_device.h | 3 years ago | ||
serial_device.c | 2 years ago | ||
spi_api.c | 3 years ago | ||
spi_device.h | 2 years ago | ||
us_ticker_data.h | 3 years ago |
STM32H743ZI devices are based on the high-performance Arm Cortex-M7 32-bit RISC core operating at up to 480 MHz.
Total FLASH is 2 MB (0x200000)
RAM: 1 MB
Note that NUCLEO_H743ZI is deprecated. Please update your board to NUCLEO_H743ZI2:
How to use NUCLEO_H743ZI with mbed-os-6:
PeripheralPins.c and PinNames.h are available in mbed-os repo, so you just have to create a custom_targets.json file with:
{ "NUCLEO_H743ZI": { "inherits": [ "MCU_STM32H743xI" ], "config": { "d11_configuration": { "help": "Value: PB_5 for the default board configuration, PA_7 in case of solder bridge update (SB33 on/ SB35 off)", "value": "PB_5", "macro_name": "STM32_D11_SPI_ETHERNET_PIN" }, "hse_value": { "value": "8000000", "macro_name": "HSE_VALUE" } }, "device_has_add": [ "EMAC" ], "overrides": { "network-default-interface-type": "ETHERNET" }, "supported_form_factors": [ "ARDUINO" ], "device_name": "STM32H743ZI" } }
STM32H7A3/7B3 devices are based on an Arm Cortex-M7 core (with double-precision floating point unit) running up to 280 MHz.
Total FLASH is 2 MB (0x200000)
RAM: 1312 KB
The STM32H7x7 lines combine the performance of the Cortex-M7 (with double-precision floating point unit) running up to 480 MHz and the Cortex-M4 core (with single-precision floating point unit).
Total FLASH is 2 MB (0x200000)
RAM: 1 MB
WARNING: Ethernet connector is not enabled by default on this board
More information in the wiki page : Ethernet HW Patch
How to create a custom board with STM32H745xI MCU:
After creating your local PeripheralPins.c and PinNames.h files in TARGET_BOARD_H745xI directory,
create a custom_targets.json file with:
{ "BOARD_H745xI_CM4": { "inherits": [ "MCU_STM32H745xI_CM4" ], "extra_labels_add": [ "BOARD_H745xI" ] }, "BOARD_H745xI_CM7": { "inherits": [ "MCU_STM32H745xI_CM7" ], "extra_labels_add": [ "BOARD_H745xI" ] } }
Configuration can be checked/changed with STM32CubeProgrammer software in the Option bytes (OB) panel.
https://www.st.com/en/development-tools/stm32cubeprog.html
Default configuration is booting both CM7 and CM4:
Note that Drag and Drop
feature for binary application (.bin files) is flashing at 0x0800 0000
IP HW usage warning
All resources (GPIO, UART, SPI, ...) can be used by both cores.
It is up to application to choose which instance is used by which core.
For GPIO, HW semaphore have been implemented which allows applications to use same GPIO port in both sides (CM4 can use PA_1, and CM7 PA_2).
NB : Virtual Com Port is using the same UART pins in CM4 and CM7.
It is not recommended to enable printf from both cores without any protection mechanism.
System clock configuration
Clock configuration is shared between both cores.
During boot procedure:
When exiting Deep Sleep mode, first core (either M4 or M7) that woke up, is setting back this clock configuration.
As explained in the Dual mode configuration
above part, you can drag and drop applications.
For application compilation, you can use DISCO_H747I or DISCO_H747I_CM7 target name.
For MBED tests execution, you have to use DISCO_H747I target name (mbed detect name).
For application compilation, you have to use DISCO_H747I_CM4 target name.
For flashing, method is depending on the format:
Please check the ST Link FW version you have:
$ mbedls | platform_name | platform_name_unique | mount_point | serial_port | target_id | daplink_version | |---------------|----------------------|-------------|-------------|--------------------------|-----------------| | DISCO_H747I | DISCO_H747I[0] | D: | COM13 | 081402210D03E72132477E08 | V3J7M2 |
Minimum version is V3J7M2 (https://www.st.com/en/development-tools/stsw-link007.html)
Configuration to add in mbed-os json configuration:
"OUTPUT_EXT": "hex",
STM32CubeProgrammer software is available:
https://www.st.com/en/development-tools/stm32cubeprog.html
Here is command lines for flashing (but you can use graphical tool):
FLASHPATH="C:\Program Files (x86)\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin" export PATH=$FLASHPATH:$PATH STM32_Programmer_CLI -c port=SWD mode=UR -w BUILD/DISCO_H747I_CM4/ARM/mbed-os.bin 0x8100000