STMicroelectronics UM3469 X-CUBE-ISO1 软件扩展

介绍
STM1Cube 的 X-CUBE-ISO32 扩展软件包可在 STM32 上运行,并包含 X-NUCLEO-ISO1A1 的固件。该软件为开发 X-NUCLEO 提供的基础 PLC 设备提供了一个易于使用的解决方案。该扩展软件包基于 STM32Cube 软件技术构建,可轻松实现不同 STM32 微控制器之间的移植。
该软件附带一个可在 X-NUCLEO-ISO1A1 扩展板上运行的实现,该扩展板连接到 NUCLEO-G071RB 开发板(或 NUCLEO-G0B1RE 或 NUCLEO-G070RB)。从现在起,为简单起见,本文档中将仅提及 NUCLEO-G071RB。
X-NUCLEO-ISO1A1 板设计支持两块板的堆叠,并具有适当的跳线设置,以扩展输入和输出能力。
缩略语
表 1. 首字母缩略词列表
| 缩写 | 描述 |
| PLC | 可编程逻辑控制器 |
| API | 应用程序编程接口 |
| 脉宽调制 | 脉冲宽度调制 |
| 通用输入输出 | 通用输入/输出。 |
| 哈尔 | 硬件抽象层 |
| PC | 个人电脑 |
| FW | 固件 |
什么是STM32Cube?
STM32Cube™ 代表意法半导体的一项举措,旨在通过减少开发工作量、时间和成本,让开发人员的工作更加轻松。STM32Cube 涵盖 STM32 产品线。
STM32Cube 版本 1.x 包括:
- STM32CubeMX,一种图形软件配置工具,允许使用图形向导生成 C 初始化代码。
- 针对每个系列的综合嵌入式软件平台(例如针对 STM32G0 系列的 STM32CubeG0),其中包括:
- STM32Cube HAL 嵌入式抽象层软件,确保在 STM32 产品组合中实现最大程度的可移植性
- 一组一致的中间件组件,如 RTOS、USB、TCP/IP 和图形
- 所有嵌入式软件实用程序与全套examp莱斯。
STM32Cube架构
STM32Cube 固件解决方案围绕三个独立的级别构建,这些级别可以轻松地相互交互,如下图所示。

STM1Cube 的 X-CUBE-ISO32 软件扩展
超过view
X-NUCLEO-ISO1A1 工业隔离输入/输出扩展板的固件基于 STM32 环境和库开发,利用 STM32 Nucleo 开发板的高性能 MCU 来管理数字输入、集成诊断功能的输出、动态电流限制以及 PWM 信号生成。它具有全面的开发板配置和控制功能,包括默认和备用条件的框架、用于设置预分频器值的宏以及 GPIO 端口和引脚的定义。
它支持各种ample 应用用例,例如数字输入到输出镜像、通过 Nucleo 板的 UART 通信、故障检测、测试用例和 PWM 生成,可直接使用且易于定制和扩展。
该 API 提供了一套强大的函数,用于数字输入/输出控制、故障检测和电路板状态更新,并提供配置设置,允许在不同模式下同时运行两个电路板。此外,还提供特定的 API 函数,用于初始化、启动、停止以及配置数字输出通道的 PWM 信号。
电路板支持包包括控制和监控与 IPS1025H-32 接口的 GPIO 引脚以及通过数字隔离器读取与 CLT03-2Q3 接口的 GPIO 引脚状态的功能。
配置和初始化基于 STM32CubeMX,并由 STM32CubeIDE、IAR Systems 和 Keil® 工具支持开发和调试。
建筑学
X-NUCLEO-ISO1A1 的固件可以分为几个不同的功能块,每个功能块负责系统操作的各个方面:

- 电路板配置和控制:
- board_config.h file 包含用于配置开发板在默认或替代条件下(或两者兼有)运行的宏。它还包含预分频器值以及 GPIO 端口和引脚的定义。
- 该模块确保电路板按照所需的操作条件正确设置,并且所有必要的硬件配置都已到位。
- 应用用例:
- st_iso_app.h 和 st_iso_app.c file包含用于测试主板各种功能的应用用例。
- 这些用例包括数字输入到输出镜像、故障检测测试和 PWM 信号生成。
- Examp提供了用于以不同模式同时运行两个板的配置,展示了固件的多功能性和灵活性。
- API函数:
- iso1a1.h 和 iso1a1.c file提供一套全面的 API 来支持各种功能。
- 这些 API 包括数字输入/输出控制、故障检测和电路板状态更新的功能。
- API 设计简单、直观,方便用户与主板交互并执行必要的操作。
- PWM信号控制:
- pwm_api.h 和 pwm_api.c file包含与PWM信号生成相关的特定API函数。
- 这些功能允许初始化、配置、启动和停止数字输出通道的 PWM 信号。
- PWM 功能并非默认选项。已修改开发板配置以启用此功能。更多详情,请参阅第 3.5 节:API。
- 董事会支持包:
- 董事会支持包包括 file用于控制和监控与 IPS1025H-32 连接的 GPIO 引脚并读取与 CLT03-2Q3 连接的 GPIO 引脚的状态。
- ips1025h_32.h 和 ips1025h_32.c file提供设置、清除和检测与 IPS1025H-32 连接的 GPIO 引脚故障的功能。
- clt03_2q3.h 和 clt03_2q3.c file提供读取与 CLT03-2Q3 连接的 GPIO 引脚状态的功能。
演示固件实现了几个简单的用例,以展示系统的功能。这些用例和用户 API 以协调的方式执行,以确保平稳运行和准确结果。该架构设计易于扩展,允许用户根据需要添加新的功能和用例。提供默认配置,用于运行带有数字工业 IO 的单板。跳线设置也需要设置为默认模式,如表 2 所示。数字输入数字输出镜像 (DIDO) 是默认的固件应用用例。
资料夹结构

软件包中包含以下文件夹:
- 文档包含已编译的 HTML file 从源代码生成,详细说明软件组件和 API。
- 驱动包含:
- STM32Cube HAL 文件夹,位于子文件夹 STM32G0xx_HAL_Driver 中。这些 file这里没有描述,因为它们不是特定于 X-CUBE-ISO1 软件,而是直接来自 STM32Cube 框架。
- 包含 Cortex® 微控制器软件接口标准的 CMSIS 文件夹 file来自 Arm。 这些 file是 Cortex®-M 处理器系列的独立于供应商的硬件抽象层。此文件夹与 STM32Cube 框架相同。
- 一个 BSP 文件夹,其中包含组件 IPS1025H-32 和 CLT03-2Q3 的代码以及与 X-NUCLEO-ISO1A1 相关的 API。
- 应用程序包含包含 main.c 的用户文件夹 file,应用程序用例 file、st_iso_app.c 和 board_config.h file,为NUCLEO-G071RB平台提供。
BSP文件夹
X-CUBE-ISO1 软件使用两个不同的组件 files,位于 BSP/Components 内部:
IPS1025
ips1025h_32.h 和 ips1025h_32.c file为与IPS1025H-32接口的GPIO引脚提供全面的驱动程序实现,包括控制所有引脚和检测故障的完整功能。这些 file实现了初始化设备、设置和清除通道状态、检测故障条件以及管理PWM功能的功能。该驱动程序支持多个设备和通道,无论是单个通道还是通道组,都具有完整的功能。
临床研究与开发中心
clt03_2q3.h 和 clt03_2q3.c file为与 CLT03-2Q3 接口的 GPIO 引脚实现功能齐全的驱动程序,能够读取所有引脚状态。该驱动程序提供初始化设备、读取单个通道状态以及同时获取所有通道状态信息的功能。它支持多种设备配置,并维护内部状态以实现有效的通道管理。
X-CUBE-ISO1 软件 API 分为两个主要来源 files,位于 ISO1A1 子文件夹内:
ISO1A1
ISO1A1 file包含一套全面的 API 函数,用于电路板配置、组件交互和故障管理。这些函数有助于读写操作、故障检测和更新,并包含各种辅助实用程序来支持主要的 API 函数。此外, file提供 LED 控制、GPIO 初始化、中断处理和 UART 通信的功能。
脉宽调制 API
PWM API 提供用于初始化、配置、启动和停止 PWM 信号的函数。它允许设置指定定时器引脚的 PWM 频率和占空比,确保对 PWM 操作进行精确控制。
应用程序文件夹
应用程序文件夹包含主要 file固件所需的文件,包括头文件和源代码 file以下是 files 在这个文件夹中:
- board_config.h:电路板的配置宏。
- main.c:主程序(example,它基于 ISO1A1 的库)。
- st_iso_app.c:用于电路板测试和配置的应用程序函数。
- stm32g0xx_hal_msp.c:HAL初始化例程。
- stm32g0xx_it.c:中断处理程序。
- syscalls.c:系统调用实现。
- sysmem.c:系统内存管理。
- system_stm32g0xx.c:系统初始化。
软件所需资源
Nucleo 设备通过 GPIO 控制 X-NUCLEO-ISO1A1 开发板并与其通信。这需要使用多个 GPIO 来对 X-NUCLEO-ISO1A1 开发板中包含的工业 IO 设备进行输入、输出和故障检测。有关更多详细信息和跳线配置,请参阅硬件用户手册 UM3483。
电路板配置(board_config.h)
board_config.h file 定义所使用的资源和配置宏,以便根据电路板配置来配置软件。它最多可处理两块电路板(例如两块电路板堆叠)。
软件默认配置与 X-NUCLEO-ISO1A1 扩展板的跳线处于默认位置时保持一致。要将软件配置为 X-NUCLEO-ISO1A1 的默认设置,请取消注释 board_config.h 文件中的 BOARD_ID_DEFAULT 宏。 file.
通过取消注释 board_config.h 中的 BOARD_ID_ALTERNATE 宏来设置软件 ALTERNATE 配置 file 并改变电路板上的跳线位置。
要在堆叠配置中同时使用两块板,请取消注释 BOARD_ID_DEFAULT 和 BOARD_ID_ALTERNATE 宏,并确保一块板的跳线处于默认位置,另一块板的跳线处于备用位置。请注意,不建议将两块板置于相同的配置(无论是都处于默认位置还是都处于备用位置),否则可能会导致异常行为。
当仅运行一块板时,请确保软件仅针对一种配置进行配置,并且注释掉与另一种配置相对应的宏。

预分频器
我们可以在 board_config.h 中配置预分频器的值,通过设置相应的宏来实现不同的 PWM 输出频率范围。要使用预分频器值,请取消注释相应的宏,并注释其他宏。默认情况下,使用 DEFAULT_PRESCALAR。
- 预分频器_1
- 预分频器_2
- 默认预分频器
预分频器的值仅在使用定时器时使用,任何基本 I/O 操作都不需要。预分频器宏的值及其对应的频率范围可以在代码文档或代码本身中查看。
心跳 LED
我们可以将绿色用户 LED D7 配置为心跳闪烁,以测试其是否正确连接到 NUCLEO-G071RB 开发板。宏 HEARTBEAT_LED(取消注释)会在 X-NUCLEO-ISO1A1 连接到 NUCLEO 时使其上的绿色 LED 闪烁。该 LED 亮 1 秒,灭 2 秒,定时由定时器控制。当不使用宏或调用任何涉及 LED 的函数时,应取消注释该宏。
输入输出GPIO配置
每块 X-NUCLEO-ISO1A1 板配备两个输入端口和两个输出端口。通过将两块 X-NUCLEO-ISO1A1 板堆叠在一起,可以扩展该板的功能,从而可以使用四个数字输入端口和四个数字输出端口。提供的软件包含全面的 API,方便读取、设置和清除端口。此外,这些 API 还允许同时设置、读取或清除所有端口。有关 API 函数的详细信息,请参阅代码文档以及本文档的 API 部分。

此处,前缀 DI 表示数字输入端口,DO 表示数字输出端口。对于备用配置,软件使用相同的命名约定,并附加 _alt 后缀。
下表详细列出了各个IO口对应的软件中定义的GPIO宏:
表 2. 为默认和替代软件配置分配的 GPIO
| 姓名 | 功能 | 默认配置 | 替代配置 |
| 输入密码 | 输入引脚 1 | GPIOC,IA0_IN_1_PIN | GPIOD,IA0_IN_1_PIN |
| 输入引脚 2 | GPIOD,IA1_IN_2_PIN | GPIOC,IA1_IN_1_PIN | |
| 输出引脚 | 输出引脚1 | GPIOC,QA0_CNTRL_1_PIN | GPIOD,QA0_CNTRL_1_PIN |
| 输出引脚2 | GPIOC,QA1_CNTRL_2_PIN | GPIOC,QA1_CNTRL_2_PIN | |
| 故障引脚 | 故障引脚1 | GPIOC,FLT1_QA0_2_OT_PIN | GPIOD,FLT1_QA0_1_OT_PIN |
| 故障引脚2 | GPIOC,FLT2_QA0_2_OL_PIN | GPIOD,FLT2_QA0_1_OL_PIN | |
| 故障引脚3 | GPIOC,FLT1_QA1_2_OT_PIN | GPIOC,FLT1_QA1_1_OT_PIN | |
| 故障引脚4 | GPIOC,FLT2_QA1_1_OL_PIN | GPIOD,FLT2_QA1_2_OL_PIN | |
| 配置宏 | BOARD_ID_DEFAULT | BOARD_ID_ALTERNATE |
定时器和PWM
X-CUBE-ISO1 固件中的定时器可用于为特定引脚生成 PWM 信号。默认情况下,除 TIM3 外,其他定时器均未初始化。在生成 PWM 信号之前,应初始化相应的定时器,并且在 PWM 模式下,必须初始化相应的输出端口。
对于正常的 GPIO 输入/输出操作,无需配置任何定时器或输出端口,因为这些操作已默认完成。但是,如果输出引脚设置为 PWM 模式,则需要在 GPIO 模式下重新配置它们,才能将其用作 GPIO 引脚。
笔记: 当输出引脚用于生成 PWM 时,GPIO 输出将被禁用,这两个功能无法同时实现。要在 PWM 使用后重新启用 GPIO,可以调用 API 函数 ST_ISO_BoardConfigureDefault() 或 ST_ISO_InitGPIO() 将所有端口一次性配置为 GPIO,或者调用 ST_ISO_Init_GPIO() 并指定特定的 GPIO 端口和引脚。
如上所述,软件还默认使用一个定时器TIM3,用于用户LED定时、时钟以及UART定时的实现,默认配置周期为1秒。
下表详细说明了我们的代码中每个引脚可用的计时器:
表 3. 每个引脚可用的定时器
| 引脚名称 | 软件表示 | 计时器 | 定时器通道 | 替代功能 |
| QA0_CNTRL_1_PIN | QA_0 | TIM2 | TIM_CHANNEL_4 | GPIO_AF2_TIM2 |
| QA1_CNTRL_2_PIN | QA_1 | TIM1 | TIM_CHANNEL_3 | GPIO_AF2_TIM1 |
| QA0_CNTRL_2_PIN | QA_0_ALT | TIM1 | TIM_CHANNEL_4 | GPIO_AF2_TIM1 |
| QA1_CNTRL_1_PIN | QA_1_ALT | TIM17 | TIM_CHANNEL_1 | GPIO_AF2_TIM17 |
固件的附加实用程序
该固件包含一些额外的实用程序,用于增强 X-NUCLEO-ISO1A1 评估板的功能。其中一些功能如下所述。
通用异步收发器
UART 通信功能允许通过 PC 实用程序(例如 TeraTerm、PuTTY 和其他类似应用程序)实时监控和调试开发板状态。该软件支持通过 NUCLEO-G071RB 开发板中的 UART 进行 UART 数据传输。“ST_ISO_UART”函数通过 UART 发送详细的开发板状态信息,包括系统正常运行时间、固件配置和故障状态。这些数据可以 view使用任何串行端口应用程序(例如 TeraTerm)进行编辑。`ST_ISO_APP_DIDOandUART` 函数将数字输入/输出操作与 UART 通信相结合,以指定的时间间隔传输所有输入和输出通道的状态。以下是配置设置和示例amp数据在 TeraTerm 中的显示方式。端口名称可能因所使用的系统和串行端口而异。


IO引脚模式配置
IO 引脚模式配置实用程序允许用户使用 ST_ISO_BoardConfigure() 函数设置开发板的输入和输出端口。该函数支持将两个输出端口(QA0、QA1)和两个输入端口(IA0、IA1)配置为输入/输出模式、PWM 输出模式或中断输入模式。通过调整参数并调用该函数,用户可以轻松自定义开发板的 IO 配置,以满足特定需求。
在输入/输出模式下,该实用程序会初始化 GPIO 引脚,用于通用数字操作。在 PWM 输出模式下,它会设置定时器,以实现精确的 PWM 信号控制。在中断输入模式下,该实用程序会配置引脚以处理中断,从而实现响应式事件驱动编程。
中断处理
为了处理故障信号,软件启用相关的中断线,从而实现响应式事件驱动编程。自定义处理程序可以通过
API 中定义的 HAL_GPIO_EXTI_Rising_Callback 函数。该软件包含通过 ST_ISO_BoardConfigure 函数在中断模式下初始化 GPIO 引脚以及在 EXTI IRQ 处理程序中配置特定操作的功能。这允许用户自定义开发板对外部事件的响应方式,确保其能够有效管理各种故障条件和触发事件。
蜜蜂
X-CUBE-ISO1 软件 API 提供了一套全面的功能来控制和监控 X-NUCLEO-ISO1A1 开发板,包括 PWM 信号生成和 GPIO 操作。该 API 易于使用,易于集成到各种应用中,从而提供灵活性并可控制开发板的功能。
X-CUBE-ISO1 软件 API 定义在 BSP/ISO1A1 文件夹中。其函数以 ST_ISO 为前缀。应用程序可以通过 iso1a1.c 和 pwm_api.c 访问该 API。 files 是常量、数据结构和函数的组合。
Sample 固件应用程序利用这些 API 来展示这些功能的一些可能用途。
X-CUBE-ISO1软件包提供了两组API:
- ISO1A1 API
- 脉宽调制 API
ISO1A1 API
ISO1A1 API 在 iso1a1.h 和 iso1a1.c 中定义 files. 它提供配置和控制ISO1A1板的功能,包括GPIO输入/输出操作和故障检测。
主要功能
- ST_ISO_BoardConfigureDefault:使用默认 GPIO 配置配置板的 IO 端口。
- ST_ISO_BoardConfigure:配置板的输入和输出端口的模式。
- ST_ISO_BoardInit:初始化板卡硬件。
- ST_ISO_BoardMapInit:根据通道句柄配置初始化板功能。
- ST_ISO_GetFWVersion:返回当前固件版本。
- ST_ISO_GetChannelHandle:检索指定通道名称的通道句柄。
- ST_ISO_InitGPIO:使用给定的模块 ID 初始化指定的 GPIO 引脚。
- ST_ISO_InitInterrupt:使用给定的模块 ID 将指定的 GPIO 引脚初始化为中断。
- ST_ISO_EnableFaultInterrupt:以中断模式初始化故障 GPIO 引脚。
- ST_ISO_SetChannelStatus:设置指定通道的状态。
- ST_ISO_SetOne_DO:设置单个数字输出通道。
- ST_ISO_ClearOne_DO:清除单个数字输出通道。
- ST_ISO_WriteAllChannels:将数据写入所有数字输出通道。
- ST_ISO_GetOne_DI:获取单个数字输入通道的状态。
- ST_ISO_ReadAllChannel:读取所有输入通道的状态。
- ST_ISO_ReadAllOutputChannel:读取所有输出通道的状态。
- ST_ISO_ReadFaultStatus:从所有故障检测端口读取故障状态。
- ST_ISO_ReadFaultStatusPolling:以轮询模式测试电路板的故障检测。
- ST_ISO_DisableOutputChannel:禁用该通道的输出。
- ST_ISO_UpdateBoardStatusInfo:更新板卡状态信息。
- ST_ISO_UpdateFaultStatus:更新特定通道的故障状态。
- ST_ISO_BlinkLed:以给定的延迟和重复次数闪烁指定的 LED。
- ST_ISO_UART:通过 UART 发送板状态信息。
- ST_ISO_SwitchInit:初始化开关组件。
- ST_ISO_SwitchDeInit:取消初始化开关实例。
- ST_ISO_DigitalInputInit:初始化数字输入组件。
- ST_ISO_DigitalInputDeInit:取消初始化数字输入实例。
脉宽调制 API
PWM API 在 pwm_api.h 和 pwm_api.c 中定义 files. 它提供以下函数来初始化和控制特定引脚的PWM信号。
- ST_ISO_Init_PWM_Signal:初始化 PWM 信号的定时器和特定引脚。
- ST_ISO_Set_PWM_Frequency:设置特定引脚的 PWM 频率。
- ST_ISO_Set_PWM_Duty_Cycle:设置特定引脚的 PWM 占空比。
- ST_ISO_Start_PWM_Signal:在特定引脚上启动 PWM 信号。
- ST_ISO_Stop_PWM_Signal:停止特定引脚上的 PWM 信号。
要在相应通道上启动 PWM 信号,首先调用 ST_ISO_Init_PWM_Signal 函数,然后通过调用 ST_ISO_Set_PWM_Frequency 设置所需的频率和占空比,并
ST_ISO_Set_PWM_Duty_Cycle 函数,然后您可以通过调用 ST_ISO_Start_PWM_Signal 函数启动 PWM 信号,并通过调用 ST_ISO_Stop_PWM_Signal 函数停止 PWM 信号。
调用该函数时需要传入相应的引脚名称和可用的定时器,具体信息如表3所示。不同的输出通道可以设置不同的频率和占空比,改变频率或占空比不会影响另一个通道,保持不变。
用户可用 API 的详细技术信息可在编译后的 HTML 中找到 file 位于软件包的“Documentation”文件夹内,其中完整描述了所有功能和参数。
应用说明
演示应用程序实现了几个简单的用例。st_iso_app 和 board_config file在设置和使用开发板及其应用功能时,这些功能起着至关重要的作用。在使用这些功能之前,请确保开发板和软件的配置已同步。
应用程序函数(st_iso_app.h 和 st_iso_app.c)
应用程序函数以 ST_ISO_APP 为前缀;它们是用户可见的顶级函数,用户调用 API 函数来实现它们。这些应用程序函数可以在 main.c 中调用。 file 以确保其正常运作。
- 用例选择:用户可以在 st_iso_app.c 中取消注释所需的用例宏 filemain.c 中调用的函数 ST_ISO_APP_SelectUseCaseMacro() 初始化该用例,而 main.c 中的函数 ST_ISO_APP_SelectedFunction() 实现该用例。这种方法只需修改宏定义即可轻松配置操作模式,确保根据所选用例执行相应的功能。默认情况下,选择用例 DIDO,用户无需对代码进行任何更改即可实现该用例。
- 数字输入到数字输出镜像 (ST_ISO_APP_UsecaseDIDO):此函数读取所有输入通道的状态,并将相同的状态写入所有输出通道。它对于将数字输入镜像到数字输出非常有用。
- 使用 UART 实现数字输入到数字输出的镜像 (ST_ISO_APP_DIDOandUART):此函数将数字输入镜像到数字输出,类似于 ST_ISO_APP_UsecaseDIDO 函数。此外,它还通过 Nucleo 设备上的 UART 接口传输开发板状态,从而允许 view使用 Tera Term 等应用程序在串行端口上进行编辑。
- 测试用例函数 (ST_ISO_APP_TestCase):此函数根据开发板配置执行一系列测试和操作。它会检查故障状态,读取两个数字输入通道的状态,并根据它们的值执行操作。此函数有助于快速评估开发板的性能和功能,并通过不同的 LED 模式获取视觉反馈。请确保 board_config.h 文件中包含 HEARTBEAT_LED 宏。 file 被评论以观察正确的 LED 模式。
- PWM 生成 (ST_ISO_APP_PWM _OFFSET):此函数在两个输出通道上启动 PWM 信号,频率为 1 Hz,占空比为 50%。该函数初始化 PWM 信号,设置频率和占空比,并启动指定板 ID 的 PWM 信号。生成的 PWM 信号在两个通道之间存在偏移,因此它们的相位不同。
- 故障检测测试 (ST_ISO_APP_FaultTest):该函数通过驱动智能输出模块 IPS1025 的内置诊断引脚,以轮询或中断模式评估故障检测。它配置故障检测模式,初始化故障检测,并根据所选模式更新故障状态结构。该函数通过有效检测和处理故障,对于确保电路板的可靠性和安全性至关重要。在轮询模式下,故障状态借助计时器每秒更新一次,并反映在 defaultBoardFaultStatus 或 alternativeBoardFaultStatus 结构中。在中断模式下,仅在发生故障时更新故障状态,并触发软件清除相应的输出端口。
- PWM 变化测试 (ST_ISO_APP_PwmVariationTest):此函数旨在根据电路板配置测试 PWM(脉冲宽度调制)信号在不同输出通道上的变化。它会初始化默认和备用电路板配置的 PWM 信号,将其频率设置为 100 Hz,初始占空比设置为 0%。然后,该函数会以 0% 的增量将占空比从 100% 变为 5%,再以 100% 的递减量将占空比从 0% 变为 5%,每一步之间有 2 秒的延迟。这种受控的变化允许观察和评估默认电路板 QA_0 和 QA_1 通道以及备用电路板 QA_0_ALT 和 QA_1_ALT 通道上的 PWM 信号行为。
通过遵循这些配置并利用提供的应用程序功能,您可以有效地设置和使用 X-NUCLEO-ISO1A1 板进行各种演示用例。
系统设置指南
硬件说明
STM32 Nucleo平台
STM32 Nucleo 开发板为用户提供了一种经济且灵活的方式来测试解决方案并使用任何 STM32 微控制器系列构建原型。
Arduino® 连接支持和 ST morpho 连接器可轻松扩展 STM32 Nucleo 开放开发平台的功能,并提供多种专用扩展板供您选择。
STM32 Nucleo 板不需要单独的探头,因为它集成了 ST-LINK/V2-1 调试器/编程器。
STM32 Nucleo 板带有全面的 STM32 软件 HAL 库以及各种打包软件amp莱斯。

有关 STM32 Nucleo 开发板的信息,请访问 www.st.com/stm32nucleo
X-NUCLEO-ISO1A1扩展板
X-NUCLEO-ISO1A1 是一款具有隔离工业输入/输出的评估板,旨在扩展 STM32 Nucleo 开发板并提供微型 PLC 功能。两块 X-NUCLEO-ISO1A1 开发板可以堆叠在一块 STM32 Nucleo 开发板上,并在扩展板上选择合适的跳线,以避免 GPIO 接口冲突。经 UL1577 认证的数字隔离器 STISO620 和 STISO621 可在逻辑侧和工艺侧组件之间提供隔离。工艺侧的两个限流高侧输入通过 CLT03-2Q3 实现。CLT03-2Q3 为工业环境提供保护、隔离和无能耗状态指示,符合 IEC61000-4-2、IEC61000-4-4 和 IEC61000-4-5 等标准。 IPS1025H-32/HQ-32 高端开关各一个,提供高达 5.6 A 的保护输出,并具备诊断和智能驱动功能。这些开关可驱动容性、阻性或感性负载。X-NUCLEO-ISO1A1 允许使用 X-CUBE-ISO1 软件包快速评估板载 IC。

硬件设置
需要以下硬件组件:
- 一个 STM32 Nucleo 开发平台(建议订购代码:NUCLEO-GO71RB)
- 一块工业数字量输出扩展板(订购代码:X-NUCLEO-ISO1A1)
- 一根 USB A 型转 Micro USB 线缆,用于将 STM32 Nucleo 连接到 PC
- 外部电源(24 V)和相关电线为 X-NUCLEO-ISO1A1 扩展板供电。
软件设置
需要以下软件组件来设置合适的开发环境,以便为配备 X-NUCLEO-ISO32A1 扩展板的 STM1 Nucleo 创建应用程序:
- X-CUBE-ISO1:STM32Cube 的扩展板,专用于需要使用 X-NUCLEO-ISO1A1 开发板的应用开发。X-CUBE-ISO1 固件及相关文档可在以下位置获取: www.st.com
- 开发工具链和编译器:STM32Cube扩展软件支持以下三种环境:
- IAR Embedded Workbench for ARM® (IAR-EWARM) 工具链
- 真实的View 微控制器开发套件(MDK-ARM-STM32)工具链
- STM32CubeIDE。
电路板设置
必须按照硬件用户手册 (UM3483) 中的规定,为开发板配置合适的跳线设置。仔细遵循这些指南对于确保功能正常并避免潜在问题至关重要。
系统设置指南
本节介绍如何在 STM32 Nucleo、NUCLEO-G071RB 板和 X-NUCLEO-ISO1A1 扩展板上开发和执行应用程序之前设置不同的硬件部件。


X-CUBE-ISO1 扩展包的设置
X-NUCLEO-ISO1A1 必须根据您运行的开发板配置,配置特定的跳线位置。更多详细信息,请参阅硬件手册。
- 步骤1. 通过形态连接器将 X-NUCLEO-ISO1A1 扩展板插入 STM32 Nucleo 顶部。
如果您使用两块叠放在一起的木板,请按照图 11 所示将它们堆叠起来。 - 步骤2. 通过 USB 连接器 CN32 将 STM1 Nucleo 开发板通过 USB 电缆连接到 PC,为开发板供电。
- 步骤3. 将 J1 连接到 1V DC 电源,为 X-NUCLEO-ISO1A24 扩展板供电。如果使用堆叠板,请确保两块板都已通电。
- 步骤4. 打开您喜欢的工具链(Keil 的 MDK-ARM、IAR 的 EWARM 或 STM32CubeIDE)。
- 步骤5. 打开软件项目并对 board_config.h 进行必要的更改 file 根据所用电路板的配置。
- 步骤6. 在 st_iso_app.c 中设置适当的用例宏 file 或者使用 main.c 中的 ST_ISO_APP_SelectUseCase 函数调用所需的用例 file 以及任何其他所需的功能。
- 步骤7. 构建项目以编译所有 file并将编译后的代码加载到 STM32 Nucleo 板的内存中。
- 步骤8. 在 STM32 Nucleo 板上运行代码并验证预期行为。
修订历史
表 4. 文档修订历史
| 日期 | 修订 | 更改 |
| 14 年 2025 月 XNUMX 日 | 1 | 初始版本。 |
重要通知——请仔细阅读
STMicroelectronics NV 及其子公司 (“ST”) 保留随时更改、更正、增强、修改和改进 ST 产品和/或本文档的权利,恕不另行通知。购买者应在下订单前获取有关 ST 产品的最新相关信息。ST 产品根据订单确认时有效的 ST 销售条款和条件销售。
购买者对 ST 产品的选择、挑选和使用负全部责任,ST 对应用协助或购买者产品的设计不承担任何责任。
ST 在此不授予任何明示或暗示的知识产权许可。
如果转售的 ST 产品的规定与此处所述的信息不同,则 ST 对该产品授予的任何保证将失效。
ST 和 ST 标志是 ST 的商标。 有关 ST 商标的更多信息,请参阅 www.st.com/trademarks。 所有其他产品或服务名称均为其各自所有者的财产。
本文档中的信息取代并替换了该文档之前任何版本中提供的信息。
© 2025 STMicroelectronics – 保留所有权利
文件/资源
![]() |
STMicroelectronics UM3469 X-CUBE-ISO1 软件扩展 [pdf] 用户手册 X-NUCLEO-ISO1A1、NUCLEO-G071RB、UM3469 X-CUBE-ISO1 软件扩展、UM3469、X-CUBE-ISO1 软件扩展、软件扩展 |

