Introduction

The STM32H755zi and H745zi are based on the high-performance Arm® Cortex®-M7 and Cortex®-M4 32-bit RISC cores. The Cortex®-M7 core operates at up to 480 MHz and the Cortex®-M4 core at up to 240 MHz. It incorporate a dual-bank Flash memory of 2 Mbytes, up to 1 Mbyte of RAM. The STM32H755zi is capable as an application controller for the iRJ45/SoM module.

STM32H755zi and H745zi targets are only compatible with uGOAL.

uGOAL applications will be build for the Cortex®-M4.

The port for STM32H755zi bases on ST’s HAL Layers. Thus porting to any other ST hardware is very easy. See here for additional information: STM32 (uGOAL) .

Software

Toolchain

For compiling the example code, the GNU Arm Embedded Toolchain is required. It can be obtained in several ways. Further information can be found here: https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads.

Make sure, the toolchain is added properly to your path variable after the installation.

Building

Within a example folder (e.g. projects/ugoal/02_profinet/gcc) of the software delivery build the firmware with following commands:

# build for h755zi or h745zi
make PLATFORM=stm32h755zi clean all

Flashing

The Makefile will create two seperate binaries: one binary for the Cortex®-M4 and another one with included startup code for the Cortex®-M7. The startup code of the Cortex®-M7 resets the M4, initializes the clock settings and then start the application on the M4.

Flashing the firmware is done by copying the generated binary build/stm32h755zi/02_profinet_stm32h755zi_CM4_CM7.bin onto the STM32H755zi via the file explorer.

The binary with includes startup code must be copied to the STM32H755zi. Otherwise the Cortex®-M7 won’t start the application on the Cortex®-M4.

Using STM32CubeIDE

In the software delivery you’ll find several pre-build example projects for the STM32H7X5zi, which can be imported into the STM32CubeIDE. You’ll also find a project generator for STM32CubeIDE projects.

The project generator requires a python3 installation.

Generating a Project

Within the project folder (ugoal/projects/ugoal/02_profinet/gcc) trigger project creation using the following command:

make PLATFORM=stm32h755zi gen_project

The multiple choice menu allows selection of a template. For STM32H755zi a template is available, which can be selected by choosing [4] (stmcubeide):

Please select a template - OR - press <CTRL+c> and set the
GEN_PROJECT_TPL environment variable.

Choose IDE:
  [ 1] e2studio
  [ 2] eclipse
  [ 3] mcuxpressoide
  [ 4] stmcubeide


Choice [1-4]:
Choose template:
[ 1] port/stmcubeide_som_stm32f103rb_nucleo
[ 2] port/stmcubeide_som_stm32f429zi_nucleo
[ 3] port/stmcubeide_som_stm32g071rb_nucleo
[ 4] port/stmcubeide_som_stm32h755zi_nucleo

Choice [1-4]:

After selection of the proper template (which needs to match the platform), an STM32CubeIDE project is located in the “ide” subfolder of the project.

Importing the Project

This project can be imported into STM32CubeIDE:

Select the project folder and import all projects for the STM32H755zi:

The imported projects can be compiled.

note

The project for the CM7 contains startup code to initialize clock settings and other peripherie while holding the CM4 in reset. Then the CM7 releases the CM4 and it will start the application and uGOAL.

In order to debug the uGOAL application, you have to:

  1. flash and run CM7 project and exit,

  2. flash and debug CM4 project.

The project for the CM7 contains startup code to initialize clock settings and other peripherie while holding the CM4 in reset. Then the CM7 releases the CM4 and it will start the application and uGOAL.

In order to debug the uGOAL application, you have to:

  1. flash and run CM7 project and exit,

  2. flash and debug CM4 project.

The CM7 application has to be flashed only once.

Due to the reset mechanism of the CM7, you’ll have to step through the startup code until function HAL_PWREx_ClearPendingEvent();. After that, you're able to start the application.

Getting Started

Preparations

Hardware Requirements

Arduino PMOD Adaptershield

Make sure following settings are set:

STM32H755zi Board

There is no configuration required.

Target System

Please connect both boards with each other, before you connect them per USB to your computer.

There is no further configuration required.

Debugging

UART

The STM32H755zi provides an UART over USB cable. Choose the following settings:

Speed

115200

Data Bits

8

Stop Bits

1

Parity

None

Flow Control

None

Application 02_profinet

The available applications are described here. Following you’ll find an example. After setting up the serial monitor and starting the debug session, the output should look like this:

[INF] ../rpc/goal_mctc_rb.c:277 creating rpc ring buffer with buffer size 768 and elem size 256
[INF] ../rpc/goal_mctc_rb.c:277 creating rpc ring buffer with buffer size 768 and elem size 256
[INF] ../goal_media/goal_mi_mctc.c:793 rpc transfer size set to 1024
[INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init
[INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init
[INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init
[INF] ../goal_media/goal_mi_mctc.c:723 peer requested Sync Init
[INF] ../goal_media/goal_mi_mctc.c:455 RPC state synchronized, running appl_setup
[INF] ../goal_media/goal_mi_mctc.c:458 configuring timeout values for peer
[INF] ../pnio/goal_pnio_rpc_ac.c:259 PROFINET Application Core successfully started
[INF] ../example/02_profinet/goal_appl.c:188 Initializing device structure
[INF] ../example/02_profinet/goal_appl.c:230 PROFINET ready
[INF] ../goal_media/goal_mi_mctc.c:487 local setup done

Known Issues

EtherCAT DC is not supported.