0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用STM32WL系列Sub-GHz无线驱动程序的应用示例

得捷电子DigiKey 来源:得捷电子DigiKey 2024-07-18 10:20 次阅读

问:使用 STM32WL 系列 Sub-GHz 无线驱动程序的应用示例

STM32WL系列器件包括内置的低于1GHz无线外设 ( Sub-GHz 指的是低于 1GHz 的无线电频段 ),能够支持LoRa(仅限STM32WLE5/55器件)、(G)FSK、(G)MSK和BPSK调制方案。与此无线外设的通信是通过使用设备参考手册 第5.8节中概述的命令的内部SPI接口完成的。虽然该RF接口的抽象层是在低于1GHz Phy中间件中定义的(在STM32CubeWL MCU Package 中可得),但将该中间件添加到使用STM32CubeMX的项目中需要在其他几个外设和库之间进行高级配置。这会导致一个更大、更复杂的项目,消耗更多的设备内存,并导致抽象层低效率。对于要求功耗低的简单应用,将RF接口驱动程序与低于1GHzPhy中间件隔离并直接利用它可能是有益的。

低于1GHz Phy中间件由高层 (radio.c) 和低层 (radio_driver.c) 组成。高级驱动程序提供了许多有用的函数,这些函数抽象了低层无线功能,例如RadioInit() ,RadioSetTxConfig() 和RadioSend() 。然而,尽管这些函数很方便,但它们的代价是效率低下,比如冗余的函数调用和过度依赖诸如音序器和定时器服务器之类的实用程序。低层驱动程序简单地实现参考手册 中概述的 SUBGHZSPI 命令,并提供低于1GHz无线寄存器的定义。以牺牲一些质量属性(如可维护性和可移植性)为代价,使用该驱动程序进行编码直接允许程序员对其应用程序进行更大的控制。

详细演示如何将这个低层与低于 1GHz Phy 中间件隔离开来,并直接添加到 STM32CubeIDE 项目的操作过程。

要求: 要准确地跟随演示教程,需要以下项目。

STM32CubeIDE (版本1.8.0)

STM32CubeWL MCU Package (版本1.1.0)

NUCLEO-WL55JC1

wKgZomaYfD-AdXolAAUktd-gP_Y886.png

NUCLEO-WL55JC1 - STM32WL Nucleo-64 开发板

应用程序示例

作为以独立方式使用低于1GHz Phy驱动程序的示例,我们创建了两个示例程序(可在GitHub Repository 上获得)。这些示例复制了STM32CubeWL MCU Package 中SubGHz_Phy_PingPong示例的高级功能。也就是说,它们都实现了图1所示的状态机。这两个示例之间的唯一区别是一个使用LoRa调制解调器,而另一个使用FSK调制解调器。

wKgaomaYfD-AQ65VAAGSU-LLKC4436.png

1:低层无线驱动乒乓样例项目有限状态机

两个NUCLEO-WL55JC1 板需要运行这些示例,其中一个将充当主机,而另一个将充当从机。最初,两个板都处于主状态,以随机间隔发送“PING”消息并等待响应。最终,两个板同步,因此只有一个设备发送“PING”消息,另一个设备发送“PONG”消息作为响应。要执行该应用程序,请按照前一节提供的步骤创建一个项目,该项目包含低于1GHz 无线驱动程序。然后,只需将项目的main.c 文件的内容替换为GitHub Repository 中的一个文件的内容,具体取决于你希望在示例中使用哪种调制方案。最后,构建项目并使用它对两个Nucleo板进行编程

注意,这些示例与SubGHz_Phy_PingPong示例兼容。也就是说,一块板可以用上述应用程序编程,另一块板可以用SubGHz_Phy_PingPong应用程序编程,它们将按预期一起工作。然而,为了利用GFSK调制,必须首先对SubGHz_Phy_PingPong示例进行稍微修改。打开subghz_phy_app.h 文件,修改第一个define指令如下:

#define USE_MODEM_LORA 0 //1

#define USE_MODEM_FSK 1 //0

#define REGION_US915 //REGION_EU868

然后,在radio.c 中找到RadioRandom() 函数,注释掉RadioSetModem(MODEM_LORA); 这一行不仅不需要获得随机数,还会擦除之前初始化步骤中设置的无线配置。因此,在这种情况下,它被认为是一个bug,不应该被包括在内。SubGHz_Phy_PingPong示例现在准备编译并烧写到NUCLEO-WL55JC1 板之一。另一个板应该根据上述说明使用GitHub Repository 中的main_gfsk.c 文件的内容进行编程。

在初始化和执行图1所示的有限状态机之前,通过调用清单1中定义的radioInit() 函数来初始化无线。该函数使用与SubGHz_Phy_PingPong示例相同的无线配置,但有一个例外。在参考手册 第6.1节的末尾,它说:

SMPS需要时钟才能正常工作。如果由于任何原因这个时钟停止,设备可能会被破坏。为了避免这种情况,使用时钟检测,当出现时钟故障时,关闭SMPS并启用LDO。SMPS时钟检测通过低于1GHz无线 SUBGHZ_SMPSC0R.CLKDE使能。缺省情况下,SMPS时钟检测功能处于关闭状态,开启SMPS前必须开启时钟检测功能。

尽管有这个警告,低于1GHz Phy中间件的高层和低层都没有启用SMPS时钟检测。因为DCDC_ENABLE 是在radio_config.h 中定义的,所以SUBGRF_SetRegulatorMode() 函数将启用SMPS降压转换器。因此,在此函数调用之前,手动启用SMPS时钟检测。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16840

    浏览量

    349721
  • 寄存器
    +关注

    关注

    31

    文章

    5281

    浏览量

    119746
  • 无线
    +关注

    关注

    31

    文章

    5412

    浏览量

    172919
  • 驱动程序
    +关注

    关注

    19

    文章

    816

    浏览量

    47888

原文标题:实操!玩转STM32WL系列Sub-GHz无线驱动程序

文章出处:【微信号:得捷电子DigiKey,微信公众号:得捷电子DigiKey】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Sub-GHz无线连接系统

    其它1GHz以下的未许可频段。由于缺乏1GHz以下的无线标准,设计人员倾向于使用专有物理层(PHY)与通信协议栈,来满足他们的特定需求。图1所示的是大多数未许可sub-GHz频率被采用
    发表于 06-17 08:17

    【ST NUCLEO-WL55JC2开发板免费试用申请!】

    曲线加密引擎的公钥加密。总体而言,STM32WL 产品是 系列sub-GHz 无线连接领域的领军产品,兼具易用性和可靠性,同时可完美满足各种工业和消费类应用的需求。6.为什么
    发表于 06-15 18:38

    Sub-GHz无线产品有什么优点?

    Sub-GHz无线产品有什么优点?
    发表于 05-21 06:43

    高性能Sub-GHz无线芯片有哪些应用?

    什么是高性能Sub-GHz无线芯片?高性能Sub-GHz无线芯片有哪些应用?
    发表于 05-28 06:40

    基于STM32WL系列微控制器构建特定LoRa应用程序

    本应用笔记将指导用户完成基于STM32WL系列微控制器构建特定LoRa@应用程序所需的所有步骤。 LoRaR是一种无线通信网络,旨在以极低的比特率进行远距离通信,并延长电池供电型传感器
    发表于 08-14 11:38

    STM32WL sub-GHz SoC未来工业物联网最佳的选择

    内容包含:STM32 不断扩大的产品组合、什么是STM32WL?、集成金字塔、STM32WL系列八大特性、STM32WL 生态系统成长等。
    发表于 09-05 07:25

    高性能 Sub-GHz无线芯片及应用方案

    高性能 Sub-GHz无线芯片及应用方案 Silicon Labs公司Sub-GHz无线市场概况当今世界,无线产品早已无处不在。在我们周围
    发表于 04-12 10:02 1660次阅读
    高性能 <b class='flag-5'>Sub-GHz</b><b class='flag-5'>无线</b>芯片及应用方案

    线下实训 | STM32WL LoRa® SoC应用开发及设计

    提供了双电源输出和宽泛线性频率范围,以满足任何无执照 RF 频谱的需求。总体而言,STM32WL 产品是 STM32 系列sub-GHz 无线
    的头像 发表于 11-10 11:45 1394次阅读

    用于 STM32WL 系列 LoRa®调制的 RSSI 和 SNR

    用于 STM32WL 系列 LoRa®调制的 RSSI 和 SNR
    发表于 11-21 08:11 0次下载
    用于 <b class='flag-5'>STM32WL</b> <b class='flag-5'>系列</b> LoRa®调制的 RSSI 和 SNR

    意法半导体发布针对STM32WL无线MCU优化的RF IPD

    意法半导体的STM32WL MCU是一系列无线双核微控制器芯片,Arm Cortex-M4 处理核心负责处理应用任务,Cortex-M0+核心专门管理sub-GHz 远程射频通信功能,
    发表于 03-14 12:23 554次阅读

    STM32WL sub-GHz SoC 未来工业物联网最佳的选择

    电子发烧友网站提供《STM32WL sub-GHz SoC 未来工业物联网最佳的选择.pdf》资料免费下载
    发表于 07-29 11:07 0次下载
    <b class='flag-5'>STM32WL</b> <b class='flag-5'>sub-GHz</b> SoC 未来工业物联网最佳的选择

    STM32WL系列STM32CubeWL入门

    电子发烧友网站提供《STM32WL系列STM32CubeWL入门.pdf》资料免费下载
    发表于 08-01 17:02 1次下载
    <b class='flag-5'>STM32WL</b><b class='flag-5'>系列</b>的<b class='flag-5'>STM32</b>CubeWL入门

    STM32WL5x具有sub-GHz无线电解决方案

    电子发烧友网站提供《STM32WL5x具有sub-GHz无线电解决方案.pdf》资料免费下载
    发表于 08-02 10:36 1次下载
    <b class='flag-5'>STM32WL</b>5x具有<b class='flag-5'>sub-GHz</b><b class='flag-5'>无线</b>电解决方案

    面向STM32WL系列STM32CubeWL入门

    STM32CubeWL 将开发 STM32WL 微控制器应用所需的所有通用内置软件组件聚集在单一软件包中。根据STM32Cube 计划,这套组件具有高度可移植性,不仅在 STM32WL
    发表于 08-31 11:15 3次下载

    STM32WL FUOTA应用设计

    电子发烧友网站提供《STM32WL FUOTA应用设计.pdf》资料免费下载
    发表于 09-19 15:01 2次下载
    <b class='flag-5'>STM32WL</b> FUOTA应用设计