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

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

3天内不再提示

实战经验 | 如何在用户应用中开启 LoRa CAD

STM32单片机 来源:未知 2023-12-26 17:45 次阅读

关键词:LoRa, CAD, Channel Activity Detection

目录预览

1、LoRa CAD 应用场景举例

2、STM32WL LoRa CAD 原理和驱动

3、如何在示例工程 SubGHz_Phy_Per 中开启 CAD

4、小结

01

LoRa CAD 应用场景举例

在 STM32WL LoRa 某些应用中,尤其是电池供电的设备上,需要按需发送数据,如下发指令,让 STM32WL LoRa 发送数据,或做相应的操作。为了降低功耗,STM32WL不能一直处于接收状态,这样功耗会很高。我们可以开启 LoRa CAD(信道活动检测)功能,STM32WL 通过开启 CAD 功能,检测前导码的前 1/2/4/8/16 个码元,当检测到 LoRa(唤醒)信号后再开启接收,否则系统进入低功耗,这样会极大的降低系统的整体功耗。

02

STM32WL LoRa CAD 原理和驱动

LoRa 信号可以在低于噪声强度的情况下被正确解调。所以,仅简单通过 RSSI 确定信道是否被占用是行不通的,需要通过信道活动检测 CAD 来检测 LoRa 信号。

LoRa 包帧格式,如下图,前导码,可选报头,有效数据负载。信道活动检测 CAD 模式旨在以尽可能高的功耗效率检测信道上的 LoRa 前导码。

wKgZomWKocuAaK7zAAC3Is1xhfE409.jpg

STM32WL LoRa CAD 检测方法:

STM32WL LoRa 设备设置好频率和扩频因子,开启CAD 模式,(注意:无论是否检测到 LoRa 信号,都会产生CAD 检测完成中断 SUBGHZ_IT_CAD_DONE);当有匹配(相同的频率和扩频因子)的 LoRa 信号检测到时,就会产生 CAD 检测到中断 SUBGHZ_IT_CAD_ACTIVITY_DETECTED,SUBGHZ_IT_CAD_DONE 也会产生,并且 SUBGHZ_IT_CAD_DONE和 SUBGHZ_IT_CAD_ACTIVITY_DETECTED 会同时产生。

所以,可通过在产生SUBGHZ_IT_CAD_DONE 中断时是否也同时产生了SUBGHZ_IT_CAD_ACTIVITY_DETECTED 中断来区别是否检测到了 LoRa 信号,进而调用相应的回调函数,或做相应的处理。

DriversSTM32WLxx_HAL_DriverSrcstm32wlxx_hal_subghz.c 中HAL_SUBGHZ_IRQHandler

wKgZomWKocuAZXxCAAEXdel5Jb0518.jpg

MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio_driver.c

wKgZomWKocuASp99AABXrwrnN0g388.jpg

MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio.c 中RadioIrqProcess 函数中

wKgZomWKocuAEzZ8AAEEi-E39IY751.jpg

STM32Cube_FW_WL_V1.3.0 的驱动中已经支持 CAD 功能 :

MiddlewaresThird_PartySubGHz_Phy adio.h
MiddlewaresThird_PartySubGHz_Phy adio_ex.h
MiddlewaresThird_PartySubGHz_Phy adio_def.h
MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio_driver.h
MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio_driver.c
MiddlewaresThird_PartySubGHz_Phystm32_radio_driver adio.c

但是如何在用户应用中加入 CAD 功能呢?下面介绍如何在示例工程SubGHz_Phy_Per 中开启 CAD 功能。

03

如何在示例工程 SubGHz_Phy_Per 中开启 CAD

3.1.修改 subghz_phy_app.h 中配置

选择 MODEM 类型为 LORA

wKgZomWKocuAPE5qAAAyxZ0N99k612.jpg

设置 CAD 检测的频率和 LORA 接收参数

wKgZomWKocuANyMNAAAd56G5Ixw048.jpg

wKgZomWKocyAC-0lAACRVCfwJxg312.jpg

根据扩频因子 LORA_SPREADING_FACTOR 设置相应的 CAD 检测参数

wKgZomWKocyAd9mIAALo1NzIzaI313.jpg

3.2.在 subghz_phy_app.c 中配置声明

包含头文件 radio_driver.h

wKgZomWKocyAJmArAAAywXlelbI357.jpg

修改测试模式为 RADIO_RX

wKgZomWKocyADic6AAAxYygILBs492.jpg

可选,设置串口输出为红色 RED 和绿色 GRN 时的配置

wKgZomWKocyAElUDAAAsjbbebWk398.jpg

定义 CAD 检测结果标志 RadioCadDone_flag

wKgZomWKocyAXs6WAAB420_JxW8225.jpg

定义 CAD 检测计数 cad_max_count,cad_count 和 detect_count

wKgZomWKocyANvCaAAA93zBACSI086.jpg

声明 CAD 检测完成事件后执行的函数 OnCadDone

wKgZomWKoc2ARNb9AAA7HH16424649.jpg

声明 CAD 状态机处理函数 Cad_Process

wKgZomWKoc2AZp7qAAAzq8lW_GU430.jpg

3.3.在subghz_phy_app.c 中配置 SubghzApp_Init 函数

在 SubghzApp_Init 函数中,打印 LoRa 配置参数(可选)

wKgZomWKoc2ATBY_AADlQAfkD-k048.jpg

在 RadioEvents 中注册 CAD 检测到要执行的回调函数 OnCadDone

wKgZomWKoc2AQTD8AABdxIyIRls389.jpg

设置 CAD 检测的频率,接收参数,最大包长,CAD 检测的参数

wKgZomWKoc2ALnRNAACaJG-FOdY343.jpg

开启 CAD

wKgZomWKoc2AfWv6AAAco_y12DY358.jpg

注册 CAD 状态机处理函数 Cad_Process

wKgZomWKoc2AQnH-AAAqpc72RyA442.jpg

3.4.在 subghz_phy_app.c 中配置 CAD 检测完成处理函数和状态机处理函数

wKgZomWKoc6AHPNgAADfZsqMyJY426.jpg

04

小结

本 LAT 举例介绍了 LoRa CAD 应用场景,STM32WL LoRa CAD 的原理和相关的驱动,着重介绍了如何在示例工程(SubGHz_Phy_Per)中添加 LoRa CAD 功能。

在此基础之上也可以很容易在 SubGHz_Phy_PingPong 和 SubGHz_Phy_AT_Slave示例工程中加入 LoRa CAD 功能。

当然也可以在 LoRaWAN_End_Node 示例工程中加入 LoRa CAD,但是还需要调整如下驱动,后续再补充介绍。

MiddlewaresThird_PartyLoRaWANMacLoRaMacInterfaces.h
MiddlewaresThird_PartyLoRaWANMacLoRaMac.c
MiddlewaresThird_PartyLoRaWANLmHandlerLmHandler.h
MiddlewaresThird_PartyLoRaWANLmHandlerLmHandler.c

wKgZomWKoc6AelxeAAHiBpzEGaQ051.png

完整内容请点击“阅读原文”下载原文档。


原文标题:实战经验 | 如何在用户应用中开启 LoRa CAD

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。


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

    关注

    6001

    文章

    43973

    浏览量

    620859
  • STM32
    +关注

    关注

    2239

    文章

    10673

    浏览量

    348771

原文标题:实战经验 | 如何在用户应用中开启 LoRa CAD

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32H5 DA证书链实战经验

    之前我们已经讲过了如何通过 DA 认证来回退芯片产品状态,或者重新打开调试口,这样开发人员在芯片为 Closed 状态下时仍可以调试芯片。
    的头像 发表于 03-12 14:08 565次阅读
    STM32H5 DA证书链<b class='flag-5'>实战经验</b>

    如何降低LoRa模块的功耗以延长电池寿命?

    一些方法,例如睡眠模式和低功耗设置,但我不确定是否有任何其他方法或技巧可以进一步降低功耗。有人有经验可以分享吗?我需要知道如何在保持通信稳定的同时最大限度地降低功耗。
    发表于 03-01 07:38

    TC39x如何在用户模式下访问外围设备?

    你好, 我已经在 TC39x 启用了用户模式 1,并希望在用户模式下允许访问一些外围设备和功能。 我主要想在用户模式下使用 cpu endinit(在启用和禁用看门狗的上下文中)。
    发表于 01-22 06:52

    javaweb从入门到实战

    的学习和实践。本文将为大家详述JavaWeb的入门以及实战经验,希望能帮助到正在追求JavaWeb技术的开发者。 入门 1.1 Java基础知识 在学习JavaWeb之前,首先要掌握Java语言的基础知识,包括面向对象的概念、类与对象、继承与多态、异常处理等。理解这些基础概念对于
    的头像 发表于 12-03 11:44 895次阅读

    docker微服务架构实战

    的容器化技术,为微服务架构的实施提供了强大的支持。本文将介绍Docker微服务架构的实战经验,包括Docker的概述、微服务架构的设计原则以及实际应用中的具体实践。 一、Docker概述 Docker是一个开源的容器化平台,可以用于构建、发布和运
    的头像 发表于 11-23 09:26 314次阅读

    cad怎样设置多线线宽?cad怎样让所有的线都在一个平面?

    经常需要设置多线线宽、让所有的线都在一个平面以及将所有的线串联起来。下面详细介绍如何在CAD中实现这些功能。 一、设置多线线宽 在CAD中,我们可以设置线的宽度,包括单位宽度线条、厚线条、虚线条等。当需要绘制多个相同宽度的线时,
    的头像 发表于 10-19 16:53 3642次阅读

    关于使用STM32H7在用户代码内增加开启读保护代码的问题

    在使用STM32H7系列芯片时,在用户代码内增加了开启读保护的代码,有设置了通过指令触发解除读保护的代码,再触发解除读保护指令后,使用ST-link查看读保护未 接触读保护的代码如下: void
    发表于 08-07 06:31

    时序签核方法学及实战经验

    其中的Operating Mode,可以分为Function Mode和Test Mode。对于大型的SoC芯片工作模式多种多样,特别是牵涉到不同子系统工作电压可变,甚至同一子系统不同功能模块的工作电压可变,排列组合出来的Function Modes数量可以达上百个,这部分与设计是强相关的。
    的头像 发表于 06-28 16:58 797次阅读

    Top和Block实战经验以及DDR接口时序

    IO约束在顶层和模块级的主要命令都是以下几个,但是实际应用的复杂程度不可同日而语,本篇会先介绍模块级IO约束实战经验,然后讲解顶层IO约束复杂性,过程中会介绍DDR接口时序。
    的头像 发表于 06-27 15:07 595次阅读
    Top和Block<b class='flag-5'>实战经验</b>以及DDR接口时序

    【开源】4G_Lora远程土壤氮磷钾存储监测器之【传感器数据Lora转WiFi/4G传输】

    设备以 LoraModbus 模式工作。 (2)GPS 功能开启 [SysGpsUse] 需设置成 \"NO_GPS\",因为 Lora 模块不支持 GPS。 (3)Modbus
    发表于 06-16 10:42

    【开源】4G_Lora 远程紫外线监测器之【传感器数据Lora转WiFi/4G传输】

    设备以 LoraModbus 模式工作。 (2)GPS 功能开启 [SysGpsUse] 需设置成 \"NO_GPS\",因为 Lora 模块不支持 GPS。 (3)Modbus
    发表于 06-13 10:39

    【开源】4G_Lora远程风速监测器之【传感器数据Lora转WiFi/4G传输】

    设备以 LoraModbus 模式工作。 (2)GPS 功能开启 [SysGpsUse] 需设置成 \"NO_GPS\",因为 Lora 模块不支持 GPS。 (3)Modbus
    发表于 06-12 09:53

    【开源】4G_Lora远程雨量监测器之【传感器数据Lora转WiFi/4G传输】

    设备以 LoraModbus 模式工作。 (2)GPS 功能开启 [SysGpsUse] 需设置成 \"NO_GPS\",因为 Lora 模块不支持 GPS。 (3)Modbus
    发表于 06-09 10:38

    【开源】4G_Lora远程毫米波雷达水位监测器之【传感器数据Lora转WiFi/4G传输】

    设备以 LoraModbus 模式工作。 (2)GPS 功能开启 [SysGpsUse] 需设置成 \"NO_GPS\",因为 Lora 模块不支持 GPS。 (3)Modbus
    发表于 06-08 10:58

    【开源】4G_Lora远程水质监测器(COD)之【传感器数据Lora转WiFi/4G传输】

    设备以 LoraModbus 模式工作。 (2)GPS 功能开启 [SysGpsUse] 需设置成 \"NO_GPS\",因为 Lora 模块不支持 GPS。 (3)Modbus
    发表于 06-07 10:23