STM32Cube is an STMicroelectronics original initiative to make developers’ lives easier by
reducing development effort, time and cost. STM32Cube covers the whole STM32 portfolio.
The STM32CubeH7 demonstration platform complements STM32Cube as a firmware
p
ackage that offers a full set of software components based on a modular architecture,
separately reusable in standalone applications. The STM32CubeH7 demonstration kernel
manages all these modules, allowing dynamic addition of new modules, and access to
common resources (storage, graphical components and widgets, memory management,
real-time operating system).
The STM32CubeH7 demonstration platform is built around the powerful STemWin graphical
lib
rary and the FreeRTOS™ real-time operating system, and uses almost the whole STM32
capability to offer a large scope of usage based on the STM32Cube HAL BSP and several
middleware components.
The architecture uses the STM32CubeH7 demonstr
central component that is usable with several RTOSs and third party firmware libraries
through dedicated abstraction layers inserted between the STM32CubeH7 demonstration
core and the associated modules and libraries.
The STM32CubeH7 demonstration supports STM3
STM32H743I-EVAL, STM32H745I-DISCO, STM32H747I EVAL, STM32H747I DISCO and
STM32H747I DISC1 boards.
STM32Cube is an STMicroelectronics original initiative to significantly improve designer's
productivity by reducing development effort, time and cost. STM32Cube covers the whole
STM32 portfolio.
STM32Cube includes:
•A set of user-friendly software development tools to cover project development from
the conception to the realization, among which:
–STM32CubeMX, a graphical software configuration tool that allows the automatic
generation of C initialization code using graphical wizards
•STM32Cube MCU & MPU Packages, comprehensive embedded-software platforms
specific to each microcontroller and microprocessor series (such as STM32CubeH7 for
the STM32H7 Series), which include:
–A consistent set of middleware components such as RTOS, FAT file system, and
graphics
–All embedded software utilities with full sets of peripheral and applicative
examples
®(a)
Cortex®-based microcontrollers
Figure 1. STM32Cube block diagram
a. Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.
8/76UM2222 Rev 2
Page 9
UM2222Global architecture
2 Global architecture
The STM32CubeH7 demonstration is composed of a central kernel based on a set of
firmware and hardware services offered by the STM32Cube middleware, several Evaluation
and Discovery boards, and a set of modules mounted on the kernel and built in a modular
architecture. Each module is separately reusable in a standalone application.
The kernel manages the full set of modules. It provides access to all common resources and
facilitates the addition of new modules as shown in
Each module provides the following functionalities and properties:
•Icon and graphical aspect characteristics
•Method to start up the module
•Method to close down safely the module (such as Hot unplug for unit storage)
The role of the demonstration kernel is mainly to provide a generic platform that controls
and monitors all the application processes. The kernel provides a set of friendly user APIs
and services, allowing the user modules to benefit from all the hardware and firmware
resources.
The kernel provides the tasks and services listed below:
The first task of the kernel is to initialize the hardware and firmware resources to make them
available to its internal processes and the modules around it.
The kernel starts by initializing the HAL system clocks, and then the hardware resources
needed by the middleware components:
•Touch screen
•SDRAM
•Quad-SPI Flash memory
•Backup SRAM
•RTC
Once, the low-level resources are initialized, the kernel performs the STemWin GUI library
initialization and prepares the following common services:
•Memory manager
•Storage units
•Modules manager
•Kernel log
Upon full initialization phase, the kernel adds and links the system and user modules to the
demonstration core.
UM2222 Rev 211/76
75
Page 12
Kernel descriptionUM2222
3.3 Kernel processes and tasks
The kernel is composed of a main task and software timer scheduled by FreeRTOS through
the CMSIS-OS wrapping layer:
•GUI thread: this task initializes the demonstration main menu and then handles the
graphical background task when requested by the STemWin.
Note:For the STM32H747I EVAL and DISCO board demonstrations, the interrupt handles
the touch screen event.
12/76UM2222 Rev 2
Page 13
UM2222Kernel description
3.4 Kernel graphical aspect
The graphical aspect of the STM32Cube demonstration is divided into three main graphical
components listed below:
•At the board reset, the splash screen appears for a few seconds. The splash screen
can be skipped by a simple click on the screen, to launch the main menu of the three
demonstrations. In the case of the STM32H747I DISC1 (Discovery board provided
without LCD screen board), the demonstration software ends with blanking the red LED
LD3.
Figure 4. Splash screen
•Start the main menu of each demonstration by clicking on the dedicated icon.
Figure 5. Demonstrations main menu
Note:STemWin, TouchGFX and the source code of the menu launcher are available. The
embedded wizard demonstration is available only with the full binary file.
UM2222 Rev 213/76
75
Page 14
Kernel descriptionUM2222
3.5 Kernel menu management
Note:Important - This user manual describes all the demonstration modules. STemWin and
TouchGFX modules are detailed as the source code is provided.
The main demonstration menu is initialized and launched by the GUI thread. Before the
initialization of the menu, the following actions are performed:
•Draw the background image.
•Restore general settings from backup memory.
•Setup the main desktop callback to manage main window messages.
The icon view widget contains the icons associated to added modules. The user can launch
a module by a simple click. The user can also slide the icons and select the modules.
Figure 6. STemWin demonstration main menu
14/76UM2222 Rev 2
Page 15
UM2222Kernel description
06Y9
*UDSKLFDO
IRUPV
SURSHUWLHV
'LVWDQW
FRQWURO
%DFNJURXQG
WDVN
&RQILJXUDWLRQ
(UURU
PDQDJHPHQW
/RZSRZHU
PDQDJHPHQW
6DIH
FORVHGRZQ
PRGXOH
,QLWLDOL]DWLRQ
PRGXOH
$SSOLFDWLRQ
WDVN
2SWLRQDOPRGXOHV
A module is launched with a simple click on the associated icon by calling to the startup
function in the module structure. This is performed when a WM_NOTIFICATION_RELEASED
message arrives to the desktop callback with ID_ICONVIEW_MENU.
3.6 Module manager
The kernel manages the modules. It is responsible of initializing relative hardware and GUI
resources, common resources such as a storage unit, graphical widget and the system
menu.
Figure 7. Functionalities and properties of modules
UM2222 Rev 215/76
75
Page 16
Kernel descriptionUM2222
Each module provides the following functionalities and properties:
•Icon and graphical component structure
•Method to startup the module
•Method to close down safely the module (such as Hot unplug for MS flash disk)
•Method to manage low-power modes (optional)
•Application task
•Module background process (optional)
•Remote control method (optional)
•Specific configuration
•Error management
The modules can be added to the demonstration and use the common kernel resources.
Th
e code below shows how to add a module to the demonstration.
A module is a set of function and data structures, which are defined in a global data
structure, and provide all the information and pointers to specific methods and functions to
the kernel. This later checks the integrity and the validity of the module and inserts its
structure into a module table. A unique identifier (UID) identifies each module. When two
modules have the same UID, the kernel rejects the second one.
The module structure is defined as follows:
•id
: unique module identifier
•name: pointer to module name
•open_icon: pointer to module icon frames (array of bitmap format moving on the right)
•close_icon: pointer to module icon (array of bitmap format moving on the left)
•startup: the function creating the module frame and control buttons
•DirectOpen: reserved for feature use.
16/76UM2222 Rev 2
Page 17
UM2222Kernel description
3.7 Backup and settings configuration
The STM32Cube demonstration saves the kernel and module settings using the following
method:
•Using the RTC backup register (32-bit data width): the data to save must be a 32-bit
data and can be defined as a bit field structure.
•Two kernel APIs are used to save or restore the structure from the RTC backup
registers.
3.8 Storage units
The STM32Cube demonstration kernel offers a storage unit that is usable to retrieve audio,
bitmaps and video media. The storage unit is initialized during the platform startup and thus
it is available to all the modules during the STM32Cube Demonstration run time.
The unit is accessible through the standard I/O operations offered by the FatFS used in the
development platform. The unit is mounted automatically when the physical media is
connected to the connector on the board.
(FatFS functions) used to deal with the physical storage unit.
Figure 8. Available storage units
Table 1 lists the file system interface functions
UM2222 Rev 217/76
75
Page 18
Kernel descriptionUM2222
Table 1. File system interface functions
FunctionDescription
disk_initializeInitialize disk drive
disk_readInterface function for a logical page read
disk_writeInterface function for a logical page write
disk_statusInterface function for testing if unit is ready
In the FatFS file system, the page size is fixed to 512 bytes. The SD cards with higher page
size are not supported.
The software architecture of the storage unit is described in Figure 9.
18/76UM2222 Rev 2
Page 19
UM2222Kernel description
06Y9
$SSOLFDWLRQ
)DW)6PRGXOH
*HQHULFORZOHYHOGULYHULQWHUIDFH
+$/GULYHUV
%63GULYHUV
/RZOHYHOGLVN
,2GULYHUV
/LQNPHFKDQLVP
06Y9
[
[
4XDG63,)ODVKPHPRU\
[
[
0DLQGHPRFRGH0DLQGHPRUHVRXUFHV
6SHFLILFGHPRUHVRXUFHV
,QWHUQDO)ODVKPHPRU\
6SHFLILFGHPRFRGH
Figure 9. Software architecture
The FatFS is mounted upon the mass storage to allow an abstract access to the physical
media through standard I/O methods.
3.9 Adding binary demonstration
The user can load a specific demonstration as a binary in a specific memory address. The
specific demonstration is launched during the run-time of the native ST demonstration. The
main demonstration (ST demonstration) jumps to the specific demonstration address. From
the specific demonstration, the user can go back to the main demonstration by doing a
hardware reset.
The specific demonstration must provide a control button named “Menu” that triggers a
hardware reset and saves a specific signature in the backup SRAM.
Figure 10 shows how the main demonstration and the specific demonstration must be
mapped in the memory.
Figure 10. Demonstration memory mapping
UM2222 Rev 219/76
75
Page 20
Kernel descriptionUM2222
Main demonstration
Upon clicking on the specific demonstration icon in the main menu of the native main
demonstration, a signature A is saved in the backup SRAM and a reset is performed.
During the next start of the ST demonstration, the signature is checked. If the result is A, the
PC jumps to the specific demonstration memory location and the specific demonstration
starts.
Specific demonstration
The specific demonstration must provide a GUI control button named “Menu”. When “menu”
is activated, a signature B is saved in the backup SRAM and a reset is performed.
During the next start, the startup screen is bypassed and the main demonstration menu is
directly shown.
In the system_stm32h7xx.c, the specific demonstration must change the vector table offset
define (
#define VECT_TAB_OFFSET) to 0x100000. The system_init function then sets the
VTOR (vector table offset register) to the specific demonstration base address
(0x08100000).
20/76UM2222 Rev 2
Page 21
UM2222Kernel description
3.10 Demonstration repository
The STM32Cube is a component in the STM32Cube package. Figure 11 shows the
demonstration folder organization.
Figure 11. Demonstration folder structure
In the STM32Cube package, the demonstration sources are located in the Demonstration
folder of each supported board. The sources are divided into groups described as follows:
•Core: contains the kernel files
•GUI: contains the module core manager, the graphical aspect and the windowing
management of the modules. It contains also the binary file for added widgets based on
STemWin graphical library.
•Config: contains all components of the middleware and HAL configuration files
•Modules: contains the applicative part of the modules
•Binary: demonstration binary file in hex format
•Project settings: a folder per toolchain containing the project settings and the linker
files.
UM2222 Rev 221/76
75
Page 22
Kernel descriptionUM2222
3.11 Kernel components
FunctionDescription
Kernel coreKernel core and utilities
ModulesUser and system modules
STM32 HAL DriversSTM32Cube HAL driver relative to the STM32 device used
stm32h7xx_it.cInterrupt handlers for the application
k_bsp.cProvides the kernel BSP functions
Table 2. Kernel components list
CMSIS Cortex-M7 device peripheral access layer system source
file
Table 3. Kernel core files list
k_menu.cKernel menu and desktop manager
k_module.cModules manager
stm32h7xx_hal_timebase_tim.cUse the hardware timer to configure the time base
k_rtc.cRTC and backup manager
k_startup.cDemonstration startup windowing process
k_storageStorage units manager
startup_stm32h7xxxx.sStartup file
cpu_utils.cCPU load calculation utility
22/76UM2222 Rev 2
Page 23
UM2222Kernel description
3.13 Hardware settings
The STM32Cube demonstration supports STM32H7 Series devices and runs on
STM32H743I-EVAL, STM32H747I EVAL, STM32H747I DISCO and STM32H747I DISC1
boards from STMicroelectronics.
Figure 12. STM32Cube demonstration boards
1. Pictures are not contractual.
BoardJumperPosition description
STM32H743I-EVAL
and
STM32H747I-EVAL
STM32H747I-DISCO
and
STM32H747I-DISC1
Table 4. Jumpers for demonstration boards
Status: not fitted
JP3
JP9
JP10Position: PSU position. For power supply jack (CN10)
JP3
JP6
The Bootloader_BOOT is managed by pin 6 of connector CN7
(RS232 DSR signal) when JP1 is closed. This configuration is
used for boot loader application only.
Status: fitted
Used to measure MCU current consumption manually
Status: fitted
Used to measure MCU current consumption manually
Position: STlk (STLINK)
Used to select power supply source.
UM2222 Rev 223/76
75
Page 24
How to create a new moduleUM2222
4 How to create a new module
A module is composed of two main parts: the graphical aspect and the set of associated
functionalities.
4.1 Creating the graphical aspect
The graphical aspect consists of the mainframe window plus the full set of the visual
elements (such as buttons, checkboxes and progress bars), used to control and monitor
functionalities of the modules.
A very useful PC application, the GUIBuilder, provided into the demonstration package,
allows an easy and quick creation of the module frame window and all its components.
Figure 13. GUIBuilder overview
It only takes a few minutes to completely design the module appearance using “drag and
drop” commands and then to generate a source code file to be included totally or partially
into the application.
The file generated is composed of the two main parts listed below:
•A resource table: GUI_WIDGET_CREATE_INFO type of table, which specifies all the
widgets to be included in the dialog and also their respective positions and sizes
•A dialog procedure: described more in detail in section Error! Reference source not
found (it is referred to as “main module callback routine”).
4.2 Graphics customization
After creation of the basic module graphical appearance, it is possible to customize some
graphical elements, such as the buttons, by replacing the standard aspect by the
user-defined image. To do this, a new element drawing callback must be created and used
instead of the original one.
24/76UM2222 Rev 2
Page 25
UM2222How to create a new module
0VY9
QRWSUHVVHG
SUHVVHG
GHDFWLYDWHG
3OD\
Here is an example of a custom callback for the Play button.
On the code portion above, the _OnPaint_play routine contains just the new button
drawing command.
Obviously the new callback must be associated to the graphical element (in our case the
Pla
y button) when it is created, like below.
Figure 14. Graphics customization
4.3 Module implementation
Once the graphical part of the module is finalized, the module functionalities and processes
can be added.
UM2222 Rev 225/76
75
Page 26
How to create a new moduleUM2222
It begins with the creation of the main module structure as defined in Section 3.6: Module
manager. Each module has its own Startup function that co
creation, initialization and link
In the example above, _cbDialog refers to the main module callback routine. Its general
skeleton is structured as follows.
to the main callback.
nsists of the graphical module
The list of window messages presented in the code portion above (WM_INIT_DIALOG and
WM_NOTIFY_PARENT) is not exhaustive, but represents the essential message IDs used:
•WM_INIT_DIALOG allows
initial values. It is also possible to restore the backup parameters (if any) to be used
during the dialog procedure.
•WM_NOTIFY_PARENT describes the dialog procedure, for example the definition of
each button behavior.
The full list of window messages is available in the WM.h file.
the graphical elements initialization with their respective
4.4 Adding a module to the main desktop
Once the appearance and functionality of the module are defined and created, the module
still needs to be added to the main desktop view. This is done by adding it to the list
(structure) of menu items: module_prop[] defined into k_module.h. To do this,
k_ModuleAdd() function must be called just after
file. Note that the maximum modules number in the demonstration package is limited to 15;
this value can be changed by updating MAX_MODULES_NUM defined into k_module.c.
26/76UM2222 Rev 2
the module initialization into the main.c
Page 27
UM2222Demonstration customization and configuration
06Y9
5 Demonstration customization and configuration
5.1 LCD configuration
The LCD is configured through the LCDConf.c file. Amongst the several parameters that
can be set in this file, some are detailed below:
•Multiple layers:
The number of layers used is defined using GUI_NUM_LAYERS. Its value must not
exceed the one defined into GUIConf.h (the later represents the maximum number of
available layers supported when the STemWin binary is generated).
•Multiple buffering:
If NUM_BUFFERS is set to a value "n" greater than 1, it means that "n" frame buffers
are used for drawing operation (see section Error! Reference source not found for
the impact of multiple buffering on performance).
•Virtual screens:
If the display area is greater than the physical size of the LCD, NUM_VSCREENS must
be set to a value greater than 1. Note that virtual screens and multi buffers are not
allowed together.
•Frame buffers locations:
The physical location of the frame buffer is defined through
LCD_LAYERX_FRAME_BUFFER.
5.2 Layer management
In the demonstration package, GUI_NUM_LAYERS is set to 2 (both layers are used):
•Layer 0 is used for the main desktop display.
•Layer 1 is used for video player module playback.
Figure 15. LCDConf.c location
Such display separation helps to lighten the CPU usage during the refresh tasks.
UM2222 Rev 227/76
75
Page 28
Demonstration customization and configurationUM2222
06Y9
5.3 BSP customization
5.3.1 SDRAM configuration
The BSP SDRAM driver offers a set of functions to initialize, read/write in polling mode or
DMA mode.
Figure 16. SDRAM initialization
The SDRAM external memory must be initialized before the GUI initialization to allow the
SDRAM to be used as LCD layers frame buffer.
LayerAddress
LCD layer 0 0xD000 0000
LCD layer 1
1. NUM_VSCREENS: number of virtual screen defined in LCDConf.c file.
2. NUM_BUFFERS: number of multi buffer defined in LCDConf.c file.
Table 5. LCD frame buffer locations
0xD0000000 +
(size of frame buffer * NUM_VSCREENS
(1)
* NUM_BUFFERS)
(2)
28/76UM2222 Rev 2
Page 29
UM2222Demonstration customization and configuration
06Y9
5.3.2 Touchscreen configuration
The touchscreen is controlled by the BSP TS driver, which uses the exc7200 component in
case of the STM32H743I-EVAL board, and the ft6x06 component for the STM32H747I
EVAL and STM32H747I DISCO boards.
Figure 17. Touch screen configuration
UM2222 Rev 229/76
75
Page 30
Demonstration customization and configurationUM2222
The touch screen is initialized in k_BspInit following the used screen resolution as shown
in the code below.
30/76UM2222 Rev 2
Page 31
UM2222Performance
06Y9
$;,0
'0$
(WKHUQHW
0$&
6'00&'0$86%+6 86%+6
&RUWH[0
$3%
$576'00& 0'0$'0$'/7'&
%'0$
$3%
&RUWH[0
,
.%'.%
$+%3
'0$B0(0
'0$B3(5,3+
'0$B0(0
'0$B3(5,3+
6EXV
'EXV
,EXV
$3%
ELW$+%EXVPDWUL[
'GRPDLQ
ELW$;,EXVPDWUL[
'GRPDLQ
ELW$+%EXVPDWUL[
'GRPDLQ
'7&0
.E\WH
,7&0
.E\WH
)ODVK$
8SWR0E\WH
)ODVK%
8SWR0E\WH
$;,65$0
.E\WH
463,
)0&
65$0
.E\WH
65$0
.E\WH
65$0
.E\WH
$+%
$+%
$+%
65$0
.E\WH
%DFNXS
65$0
.E\WH
$+%6
&38
&38
'WR'$+%
'WR'$+%
'WR'$+%
'WR'$+%
ELWEXV
ELWEXV
%XVPXOWLSOH[HU
/HJHQG
0DVWHULQWHUIDFH
6ODYHLQWHUIDFH
$+%
$;,
$+%
$3%
$3%
7&0
6 Performance
6.1 CPU cache
The STM32CubeH7 demonstration takes benefit from Cortex-M7 performance:
•16 Kbytes dedicated to instruction cache
•16 Kbytes dedicated to data cache
Figure 18. STM32H7 Series system architecture
Using the STM32H7 Series, the CPU load is decreased with video module from 87% to 5%
compared to STM32F7 Series, thanks to the hardware JPEG decoding and the support of
hardware conversion from YCbCr to RGB using Chrom-ART Accelerator.
UM2222 Rev 231/76
75
Page 32
PerformanceUM2222
06Y9
&38ORDG
Figure 19. Performance of STM32H7 Series versus STM32F7 Series
The instruction cache and data cache are enabled in the main.c file as shown in the code
below.
6.2 Multi buffering features
The multiple buffering is the use of more than one frame buffer, so that the display ever
shows a screen that is already completely rendered, even if a drawing operation is in
process. When starting the process of drawing, the current content of the front buffer is
copied into a back buffer. After that, all drawing operations take effect only on this back
buffer. After the drawing operation has been completed, the back buffer becomes the front
buffer. Making the back buffer the visible front buffer normally only requires the modification
of the start address in the frame buffer register of the display controller. Now it must be
considered that the display refreshes a display approximately 60 times per second. After
each period, there is a vertical synchronization signal, known as VSYNC signal. The best
moment to make the back buffer the new front buffer is this signal. If not considering the
VSYNC signal, tearing effects may occur, as shown in Figure 20 below.
32/76UM2222 Rev 2
Page 33
UM2222Performance
Figure 20. Example of tearing effect
6.3 Multi layers feature
The windows can be placed in any layer or display. Drawing operations is usable on any
layer or display. Since there are only small differences from this point of view, multiple layers
and multiple displays are handled in the same way (using the same API routines) and are
simply referred to as multiple layers, even if the particular embedded system uses multiple
displays.
Figure 21. Independent layer management
6.4 Hardware acceleration
With the STM32H7 demonstrations, the hardware acceleration capabilities of the STM32H7
devices are used. STemWin offers a set of customization callbacks to change the default
behavior based on the hardware capabilities.
UM2222 Rev 233/76
75
Page 34
PerformanceUM2222
The optimized processes are implemented in the LCDConf.c file, with the following features:
•Color conversion
STemWin works internally with logical colors (ABGR). To be able to translate these
values into index values for the hardware and vice versa, the color conversion routines
automatically use the DMA2D for that operation if the layer works with direct color
mode. This low-level implementation secures that the DMA2D is used each time
multiple colors or index values need to be converted.
•Drawing of index-based bitmaps
When drawing index-based bitmaps, STemWin first loads the bitmap palette into the
DMA2Ds LUT (lookup table) instead of directly translating the palette into index values
for the hardware. Then, one single DMA2D function call performs the drawing
operation.
•Drawing of high-color bitmaps
If the layer works in the same mode as the high-color bitmap has its pixel data
available, one DMA2D function call can draw these bitmaps. The following function is
used to set up such a function:
Setting up the function for mixing up a background and a foreground buffer used for
fading memory devices:
GUI_SetFuncMixColorsBulk(pFunc);
•General alpha blending
The following function replaces the function that is used internally for alpha blending
operations during image drawing (PNG or true color bitmaps) or semitransparent
memory devices:
GUI_SetFuncAlphaBlending(pFunc);
•Drawing antialiased fonts
Setting up the function for mixing single foreground and background colors used when
drawing transparent ant aliased text:
GUI_SetFuncMixColors(pFunc).
34/76UM2222 Rev 2
Page 35
UM2222Performance
06Y9
0D[LPXPIUDPHUDWH
ISV
8SWRISV
[
IDVWHU
670)
DW0+]
670+
DW0+]
6.5 Hardware JPEG Decoding
The JPEG peripheral provides a fast and simple hardware compressor and decompressor
of JPEG images with the full management of JPEG headers. The JPEG decoder outputs
are organized in YCbCr blocks.
The STM32F7 and STM32H7 Series devices support the hardware JPEG decoding.
Using the STM32F7 Series, the conversion from YCbCr to RGB is performed by software.
Using the STM32H7 Series, the YCbCr to RGB conversion is accelerated by the
Chrom-ART allowing to reach 100 fps with 640x480 resolution versus 38 fps with the
STM32F7 Series.
Note:For more details about the JPEG hardware codec performance, please refer to the
application note “JPEG hardware codec peripheral in STM32F76/77xxx and STM32H7x3
line microcontrollers” (AN4996).
Figure 22. Hardware JPEG decoding
UM2222 Rev 235/76
75
Page 36
FootprintUM2222
7 Footprint
The purpose of the following sections is to provide the memory requirements for all the
demonstration modules, including JPEG decoder and STemWin main GUI components. The
aim is to have an estimation of memory requirement in case of suppression or addition of a
module or a feature.
The footprint data is provided for the following environment:
•Toolchain: IAR 7.80
•Optimization: high size
•Board: STM32H743I-EVAL.
Table 6 shows the code memory, data memory and constant memory used for each module.
Table 6. Modules footprint
(1)
Module
Audio5688268761318945
Video5424100228231664
Graphic effect226011210041307
Clock & weather60328443061328
Rocket games20524841715108
System info11520120164
1. All the resources used in the demonstration are stored in the Quad-SPI Flash memory.
Code memory
(bytes)
7.1 STemWin features resources
7.1.1 JPEG decoder
The JPEG decompression uses approximately 33 Kbytes of RAM for decompression
independently of the image size and an amount of bytes depends on the image size. The
RAM requirement can be calculated as follows:
Table 7. RAM requirements for some JPEG resolutions
Data memory
(bytes)
Constant memory
(bytes)
ResolutionRAM usage (Kbytes)
160x12045.512.5
320x34058.025.0
480x27270.537.5
640x48083.050.0
36/76UM2222 Rev 2
RAM usage, size dependent
(Kbytes)
Page 37
UM2222Footprint
The memory required for the decompression is allocated dynamically by the STemWin
memory management system. After drawing the JPEG image, the complete RAM is
released.
7.1.2 GUI components
The operation area of STemWin varies widely, depending primarily on the application and
features used. In the following sections, memory requirements of various modules are
listed, as well as the memory requirements of example applications.
Table 8 shows the memory requirements of the STemWin main components. These values
depend a lot on the compiler options, the compiler version and the CPU used. Note that the
listed values are the requirements of the basic functions of each module.
Additional memory requirements of basic
application when using the Windows manager
Additional memory requirements of basic
application when using memory devices
Additional memory requirements for the
antialiasing software item
The memory requirements of the driver
Driver2 to 820
depend on the configured driver and the
presence of a data cache. With a data cache,
the driver requires more RAM.
If working with a multi-layer or a multi-display
Multi-layer2 to 8-
configuration, additional memory is required
for each additional layer, because each
requires its own driver.
Core5.280
Memory requirements of a typical application
without using additional software items
JPEG1236 KBasic routines for drawing JPEG files
GIF3.317 KBasic routines for drawing GIF files
Sprites4.716Routines for drawing sprites and cursors
Font1 to 4Depends on the font size to be used
Table 9. Widget memory requirements
(1)
ComponentROM (Kbytes)RAM (bytes)
BUTTON140
CHECKBOX152
DROPDOWN152
EDIT128
FRAMEWIN112
UM2222 Rev 237/76
75
Page 38
FootprintUM2222
Table 9. Widget memory requirements
(1)
(continued)
ComponentROM (Kbytes)RAM (bytes)
GRAPH148
GRAPH_DATA_XY1-
HEADER132
LISTBOX156
LISTVIEW144
MENU152
MULTIEDIT116
PROGBAR120
RADIO BUTTON132
SCROLLBAR114
SLIDER116
TEXT116
CALENDAR132
1. The listed memory requirements of the widgets contain the basic routines required for creating and drawing
the widget. Depending on the specific widget, several additional functions available that are not listed in
this table.
38/76UM2222 Rev 2
Page 39
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
8 Functional description of STM32H743I-EVAL,
STM32H747I-EVAL and STM32H747I-DISCO
demonstration modules
8.1 STemWin
8.1.1 Audio player
Overview
The audio player module provides a complete audio solution based on the
STM32H7
WAV format but may be extended to support other compressed formats such as MP3 and
WMA audio formats.
Features
•Audio format: WAV format without compression with 8 k to 96 k sampling
•Embedded equalizer and loudness control
•Performance: MCU Load < 5 %
•Audio files stored in SD card or USB storage
•Only 8-Kbyte RAM required for audio processing
Series, and delivers a high-quality music experience. It supports playing music in
Note:MP3 format supported only by STM32H747 EVAL and Discovery boards.
Architecture
Figure 23 shows the different audio player parts and their connections and interactions with
the external components.
UM2222 Rev 239/76
75
Page 40
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
06Y9
'HPRNHUQHO
3URFHVVIORZ
3OD\EDFN
FRQWURO
3URFHVV
FRQWURO
$XGLREXIIHU
$XGLR
SURFHVVLQJ
67
VNLQV
&38
XWLOLWLHV
)UHH5726
67HP:LQFRUH
670+$/GULYHUV
)LOHV\VWHP)DW)6
$XGLR
%63GULYHU
$XGLRSDWK
6$,FRGHF
$XGLRGDWDSDWKPLFUR6'RU86%VWRUDJH
06Y9
&RQWUROV
'DWD
DFTXLVLWLRQ
$XGLRSOD\HU
:LQGRZ
PDQDJHU
:0
(ODVWLFEXIIHU'0$
$XGLRSURFHVV
0HPRU\DFFHVV
6$,
$XGLRFRGHF
PLFUR6'86%VWRUDJH
Figure 23. Audio player module architecture
Performance
Figure 24 shows the used performance mechanisms in audio process and audio player.
Figure 24. Audio player module process
Process description
The audio player initialization is done in startup step. In this step, all the audio player states,
the speaker and the volume value are initialized only when the play button in the audio
player interface is pressed to start the process.
Figure 25 shows the audio player module startup from the main desktop menu.
40/76UM2222 Rev 2
Page 41
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
Figure 25. Audio player module startup
UM2222 Rev 241/76
75
Page 42
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
Hardware connectivity
Figure 26. Connectivity of audio player module hardware
42/76UM2222 Rev 2
Page 43
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
Audio player module controls
ButtonPreviewBrief description
Play
Pause
Stop
Table 10. Audio player module controls
– Change the audio player state to "AUDIOPLAYER_PLAY"
– Read the wave file from storage unit
– Set the frequency
– Start or resume the audio task
– Start playing audio stream from a data buffer using
BSP_AUDIO_OUT_Play function in BSP audio driver
– Replace play button by pause button
– Suspend the audio task
– Pause the audio file stream
– Replace pause button by play button
– Close the wave file from storage unit
– Suspend the audio task
– Stop audio playing
– Change the audio player state to "AUDIOPLAYER_STOP"
Previous
Next
Add file to
playlist
Visualization
Menu
Vol ume
Time
– Point to the previous wave file
– Stop audio playing
– Start playing the previous wave file if play button is pressed
– Point to the next wave file
– Stop audio playing
– Start playing the next wave file if play button is pressed
– Open playlist window
– Add audio file from SD Card or choose audio file to play
Disable or enable the display of graphic animation based on real
time PCM audio samples
Close audio player module
– Volume up
– Volume Down
– Move the Music time forward
– Move the Music time back
UM2222 Rev 243/76
75
Page 44
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
06Y9
6WRUDJH
)DW)6
6:-3(*
GHFRGLQJ
9LGHRSOD\HU
+:-3(*
GHFRGLQJ
&KURP$UW
XSGDWH
GLVSOD\EXIIHU
'LVSOD\
6RIWZDUH-3(*GHFRGLQJ
6WRUDJH
)DW)6
9LGHRSOD\HU
+:-3(*
GHFRGLQJ
&KURP$UW
XSGDWH
GLVSOD\EXIIHU
'LVSOD\
+DUGZDUH-3(*GHFRGLQJ
<&E&UWR
5*%GDWD
FRQYHUVLRQ
5HTXLUHVKLJK&38UHVRXUFHV
8.1.2 Video player
Overview
The video player module provides a video solution based on the STM32H7 Series and
STemWin movie API. It supports playing movie in AVI format.
Features
•Video format: AVI video format
•Performance: MCU Load < 5 % and rate up to 25 fps
•Video files stored in SD card
•Use of the two LCD layers (playback control and video display)
•64-Kbyte RAM required for JPEG decoding
Figure 27 shows the different video player modules and their connections and interactions
with the external components.
Figure 27. Video player module architecture
44/76UM2222 Rev 2
Page 45
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
Figure 28 shows the GUI, display and video player process and performance.
Figure 28. Video player module process
Functional description
Figure 29 shows the video player module startup by touching the video player icon.
Figure 29. Video player module startup
Note:After 5 seconds without touching the screen, the video controls buttons Play, Next, Previous
and Exit disappear.
UM2222 Rev 245/76
75
Page 46
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
Table 11 summarizes the different actions behind each control button.
ButtonPreviewBrief description
Play
Pause
Previous
Next
Table 11. Video player module controls
– Read the AVI file from storage unit
– Start playing audio stream
– Replace play/pause button by pause/play button
– Point to the previous AVI file
– Stop video playing
– Start playing the previous AVI file
– Point to the previous AVI file
– Stop video playing
– Start playing the previous AVI file
HW JPEG
ChromART
Exit
Volume
– Enable and disable the JPEG hardware decoding
– Enable and disable the use of Chrom-ART for YCbCr to
ARGB conversion
– Close video player module
– Volume up
– Volume down
– Move the video time forward
– Move the video time back
46/76UM2222 Rev 2
Page 47
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
8.1.3 Rocket game
Overview
The rocket game shows the graphic performance of the Chrom-ART Accelerator. The
objective is to control the rocket by moving it on the screen. The player has to collect the
maximum number of coins to get the best score.
Functional description
1.Start the rocket game by touching the game icon (see Figure 30).
Figure 30. Rocket game startup
2. Press the Play button to start playing and control the rocket by moving on the screen to
collect the maximum number of coins and avoid the crash with the planets.
Figure 31. Rocket game ongoing
UM2222 Rev 247/76
75
Page 48
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
3. Game is over when the rocket crashes the planet.
Figure 32. Rocket game end
8.1.4 Clock and weather
Overview
The clock and weather module allows the time and date display and adjustment by
changing the real-time configuration (RTC).
Note:Only graphical aspect of the weather functionality is integrated.
1.Start the module by touching the clock and weather icon.
Figure 33. Clock and weather startup
2. Press Settings button to choose the clock and change the skin.
Figure 34. Clock and weather module settings
48/76UM2222 Rev 2
Page 49
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
Figure 35 shows the different skins available when changing the clock.
Figure 35. Clock and weather module skins
3. Press Next and Previous buttons to set the time and date.
4. Press Menu button to return to the main window of the module.
8.1.5 Graphic effect
Overview
The graphic effect module demonstrates the computing capabilities of the platform to render
a real-time effect at full screen resolution.
The implemented filters are the following:
•Edge detection filter
•Smoothing filter
•Sharping filter
•Raising filter
•Motion blur filter
The CPU load metrics are displayed on the middle of the top screen.
Figure 36. Graphic effect main screen
UM2222 Rev 249/76
75
Page 50
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
Note:The BMP files used with this module need to be stored in the SD card or USB storage and
under “BMP” folder.
8.1.6 Dual core module
Overview
The dual core module demonstrates the platforms dual core capability while decoding four
video files and rendering fractal bitmap.
Checking the check box offloads the fractal rendering on the second core (CM4). This
should decrease the CM7 core loading.
Figure 37. Dual core module
8.1.7 System information
Overview
The system information shows the main demonstration information, such as the used board,
the STM32H7 part number, the current CPU clock and the demonstration revision.
Figure 38. System information main screen
50/76UM2222 Rev 2
Page 51
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
8.2 TouchGFX demonstration
Overview
The TouchGFX demonstration is available in binary format.
To show the TouchGFX demonstration, the user needs to load the full binary file available
under Demonstration/binaries
- STM32CubeDemo_STM32H743-Eval_VX.Y.Z_FULL.hex.
Figure 39. TouchGFX demonstration
8.2.1 Audio player module
Overview
The audio player module provides a complete audio solution based on the STM32H7 Series
and delivers a high-quality music experience. It supports playing music in WAV format but
may be extended to support other compressed formats such as MP3 and WMA audio
formats. In the audio module, the user can select which song to play, whether by selecting it
from the playlist consisting of all the songs on the device, or by going through the directories
where the songs are. The audio player also consists of an equalizer that enables the user to
adjust the sound.
Figure 40. TouchGFX - Audio player module
UM2222 Rev 251/76
75
Page 52
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
Figure 41. The three audio menus, playlist (left), directories (middle) and equalizer (right)
8.2.2 Graphics effect
Overview
Graphics Effect shows how TouchGFX is able to use the texture mapper to change the
transparency, rotate and scale images at run-time.
The module consists of a 3D cube, which rotates, and two sliders, with which the user can
change the scale and transparency of the cube.
Functional Description
1.When the module is entered, a cube is visible in the center of the screen.
Figure 42. Graphics effect module
2. Moving the left slider changes the transparency and moving the right slider, changes
the scale.
3. Swiping the cube results in the rotation of the cube speeds up in the direction of the
swipe.
8.2.3 Video player module
Overview
The video player module provides a video solution based on the STM32H7 Series and the
TouchGFX APIs. It supports the playing movie in AVI format.
In the video player module, the user is able to see the effect of the JPEG decoder, by turning
it on/off while a video is playing. Selecting a video is whether done via a playlist consisting of
all the videos on the device, or by going through the directories where the videos are placed.
52/76UM2222 Rev 2
Page 53
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
Figure 43. TouchGFX - Video player module
Figure 44. The three video player menus, video player (left), directory (middle) and playlist (right)
8.2.4 Time and calendar module
Overview
The time and calendar lets the user change the time and date which is handle by the realtime configuration (RTC). In the module, the user is also able to select different watch faces
to show the time.
UM2222 Rev 253/76
75
Page 54
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
Functional description
1.Entering the module, a clock and a calendar displays the time and that is currently in
the RTC, together with the selected watch face.
Figure 45. TouchGFX - Time and calendar module
2. Pressing the settings button changes the menu to the clock face setting, which is
selected by pressing next.
3. After choosing a clock face, the user can set the time and confirm it by pressing next.
4. The last setting is the date, which is set by pressing done. If the icon in the top left
corner the Time and calendar module is exited and the changes that has not been
confirmed by pressing done is discarded.
Figure 46. The three settings menus, watch face (left), set time (middle) and set date (right)
8.2.5 Home control module
Overview
The Home Control module allows the user to control the lights, blinds and security for the
different rooms in a house. The module also lets the user view statistic based on the
controllable elements.
54/76UM2222 Rev 2
Page 55
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
Functional description
1.Entering the module brings up a menu, which lets the user select between the four
options Light, Blinds, Security and Statistics.
Figure 47. TouchGFX - Home control module
2. In the light and security menus, the user is
able to turn the two settings ON/OFF for
single rooms and in the blinds menu the user is able to adjust how much the blinds are
open.
Figure 48. Menu to set the blinds, like light and security but options only to tune on and off
3. Entering the security and statistics menus requires a login in pattern.
4. In the statistics screen, graphs are used t
o show the statistics for the three options.
Screen lock (left) and statistics menu (right)
UM2222 Rev 255/76
75
Page 56
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
8.2.6 Light effect module
The light effect module shows the calculation capabilities of the STM32H7 microcontroller
via an advanced controlled light effect.
Figure 49. TouchGFX - Light effect module
56/76UM2222 Rev 2
Page 57
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
8.2.7 External hardware module
The external hardware module shows how TouchGFX can communicate with other parts of
the H7.
In the module are the user able to view the MCU Junction temperature and adjust the
screen brightness.
When entering the module the user is presented with the Junction temperature and by
swiping right, the user is able to use a slider to adjust the screen brightness.
Figure 50. TouchGFX - External hardware module
8.2.8 Bird eat coin
Overview
The Bird Eat Coin game highlights the graphic performance of the Chrom-ART Accelerator.
The goal of the game is to use the bird to "eat" the coins coming at the bird to score points.
If the bird eats a bullet instead of a coin the game is lost and the score resets to 0.
UM2222 Rev 257/76
75
Page 58
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
Functional Description
1.When entering the Bird Eat Coin from the main menu the game starts.
Figure 51. Bird eat coin game
2. To move the bird up and down, the user has to press the left button, with the wing, in
the bottom to move up, and release it to move down.
3. To see the performance enhancement that the Chrom-ART Accelerator delivers,
Chrom-ART can be enabled or disabled by pressing the right button, with the ST logo,
in the bottom.
8.2.9 Knight hit zombie game
The knight hit zombie game shows the graphic performance of the Chrom-ART Accelerator
and TouchGFX graphical stack.
Figure 52. TouchGFX - Knight hit zombie game
8.2.10 2048 Puzzle game
Overview
The 2048 game module, is the classic game 2048 created with TouchGFX, which show
cases the high-quality graphics and smooth animations that TouchGFX delivers. In the
game, the user can either play the game or simulate a game by selecting auto play. To
describe how the game is played a How To Play button opens a modal window, which
contains the rules.
58/76UM2222 Rev 2
Page 59
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
1.When the 2048 module is entered, the game is started and the user can interact with
the game board.
Figure 53. 2048 Puzzle game module
2. To restart the game the user can select the button New Game.
3. Simulating a game is done by pressing the Auto Play button and the tiles I being moved
by the H7.
4. Selecting How To Play opens a modal windows, which describes the rules and the
goal of the game.
Figure 54. The How To Play modal window
UM2222 Rev 259/76
75
Page 60
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
8.3 Embedded wizard demonstration
8.3.1 Overview
The embedded wizard demonstration is available in binary format.
To show the embedded wizard demonstration, the user needs to load the full binary file
available under Demonstration/binaries
- STM32CubeDemo_STM32H743-Eval_VX.Y.Z_FULL.hex
Figure 55. Embedded wizard demonstration
8.3.2 Video player module (only H743I-EVAL)
The video player module provides a video solution based on the STM32H7 Series and the
embedded wizard APIs. It supports the playing movie in AVI format.
The video files must be named as follows:
•video0_800_480.avi
•video1_800_480.avi
•video2_800_480.avi
•video3_800_480.avi
Figure 56. Embedded wizard - Video player module
60/76UM2222 Rev 2
Page 61
UM2222 Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DIS-
8.3.3 Graphic effect module (only H743I-EVAL)
The graphic effect module demonstrates the computing capabilities of the platform to render
a real-time effect at full screen resolution.
The implemented filters are the following:
•Edge detection filter
•Smoothing filter
•Sharping filter
•Raising filter
•Motion blur filter
The CPU load metrics are displayed on the middle of top screen.
The TapTap plane module allows the user to control a plane by touching anywhere on the
screen. The player has to collect the maximum number of stars to get the best score.
To display the processing capabilities of STM32H7 Series, the user can enable or disable
the Chrom-ART Accelerator by pressing on the Chrom-ART button at the bottom right of the
screen.
Figure 58. Embedded wizard - TapTap plane module
UM2222 Rev 261/76
75
Page 62
Functional description of STM32H743I-EVAL, STM32H747I-EVAL and STM32H747I-DISCO
8.3.5 Graphics accelerator module
The graphic accelerator module is used to display the Chrom-ART accelerator capabilities
and how it offloads the CPU.
UM2222Functional description of the STM32H745I-DISCO demonstration modules
9 Functional description of the STM32H745I-DISCO
demonstration modules
The STM32H745I dual core Discovery board demonstration aims to highlight the dual core
aspects and the analog features of the STM32H745I dual core device.
The Demonstration is based on a main menu that is usable to switch between:
•Oscilloscope and signals generator application
•EEMBC
•System information display
9.1 Main graphical interface
Overview
®
CoreMark® application (provided in binary format)
The main graphical interface of the demonstration allows the user to select the application to
launch. Here it is possible to run the Oscilloscope, the EEMBC
display the system information.
®
CoreMark® applications or
Content
The graphical interface contains three buttons to select by the user:
•Oscilloscope and signals generator
•EEMBC
®
CoreMark® benchmark
Figure 68. Main menu
9.2 System information
The system information shows the main demonstration information such as the board name,
the used device part number, the CPU speeds and demonstration firmware version.
UM2222 Rev 267/76
75
Page 68
Functional description of the STM32H745I-DISCO demonstration modulesUM2222
Figure 69. System information module
9.3 EEMBC® CoreMark
Figure 70. EEMBC® CoreMark® application
EEMBC® CoreMark® is a benchmark that measures the performance of the
microcontrollers (MCUs) and central processing units (CPUs) used in embedded systems.
This application shows the STM32H745 device Cortex-M7 and Cortex-M4 scores based on
this benchmark.
A simple touch on the screen starts the benchmark simultaneously on both Cortex-M7 and
Cortex-M4 and displays the score on real STM32H745 device giving:
•RW data: Cortex-M7 in DTCM, Cortex-M4 in D2 domain SRAM
•Cortex-M7 L1-Cache ON, Cortex-M4 ART ON
•Number of iterations: Cortex-M7 25000, Cortex-M4 10000
•Compiler: IAR embedded workbench for ARM 7.80
68/76UM2222 Rev 2
Page 69
UM2222Functional description of the STM32H745I-DISCO demonstration modules
By Default, the STM32H745I-DISCO board is configured to operate in SMPS power mode
to reach 400
When the board is configured in LDO power mode (with the appropriate solder bridges), the
STM32H745I can be overclocked to 480
Cortex-M4, giving the following CoreMarks performances:
•~2424 CoreMarks for Cortex-M7
•~800 CoreMarks for Cortex-M4
Hardware and software steps to switch from SMPS power configuration to LDO are detailed
in the file Demonstration/STM32H745-Discovery_Demo/CM7/Inc/main_common.h within
the STM32CubeH7 MCU package.
MHz clock for the Cortex-M7 and 200 MHz for the Cortex-M4.
MHz for the Cortex-M7 and 240 MHz for the
9.4 Oscilloscope and signals generator
Figure 71. Oscilloscope and signals generator application
9.4.1 Overview
This application is intended to demonstrate dual core and analog feature capabilities of the
STM32H745 device. Each core is configured to handle a specific analog application:
Cortex-M7 core:
•Execution from the internal flash
•Handle of the signals generator application (SG)
Cortex-M4 core:
•Execution from D2 domain local RAM. Cortex-M4 code is stored in a dedicated Flash
section then loaded in the target execution D2 RAM by the Cortex-M7
•Handle of the digital signal oscilloscope (DSO).
The digital signal oscilloscope (DSO) can be used together with the signal generator
application (SG) or with an external signal generator. In this case, the signal generator
application (SG) can be shut down by pressing the user button in order to put the Cortex-M7
power domain (D1 domain) in STANDBY mode.
Consequently, only the Cortex-M4 domain (D2 domain) keeps running the oscilloscope
application. The execution scheme is performed to allow this optimized power configuration:
UM2222 Rev 269/76
75
Page 70
Functional description of the STM32H745I-DISCO demonstration modulesUM2222
The Cortex-M4 is executed from D2 RAM. It uses only D2 domain peripherals, to put the D1
domain in standby mode safely.
Data acquisition and sampling using the STM32H7 peripherals
Dedicated PC GUI:
The Digital Signal Oscilloscope (DSO) comes with a dedicated PC Graphical User Interface.
This GUI is available under PC_Software within the demonstration Package, to change the
oscilloscope settings, visualize the acquired signals and perform mathematical processing.
Communication between the GUI and the STM32H7 is ensured by UART through ST-Link
Virtual COM port.
Signal generator:
The signal generator is based on the STM32H745 DAC to generate different signal patterns.
The signal can be then injected into the Oscilloscope using an external wire connection from
the DAC output pin to the ADC input pin.
The application provides an HMI on the board LCD display to change the following
configurations:
–Signal type: DC, square, sine, triangle, escalator or noise
–Signal frequency: 5,000 kHz to 130,000 kHz
–Signal amplitude: 0.100 V to 3.300 V
–Brief status current output signal
Dual Core aspect:
The demonstration is split between the STM32H745 Cores (Cortex-M4 and Cortex-M7) as
follow:
•Cortex-M4 to handle data acquisition and communication with the PC GUI
•Cortex-M7 to handle the auto test mode (LCD HMI, DAC control)
–Cortex-M7 goes to low power mode when auto test mode is switched off.
–User button let the STM32H745 D1 power domain enter or exit standby mode
–The entire STM32H745 D1 power domain is Standby in stop mode including the
FLASH, Cortex-M4 continue running his code from D2 domain RAM.
The figure below summarizes the whole process and shows how the different demonstration
modules are split between the Cortex-M7 and Cortex-M4.
70/76UM2222 Rev 2
Page 71
UM2222Functional description of the STM32H745I-DISCO demonstration modules
Figure 72. Oscilloscope and signals generator overview
9.4.3 Hardware and software setup
1.Install the PC GUI application on your PC
•This application is used to:
a) Configure the ADC parameters
b) Receive and visualize samples acquired by the ADC and sent by the Cortex-M4
•The communication between the PC application and the STM32H745I-DISCO is
ensured by the ST-Link USB connector used as Virtual COM port
•Connect the STM32H745I-DISCO USB ST-LINK port to the PC
2. STM32H745I-DISCO HW setup
In order to inject the signal generator output to the oscilloscope input, use an external wire
connection from the on-board STMod+ (pin13) to CN7 (pin A2) as shown in
•STMod+ (pin13): the signal generator (DAC) output pin
•CN7 (pin A2): this is the Oscilloscope (ADC) input pin
Figure 73:
UM2222 Rev 271/76
75
Page 72
Functional description of the STM32H745I-DISCO demonstration modulesUM2222
Figure 73. Signal generator to oscilloscope connection
The user may choose to inject his own signal to the oscilloscope, in this case:
•Remove the STMod+ (pin13) to CN7 (pin A2) connection
•Inject the signal to be sampled by the oscilloscope: connect external signal source to
CN7 (pin A2)
•The signal parameter must be as follow:
–Amplitude: from 0 to 3.3 V
–Frequency: up to 1 MHz
Figure 74. External signal to oscilloscope connection
9.4.4 How to use
1.PC Software Side:
Start the PC oscilloscope application
•In the Communication Settings
–Select the Serial Port corresponding to the ST-Link Virtual COM
–Select the Baud Rate 115200
–Click on Connect
Click on Start Scope to visualize the input signal.
72/76UM2222 Rev 2
Page 73
UM2222Functional description of the STM32H745I-DISCO demonstration modules
Figure 75. PC oscilloscope screen
2. STM32H745I-DISCO board side:
The user may select the type, amplitude and frequency of the signal generator from the LCD
by touching the corresponding buttons.
Figure 76. STM32H745I-DISCO board screen
If there is no user action on the touchscreen during 15 seconds, the signal generator goes to
auto mode, randomly changing the signal type, frequency and amplitude.
UM2222 Rev 273/76
75
Page 74
Functional description of the STM32H745I-DISCO demonstration modulesUM2222
The user may switch off the Cortex-M7 (D1 domain goes to standby mode):
•Press User button on the STM32H745I-DISCO board to put D1-Domain in standby
mode
–All the STM32H745 D1 power domain goes to standby (including the Cortex-M7
and the internal FLASH and the LCD controller).
–The D2 domain remains in run mode with Cortex-M4 running from the local D2
RAM.
–The signal generator output is switched off (DAC is stopped) and the LCD is
shutdown.
–The Cortex-M4 still executes the oscilloscope application.
–An external signal must be connected to the oscilloscope (ADC) input (pin A2 on
CN7 connector).
•Pressing again the user button wakes up the Cortex-M7 D1 power Domain and
resumes the signal generator application
74/76UM2222 Rev 2
Page 75
UM2222Revision history
Revision history
Table 12. Document revision history
DateRevisionChanges
8-Dec-20171Initial version
Updated Introduction, Section 8 to add new supported
12-Jun-20192
boards and applications
Added Section 9 specific to STM32H745I-DISCO
UM2222 Rev 275/76
75
Page 76
UM2222
IMPORTANT NOTICE – PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order
acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or
the design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. For additional information about ST trademarks, please refer to www.st.com/trademarks.All other
product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.