意法半导体-LOGO

STMicroelectronics UM3399 STM32Cube WiSE 无线电代码生成器

STMicroelectronics-UM3399-STM32Cube-WiSE-无线电代码生成器产品

产品使用说明

  • STM32CubeWiSE-RadioCodeGenerator 应用程序至少需要 2 GB 的 RAM、USB 端口和 Adob​​e Acrobat reader 6.0。
  • 提取 stm32wise-cgwin.zip 的内容 file 到一个临时目录。
  • 启动 STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file 并按照屏幕上的说明进行操作。
  • STM32CubeWiSE-RadioCodeGenerator SW 包 file被组织到包括“app”和“examp莱斯'。
  • 要在 STM32CubeWiSE-RadioCodeGenerator 中构建流程图:
  • 使用工具栏或全局菜单将 SeqActions 添加到流程图。
  • 通过绘制动作转换箭头将 SeqActions 连接到入口点并相互连接。
  • 根据需要,通过拖动动作和添加动作转换来导航流程图。

介绍

  • 本文档介绍了带有 STM32WL32x MRSUBG 序列器代码生成器的 STM32CubeWiSE-RadioCodeGenerator(STM3CubeWiSEcg)SW 包。
  • STM32CubeWiSE-RadioCodeGenerator 是一个 PC 应用程序,用于使用 MRSUBG 序列驱动程序构建流程图,定义在哪种条件下执行哪些收发器操作。
  • STM32WL3x Sub-GHz 无线电包含此序列器,它是一种类似状态机的机制,允许自主管理 RF 传输,而无需 CPU 干预。
  • 如果需要 CPU 干预,则可以定义中断。收发器操作可以排列在流程图中。在本文档中,单个收发器操作称为 SeqActions。
  • 然而,源代码并不是流程图的最佳表示,因为它隐藏了流程图的逻辑和时间结构。
  • STM32CubeWiSE-RadioCodeGenerator 通过提供图形方法来构建流程图,然后将生成的流程图导出为 C 源代码以集成到用户应用程序中,从而解决了这个问题。
  • 流程图定义以以下形式存储在微控制器 RAM 中:
    • 一组 ActionConfiguration RAM 表,使用指针相互链接。这些指针定义 SeqActions,即动作的类型(例如amp动作传输包括:发送、接收、中止(le)、以及 SeqAction 特定的无线电参数和条件。
    • 唯一的 GlobalConfiguration RAM 表。它定义了流程图的入口点(要执行的第一个 SeqAction),以及一些默认标志值和通用无线电参数。
  • 可以为每个 SeqAction 单独配置的无线电参数存储在动态寄存器之一中,其内容是 ActionConfiguration RAM 表的一部分。在流程图的整个执行过程中固定不变的无线电参数(除非在 CPU 中断期间对其进行修改)存储在静态寄存器中,其内容是全局配置 RAM 表的一部分。

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-1

一般信息

许可
本文档介绍了在基于 STM32WL3x Arm® Cortex ® -M0+ 的微控制器上运行的软件。
笔记: Arm 是 Arm Limited(或其子公司)在美国和/或其他地方的注册商标。

相关文件

表 1. 文档参考

数字 参考 标题
[1] RM0511 基于 STM32WL30xx/31xx/33xx Arm® 的 sub-GHz MCU

入门

  • 本节介绍运行 STM32CubeWiSE-RadioCodeGenerator 的所有系统要求。
  • 它还详细介绍了软件包的安装过程。

系统要求
STM32CubeWiSE-RadioCodeGenerator 应用程序具有以下最低要求:

  • 配备 Intel® 或 AMD® 处理器并运行 Microsoft® Windows 10 操作系统的 PC
  • 至少 2 GB 的 RAM
  • USB 端口
  • Adobe Acrobat 阅读器 6.0

STM32CubeWiSE-RadioCodeGenerator SW 包设置
执行以下步骤:

  1. 提取 stm32wise-cgwin.zip 的内容 file 到一个临时目录。
  2. 提取并启动 STM32CubeWiSE-RadioCodeGenerator_Vx.xxexe file 并按照屏幕上的说明进行操作。

STM32CubeWiSE-RadioCodeGenerator SW 包 files
STM32CubeWiSE-RadioCodeGenerator SW 包 file被组织到以下文件夹中:

  • 应用程序:包含 STM32CubeWiSE-RadioCodeGenerator.exe
  • examples:该文件夹分为以下子文件夹:
  • 代码:此文件夹包含流程图amp已导出为 C 代码,可直接注入到应用程序项目中
  • flowgraphs: 此文件夹存储了一些示例amp自主MRSUBG测序仪操作的场景

发行说明和许可证 file位于根文件夹中。

STM32CubeWiSE-RadioCodeGenerator软件说明

  • 本节介绍 STM32CubeWiSE-RadioCodeGenerator 应用程序的主要功能。要运行此实用程序,请单击 STM32CubeWiSE-RadioCodeGenerator 图标。

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-2

启动 STM32CubeWiSE-RadioCodeGenerator 后,将出现主应用程序窗口。它包括:

  • 全局菜单和工具栏
  • 流程图的可视化拖放表示
  • SeqAction 配置部分(仅当 SeqAction 当前正在编辑时才可见)

构建流程图
基础知识
流程图的构建分为两个步骤:

  1. 将 SeqActions 添加到流程图。可以使用工具栏中的“添加操作”按钮、全局菜单(编辑 → 添加操作)或“Ctrl+A”快捷键来完成此操作。
  2. 通过绘制动作转换箭头将 SeqActions 连接到入口点并相互连接。

这些转换发生的条件稍后定义(参见第 3.2.1 节:控制流)。

浏览流程图,拖动操作
通过使用鼠标指针(左键单击)拖动流程图的棋盘背景, view流程图上的端口可以调整。鼠标滚轮可用于放大和缩小。单击操作的任意位置(输出端口、删除按钮和编辑按钮除外)以选择操作。可以通过用鼠标左键拖动操作来排列流程图中的操作。

添加动作转换

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-3

  • 如图 2 所示,每个动作都有两个“输出端口”,分别称为 NextAction1(NA1)和 NextAction2(NA2),它们可以连接到动作完成后执行的 SeqAction。例如amp例如,如果当前操作成功,可以使用 NextAction1 来执行某个操作,如果失败,则可以触发 NextAction2。
  • 要创建动作转换,请将鼠标指针悬停在其中一个输出端口上,按下鼠标左键并移动鼠标指针以拖动转换箭头。将鼠标指针移到其他某个 SeqAction 左侧的输入端口上,然后释放鼠标左键以使连接永久生效。要删除动作转换,只需重复创建动作转换的步骤,但在棋盘背景上释放鼠标左键。
  • 如果输出(NextAction1、NextAction2)未连接,则序列器会在触发下一个动作时终止。
  • 确保还将“入口点”连接到某个 SeqAction 的输入端口。一旦触发序列器,此 SeqAction 将首先执行。

编辑和删除操作

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-4

  • 单击 SeqAction 左上角的铅笔按钮即可编辑 SeqAction。单击右上方的红叉即可删除 SeqAction(见图 3)。删除​​ SeqAction 还会删除所有传入和传出的操作转换。

SeqAction 配置
SeqActions 可以通过选项卡式配置界面进行配置,该界面可通过流程图中每个操作左上角的铅笔按钮访问。此界面主要配置特定操作的 ActionConfiguration RAM 表的内容,包括控制流相关的配置选项以及动态寄存器内容。动态寄存器内容可以手动配置,完全控制每个寄存器值(参见第 3.2.3 节:高级无线电配置),也可以通过简化的界面配置(参见第 3.2.2 节:基本无线电配置)。简化的界面应该足以满足几乎所有用例的需求。

控制流
控制流选项卡(见图 4)包含一些基本配置选项,例如操作名称和操作超时间隔。操作名称不仅用于流程图中的显示,还会延续到生成的源代码中。

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-5STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-6

  • 控制流选项卡(见图 4)包含一些基本配置选项,例如操作名称和操作超时间隔。操作名称不仅用于流程图中的显示,还会延续到生成的源代码中。
  • 最重要的是,控制流选项卡配置了转换到 NextAction1 / NextAction2 所依赖的条件以及转换间隔和标志。可以通过单击标有“…”的按钮来配置转换条件,这将出现图 5 所示的掩码选择对话框。转换间隔修改了 RAM 表的 NextAction1Interval / NextAction2Interval 属性。有关此间隔的含义以及 SleepEn / ForceReload / ForceClear 标志的重要性的更多信息,请参阅 STM32WL3x 参考手册 [1]。
  • 此外,可在此选项卡上添加 SeqAction 块的简短描述。此描述仅用于文档目的,并作为源代码注释延续到生成的源代码中。

基本无线电配置

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-7

基本无线电配置选项卡可细分为三个部分:

  1. 顶部的部分配置了任何操作的两个最重要的参数:要执行的命令(TX、RX、NOP、SABORT 等)以及(如果适用)要传输的数据包的长度。
  2. 左侧部分配置了实际的无线电参数,例如:载波频率、数据速率、调制属性、数据缓冲阈值和计时器。
  3. 右侧部分可以单独启用 CPU 中断。为每个滴答中断生成一个中断处理程序。这基本上配置了 RFSEQ_IRQ_ENABLE 寄存器的内容。

有关各个无线电参数的含义,请参阅 STM32WL3x 参考手册 [1]。

高级无线电配置

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-8

  • 如果通过基本无线电配置选项卡(第 3.2.2 节:基本无线电配置)显示的配置选项不够,则高级 STM32WL3x 无线电配置选项卡允许设置任意动态寄存器内容。通过勾选选项卡式配置界面右上角的高级配置复选框,可以启用高级配置选项卡。
  • 无法同时使用基本配置和高级配置,用户必须选择其中之一。但是,当然也可以事后手动编辑生成的源代码并添加可能缺失的配置选项。

全局配置对话框

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-9

  • 可以通过“全局设置”工具栏按钮访问“全局项目设置”对话框。该对话框包含静态寄存器内容的配置选项以及其他项目设置。请注意,只有一小部分静态寄存器配置选项可以通过此对话框配置。这些选项仅用于加速使用 STM32CubeWiSE-RadioCodeGenerator 进行应用程序原型设计。
  • 通常期望静态寄存器内容在应用程序手动编写的源代码中设置。
  • 对话框本身解释了其他项目设置的含义。
  • 还可以提供在从静态寄存器内容创建全局配置 RAM 表之前插入的附加 C 代码。此字段可用于设置无法通过提供的静态寄存器配置掩码访问的静态寄存器值。

代码生成
按下工具栏中的“生成代码”按钮,即可将流程图转换为完整的项目 C 源代码。生成的项目文件夹不包含项目 file适用于 IAR、Keil® 或 GCC。这些 file必须手动将其添加到 STMWL3x 项目中。
这是生成的项目文件夹结构:

项目文件夹

  • 公司
  • SequencerFlowgraph.h:标头 file 对于 SequencerFlowgraph.c,静态。请勿编辑此内容。
  • stm32wl3x_hal_conf.h:STM32WL3x HAL配置 file, 静止的。
  • 源码
  • SequencerFlowgraph.c: 流程图定义。这是重要的 file 使用序列驱动器定义全局配置和动作配置 RAM 表。自动生成,不可编辑。
  • main.c: 项目主要内容 file 演示如何加载和应用流程图定义。静态,根据需要修改。
  • 要编辑 main.c 或 stm32wl3x_hal_conf.h,请在项目设置中选择覆盖行为 Keep。这样,只有 SequencerFlowgraph.c 会被覆盖。

如何将生成的代码导入 CubeMX example
将 STM32CubeWiSE-RadioCodeGenerator 生成的项目导入 CubeMX example(MRSUBG_Skeleton),需要遵循以下步骤:

  1. 打开包含以下内容的文件夹 file由 STM32CubeWiSE-RadioCodeGenerator 生成并复制“Inc”和“Src”文件夹。
  2. 将这两个文件夹粘贴到“MRSUBG_Skeleton”文件夹中,覆盖现有的两个文件夹。
  3. 在以下 IDE 之一中打开“MRSUBG_Skeleton”项目:
    • 暖暖
    • MDK-ARM
    • STM32CubeIDE
  4. 在“MRSUBG_Skeleton”项目中,添加“SequencerFlowghraph.c” file:
    • 对于 EWARM 项目,添加的路径 file 如下:MRSUBG_Skeleton\Application\UserSTMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-11
    • 对于 MDK-ARM 项目,添加的路径 file 如下:MRSUBG_Skeleton\Application/UserSTMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-12
    • 对于 STM32CubeIDE 项目,添加的路径 file 是一样的:
      MRSUBG_Skeleton\应用程序\用户STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-13
  5. 在MRSUBG_Skeleton项目中,添加stm32wl3x_hal_uart.c和stm32wl3x_hal_uart_ex.c file到以下路径:MRSUBG_Skeleton\Drivers\STM32WL3x_HAL_Driver。所有 IDE 的路径都相同。两个 files 位于 Firmware\Drivers\STM32WL3x_HAL_Driver\Src。STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-14
  6. 要使用 COM 功能,stm32wl3x_nucleo_conf.h file,位于 Firmware\Projects\NUCLEOWL33CC\ Examples\MRSUBG\MRSUBG_Skeleton\Inc,必须修改设置 USE_BSP_COM_FEATURE 和 USE_COM_LOG 为 1U:STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-15
  7. 将以下代码复制到位于MRSUBG_Skeleton\Application\User的“stm32wl3x_it.c”中。

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-16STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-17

流量图amp莱斯

  • 四个前任amp源代码中提供了流程图。这些示例amp可以通过单击工具栏中的“加载”按钮将文件加载到 STM32CubeWiSE-RadioCodeGenerator 中。

自动确认接收

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-18

  • Auto-ACK 演示说明了两个 STM32WL3x 设备如何在定序器硬件的帮助下以最少的 CPU 干预自动相互通信。
  • 该流程图实现了设备 A 的行为(Auto-Transmit-ACK)。在设备 A 中,序列器在接收状态(WaitForMessage)下初始化,等待消息到达。
  • 一旦有效消息到达,序列器就会自动转换到传输状态 (TransmitACK),在此状态下,无需 CPU 干预即可发送 ACK 数据包作为响应。一旦完成,序列器就会重置为其初始 WaitForMessage 状态。
  • 该流程图实现与MRSUBG_SequencerAutoAck_Rx ex相同的行为amp来自 ExampSTM32Cube WL3 软件包的 les\MRSUBG 文件夹中。如果 AutoACK_RX 已在一台设备上闪存
    A、并且某个设备上闪现 AutoACK_TX,B,两个设备来回发送消息,就像乒乓球游戏一样。

自动确认发送

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-19

  • “Auto-ACK”演示说明了两个 STM32WL3x 设备如何在定序器硬件的帮助下以最少的 CPU 干预自动相互通信。
  • 此流程图实现了设备 B 的行为(“自动等待确认”)。在设备 B 中,序列器初始化为传输状态(TransmitMessage),在该状态下传输消息。传输完成后,它会自动转换到接收状态,等待设备 A 的确认(WaitForACK)。收到有效确认后,序列器将重置为其初始 TransmitMessage 状态,整个过程重新开始。如果 4 秒内未收到 ACK,则会触发超时,序列器无论如何都会返回到 TransmitMessage 状态。
  • 此流程图实现与“MRSUBG_SequencerAutoAck_Tx”示例相同的行为amp来自 ExampSTM32Cube WL3 软件包的 les\MRSUBG 文件夹中。如果 AutoACK_RX 已在一个设备 A 上闪现,而 AutoACK_TX 已在另一个设备 B 上闪现,则这两个设备会像乒乓球游戏一样来回发送消息。

先听后说 (LBT)

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-20

  • 这个前任amp该文件取自 STM32WL3x 参考手册 [1]。有关此示例的更多详细信息,请参阅该手册amp勒。

嗅探模式

STMicroelectronics-UM3399-STM32Cube-WiSE-Radio-代码生成器-FIG-21

  • 这个前任amp该文件取自 STM32WL3x 参考手册 [1]。有关此示例的更多详细信息,请参阅该手册amp勒。

修订历史

表 2. 文档修订历史

日期 版本 更改
21 年 2024 月 XNUMX 日 1 初始版本。
10 年 2025 月 XNUMX 日 2 将设备名称更新为范围 STM32WL3x。

重要通知——请仔细阅读

  • STMicroelectronics NV 及其子公司 (“ST”) 保留随时更改、更正、增强、修改和改进 ST 产品和/或本文档的权利,恕不另行通知。购买者应在下订单前获取有关 ST 产品的最新相关信息。ST 产品根据订单确认时有效的 ST 销售条款和条件销售。
  • 购买者对 ST 产品的选择、挑选和使用负全部责任,ST 对应用协助或购买者产品的设计不承担任何责任。
  • ST 在​​此不授予任何明示或暗示的知识产权许可。
  • 如果转售的 ST 产品的规定与此处所述的信息不同,则 ST 对该产品授予的任何保证将失效。
  • ST 和 ST 标志是 ST 的商标。 有关 ST 商标的更多信息,请参阅 www.st.com/trademarks。 所有其他产品或服务名称均为其各自所有者的财产。
  • 本文档中的信息取代并替换了该文档之前任何版本中提供的信息。
  • © 2025 STMicroelectronics – 保留所有权利

常问问题

  • 问:STM32CubeWiSE-RadioCodeGenerator 的最低系统要求是什么?
    • A: 最低系统要求包括至少 2 GB 的 RAM、USB 端口和 Adob​​e Acrobat reader 6.0。
  • 问:如何设置 STM32CubeWiSE-RadioCodeGenerator 软件包?
    • A: 要设置软件包,请提取提供的 zip 文件的内容 file 进入临时目录并启动可执行文件 file 按照屏幕上的说明进行操作。

文件/资源

STMicroelectronics UM3399 STM32Cube WiSE 无线电代码生成器 [pdf] 用户手册
UM3399、UM3399 STM32 Cube WiSE 无线电代码生成器、UM3399、STM32、Cube WiSE 无线电代码生成器、无线电代码生成器、代码生成器、生成器

参考

发表评论

您的电子邮件地址不会被公开。 必填字段已标记 *