【LoRa】SetLoRaSymbNumTimeout寄存器

news2024/11/14 3:54:51

目录

  • 1 前言
  • 2 实验验证疑问
    • 2.1 SetRx的timeout模式和SetLoRaSymbNumTimeout
      • 2.1.1 实验1
      • 2.1.2 实验2
      • 2.1.3 结论
    • 2.2 SetRx的single与continuous模式和SetLoRaSymbNumTimeout
      • 2.2.1 实验1
      • 2.2.2 实验2
      • 2.2.3 实验3
  • 3 小结

1 前言

本章节介绍LoRa芯片的寄存器SetLoRaSymbNumTimeout,此寄存器的作用在datasheet中的解释是可降低误检测率,但经过了解及实验,使用SetRx的timeout功能也可以实现同样的效果,而且也更容易理解。相反,如果在代码中同时使用寄存器SetLoRaSymbNumTimeout和SetRx的timeout,其效果反而不好,本章将详细解释。
在此,我先将datasheet中对这个寄存器的描述放到这里,下图为SX126x的,其他系列芯片类似。
SetLoRaSymbNumTimeout

2 实验验证疑问

2.1 SetRx的timeout模式和SetLoRaSymbNumTimeout

Q:在使用SetRx的timeout模式时,会设定一个timeout值,在使用寄存器SetLoRaSymbNumTimeout时也会设定一个timeout值,是以哪个时间为准去产生timeout中断的?

2.1.1 实验1

程序中使用参数SF7,BW125,则单个symbol时间为1.02ms。将SymbNum设为200,则换算成时间为200 * 1.02ms = 204ms,程序如下:

sx126x_set_lora_symb_nb_timeout(context, 200 ); // 204ms

而将SetRx的timeout值设置为300ms,程序如下:

  sx126x_set_rx( context, 300 );	// 300ms

运行程序,然后通过逻辑分析仪抓取中断引脚DIO上的波形,此时为RX timeout中断,每隔205ms,产生一次,如下图:
实验1-DIO波形

2.1.2 实验2

修改SetRx的timeout值,其他条件与实验1相同,然后再次测试。程序如下:

sx126x_set_lora_symb_nb_timeout(context, 200 ); // 204ms
sx126x_set_rx( context, 100 );	// 100ms

通过逻辑分析仪抓取中断引脚DIO上的波形,每隔100ms产生一次RX timeout中断,如下图:
实验2-DIO波形

2.1.3 结论

SetRx和SetLoRaSymbNumTimeout分别设定了一个timeout值,哪个值,就以哪个值来产生timeout中断。
另外有一个小结论,就是SetLoRaSymbNumTimeout寄存器只需要在初始化的时候设置一遍即可,不用每产生一次timeout中断就设置一次。

2.2 SetRx的single与continuous模式和SetLoRaSymbNumTimeout

Q:如果使用SetRx的single或者continuous模式,并设置寄存器SetLoRaSymbNumTimeout,那么还会产生RX timeout中断吗?

2.2.1 实验1

使用RX的single模式,同时设置寄存器SetLoRaSymbNumTimeout。参数不变,使用SF7,BW125,单个symbol时间为1.02ms。将SymbNum设为200,换算成时间为200 * 1.02ms = 204ms。

sx126x_set_lora_symb_nb_timeout(context, 200 ); // 204ms
sx126x_set_rx( context, 0 );	// single mode

通过逻辑分析仪抓取中断引脚DIO上的波形,如下图,是每隔205ms产生一次timeout中断的。
DIO波形

2.2.2 实验2

使用RX的continuous模式,同时设置寄存器SetLoRaSymbNumTimeout。

sx126x_set_lora_symb_nb_timeout(context, 200 ); // 204ms
// continuous mode,但只在初始化时设置一次,正常来讲radio会一直处于RX状态
sx126x_set_rx_with_timeout_in_rtc_step(context, 0xFFFFFF);	

实验现象是产生了一次timeout中断后,就停止运行了,猜测原因是radio此时已经由RX转到standby模式了,所以需要再进行一次实验。

2.2.3 实验3

将continuous模式当作timeout模式看待,在RX Timeout中断回调函数中重新设置RX,程序如下:

// continuous mode,在每次timeout中断函数中重设RX
sx126x_set_rx_with_timeout_in_rtc_step(context, 0xFFFFFF);	

实验现象与实验1一致,每隔205ms产生一次timeout中断。

3 小结

  1. 简单理解,只要设置了寄存器SetLoRaSymbNumTimeout,RX由三种模式single、timeout和continuous变成了一种,即timeout模式。
  2. 当同时设置了寄存器SetLoRaSymbNumTimeout和SetRx的timeout模式,哪个设置的时间小,就以哪个时间产生timeout中断。
  3. datasheet中描述寄存器SetLoRaSymbNumTimeout的作用时,有这么一句话 … will wait for a total of SymbNum LoRa symbol to validate…。我分两种情况解析这句话,第一种假设当LoRa芯片检测到LoRa信号时,并且小于设定的SymbNum个数,那radio也会立马从检测模式进入信号解调模式。第二种是假设当LoRa芯片检测时间达到了设定的SymbNum个数时,还是没有检测到LoRa信号,就会产生timeout中断,那这与RX的timeout模式又没什么区别。所以综上而得出的结论是不建议使用寄存器SetLoRaSymbNumTimeout

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2090401.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

服务器部署前后端分离项目vue+springboot

步骤 1-安装java,mysql,nginx环境 服务器先安装宝塔 yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_lts.sh && bash install.sh ed8484bec安装后输入bt 14查看内网链接打开宝塔页面 java&…

uniapp icons图标不显示的问题解决

如图所示 在uniapp开发中 突然发现icons组件不显示图标了 ,而且没什么报错 这是为什么 其实这最大的原因就是你上面的代码在取值上没有做好null的判断 导致参数取值报错 因此影响了页面正常的渲染 导致下面的图标都不显示

vsCode多文件标签栏换行显示

1.文件——首选项——点‘设置’ 2.输入 wrap tabs 并勾选Workbench › Editor: Wrap Tabs

安装MySQL,navicat以及Django配置遇到的一些问题

MySQL安装问题 安装MySQL按照了此文章: MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客https://blog.csdn.net/weixin_39289696/article/details/128850498首先是遇到了starting the server红色叉号显示 按照上面文章的介绍…

《机器学习》【项目】 爬虫爬取数据、数据分词、贝叶斯算法、判断分类 <完整实战详解> (全篇完结)

目录 一、回顾爬虫 1、什么是爬虫 2、实操爬虫 1)寻找标签位置 2)爬取苏某某购产品好评数据 运行代码: 3)爬取差评内容 二、数据分词 1、将获取到的好评和差评数据进行初步分词 1)初步分词 2)内…

华为云征文|1分钟熟悉Flexus X实例基础操作

前言 随着云计算技术的普及,越来越多的企业和个人开始将业务迁移到云端。华为云作为国内领先的云服务提供商,推出了高性能、高可用性的Flexus云服务器X,以满足不同用户的需求。本文将详细介绍如何购买Flexus云服务器X以及初次使用时的基本操…

物联网平台组件2: 平台校验规则

加载不通的规则引擎配置文件,使用DynamicExpresso校验采集数据,得出是否告警 rules.json {"Rules": [{"Description": "温度超过阈值警报","Condition": "temperature > 30","Action":…

2024 Xiangtan University Summer Camp-Div.2 个人题解 (待补完)

前言: 教练突然发在群里的一个比赛,想到自己好像也没什么事干,就参加了个div2(太菜了),我看着好像没啥人发这玩意的题解,cf上比赛结束了也看不了别人代码,就将自己的写出题的代码分享…

鸿蒙Next 单元测试框架——hypium

一 框架概述 单元测试框架(hypium)是HarmonyOS上的测试框架,提供测试用例编写、执行、结果显示能力,用于测试系统或应用接口。 表1 单元测试框架功能特性 二 安装使用 目前hypium以npm包的形式发布, 因此需要在Deveco Studio 工程级package.json内配…

Javascript集合引用类型(一)

思维导图 Javascript集合引用类型(一)思维导图 对象 数组与定型数组 Map、WeakMap、Set以及WeakSet类型 1. Object 创建的对象的两种方式:new 操作符和对象字面量 使用对象字面量的更多,因为代码量少; 2. Array Array构造函数,es6新增…

android studio avd设置中文输入法和时间

设置语言 打开avd 找到设置 找到语言 找到系统语言 把中文移动到第一个就是默认语言了 如果想删除英文可以点击三个点有个移除 随便找个输入框,默认就是中文了 设置时间 点击设置->系统->日期和时间 关掉自动设置 选择一下时区为上海即可

【Datawhale X 李宏毅苹果书 AI夏令营】深度学习自适应学习率(AdaGrad/RMSProp/Adam)及其调度

1、自适应学习率 理论上:在训练一个网络,训练到现在参数在临界点附近,再根据特征值的正负号判断该 临界点是鞍点还是局部最小值实际上:①在训练的时候,要走到鞍点或局部最小值非常困难;②多数还未走到临界…

第十周:机器学习笔记

第十周机器学习周报 摘要Abstract机器学习——self-attention(注意力机制)1. 为什么要用self-attention2. self-attention 工作原理2.1 求α的两种方式2.2 attention-score(关联程度) Pytorch学习1. 损失函数代码实战1.1 L1loss&a…

EmguCV学习笔记 VB.Net 8.4 pyrMeanShiftFiltering

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

如何构建大型超市数据处理系统?Java SpringBoot搭配MySQL,实现高效数据管理!

🍊作者:计算机毕设匠心工作室 🍊简介:毕业后就一直专业从事计算机软件程序开发,至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长:按照需求定制化开发项目…

深入了解Pod(一)

一、pod的配置文件 Pod配置文件的属性说明 属性名称 取值类型 是否必须 取值说明 version String √ 版本号 ,例如V1 kind String √ Pod metadata Object √ 元数据 metadata.name String √ Pod名称 metadata.namespace String √…

分销渠道|中小企业可以有推广计划吗?

大家好,我是林叔,专注于分享SaaS企业渠道分销的实战经验。今天,我们来聊聊一个常被中小企业主忽视但极具潜力的营销策略——推广计划。很多人可能觉得推广计划是大企业的专利,但实际上,对于中小企业而言,它…

pycharm怎样关联anaconda虚拟环境.conda executable not found

刚下载的pycharm和anaconda怎样进行关联。 打开pycharm时,点击右侧的conda环境时,出现anaconda.conda executable not found,说明你的anaconda和pycharm没有进行关联。 第一步:重启电脑 第二步:点击圆圈中的文件夹按…

laravel8快速开发简单博客系统(二)

目录 一、创建文章增删改成提交的控制器 1、注释文章查看权限,非登录状态可以查看文章列表页 2、创建提交控制器post 3、创建数据表 4、创建提交post资源路由 5、创建post控制器view目录post 二、文章添加功能实现 1.模板显示 2.复制home.blade.php模板到po…

Django+Vue宠物服务管理系统的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 需要的环境3.2 Django接口层3.3 实体类3.4 config.ini3.5 启动类3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者&…