STM32 X-CUBE-IPS Industrial Digital Output Software User Manual
- June 10, 2024
- STM
Table of Contents
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:
-
Connect the expansion board to the NUCLEO-F401RE or
NUCLEO-G431RB development board. -
Download and install the STM32Cube software.
-
Download and install the X-CUBE-IPS software package.
-
Use the sample implementations provided with the package to
build your own application for controlling the digital output of
the expansion board(s). -
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. -
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
- ISO808 - Galvanic isolated octal high-side power solid state relay for high inductive loads - STMicroelectronics
- ISO808A-1 - Galvanic isolated octal high-side power solid state relay with SPI interface for high inductive loads - STMicroelectronics
- IPS1025H-32 - High efficiency, high-side switch with extended diagnostics and smart driving for capacitive loads - STMicroelectronics
- IPS1025H - High efficiency, high-side switch with extended diagnostic and smart driving for capacitive loads - STMicroelectronics
- IPS1025HF - High efficiency, high-side switch with extended diagnostics, smart driving for capacitive loads and short propagation delay at power-on - STMicroelectronics
- IPS160HF - Single channel high-side switches - STMicroelectronics
- IPS161HF - Single channel high-side switches - STMicroelectronics
- IPS2050H-32 - High efficiency, high-side switch with extended diagnostics and smart driving for capacitive loads - STMicroelectronics
- IPS2050H - High efficiency, high-side switch with extended diagnostics and smart driving for capacitive loads - STMicroelectronics
- ISO808-1 - Galvanic isolated octal high-side power solid state relay for high inductive loads - STMicroelectronics
- ISO808 - Galvanic isolated octal high-side power solid state relay for high inductive loads - STMicroelectronics
- ISO808A-1 - Galvanic isolated octal high-side power solid state relay with SPI interface for high inductive loads - STMicroelectronics
- ISO808A - Galvanic isolated octal high-side power solid state relay with SPI interface for high inductive loads - STMicroelectronics
- NUCLEO-F401RE - STM32 Nucleo-64 development board with STM32F401RE MCU, supports Arduino and ST morpho connectivity - STMicroelectronics
- NUCLEO-G431RB - STM32 Nucleo-64 development board with STM32G431RB MCU, supports Arduino and ST morpho connectivity - STMicroelectronics
- ST-LINK/V2 - ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32 - STMicroelectronics
- STSW-LINK009 - ST-LINK, ST-LINK/V2, ST-LINK/V2-1, STLINK-V3 USB driver signed for Windows7, Windows8, Windows10 - STMicroelectronics
- X-CUBE-IPS - Software expansion for STM32Cube driving industrial digital output based on IPS - STMicroelectronics
- X-NUCLEO-OUT03A1 - Industrial digital output expansion board based on IPS2050H for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT04A1 - Industrial digital output expansion board based on IPS2050H-32 for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT05A1 - Industrial digital output expansion board based on IPS1025H for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT06A1 - Industrial digital output expansion board based on IPS1025H-32 for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT08A1 - Industrial digital output expansion board based on IPS160HF for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT10A1 - Industrial digital output expansion board based on IPS161HF for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT11A1 - Industrial digital output expansion board based on ISO808 for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT12A1 - Industrial digital output expansion board based on ISO808A for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT13A1 - Industrial digital output expansion board based on ISO808-1 for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT14A1 - Industrial digital output expansion board based on ISO808A-1 for STM32 Nucleo - STMicroelectronics
- X-NUCLEO-OUT15A1 - Industrial digital output expansion board based on IPS1025HF for STM32 Nucleo - STMicroelectronics
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>