STM32 X-CUBE-IPS Industrial Digital Output Software User Manual

June 10, 2024
STM

STM32 X-CUBE-IPS Industrial Digital Output Software

X-CUBE-IPS Industrial Digital Output Software for STM32

Nucleo

Product Information

The X-CUBE-IPS Industrial Digital Output Software is an
expansion of the STM32Cube software technology, designed to make
portability across different STM32 microcontrollers easier. This
software package is used to build applications for high efficiency
high-side switches and includes sample implementations for each
expansion board supported in the package, for both NUCLEOF401RE and
NUCLEO-G431RB development boards.

The key features of this software package are:

  • GPIOs, PWMs, and IRQs

  • Fault/diagnostics interrupt handling

  • Sample implementation available on the following expansion
    boards:

    • IPS1025H-32
  • Easy portability across different MCU families, thanks to
    STM32Cube

  • Free, user-friendly license terms

This software allows controlling the digital output of a single
expansion board or a properly configured stack of these expansion
boards mounted upon a NUCLEO-F401RE or NUCLEO-G431RB development
board. It also allows you to program the expansion boards to be
switched on and off using PWM with a specific frequency in the
0-100 Hz range (0.1 Hz resolution), and specific duty cycle in the
0-100% range (1% resolution). The package includes an example to
test the device functionality while driving the channels in the
steady state and PWM.

Product Usage Instructions

To use the X-CUBE-IPS Industrial Digital Output Software, follow
these steps:

  1. Connect the expansion board to the NUCLEO-F401RE or
    NUCLEO-G431RB development board.

  2. Download and install the STM32Cube software.

  3. Download and install the X-CUBE-IPS software package.

  4. Use the sample implementations provided with the package to
    build your own application for controlling the digital output of
    the expansion board(s).

  5. If necessary, program the expansion board(s) to be switched on
    and off using PWM with a specific frequency and duty cycle
    according to your application requirements.

  6. Test the device functionality using the example provided with
    the package while driving the channels in the steady state and
    PWM.

UM3035
User manual
Getting started with X-CUBE-IPS industrial digital output software for STM32 Nucleo
Introduction
With the X-CUBE-IPS software package you can easily access the features of the ICs hosted in the below expansion boards for STM32 Nucleo: · 0.7 A current rating with X-NUCLEO-OUT10A1, X-NUCLEO-OUT11A1, X-NUCLEO-OUT12A1, hosting respectively
IPS161HF, ISO808 and ISO808A · 1.0 A current rating with X-NUCLEO-OUT13A1, X -NUCLEO-OUT14A1, hosting respectively ISO808-1 and ISO808A-1 · 2.5 A current rating with X-NUCLEO-OUT03A1 (hosting the IPS2050H), X-NUCLEO-OUT05A1 (hosting the IPS1025H),
X-NUCLEO-OUT08A1 (hosting the IPS160HF), or X-NUCLEO-OUT15A1 (hosting the IPS1025HF) · 5.7 A current rating with X-NUCLEO-OUT04A1 or X-NUCLEO-OUT06A1, hosting respectively the IPS2050H-32 and the
IPS1025H-32 The expansion is built on STM32Cube software technology to ease portability across different STM32 microcontrollers. The software comes with sample implementations for each expansion board supported in the package, for both NUCLEOF401RE and NUCLEO-G431RB development boards.
Related links
Visit the STM32Cube ecosystem web page on www.st.com for further information

UM3035 – Rev 2 – December 2022 For further information contact your local STMicroelectronics sales office.

www.st.com

1

Acronyms and abbreviations

Acronym API BSP CMSIS HAL IDE LED SPI

Table 1. List of acronyms Description
Application programming interface Board support package Cortex® microcontroller software interface standard Hardware abstraction layer Integrated development environment Light emitting diode Serial peripheral interface

UM3035
Acronyms and abbreviations

UM3035 – Rev 2

page 2/50

UM3035
X-CUBE-IPS software expansion for STM32Cube

2

X-CUBE-IPS software expansion for STM32Cube

2.1

Overview

The X-CUBE-IPS software package expands the STM32Cube functionality.

The package key features are:

·

Software package to build applications for high efficiency high-side switches:

­ octal: ISO808, ISO808-1, ISO808A, and ISO808A-1

­ dual: IPS2050H and IPS2050H-32

­ single: IPS160HF, IPS161HF, IPS1025H, IPS1025H-32, and IPS1025HF

·

GPIOs, PWMs, and IRQs

·

Fault/diagnostics interrupt handling

·

Sample implementation available on the following expansion boards, when connected to a NUCLEO-

F401RE or NUCLEO-G431RB development board:

­ X-NUCLEO-OUT03A1

­ X-NUCLEO-OUT04A1

­ X-NUCLEO-OUT05A1

­ X-NUCLEO-OUT06A1

­ X-NUCLEO-OUT08A1

­ X-NUCLEO-OUT10A1

­ X-NUCLEO-OUT11A1

­ X-NUCLEO-OUT12A1

­ X-NUCLEO-OUT13A1

­ X-NUCLEO-OUT14A1

­ X-NUCLEO-OUT15A1

·

Easy portability across different MCU families, thanks to STM32Cube

·

Free, user-friendly license terms

This software allows controlling the digital output of a single expansion board, or a properly configured stack of these expansion boards mounted upon a NUCLEO-F401RE or NUCLEO-G431RB development board.

It also allows you to program the expansion boards to be switched on and off using PWM with a specific frequency in the 0-100 Hz range (0.1 Hz resolution), and specific duty cycle in the 0-100% range (1% resolution).

The package includes an example to test the device functionality while driving the channels in the steady state and PWM.

2.2

Architecture

This software is a fully compliant expansion of STM32Cube architecture for the development of applications for high efficiency (dual and single) high-side intelligent power switch (IPS) digital output modules.

The software is based on the STM32CubeHAL hardware abstraction layer for the STM32 microcontroller. The package extends STM32Cube by providing a board support package (BSP) for the digital output expansion boards based on the devices listed in Section 2.1 Overview.

The software layers used by the application software to access and use the industrial digital output expansion boards are:

·

STM32Cube HAL layer: consists of simple, generic and multi-instance APIs (application programming

interfaces) which interact with the upper layer applications, libraries and stacks. These generic and

extension APIs are based on a common framework so that overlying layers like middleware can function

without requiring specific microcontroller unit (MCU) hardware information. This structure improves library

code reusability and guarantees easy portability across other devices.

·

Board support package (BSP) layer: provides software support for the STM32 Nucleo board peripherals,

excluding the MCU. These specific APIs provide a programming interface for certain board specific

peripherals like LEDs, user buttons, etc., and can also be used to fetch individual board version

information. It also provides support for initializing, configuring and reading data.

UM3035 – Rev 2

page 3/50

Figure 1. X-CUBE-IPS expansion software architecture

UM3035
Folder structure

2.3

Folder structure

Figure 2. X-CUBE-IPS package folder structure

The following folders are included in the software package:

·

htmresc contains graphics for html pages

·

Documentation contains a compiled HTML file generated from the source code, detailing the software

components and APIs.

·

Drivers contains:

­ STM32Cube HAL subfolders, specifically STM32G4xx_HAL_Driver and STM32F4xx_HAL_Driver. These files are not specific for the X-CUBE-IPS software but come directly from the STM32Cube framework and represent the hardware abstraction layer code for the STM32 MCUs.

­ a CMSIS folder, which contains the Cortex® microcontroller software interface standard files from Arm. These files are vendor-independent hardware abstraction layers for the Cortex-M processor
series. This folder comes also unchanged from the STM32Cube framework.

­ a BSP folder containing the code required for the configuration of the expansion boards listed in Section 2.1 Overview, the drivers for the IC listed in Section 2.1 Overview, and the switch API functions.

·

Projects contains sample applications for all supported IPS products, provided for NUCLEO-F401RE and

NUCLEO-G431RB platforms.

UM3035 – Rev 2

page 4/50

2.3.1
2.3.1.1 2.3.1.2 2.3.1.3 2.3.1.4 2.3.1.5

UM3035
Folder structure

BSPs

For the X-CUBE-IPS software, different BSPs are used:

·

STM32F4xx-Nucleo, STM32G4xx_Nucleo

·

IPS1025H_2050H

·

IPS1025HF

·

IPS160HF_161HF

·

ISO808

·

ISO808-1

·

ISO808A

·

ISO808A-1

·

OUT0xA1

·

OUT08_10A1

·

OUT15A1

·

OUT11_13A1

·

OUT12_14A1

STM32F4xx-Nucleo, STM32G4xx_Nucleo
Depending on the STM32 Nucleo development board used, these BSPs provide an interface to configure and use the development board peripherals with the expansion boards listed in Section 2.1 Overview.
Each folder (STM32F4xx-Nucleo, STM32G4xx_Nucleo) contains couples of .c/.h files (stm32[code]xx_nucleo.c/.h, where [code] is the MCU family code F4 or G4), which come from the STM32Cube framework without modification. They provide the functions to handle the user button and LEDs of the corresponding development board.

IPS1025H_2050H

The IPS1025H_2050H BSP component provides the driver functions for the STMicroelectronics intelligent power switch devices in the folder DriversBSPComponentsips1025h_2050h.

This folder contains:

·

ips1025h_2050h.c: core functions of the IPS1025H, IPS1025H-32, IPS2050H and IPS2050H-32 drivers

·

ips1025h_2050h.h: declaration of the IPS1025H, IPS1025H-32, IPS2050H and IPS2050H-32 driver

functions and their associated definitions

IPS1025HF

The IPS1025HF BSP component provides the driver functions for the STMicroelectronics intelligent power switch devices in the folder DriversBSPComponentsips1025hf.

This folder contains:

·

ips1025hf.c: core functions of the IPS1025HF drivers

·

ips1025hf.h: declaration of the IPS1025HF driver functions and their associated definitions

IPS160HF_161HF

The IPS160HF_161HF BSP component provides the driver functions for the STMicroelectronics intelligent power switch devices in the folder DriversBSPComponentsips160hf_161hf.

This folder contains:

·

ips160hf_161hf.c: core functions of the IPS160HF and IPS161HF drivers

·

ips160hf_161hf.h: declaration of the IPS160HF and IPS161HF driver functions and their associated

definitions

ISO808
The ISO808 BSP component provides the driver functions for the STMicroelectronics intelligent power switch devices in the folder DriversBSPComponentsiso808.

UM3035 – Rev 2

page 5/50

UM3035
Folder structure

2.3.1.6 2.3.1.7 2.3.1.8 2.3.1.9 2.3.1.10 2.3.1.11

This folder contains:

·

iso808.c: core functions of the ISO808 and ISO808-1 drivers

·

iso808.h: declaration of the ISO808 and ISO808-1 driver functions and their associated definitions

ISO808A

The ISO808A BSP component provides the driver functions for the STMicroelectronics intelligent power switch devices in the folder DriversBSPComponentsiso808a.

This folder contains:

·

iso808a.c: core functions of the ISO808A and ISO808A-1 drivers

·

iso808a.h: declaration of the ISO808A and ISO808A-1 driver functions and their associated definitions

OUT08_10A1
The OUT08_10A1 BSP component contains board support package files for the X -NUCLEO-OUT08A1 and X-NUCLEO-OUT10A1 expansion boards. These files are dedicated to the functions necessary to drive the power switches in the steady-state and in PWM mode using the GPIOs.
The files are also used to obtain the status of the diagnostics and output feedback pins.
Through these functions, the channel can be set, reset, or configured in the PWM mode with a specific frequency and duty cycle.

OUT0xA1
The OUT0xA1 BSP component contains board support package files for the X -NUCLEO-OUT0xA1 board family (X-NUCLEO-OUT03A1, X-NUCLEO-OUT04A1, X-NUCLEO- OUT05A1, X-NUCLEO-OUT06A1), which are dedicated to the functions necessary to drive the power switches in the steady-state and in PWM mode using the GPIOs.
The files are also used to obtain the status of the diagnostics and output feedback pins. Through these functions, one or more channels can be set, reset, or configured in the PWM mode with a specific frequency and duty cycle.

OUT11_13A1
The OUT11_13A1 BSP component contains board support package files for the X -NUCLEO-OUT11A1 and X-NUCLEO-OUT13A1 expansion boards. These files are dedicated to the functions necessary to drive the power switches in the steady-state and in the PWM mode using the GPIOs.
The files are also used to obtain the status of the diagnostics and output feedback pins. Through these functions, Direct Control Mode or Synchronous Control Mode can be managed, one or more channels can be set, reset, or configured in the PWM mode with a specific frequency and duty cycle.

OUT12_14A1
The OUT12_14A1 BSP component contains board support package files for the X -NUCLEO-OUT12A1 and X-NUCLEO-OUT14A1 expansion boards. These files are dedicated to the functions necessary to drive the power switches in the steady-state and in the PWM mode using the GPIOs.
The files are also used to obtain the status of the diagnostics and output feedback pins. Through these functions, using the SPI interface, one or more channels can be set, reset, or configured in the PWM mode with a specific frequency and duty cycle.

OUT15A1
The OUT15A1 BSP component contains board support package files for the X -NUCLEO-OUT15A1 expansion board. These files are dedicated to the functions necessary to drive the power switches in the steady-state and in PWM mode using the GPIOs.
The files are also used to obtain the status of the diagnostics and output feedback pins. Through these functions, the channel can be set, reset, or configured in the PWM mode with a specific frequency and duty cycle.

UM3035 – Rev 2

page 6/50

2.3.2

UM3035
Folder structure

Projects

For each STM32 Nucleo platform, one example project is available in the folders:

·

ProjectsSTM32F401RE-NucleoExamplesOut03_04

·

ProjectsSTM32G431RB-NucleoExamplesOut03_04

·

ProjectsSTM32F401RE-NucleoExamplesOut05_06

·

ProjectsSTM32G431RB-NucleoExamplesOut05_06

·

ProjectsSTM32F401RE-NucleoExamplesOut08_10

·

ProjectsSTM32G431RB-NucleoExamplesOut08_10

·

ProjectsSTM32F401RE-NucleoExamplesOut11_13

·

ProjectsSTM32G431RB-NucleoExamplesOut11_13

·

ProjectsSTM32F401RE-NucleoExamplesOut12_14

·

ProjectsSTM32G431RB-NucleoExamplesOut12_14

·

ProjectsSTM32F401RE-NucleoExamplesOut15

·

ProjectsSTM32G431RB-NucleoExamplesOut15

Each example has a folder dedicated to the targeted IDE:

·

EWARM contains the project files for IAR

·

MDK-ARM contains the project files for Keil

·

STM32CubeIDE contains the project files for OpenSTM32

Each example contains the following source files:

·

Out03_04

­ ProjectsSTM32F401RE-NucleoExamplesOut03_04

Incmain.h – header for main.c module

Incout03_04a1_conf.h – header for BSP/OUT0xA1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32f4xx_hal_conf.h – HAL configuration file for STM32F4xx

Incstm32f4xx_it.h – interrupt handlers header file for STM32F4xx

Incstm32f4xx_nucleo_errno.h – error codes for STM32F4xx-Nucleo

Incips2050h_conf.h – header for BSP/Components/ips1025h_2050h driver configuration

Srcmain.c – main program

Srcapp_switch.c – code for application example customization

Srcstm32f4xx_hal_msp.c – HAL MSP module for STM32F4xx

Srcstm32f4xx_it.c – interrupt handlers for STM32F4xx

Srcsystem_stm32f4xx.c- system source file for STM32F4xx

­ ProjectsSTM32G431RB-NucleoExamplesOut03_04

Incmain.h- header for main.c module

Incout03_04a1_conf.h- header for BSP/OUT0xA1 driver configuration

Incapp_switch.h- header for app_switch.c module

Incstm32g4xx_hal_conf.h- HAL configuration file for STM32G4xx

Incstm32g4xx_it.h – interrupt handlers header file for STM32G4xx

Incstm32g4xx_nucleo_conf.h – configuration file for STM32G4xx_Nucleo

Incips2050h_conf.h – header for BSP/Components/ips1025h_2050h driver configuration

Srcmain.c – main program

Srcapp_switch.c – code for application example customization

Srcstm32g4xx_hal_msp.c – HAL MSP module for STM32G4xx

Srcstm32g4xx_it.c – interrupt handlers for STM32G4xx

Srcsystem_stm32g4xx.c – system source file for STM32G4xx

UM3035 – Rev 2

page 7/50

UM3035
Folder structure

·

Out05_06

­ ProjectsSTM32F401RE-NucleoExamplesOut05_06

Incmain.h – header for main.c module

Incout05_06a1_conf.h – header for BSP/OUT0xA1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32f4xx_hal_conf.h – HAL configuration file for STM32F4xx

Incstm32f4xx_it.h – interrupt handlers header file for STM32F4xx

Incstm32f4xx_nucleo_errno.h – error codes for STM32F4xx-Nucleo

Incips1025h_conf.h – header for BSP/Components/ips1025h_2050h driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32f4xx_hal_msp.c – HAL MSP module for STM32F4xx

Srcstm32f4xx_it.c – interrupt handlers for STM32F4xx

Srcsystem_stm32f4xx.c – system source file for STM32F4xx

­ ProjectsSTM32G431RB-NucleoExamplesOut05_06

Incmain.h – header for main.c module

Incout05_06a1_conf.h – header for BSP/OUT0xA1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32g4xx_hal_conf.h – HAL configuration file for STM32G4xx

Incstm32g4xx_it.h – interrupt handlers header file for STM32G4xx

Incstm32g4xx_nucleo_conf.h – configuration file for STM32G4xx_Nucleo

Incips1025h_conf.h – header for BSP/Components/ips1025h_2050h driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32g4xx_hal_msp.c – HAL MSP module for STM32G4xx

Srcstm32g4xx_it.c – interrupt handlers for STM32G4xx

Srcsystem_stm32g4xx.c – system source file for STM32G4xx

UM3035 – Rev 2

page 8/50

UM3035
Folder structure

·

Out15

­ ProjectsSTM32F401RE-NucleoExamplesOut15

Incmain.h – header for main.c module

Incout15a1_conf.h – header for BSP/OUT15A1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32f4xx_hal_conf.h – HAL configuration file for STM32F4xx

Incstm32f4xx_it.h – interrupt handlers header file for STM32F4xx

Incstm32f4xx_nucleo_errno.h – error codes for STM32F4xx-Nucleo

Incips1025hf_conf.h – header for BSP/Components/ips1025hf driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32f4xx_hal_msp.c – HAL MSP module for STM32F4xx

Srcstm32f4xx_it.c – interrupt handlers for STM32F4xx

Srcsystem_stm32f4xx.c – system source file for STM32F4xx

­ ProjectsSTM32G431RB-NucleoExamplesOut15

Incmain.h – header for main.c module

Incout15a1_conf.h – header for BSP/OUT15A1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32g4xx_hal_conf.h – HAL configuration file for STM32G4xx

Incstm32g4xx_it.h – interrupt handlers header file for STM32G4xx

Incstm32g4xx_nucleo_conf.h – configuration file for STM32G4xx_Nucleo

Incips1025hf_conf.h – header for BSP/Components/ips1025hf driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32g4xx_hal_msp.c – HAL MSP module for STM32G4xx

Srcstm32g4xx_it.c – Interrupt handlers for STM32G4xx

Srcsystem_stm32g4xx.c – System source file for STM32G4xx

UM3035 – Rev 2

page 9/50

UM3035
Folder structure

·

Out08_10

­ ProjectsSTM32F401RE-NucleoExamplesOut08_10

Incmain.h – header for main.c module

Incout08_10a1_conf.h- header for BSP/OUT08_10A1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32f4xx_hal_conf.h – HAL configuration file for STM32F4xx

Incstm32f4xx_it.h – interrupt handlers header file for STM32F4xx

Incstm32f4xx_nucleo_errno.h – error codes for STM32F4xx-Nucleo

Incips160hf_161hf_conf.h- header for BSP/Components/ips160hf_161hf driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32f4xx_hal_msp.c – HAL MSP module for STM32F4xx

Srcstm32f4xx_it.c – interrupt handlers for STM32F4xx

Srcsystem_stm32f4xx.c – system source file for STM32F4xx

­ ProjectsSTM32G431RB-NucleoExamplesOut08_10

Incmain.h – header for main.c module

Incout15a1_conf.h – header for BSP/OUT08_10A1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32g4xx_hal_conf.h – HAL configuration file for STM32G4xx

Incstm32g4xx_it.h – interrupt handlers header file for STM32G4xx

Incstm32g4xx_nucleo_conf.h – configuration file for STM32G4xx_Nucleo

Incips160hf_161hf_conf.h- header for BSP/Components//ips160hf_161hf driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32g4xx_hal_msp.c – HAL MSP module for STM32G4xx

Srcstm32g4xx_it.c – Interrupt handlers for STM32G4xx

Srcsystem_stm32g4xx.c – System source file for STM32G4xx

UM3035 – Rev 2

page 10/50

UM3035
Folder structure

·

Out11_13

­ ProjectsSTM32F401RE-NucleoExamplesOut11_13

Incmain.h – header for main.c module

Incout11_13a1_conf.h – header for BSP/OUT11_13A1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32f4xx_hal_conf.h – HAL configuration file for STM32F4xx

Incstm32f4xx_it.h – interrupt handlers header file for STM32F4xx

Incstm32f4xx_nucleo_errno.h – error codes for STM32F4xx-Nucleo

Inciso808_conf.h – header for BSP/Components/iso808 driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32f4xx_hal_msp.c – HAL MSP module for STM32F4xx

Srcstm32f4xx_it.c – interrupt handlers for STM32F4xx

Srcsystem_stm32f4xx.c – system source file for STM32F4xx

­ ProjectsSTM32G431RB-NucleoExamplesOut11_13

Incmain.h – header for main.c module

Incout11_13a1_conf.h – header for BSP/OUT11_13A1 driver configuration

Incapp_switch.h – header for app_switch.c module

Incstm32g4xx_hal_conf.h – HAL configuration file for STM32G4xx

Incstm32g4xx_it.h – interrupt handlers header file for STM32G4xx

Incstm32g4xx_nucleo_conf.h – configuration file for STM32G4xx_Nucleo

Inciso808_conf.h – header for BSP/Components/iso808 driver configuration

Srcmain.c – main program

Srcapp_switch.c – initialization and switch functions

Srcstm32g4xx_hal_msp.c – HAL MSP module for STM32G4xx

Srcstm32g4xx_it.c – interrupt handlers for STM32G4xx

Srcsystem_stm32g4xx.c – system source file for STM32G4xx

UM3035 – Rev 2

page 11/50

2.4
2.4.1

UM3035
Software required resources

·

Out12_14

­ ProjectsSTM32F401RE-NucleoExamplesOut12_14

Incmain.h – header for main.c module

Incout12_14a1_conf.h – header for BSP/OUT12_14A1 driver configuration

Incapp_relay.h – header for app_relay.c module

Incstm32f4xx_hal_conf.h – HAL configuration file for STM32F4xx

Incstm32f4xx_it.h – interrupt handlers header file for STM32F4xx

Incstm32f4xx_nucleo_errno.h – error codes for STM32F4xx-Nucleo

Inciso808a_conf.h – header for BSP/Components/iso808a driver configuration

Srcmain.c – main program

Srcapp_relay.c – initialization and relay functions

Srcstm32f4xx_hal_msp.c – HAL MSP module for STM32F4xx

Srcstm32f4xx_it.c – interrupt handlers for STM32F4xx

Srcsystem_stm32f4xx.c – system source file for STM32F4xx

­ ProjectsSTM32G431RB-NucleoExamplesOut12_14

Incmain.h – header for main.c module

Incout12_14a1_conf.h – header for BSP/OUT12_14A1 driver configuration

Incapp_relay.h – header for app_relay.c module

Incstm32g4xx_hal_conf.h – HAL configuration file for STM32G4xx

Incstm32g4xx_it.h – interrupt handlers header file for STM32G4xx

Incstm32g4xx_nucleo_conf.h – configuration file for STM32G4xx_Nucleo

Inciso808a_conf.h – header for BSP/Components/iso808a driver configuration

Srcmain.c – main program

Srcapp_relay.c – initialization and relay functions

Srcstm32g4xx_hal_msp.c – HAL MSP module for STM32G4xx

Srcstm32g4xx_it.c – interrupt handlers for STM32G4xx

Srcsystem_stm32g4xx.c – system source file for STM32G4xx

Software required resources

X-NUCLEO-OUT03A1, X-NUCLEO-OUT04A1
The MCU controls IPS2050H and IPS2050H-32 via GPIOs.
Thus, when using one X-NUCLEO-OUT03A1 expansion board or one X-NUCLEO-OUT04A1 expansion board, two GPIO signals (IN1 and IN2 pins) plus two GPIOs dedicated to the interrupt management (FLT1, FLT2 pins) are required.
The software also uses a PWM timer to generate the periodic patterns on the output channels for the expansion boards.
It is also possible to evaluate an eight-channel digital output module by stacking up to four X-NUCLEO-OUT03A1 andor X-NUCLEO-OUT04A1 with shared or independent supply rail and independent loads.
In this case, the additional expansion boards must be properly configured. For the second, third, or fourth board, it is necessary to unsolder four resistors for each board from the default position and solder them in different positions related to the board number, following the scheme described below.

Board 0 Board 1 Board 2 Board 3

Board no.

Table 2. Configuration of a stack of four expansion boards

IN1 R101 R131 R111 R121

IN2 R102 R132 R112 R122

FLT1 R103 R133 R113 R123

FLT2 R104 R134 R114 R124

UM3035 – Rev 2

page 12/50

UM3035
Software required resources

Important:

When using board 2 and board 3, two jumpers must close the morpho connectors pins in the STM32 Nucleo development board:

·

CN7.35-36 closed

·

CN10.25-26 closed

For further details, see the jumper configuration described in Section 3.4 Board setup and the documentation file (readme.html in ExamplesOut03_04 folders).

2.4.2 2.4.3

X-NUCLEO-OUT05A1, X-NUCLEO-OUT06A1
The MCU controls IPS1025H and IPS1025H-32 via GPIOs.
Thus, when using one X-NUCLEO-OUT05A1 expansion board or one X-NUCLEO-OUT06A1 expansion board, one GPIO signal (IN1) plus two GPIOs dedicated to the interrupt management (FLT1, FLT2 pins) are required.
The software also uses a PWM timer to generate the periodic patterns on the output channels for the expansion boards.
It is also possible to evaluate a four-channel digital output module by stacking up to four X-NUCLEO-OUT05A1 andor X-NUCLEO-OUT06A1 with shared or independent supply rail and independent loads.
In this case, the additional expansion boards must be properly configured. For the second, third, or fourth board, it is necessary to unsolder three resistors for each board from the default position and solder them in different positions related to the board number, following the scheme described below.

Board 0 Board 1 Board 2 Board 3

Table 3. Configuration of a stack of four expansion boards

Board no.

IN1 R101 R102 R115 R120

R103 R104 R116 R119

FLT1

R114 R117 R107 R118

FLT2

For further details, see the jumper configuration described in Section 3.4 Board setup and the documentation file (readme.html in ExamplesOut05_06 folders).
X-NUCLEO-OUT08A1, X-NUCLEO-OUT10A1 The MCU controls IPS160HF and IPS161HF via GPIOs. Thus, when using one X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1 expansion board, three GPIO signals (IN1, Nch-Drv, OUT_FB pins) plus a GPIO dedicated to the interrupt management (DIAG pin) are required. The software also uses a PWM timer to generate the periodic patterns on the output channel for the expansion board. It is also possible to evaluate a quad-channel digital output module by stacking four X-NUCLEO-OUT08A1 or four X-NUCLEO-OUT10A1, or a mix of them, with a shared or independent supply rail and independent loads. In this case, the additional expansion boards must be properly configured. For the second, third, and fourth board, it is necessary to unsolder four resistors from the default position and solder them in different positions, following the scheme described below.

Board no. Board 0 Board 1 Board 2 Board 3

Table 4. Configuration of a stack of four expansion boards

IN1 R101 R111 R121 R132

DIAG R103 R112 R125 R133

R102 R124 R130 R134

Nch-DRV

R104 R131 R123 R122

OUT_FB

UM3035 – Rev 2

page 13/50

UM3035
Software required resources

Important:

When using board 1 and board 3, two jumpers must close the morpho connectors pins in the STM32 Nucleo development board:

·

CN7.35-36 closed

·

CN10.25-26 closed

2.4.4 2.4.5

For further details, see the jumper configuration described in Section 3.4 Board setup and the documentation file (readme.html in ExamplesOut08_10 folders).
X-NUCLEO-OUT15A1 The MCU controls IPS1025HF via GPIOs. Thus, when using one X -NUCLEO-OUT15A1 expansion board, three GPIO signals (IN1, Nch-Drv, OUT_FB pins) plus two GPIOs dedicated to the interrupt management (FLT1, FLT2 pins) are required. The software also uses a PWM timer to generate the periodic patterns on the output channel for the expansion board. It is also possible to evaluate a dual-channel digital output module by stacking two X-NUCLEO-OUT15A1 with shared or independent supply rail and independent loads. In this case, the additional expansion board must be properly configured. For the second board, it is necessary to unsolder five resistors from the default position and solder them in different positions, following the scheme described below.

Board no. Board 0 Board 1

Table 5. Configuration of a stack of two expansion boards

IN1 R101 R102

FLT1 R103 R104

FLT2 R114 R107

Nch-DRV R110 R115

OUT_FB R108 R116

For further details, see the jumper configuration described in Section 3.4 Board setup and the documentation file (readme.html in ExamplesOut15 folders).

X-NUCLEO-OUT11A1, X-NUCLEO-OUT13A1

The MCU controls ISO808 and ISO808-1 via GPIOs.

Thus, when using one X-NUCLEO-OUT11A1 expansion board or one X-NUCLEO-OUT13A1 expansion board, eight GPIO signals (IN1 to IN8), two GPIOs (LOAD and SYNCH) used to control the device operating mode (Synchronous Control Mode or Direct Control Mode), one GPIO (OUT_EN) used to enable output lines and one GPIO dedicated to the interrupt management (STATUS pin) are required.

The software also uses a PWM timer to generate the periodic patterns on the output channel for the expansion boards. To enable Synchronous Control Mode the software must be compiled using the following preprocessor directives:

·

USE_SCM

·

noUSE_DCM

This is the default build for X-CUBE-IPS software package. To enable Direct Control Mode the software must be compiled using the following preprocessor directives:

·

USE_DCM

·

noUSE_SCM

The modification to control mode becomes effective on the binary files after rebuilding.

It is also possible to evaluate a combination of expansion boards stacked through the Arduino connectors. In this case, the expansion boards must be properly configured to avoid any conflict between signals. The X-NUCLEOOUT11A1 and X-NUCLEO-OUT13A1 offer some flexibility to remap default signals into alternate positions. See their related schematic diagrams.

For further details, see the jumper configuration described in Section 3.4 Board setup and the documentation file (readme.html in ExamplesOut11_13 folders).

UM3035 – Rev 2

page 14/50

UM3035
Software required resources

2.4.6

X-NUCLEO-OUT12A1, X-NUCLEO-OUT14A1
The MCU controls ISO808A and ISO808A-1 via SPI interface and GPIOs.
Thus, when using one X-NUCLEO-OUT12A1 expansion board or one X-NUCLEO-OUT14A1 expansion board, one SPI peripheral (SPI_CLK, SPI_MISO, SPI_MOSI signals), one GPIO (SPI_SS) used as device select, one GPIO (OUT_EN) used to enable output lines and two GPIOs dedicated to the interrupt management (STATUS and PGOOD pins) are required.
The software also uses a PWM timer to generate the periodic patterns on the output channel for the expansion board.
It is also possible to evaluate a 16-channels digital output module by stacking two X-NUCLEO-OUT12A1 andor X-NUCLEO-OUT14A1 with shared or independent supply rail and independent loads.
This can be achieved in two different ways:
1. Configuring two independent stacked boards to get an 8+8 channels system. In this case, the two boards must be properly configured: the first one (board 0) can be left in default configuration, for the second one (board 1) it is necessary to unsolder some resistors from the default positions and solder them in different positions according to the scheme described below.

Board no. Board 0 Board 1

Table 6. Configuration of a stack of two expansion boards (parallel independent)

SPI_CLK R106 R106

SPI_MISO R105 R105

SPI_MOSI R104 R104

SPI_SS R103 R114

OUT_EN R119 R109

STATUS R108 R113

PGOOD R107 R111

Important:

To enable this configuration the software must be compiled using the following preprocessor directives: ­ USE_PAR_IND ­ noUSE_DAISY_CHAIN

This is the default build for X-CUBE-IPS software package.
2. Configuring two stacked boards using Daisy Chain feature to get a 16 channels system. In this case, the two boards must be properly configured: for the first one (board 0) and the second one (board 1) it is necessary to unsolder some resistors from the default positions and solder them in different positions according to the scheme described below.

Table 7. Configuration of a stack of two expansion boards (Daisy Chain)

Board no. Board 0 Board 1

SPI_CLK R106 R106

DaisyChain R102 R102

SPI_MISO -R105

SPI_MOSI R104 —

SPI_SS OUT_EN

R103

R119

R103

R109

STATUS PGOOD

R108

R107

R113

R111

Important:

To enable this configuration the software must be compiled using the following preprocessor directives: ­ USE_DAISY_CHAIN ­ noUSE_PAR_IND

The modification to configuration mode becomes effective on the binary files after rebuilding. For further details, see the jumper configuration described in Section 3.4 Board setup and the documentation file (readme.html in ExamplesOut12_14 folders).

UM3035 – Rev 2

page 15/50

2.5 2.6
2.6.1
2.6.2

UM3035
APIs

APIs

The X-CUBE-IPS software APIs are defined in:

·

DriversBSPOUT0xA1out0xa1.h

·

DriversBSPOUT08_10A1out08_10a1.h

·

DriversBSPOUT15A1out15a1.h

·

DriversBSPOUT11_13A1out11_13a1.h

·

DriversBSPOUT12_14A1out12_14a1.h

These functions are prefixed by:

·

OUT03_05SWITCH

·

OUT08_10SWITCH

·

OUT15SWITCH

·

OUT11_13SWITCH

·

OUT12_14RELAY

Detailed technical information about the APIs available to the user can be found in a compiled HTML file located inside the “Documentation” folder of the software package where all the functions and parameters are fully described.

Sample application description

Out03_04 A sample application using the X-NUCLEO-OUT03A1 or X-NUCLEO-OUT04A1 expansion boards with either a NUCLEO-F401RE or NUCLEO-G431RB development board is provided in the “Projects” directory. Ready to be built projects are available for multiple IDEs. In this example, a sequence of commands is applied to the X-NUCLEO-OUT03A1 or X-NUCLEO-OUT04A1 IN channels. An operation change is requested by pressing the user button. At start-up, the IN1 and IN2 channels are switched off. Each time the user button is pressed, the program performs a consecutive action as in the sequence below: 1. Switches on IN1 channel on boards 0-2, switches on IN2 channel on boards 1-3 2. Switches on IN1 channel on boards 1-3, switches on IN2 channel on boards 0-2 3. Switches off IN1 channel on boards 0-1, switches off IN2 channel on boards 2-3 4. Switches off IN1 channel on boards 2-3, switches off IN2 channel on boards 0-1 5. Switches on IN1 and IN2 channels on all boards 6. Switches off IN1 and IN2 channels on all boards 7. Starts PWM on both channels on all boards with different frequency and duty cycle settings:
­ IN1 boards 0-3: PWM on with frequency 2 Hz, DC 25% ­ IN2 boards 1-2: PWM on with frequency 2 Hz, DC 50% ­ IN1 boards 1-2: PWM on with frequency 1 Hz, DC 25% ­ IN2 boards 0-3: PWM on with frequency 1 Hz, DC 50% 8. Sets DC 50% for IN1 on all boards 9. Sets DC 75% for IN2 on all boards 10. Sets DC 100% for IN1 on all boards 11. Sets DC 100% for IN2 on all boards 12. Stops PWM on both channels on all boards By pressing the user blue button, the firmware moves forward to the next function. The sequence is cyclic: after the last step (12) it returns to the first one (1).
Out05_06 A sample application using the X-NUCLEO-OUT05A1 or X-NUCLEO-OUT06A1 expansion boards with either a NUCLEO-F401RE or NUCLEO-G431RB development board is provided in the “Projects” directory. Ready to be built projects are available for multiple IDEs.

UM3035 – Rev 2

page 16/50

2.6.3 2.6.4

UM3035
Sample application description

In this example, a sequence of commands is applied to the IN channels of X -NUCLEO-OUT05A1 or X-NUCLEOOUT06A1 expansion boards. An operation change is requested by a user button press. At startup, the IN1 channels in all boards are switched off. Each time the user button is pressed, the program performs a consecutive action in the sequence below: 1. Sets on IN1 pin on boards 0-2, sets off IN1 pin on boards 1-3 2. Sets ON IN1 pin on boards 1-3, sets off IN1 pin on boards 0-2 3. Sets ON IN1 pin on all boards 4. Sets off IN1 pin on all boards 5. Starts PWM on IN1 pin on all boards with different frequency and duty cycle settings:
­ IN1 pin boards 0-3: PWM on with frequency 2 Hz, DC 25% ­ IN1 pin boards 1-2: PWM on with frequency 1 Hz, DC 25% 6. IN1 pin on all boards: sets DC 50% 7. IN1 pin on all boards: sets DC 75% 8. IN1 pin on all boards: sets DC 100% 9. Stops PWM on IN1 pin on all boards 10. The sequence restarts from step 1

Out08_10

A sample application using the X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1 expansion board with either NUCLEO-F401RE or NUCLEO-G431RB boards is provided in the “Projects” directory. Ready to be built projects are available for multiple IDEs.

In this example, a sequence of commands are applied to the IN and Nch_DRV channels of X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1 expansion boards. An operation change is requested by a user button press.

At startup, the IN and Nch_DRV channels are all switched off. Each time the user button is pressed, the program performs a consecutive action in the sequence below:

1. Enables the synchronization for the Nch-DRV signal with the PWM on channel 0 for all boards, as follows:

­ board 0: delay 20%, ON-Period 50%

­ board 1: delay 40%, ON-Period 70% (clamping occurs at 100% of IN1 OFF-Period duration reached)

­ board 2: delay 20%, ON-Period 50%

­ board 3: delay 40%, ON-Period 70% (clamping occurs at 100% of IN1 OFF-Period duration reached)

Note:

Both delay and ON-Period are expressed as the OFF-Period percentage of the selected IN1 signal.

2. Sets on IN1 pin on boards 0-2, sets off IN1 pin on boards 1-3

3. Sets ON IN1 pin on boards 1-3, sets off IN1 pin on boards 0-2

4. Sets ON IN1 pin on all boards

5. Sets off IN1 pin on all boards

6. Starts PWM on IN1 pin on all boards with different frequency and duty cycle settings:

­ IN1 pin boards 0-3: PWM on with frequency 2 Hz, DC 25%

­ IN1 pin boards 1-2: PWM on with frequency 1 Hz, DC 25%

7. IN1 pin on all boards: sets DC 50%

8. IN1 pin on all boards: sets DC 75%

9. IN1 pin on all boards: sets DC 100%

10. Stops PWM on IN1 pin on all boards

11. Disables the synchronization for the Nch-DRV signal with the PWM on channel 0 for all boards

12. The sequence restarts from step 1

Out15
A sample application using one or two X-NUCLEO-OUT15A1 expansion boards with either a NUCLEO-F401RE or NUCLEO-G431RB development board is provided in the “Projects” directory. Ready to be built projects are available for multiple IDEs.
In this example, a sequence of commands is applied to the IN channels of the X -NUCLEO-OUT15A1 expansion boards. An operation change is requested by a user button press.

UM3035 – Rev 2

page 17/50

2.6.5 2.6.6

UM3035
Sample application description

At startup, the IN1 channels in all boards are switched off. Each time the user button is pressed, the program performs a consecutive action in the sequence below:

1. Enables the synchronization for the Nch-DRV signal with the PWM on channel 0 for board 0 and 1, as follows:

­ board 0: delay 20%, ON-Period 50%

­ board 1: delay 40%, ON-Period 70% (clamping occurs at 100% of IN1 OFF-Period duration reached)

Note:

Both delay and ON-Period are expressed as the OFF-Period percentage of the selected IN1 signal.

­ Sets ON IN1 in board 0, sets OFF IN1 in board 1

2. Sets OFF IN1 in board 0, sets ON IN1 in board 1

3. Sets ON IN1 in board 0, sets ON IN1 in board 1

4. Sets OFF IN1 in board 0, sets OFF IN1 in board 1

5. Starts PWM on IN1 in board 0 and board 1 with different frequency and duty cycle settings, as follows:

­ board 0 IN1: PWM on with frequency 2 Hz DC 25%

­ board 1 IN1: PWM on with frequency 1 Hz DC 25%

6. IN1 in all boards: sets DC 50%

7. IN1 in all boards: sets DC 75%

8. IN1 in all boards: sets DC 100%

9. Stops PWM on IN1 in all boards

Each user blue button pressure moves the firmware to the next function.

The sequence is cyclic: after the last step (number 9), it returns to the first one (number 1).

Out11_13 A sample application using the X-NUCLEO-OUT11A1 or X-NUCLEO-OUT13A1 expansion board with either NUCLEO-F401RE or NUCLEO-G431RB boards is provided in the “Projects” directory. Ready to be built projects are available for multiple IDEs. In this example, a sequence of commands is applied to the IN channels of X-NUCLEO-OUT11A1 or X-NUCLEOOUT13A1 expansion boards. An operation change is requested by a user button press. At startup, all input channels are switched off. Each time the user button is pressed, the program performs a consecutive action in the sequence below: 1. Set Operating Mode (default is SCM) and enable outputs (OUT_EN high)
Set ON IN1, IN4, IN5, IN8 2. Set ON IN2, IN3, IN6, IN7 3. Set OFF IN1, IN2, IN5, IN6 4. Set OFF IN3, IN4, IN7, IN8 5. Set ON all inputs 6. Set OFF all inputs 7. Start PWM on all inputs with different frequency and duty cycle settings.
­ IN1, IN3, IN5, IN7: PWM ON with freq 2Hz ­ IN2, IN4, IN6, IN8: PWM ON with freq 1Hz ­ IN1, IN3, IN5, IN7: PWM ON with DC 25% ­ IN2, IN4, IN6, IN8: PWM ON with DC 50% 8. IN1, IN3, IN5, IN7: set DC 50% 9. IN2, IN4, IN6, IN8: set DC 75% 10. IN1, IN3, IN5, IN7: set DC 100% 11. IN2, IN4, IN6, IN8: set DC 100% 12. Disable outputs (OUT_EN low) Stop PWM on all inputs

Out12_14
A sample application using the X-NUCLEO-OUT12A1 or X-NUCLEO-OUT14A1 expansion board with either NUCLEO-F401RE or NUCLEO-G431RB boards is provided in the “Projects” directory. Ready to be built projects are available for multiple IDEs.

UM3035 – Rev 2

page 18/50

UM3035
Sample application description
In this example, a sequence of commands is applied to the SPI interface of X -NUCLEO-OUT12A1 or X-NUCLEOOUT14A1 expansion boards. An operation change is requested by a user button press. At startup, all input channels are switched off. Each time the user button is pressed, the program performs a consecutive action in the sequence below: 1. Enable outputs (OUT_EN high) in all boards
Set ON IN1, IN4, IN5, IN8 in board 0 Set ON IN2, IN3, IN6, IN7 in board 1 2. Set ON IN2, IN3, IN6, IN7 in board 0 Set ON IN1, IN4, IN5, IN8 in board 1 3. Set OFF IN1, IN2, IN5, IN6 in board 0 Set OFF IN3, IN4, IN7, IN8 in board 1 4. Set OFF IN3, IN4, IN7, IN8 in board 0 Set OFF IN1, IN2, IN5, IN6 in board 1 5. Set ON IN5, IN6, IN7, IN8 and OFF IN1, IN2, IN3, IN4 in board 0 Set ON IN1, IN2, IN3, IN4 and OFF IN5, IN6, IN7, IN8 in board 1 6. Set ON IN1, IN2, IN3, IN4 and OFF IN5, IN6, IN7, IN8 in board 0 Set ON IN5, IN6, IN7, IN8 and OFF IN1, IN2, IN3, IN4 in board 1 7. Set OFF all inputs in all boards Start PWM on all inputs in board 0 and board 1 with different frequency and duty cycle settings:
­ board 0 IN1, IN3, IN5, IN7: PWM ON with freq 2Hz DC 25% ­ board 0 IN2, IN4, IN6, IN8: PWM ON with freq 1Hz DC 50% ­ board 1 IN1, IN3, IN5, IN7: PWM ON with freq 1Hz DC 50% ­ board 1 IN2, IN4, IN6, IN8: PWM ON with freq 2Hz DC 25% 8. board 0 IN1, IN3, IN5, IN7: set DC 50% board 1 IN2, IN4, IN6, IN8: set DC 50% 9. board 0 IN2, IN4, IN6, IN8: set DC 75% board 1 IN1, IN3, IN5, IN7: set DC 75% 10. board 0 IN1, IN3, IN5, IN7: set DC 100% board 1 IN2, IN4, IN6, IN8: set DC 100% 11. board 0 IN2, IN4, IN6, IN8: set DC 100% board 1 IN1, IN3, IN5, IN7: set DC 100% 12. Disable outputs (OUT_EN low) for all boards Stop PWM on all inputs in all boards

UM3035 – Rev 2

page 19/50

3

System setup guide

UM3035
System setup guide

3.1
3.1.1

Hardware description
STM32 Nucleo STM32 Nucleo development boards provide an affordable and flexible way for users to test solutions and build prototypes with any STM32 microcontroller line. The ArduinoTM connectivity support and ST morpho connectors make it easy to expand the functionality of the STM32 Nucleo open development platform with a wide range of specialized expansion boards to choose from. The NUCLEO-F401RE development board does not require separate probes as it integrates the ST-LINK/V2-1 debugger/programmer. The NUCLEO- G431RB development board does not require separate probes as it integrates the STLINK-V3 debugger/programmer. The STM32 Nucleo board comes with the comprehensive STM32 software HAL library together with various packaged software examples.
Figure 3. STM32 Nucleo board

UM3035 – Rev 2

page 20/50

3.1.2

UM3035
Hardware description
X-NUCLEO-OUT03A1 expansion board The X-NUCLEO-OUT03A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the IPS2050H (dual high-side smart power solid state relay) in a digital output module connected to 2.5 A (max.) industrial loads. The X-NUCLEO-OUT03A1 interfaces with the microcontroller on the STM32 Nucleo via 5 kV optocouplers driven by GPIO pins, Arduino UNO R3 (default configuration) and ST morpho (optional, not mounted) connectors. The expansion board can be connected to either a NUCLEO-F401RE or NUCLEO-G431RB development board. It is also possible to evaluate a system composed by up to four stacked X-NUCLEO-OUT03A1 expansion boards. As an example, a system with four X-NUCLEO-OUT03A1 expansion boards allows you to evaluate an eightchannel digital output module with 2.5 A (max.) capability each.
Figure 4. X-NUCLEO-OUT03A1 expansion board

UM3035 – Rev 2

page 21/50

3.1.3

UM3035
Hardware description
X-NUCLEO-OUT04A1 expansion board The X-NUCLEO-OUT04A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the IPS2050H-32 (dual highside smart power solid state relay) in a digital output module connected to 5.7 A (max.) industrial loads. The X-NUCLEO-OUT04A1 interfaces with the microcontroller on the STM32 Nucleo via 5 kV optocouplers driven by GPIO pins, Arduino UNO R3 (default configuration) and ST morpho (optional, not mounted) connectors. The expansion board can be connected to either a NUCLEO-F401RE or NUCLEO-G431RB development board. It is also possible to evaluate a system composed by up to four stacked X-NUCLEO-OUT04A1 expansion boards. As an example, a system with four X-NUCLEO-OUT04A1 expansion boards allows you to evaluate an eightchannel digital output module with 5.7 A (max.) capability each.
Figure 5. X-NUCLEO-OUT04A1 expansion board

UM3035 – Rev 2

page 22/50

3.1.4

UM3035
Hardware description
X-NUCLEO-OUT05A1 expansion board The X-NUCLEO-OUT05A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the IPS1025H single high-side smart power solid state relay, in a digital output module connected to 2.5 A industrial loads. The X-NUCLEO-OUT05A1 interfaces with the microcontroller on the STM32 Nucleo via 5 kV optocouplers driven by GPIO pins and Arduino R3 connectors. The expansion board can be connected to either a NUCLEO-F401RE or a NUCLEO-G431RB development board. It is also possible to evaluate a system composed of up to four stacked X-NUCLEO- OUT05A1 expansion boards. As an example, a system with four X-NUCLEO-OUT05A1 expansion boards allows you to evaluate a quad channel digital output module.
Figure 6. X-NUCLEO-OUT05A1 expansion board

UM3035 – Rev 2

page 23/50

3.1.5

UM3035
Hardware description
X-NUCLEO-OUT06A1 expansion board The X-NUCLEO-OUT06A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the IPS1025H-32 single high-side smart power solid state relay, in a digital output module connected to 5.7 A industrial loads. The X-NUCLEO-OUT06A1 interfaces with the microcontroller on the STM32 Nucleo via 5 kV optocouplers driven by GPIO pins and Arduino UNO R3 connectors. The expansion board can be connected to either a NUCLEO-F401RE or NUCLEO-G431RB development board. It is also possible to evaluate a system composed by up to four stacked X-NUCLEO- OUT06A1 expansion boards. As an example, a system with four X-NUCLEO-OUT06A1 expansion boards allows you to evaluate a quad channel digital output module.
Figure 7. X-NUCLEO-OUT06A1 expansion board

UM3035 – Rev 2

page 24/50

3.1.6

UM3035
Hardware description
X-NUCLEO-OUT08A1 expansion board
The X-NUCLEO-OUT08A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible evaluation and development environment for 2 A (typ.) digital output modules, featuring the safe driving and smart diagnostic capabilities of the IPS160HF single high-side switch. The X-NUCLEO- OUT08A1 interfaces with the microcontroller on the STM32 Nucleo via 3 kV optocouplers driven by GPIO pins and ArduinoTM UNO R3 (default configuration) and ST morpho (optional, not mounted) connectors. The expansion board should be connected to either a NUCLEO-F401RE or NUCLEO-G431RB development board, and can also be stacked with another X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1. Up to four X-NUCLEO-OUT08A1 expansion boards can be stacked to evaluate up to a quad channel digital output module with 2 A (typ.) capability each. It is also possible to evaluate the typical cascade architecture of a single channel digital output module for safety applications: in this scenario, the first shield output is connected to the supply of the second one. Dedicated on-board hardware can be enabled or disabled to activate fast discharge of high capacitive loads, output voltage sensing, and an additional surge pulse output line protection.
Figure 8. X-NUCLEO-OUT08A1 expansion board

UM3035 – Rev 2

page 25/50

3.1.7

UM3035
Hardware description
X-NUCLEO-OUT10A1 expansion board
The X-NUCLEO-OUT10A1 industrial digital output expansion board for STM32 Nucleo provides an affordable and easy-to-use solution for the development of 0.5 A (typ.) digital output modules, letting you easily evaluate the IPS161HF driving and diagnostic capabilities with industrial loads. The X-NUCLEO- OUT10A1 interfaces with the microcontroller on the STM32 Nucleo via 3 kV optocouplers driven by GPIO pins and ArduinoTM UNO R3 (default configuration) and ST morpho (optional, not mounted) connectors. The expansion board should be connected to either a NUCLEO-F401RE or NUCLEO-G431RB development board, and can be stacked with another X-NUCLEO-OUT10A1 or an X-NUCLEO-OUT08A1. Up to four X-NUCLEO-OUT10A1 expansion boards can be stacked to evaluate up to a quad channel digital output module with 0.5 A (typ.) capability each. It is also possible to evaluate the typical cascade architecture of a single channel digital output module for safety applications: in this scenario, the first shield output is connected to the supply of the second one. Dedicated on-board hardware can be enabled or disabled to activate fast discharge of high capacitive loads, output voltage sensing, and an additional surge pulse output line protection.
Figure 9. X-NUCLEO-OUT10A1 expansion board

UM3035 – Rev 2

page 26/50

3.1.8

UM3035
Hardware description
X-NUCLEO-OUT11A1 expansion board The X-NUCLEO-OUT11A1 is an industrial digital output expansion board for STM32 Nucleo. It provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the ISO808 octal high-side smart power solid state relay, with embedded galvanic isolation, in a digital output module connected to 0.7 A industrial loads. The X-NUCLEO-OUT11A1 directly interfaces with the microcontroller on the STM32 Nucleo driven by GPIO pins and Arduino® R3 connectors. The galvanic isolation between the microcontroller and the process stage is guaranteed by the ISO808. The expansion board can be connected to either a NUCLEO-F401RE or a NUCLEO-G431RB development board. It is also possible to evaluate a system composed of a X-NUCLEO-OUT11A1 stacked on other expansion boards.
Figure 10. X-NUCLEO-OUT11A1 expansion board

UM3035 – Rev 2

page 27/50

3.1.9

UM3035
Hardware description
X-NUCLEO-OUT12A1 expansion board The X-NUCLEO-OUT12A1 industrial digital output expansion boards for STM32-Nucleo provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the ISO808A octal high-side smart power solid state relay, with embedded galvanic isolation and 20MHz SPI control interface, in a digital output module connected to 0.7 A industrial loads. The X-NUCLEO-OUT12A1 directly interfaces with the microcontroller on the STM32 Nucleo driven by GPIO pins and Arduino® R3 connectors. The galvanic isolation between the microcontroller and the process stage is guaranteed by the ISO808A device. The expansion board can be connected to either a NUCLEO-F401RE or a NUCLEO-G431RB development board. It is also possible to evaluate a 16-channel digital output system enabling the daisy chaining feature on two X-NUCLEO-OUT12A1 stacked expansion boards.
Figure 11. X-NUCLEO-OUT12A1 expansion board

UM3035 – Rev 2

page 28/50

3.1.10

UM3035
Hardware description
X-NUCLEO-OUT13A1 expansion board The X-NUCLEO-OUT13A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the ISO808-1 octal high-side smart power solid state relay with embedded galvanic isolation, in a digital output module connected to 1.0 A industrial loads. The X-NUCLEO-OUT13A1 interfaces with the microcontroller on the STM32 Nucleo via Arduino® R3 connectors. The ISO808-1 integrated technology guarantees a 2 kVRMS galvanic isolation. The expansion board can be connected to either a NUCLEO-F401RE or a NUCLEO-G431RB development board. It is also possible to evaluate a system composed of an X-NUCLEO-OUT13A1 stacked on other expansion boards.
Figure 12. X-NUCLEO-OUT13A1 expansion board

UM3035 – Rev 2

page 29/50

3.1.11

UM3035
Hardware description
X-NUCLEO-OUT14A1 expansion board The X-NUCLEO-OUT14A1 is an industrial digital output expansion board for STM32 Nucleo. It provides a powerful and flexible environment for the evaluation of the driving and diagnostic capabilities of the ISO808A-1 octal high-side smart power solid state relay, with embedded galvanic isolation and 20MHz SPI control interface, in a digital output module connected to 1.0 A industrial loads. The X-NUCLEO-OUT14A1 directly interfaces with the microcontroller on the STM32 Nucleo driven by GPIO pins and Arduino® R3 connectors. The galvanic isolation between the microcontroller and the process stage is guaranteed by the ISO808A-1. The expansion board can be connected to either a NUCLEO-F401RE or a NUCLEO-G431RB development board. It is also possible to evaluate a 16 channel digital output system enabling the daisy chaining feature on two X-NUCLEO-OUT14A1 stacked expansion boards.
Figure 13. X-NUCLEO-OUT14A1 expansion board

UM3035 – Rev 2

page 30/50

3.1.12

UM3035
Hardware setup
X-NUCLEO-OUT15A1 expansion board The X-NUCLEO-OUT15A1 industrial digital output expansion board for STM32 Nucleo provides a powerful and flexible evaluation and development environment for 2.5 A (typical) digital output modules. It features the safe driving and smart diagnostic capabilities of the IPS1025HF high efficiency single high-side switch. The X-NUCLEO-OUT15A1 interfaces with the microcontroller on the STM32 Nucleo via 3 kV optocouplers driven by GPIO pins, with the Arduino® UNO R3 (default configuration), and the ST morpho (optional, not mounted) connectors. The expansion board can be connected to either a NUCLEO-F401RE or NUCLEO-G431RB development board. It can also be stacked with another X-NUCLEO-OUT15A1. Two X-NUCLEO-OUT15A1 expansion boards allow you to evaluate a dual-channel digital output module with 2.5A (typical) capability each.
Figure 14. X-NUCLEO-OUT15A1 expansion board

3.2

Hardware setup

The following hardware components are needed:

1. One USB type A to Mini-B USB cable to connect the STM32 Nucleo to the PC when using a NUCLEOF401RE

2. One USB type A to Micro-B USB cable when using a NUCLEO-G431RB

3. An external power supply (8 – 33 V) and the associated wires to supply the system expansion boards

UM3035 – Rev 2

page 31/50

3.3
3.4
3.4.1
3.4.2

UM3035
Software setup

Software setup

The following software components are needed to set up a suitable development environment for creating applications for the STM32 Nucleo equipped with one or more industrial digital output expansion boards:

·

X-CUBE-IPS: an expansion for STM32Cube dedicated to applications development which require the use

of:

­ IPS2050H

­ IPS2050H-32

­ IPS1025H

­ IPS1025H-32

­ IPS1025HF

­ IPS160HF

­ IPS161HF

­ ISO808

­ ISO808-1

­ ISO808A

­ ISO808A-1

The X-CUBE-IPS firmware and related documentation is available on www.st.com.

·

Development tool-chain and compiler: the STM32Cube expansion software supports the three following

environments:

­ IAR Embedded Workbench for ARM® (EWARM) toolchain + ST-LINK

­ RealView Microcontroller Development Kit (MDK-ARM-STR) toolchain + ST-LINK

­ STM32CubeIDE + ST-LINK

Board setup

STM32 Nucleo development board

Configure the STM32 Nucleo development board with the following jumper positions:

·

NUCLEO-F401RE

­ JP5 on U5V for firmware flashing

­ JP1 open

­ JP6 closed

­ CN2 closed 1-2, 3-4

­ CN3 open

­ CN4 open

­ CN11 closed

­ CN12 closed

·

NUCLEO-G431RB

­ JP5 closed 1-2 (5V_STLK for firmware flashing)

­ JP1, JP7 open

­ JP3, JP6 closed

­ JP8 closed 1-2

­ CN4 open

­ CN11 closed

­ CN12 closed

X-NUCLEO-OUT03A1 and X-NUCLEO-OUT04A1 expansion boards

The X-NUCLEO-OUT03A1 or X-NUCLEO-OUT04A1 must be configured as follows:

·

SW1 1-2

·

SW2 1-2

UM3035 – Rev 2

page 32/50

·

SW3 1-2

·

SW4

­ Close 1-2 to route FLT2 signal from device to microcontroller only

­ Close 2-3 to drive the DR2 red LED only

·

SW5

­ Close 1-2 to route FLT1 signal from device to microcontroller only

­ Close 2-3 to drive the DR1 red LED only

·

J1, J2, J5, J6, J7, J12, J13, J14 closed

·

J3, J4, J10, J11, J17 open

·

J8 closed 4-6

·

J9 closed 4-6

UM3035
Board setup

UM3035 – Rev 2

page 33/50

UM3035
Board setup
Step 1. Plug the X-NUCLEO-OUT03A1 or X-NUCLEO-OUT04A1 expansion board on top of the STM32 Nucleo via the Arduino® UNO connectors.
Figure 15. X-NUCLEO-OUT03A1 expansion board connected to an STM32 Nucleo development board

Figure 16. X-NUCLEO-OUT04A1 expansion board connected to an STM32 Nucleo development board

Step 2. Step 3.
Step 4.

Power the STM32 Nucleo board via USB cable between connector CN1 and a PC USB port.
Power the X-NUCLEO-OUT03A1 or X-NUCLEO-OUT04A1 expansion board by connecting CN1 connector pin 2 or 3 (VCC) and 4 (GND) to the DC power supply (which must be set between 8 and 33 V).
Open your preferred toolchain (MDK-ARM from Keil, EWARM from IAR, or STM32CubeIDE)

UM3035 – Rev 2

page 34/50

3.4.3

UM3035
Board setup

Step 5.
Step 6. Step 7.

Depending on the STM32 Nucleo board and IDE used, open the software project from: ­ ProjectsSTM32F401RE-NucleoExamplesOut03_04 for NUCLEO-F401RE ­ ProjectsSTM32G431RB-NucleoExamplesOut03_04 for NUCLEO-G431RB
Rebuild all files and load your image into target memory.
Run the example. Each time the user button is pressed, a new command is applied at the digital output as described in Section 2.6.1 Out03_04.

X-NUCLEO-OUT05A1 and X-NUCLEO-OUT06A1 expansion boards

The X-NUCLEO-OUT05A1 or X-NUCLEO-OUT06A1 must be configured as follows:

·

SW1 1-2

·

SW2

­ Close 1-2 to route FLT1 signal from device to microcontroller only

­ Close 2-3 to drive the DR1 red LED only

·

SW3 1-2

·

SW4

­ Close 1-2 to route FLT2 signal from device to microcontroller only

­ Close 2-3 to drive the DR2 red LED only

·

J1, J3, J5, J6, J8, J10 closed

·

J2, J4, J7 open

·

J9 closed 4-6

UM3035 – Rev 2

page 35/50

UM3035
Board setup
Step 1. Plug the X-NUCLEO-OUT05A1 or X-NUCLEO-OUT06A1 expansion board on top of the STM32 Nucleo via the Arduino® UNO connectors.
Figure 17. X-NUCLEO-OUT05A1 expansion board connected to an STM32 Nucleo development board

Figure 18. X-NUCLEO-OUT06A1 expansion board connected to an STM32 Nucleo development board

Step 2. Step 3.
Step 4.

Power the STM32 Nucleo board via USB cable between connector CN1 and a PC USB port.
Power the X-NUCLEO-OUT05A1 or X-NUCLEO-OUT06A1 expansion board by connecting CN1 connector pin 4 or 5 (VCC) and 3 (GND) to the DC power supply (which must be set between 8 and 33 V).
Open your preferred toolchain (MDK-ARM from Keil®, EWARM from IAR, or STM32CubeIDE).

UM3035 – Rev 2

page 36/50

3.4.4

UM3035
Board setup

Step 5.
Step 6. Step 7.

Depending on the STM32 Nucleo board and IDE used, open the software project from: ­ ProjectsSTM32F401RE-NucleoExamplesOut05_06 for NUCLEO-F401RE ­ ProjectsSTM32G431RB-NucleoExamplesOut05_06 for NUCLEO-G431RB
Rebuild all files and load your image into target memory.
Run the example. Each time the user button is pressed, a new command is applied at the digital output as described in Section 2.6.2 Out05_06.

X-NUCLEO-OUT08A1 and X-NUCLEO-OUT10A1 expansion boards

The X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1 expansion board must be configured in the following way:

·

J1, J4, J5, J7, J8, J9 closed

·

J13 closed: 1-2, 3-4, 5-6

·

J14 closed: 1-2, 3-4

·

SW1: 2-3

·

SW2: 1-2

·

All other jumpers open

UM3035 – Rev 2

page 37/50

UM3035
Board setup Step 1. Plug the X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1 expansion board on top of the STM32
Nucleo via the Arduino® UNO connectors. Figure 19. X-NUCLEO-OUT08A1 expansion board connected to an STM32 Nucleo development
board
Figure 20. X-NUCLEO-OUT10A1 expansion board connected to an STM32 Nucleo development board

Step 2. Step 3.

Power the STM32 Nucleo board via USB cable between connector CN1 and a PC USB port.
Power the X-NUCLEO-OUT08A1 or X-NUCLEO-OUT10A1 expansion board on by connecting its connectors CN1 1(VCC), 2(GND) to the DC power supply (which must be set between 8 and 33 V).

UM3035 – Rev 2

page 38/50

3.4.5

UM3035
Board setup

Step 4. Step 5.
Step 6. Step 7.

Open your preferred toolchain (MDK-ARM from Keil, EWARM from IAR, or STM32CubeIDE)
Depending on the STM32 Nucleo board used, open the software project from: ­ ProjectsSTM32F401RE-NucleoExamplesOut08_10 for NUCLEO-F401RE ­ ProjectsSTM32G431RB-NucleoExamplesOut08_10 for NUCLEO-G431RB
Rebuild all files and load your image into target memory.
Run the example. Each time the user button is pressed, a new command is applied at the digital output as described in Section 2.6.3 Out08_10.

X-NUCLEO-OUT15A1 expansion board

The X-NUCLEO-OUT15A1 must be configured as follows:

·

SW1 2-3

·

SW2

­ Close 1-2 to route FLT1 signal from device to microcontroller only

­ Close 2-3 to drive the DR1 red LED only

·

SW3 1-2

·

SW4

­ Close 1-2 to route FLT2 signal from device to microcontroller only

­ Close 2-3 to drive the DR2 red LED only

·

SW5 1-2

·

J2 open

·

J3, J4, J5, J6, J7, J8, J10, J12 closed

·

J9 closed 4-6

·

J11 closed 1-2, 3-4, 5-6

Step 1. Plug the X-NUCLEO-OUT15A1 expansion board on top of the STM32 Nucleo via the Arduino® UNO connectors.

Figure 21. X-NUCLEO-OUT15A1 expansion board connected to an STM32 Nucleo development board

Step 2. Power the STM32 Nucleo board via USB cable between connector CN1 and a PC USB port.

UM3035 – Rev 2

page 39/50

3.4.6

UM3035
Board setup

Step 3. Step 4. Step 5.
Step 6. Step 7.

Power the X-NUCLEO-OUT15A1 expansion board by connecting CN1 connector pin 4 or 5 (VCC) and 3 (GND) to the DC power supply (which must be set between 8 and 33 V).
Open your preferred toolchain (MDK-ARM from Keil®, EWARM from IAR, or STM32CubeIDE).
Depending on the STM32 Nucleo board and IDE used, open the software project from: ­ ProjectsSTM32F401RE-NucleoExamplesOut15 for NUCLEO-F401RE ­ ProjectsSTM32G431RB-NucleoExamplesOut15 for NUCLEO-G431RB
Rebuild all files and load your image into target memory.
Run the example. Each time the user button is pressed, a new command is applied at the digital output as described in Section 2.6.4 Out15.

X-NUCLEO-OUT11A1 and X-NUCLEO-OUT13A1 expansion boards

The X-NUCLEO-OUT11A1 and X-NUCLEO-OUT13A1 must be configured as follows:

·

J1, J2, J5 open

·

J3

­ Closed 1-2, 5-6

·

J4

­ Closed 5-6

·

J6 Closed

­ 1-2, 3-4, 5-6, 7-8 to enable active state led for OUT1-4

·

J7 Closed

­ 1-2, 3-4, 5-6, 7-8 to enable active state led for OUT5-8

·

J9, J10 closed

UM3035 – Rev 2

page 40/50

UM3035
Board setup
Step 1. Plug the X-NUCLEO-OUT11A1 or X-NUCLEO-OUT13A1 expansion board on top of the STM32 Nucleo via the Arduino® UNO connectors.
Figure 22. X-NUCLEO-OUT11A1 expansion board connected to an STM32 Nucleo development board

Figure 23. X-NUCLEO-OUT13A1 expansion board connected to an STM32 Nucleo development board

Step 2. Step 3.
Step 4. Step 5.

Power the STM32 Nucleo board via USB cable between connector CN1 and a PC USB port.
Power the X-NUCLEO-OUT11A1 or X-NUCLEO-OUT13A1 expansion board on by connecting CN1 connector pin 1 (VCC) and pin 2 (GND) to the DC power supply (which must be set between 15 and 33 V).
Open your preferred toolchain (MDK-ARM from Keil, EWARM from IAR, or STM32CubeIDE)
Depending on the STM32 Nucleo board and IDE used, open the software project from: ­ ProjectsSTM32F401RE-NucleoExamplesOut11_13 for NUCLEO-F401RE ­ ProjectsSTM32G431RB-NucleoExamplesOut11_13 for NUCLEO-G431RB

UM3035 – Rev 2

page 41/50

3.4.7

UM3035
Board setup

Step 6. Step 7.

Rebuild all files and load your image into target memory.
Run the example. Each time the user button is pressed, a new command is applied at the digital output as described in Section 2.6.5 Out11_13.

X-NUCLEO-OUT12A1 and X-NUCLEO-OUT14A1 expansion boards

The X-NUCLEO-OUT12A1 and X-NUCLEO-OUT14A1 must be configured as follows:

·

J5 open

·

J3

­ Closed 1-2, 3-4, 5-6

·

J4

­ Closed 5-6

·

J6

­ Closed 1-2, 3-4, 5-6, 7-8 to enable active state led for OUT1-4

·

J7

­ Closed 1-2, 3-4, 5-6, 7-8 to enable active state led for OUT5-8

·

J9, J10 closed

·

J12, J13 for Daisy Chain setup:

­ Board 0:

­ J12: Closed 1-2

­ J13: Closed 3-4

­ Board 1:

­ J12: Closed 3-4

­ J13: Closed 1-2

·

J12, J13 for Parallel Independent setup:

­ Board 0:

­ J12: Closed 1-2

­ J13: Closed 1-2

­ Board 1:

­ J12: Closed 1-2

­ J13: Closed 1-2

UM3035 – Rev 2

page 42/50

UM3035
Board setup
Step 1. Plug the X-NUCLEO-OUT12A1 or X-NUCLEO-OUT14A1 expansion board on top of the STM32 Nucleo via the Arduino® UNO connectors.
Figure 24. X-NUCLEO-OUT12A1 expansion board connected to an STM32 Nucleo development board

Figure 25. X-NUCLEO-OUT14A1 expansion board connected to an STM32 Nucleo development board

Step 2. Step 3.
Step 4.

Power the STM32 Nucleo board via USB cable between connector CN1 and a PC USB port.
Power the X-NUCLEO-OUT12A1 or X-NUCLEO-OUT14A1 expansion board on by connecting CN1 connector pin 1 (VCC) and pin 2 (GND) to the DC power supply (which must be set between 15 and 33 V).
Open your preferred toolchain (MDK-ARM from Keil, EWARM from IAR, or STM32CubeIDE)

UM3035 – Rev 2

page 43/50

UM3035
Board setup

Step 5.
Step 6. Step 7.

Depending on the STM32 Nucleo board and IDE used, open the software project from: ­ ProjectsSTM32F401RE-NucleoExamplesOut12_14 for NUCLEO-F401RE ­ ProjectsSTM32G431RB-NucleoExamplesOut12_14 for NUCLEO-G431RB
Rebuild all files and load your image into target memory.
Run the example. Each time the user button is pressed, a new command is applied at the digital output as described in Section 2.6.6 Out12_14.

UM3035 – Rev 2

page 44/50

UM3035

Revision history

Table 8. Document revision history

Date

Revision

Changes

09-Jun-2022

1

Initial release.

14Dec-2022

Updated introduction, Section 2.1 Overview, Section 2.2 Architecture, Section 2.3 Folder structure, Section 2.3.1 BSPs, Section 2.3.1.1 STM32F4xx-Nucleo, STM32G4xx_Nucleo, Section 2.3.2 Projects, Section 3.2 Hardware setup, and Section 3.3 Software setup.

Added Section 2.3.1.4 IPS160HF_161HF, Section 2.3.1.7 OUT08_10A1, Section 2.4.3 X-

NUCLEO-OUT08A1, X-NUCLEO-OUT10A1, Section 2.4.5 X-NUCLEO-OUT11A1, X-NUCLEO-

OUT13A1, Section 2.4.6 X-NUCLEO-OUT12A1, X-NUCLEO-OUT14A1, Section 2.6.5 Out11_13,

2

Section 2.6.6 Out12_14, Section 2.6.3 Out08_10, Section 3.1.6 X-NUCLEO-OUT08A1

expansion board, Section 3.1.7 X-NUCLEO-OUT10A1 expansion board, Section 3.1.8 X-

NUCLEO-OUT11A1 expansion board, Section 3.1.9 X-NUCLEO-OUT12A1 expansion board,

Section 3.1.10 X-NUCLEO-OUT13A1 expansion board, Section 3.1.11 X-NUCLEO- OUT14A1

expansion board, Section 3.4.4 X-NUCLEO-OUT08A1 and X-NUCLEO-OUT10A1 expansion

boards, Section 3.4.4 X-NUCLEO-OUT08A1 and X-NUCLEO-OUT10A1 expansion boards,

Section 3.4.6 X-NUCLEO-OUT11A1 and X-NUCLEO-OUT13A1 expansion boards, and

Section 3.4.7 X-NUCLEO-OUT12A1 and X-NUCLEO-OUT14A1 expansion boards.

UM3035 – Rev 2

page 45/50

UM3035
Contents
Contents
1 Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 X-CUBE-IPS software expansion for STM32Cube . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 Folder structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3.1 BSPs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3.2 Projects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 Software required resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.1 X-NUCLEO-OUT03A1, X -NUCLEO-OUT04A1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.2 X-NUCLEO-OUT05A1, X-NUCLEO-OUT06A1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.3 X-NUCLEO-OUT08A1, X-NUCLEO- OUT10A1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4.4 X-NUCLEO-OUT15A1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.5 X-NUCLEO-OUT11A1, X -NUCLEO-OUT13A1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.4.6 X-NUCLEO-OUT12A1, X-NUCLEO-OUT14A1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6 Sample application description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6.1 Out03_04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6.2 Out05_06 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6.3 Out08_10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6.4 Out15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.6.5 Out11_13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6.6 Out12_14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 System setup guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20 3.1 Hardware description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 STM32 Nucleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.1.2 X-NUCLEO- OUT03A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.1.3 X-NUCLEO-OUT04A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.4 X -NUCLEO-OUT05A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.1.5 X-NUCLEO-OUT06A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.1.6 X-NUCLEO-OUT08A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.1.7 X-NUCLEO-OUT10A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.8 X-NUCLEO-OUT11A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.1.9 X-NUCLEO-OUT12A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.10 X-NUCLEO-OUT13A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.1.11 X-NUCLEO-OUT14A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.12 X-NUCLEO-OUT15A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

UM3035 – Rev 2

page 46/50

UM3035
Contents
3.2 Hardware setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.3 Software setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.4 Board setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4.1 STM32 Nucleo development board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.4.2 X-NUCLEO-OUT03A1 and X -NUCLEO-OUT04A1 expansion boards. . . . . . . . . . . . . . . . 32 3.4.3 X -NUCLEO-OUT05A1 and X-NUCLEO-OUT06A1 expansion boards. . . . . . . . . . . . . . . . 35 3.4.4 X-NUCLEO-OUT08A1 and X-NUCLEO-OUT10A1 expansion boards. . . . . . . . . . . . . . . . 37 3.4.5 X-NUCLEO-OUT15A1 expansion board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4.6 X -NUCLEO-OUT11A1 and X-NUCLEO-OUT13A1 expansion boards . . . . . . . . . . . . . . . . 40 3.4.7 X-NUCLEO-OUT12A1 and X-NUCLEO-OUT14A1 expansion boards. . . . . . . . . . . . . . . . 42
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45 List of tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48 List of figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49

UM3035 – Rev 2

page 47/50

UM3035
List of tables

List of tables

Table 1. Table 2. Table 3. Table 4. Table 5. Table 6. Table 7. Table 8.

List of acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Configuration of a stack of four expansion boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Configuration of a stack of four expansion boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Configuration of a stack of four expansion boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Configuration of a stack of two expansion boards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Configuration of a stack of two expansion boards (parallel independent) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Configuration of a stack of two expansion boards (Daisy Chain). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Document revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

UM3035 – Rev 2

page 48/50

UM3035
List of figures

List of figures

Figure 1. Figure 2. Figure 3. Figure 4. Figure 5. Figure 6. Figure 7. Figure 8. Figure 9. Figure 10. Figure 11. Figure 12. Figure 13. Figure 14. Figure 15. Figure 16. Figure 17. Figure 18. Figure 19. Figure 20. Figure 21. Figure 22. Figure 23. Figure 24. Figure 25.

X-CUBE-IPS expansion software architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 X-CUBE-IPS package folder structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 STM32 Nucleo board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 X-NUCLEO-OUT03A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 X-NUCLEO-OUT04A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 X-NUCLEO- OUT05A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 X-NUCLEO-OUT06A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 X-NUCLEO-OUT08A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 X-NUCLEO-OUT10A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 X-NUCLEO- OUT11A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 X-NUCLEO-OUT12A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 X-NUCLEO-OUT13A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 X-NUCLEO-OUT14A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 X-NUCLEO- OUT15A1 expansion board. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 X-NUCLEO-OUT03A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 34 X-NUCLEO-OUT04A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 34 X-NUCLEO-OUT05A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 36 X-NUCLEO- OUT06A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 36 X-NUCLEO-OUT08A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 38 X-NUCLEO-OUT10A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 38 X-NUCLEO-OUT15A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 39 X-NUCLEO-OUT11A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 41 X-NUCLEO-OUT13A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 41 X-NUCLEO-OUT12A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 43 X-NUCLEO- OUT14A1 expansion board connected to an STM32 Nucleo development board . . . . . . . . . . . . . 43

UM3035 – Rev 2

page 49/50

UM3035
IMPORTANT NOTICE ­ 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 acknowledgment. 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, 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.
© 2022 STMicroelectronics ­ All rights reserved

UM3035 – Rev 2

page 50/50

References

Read User Manual Online (PDF format)

Read User Manual Online (PDF format)  >>

Download This Manual (PDF format)

Download this manual  >>

Related Manuals