SX126x-工作模式分析

本文详细介绍了SX126x芯片的6种工作模式,包括SleepMode、STDBYMode、FSMode、RxMode和TxMode,重点讨论了低功耗的SleepMode的进入与退出机制,以及STDBYMode的两种子模式。通过对各模式切换时间的分析,帮助用户更好地理解和利用芯片的能源管理,以实现高效能与低功耗的平衡。
摘要由CSDN通过智能技术生成

目录

1 前言

2 各模式切换图

3 Startup

4 Sleep Mode

4.1 如何进入Sleep

1)SetSleep命令

2)RxDutyCycle

4.2 如何退出Sleep

5 STDBY Mode

5.1 如何进入STDBY

1)SetStandby命令

2)Starup自动进入

3)部分中断

5.2 STDBY_RC

5.3 STDBY_XOSC

6 FS Mode

7 Rx Mode

8 Tx Mode

9 各模式切换时间


1 前言

        SX126x芯片共有6种工作模式,了解各种工作模式下具体细节,有助于更好的使用该芯片。下表格概括了不同模式下的哪些模块还在工作

2 各模式切换图

3 Startup

        Startup这个并非工作模式,只是一种状态,完成启动后会自动切换至STDBY模式

  • 上电,复位,从Sleep模式唤醒时,会先进入Startup状态。
  • Startup状态下,BUSY引脚会一直持续高电平,无法接收外部命令
  • 当数字电压和RC时钟稳定可用时,芯片完成启动,内部CPU接管控制,此时BUSY引脚拉低,并进入STDBY模式

4 Sleep Mode

        在该模式下主要用于低功耗的场景,依据配置可以选择关闭所有模块,最低功耗只有160nA。当然也可以配置保留部分功能,比如64Khz的RC和原先的配置数据,此情况下功耗是1.2uA。

4.1 如何进入Sleep

        有2种方式进入Sleep模式:

  • 通过命令SetSleep进入
  • 在RxDutyCycle场景下自动进入

1)SetSleep命令

  • 该命令只能在STDBY_RC或者STDBY_XOSC模式下使用
  • 通过sleepConfig参数,可以选择进入Sleep模式保留哪些模块正常工作

  • warm start/cold start - 是否保留原先的寄存器配置。硬件上是通过保留backup regular和data RAM来实现的
  • RTC timeout - 硬件上是否保留64Khz RC工作。该RC用于内部定时器,比如RxTimeout或者TxTimeout等等事件

2)RxDutyCycle

        这是一个特殊的Rx模式,通过命令SetRxDutyCycle来启动。在该模式下,硬件会自动完成Rx-Sleep的循环操作。

  • 在该模式下,是默认使能warm start和RTC timeout,无需单独再使用SetSleep命令。

4.2 如何退出Sleep

        两种方式会使Sleep模式退出到startup状态,完成启动唤醒工作,最后自动切换到STDBY_RC模式

  • 内部RTC timeout(前提是进入Sleep时,有配置使wake-up on RTC timeout)
  • SPI接口的NSS下降沿

5 STDBY Mode

        处于一种可配置模式,在该模式下,用户可以对芯片进行配置操作,包括寄存器的读写,命令的控制,为进入Tx或者Rx设置。该模式分为两种:STDBY_RC和STDBY_XOSC

5.1 如何进入STDBY

1)SetStandby命令

        可以通过该命令进入STDBY_RC或者STDBY_XOSC模式

  • StdbyConfig:

        0 - STDBY_RC

        1 - STDBY_XOSC

2)Starup自动进入

        Starup完成内部状态后会自动进入STDBY_RC模式

3)部分中断

  • RxDone中断

        启动接收后,如果在接收窗口收到数据,会产生RxDone中断,并且自动切换至STDBY_RC模式

        需注意的是,如果是Rx Continuous接收模式下,产生RxDone中断后会依旧处于Rx模式下

  • RxTimeout中断

        启动接收后,如果在接收窗口未收到数据,会产生RxTimeout中断,并且自动切换至STDBY_RC模式

  • TxDone中断
  • TxTimeout中断

        启动发送后,如果发送完毕或者发送超时,都会自动切换至STDBY_RC模式

5.2 STDBY_RC

        除了Sleep模式下的模块工作以外,其他的模块也被打开:

  • LDO工作:这里需要说的是,如果LDO供电模式下,打开LDO模块;如果DC-DC供电模式下,也只打开LDO模块。(在SX126x-电源模块文章中已介绍,DC-DC模式下LDO也是使能的,DC-DC主要用于射频供电)
  • RC13M工作:用于SPI接口

5.3 STDBY_XOSC

        在SX126x-时钟模块文章中已介绍过,特别是使用TCXO方案时,使用命令SetDIO3AsTCXOCtrl()配置后并不是立即使TCXO工作,而是在TCXO需要时即Tx或者Rx时,DIO3才会供电并等待TCXO起振并稳定。那是否可以在STDBY模式下,就让TCXO工作起来,STDBY_XOSC就能做到这点。

        除了STDBY_RC模式下的模块工作以外,其他的模块也被打开:

  • 晶振工作
  • DC-DC工作:如果是DC-DC供电模式下,STDBY_RC时只开启LDO,如果进入STDBY_XOSC模式后,DC-DC会被开启,为启动射频做好准备。

6 FS Mode

  • 通过命令SetFs()进入,使锁相环和外部时钟源同步
  • 一般用于硬件调试,PLL锁定或者超时后,BUSY引脚会拉低

7 Rx Mode

        在Rx模式下,除了STDBY_XOSC工作的模块以外,还有RF前端,Rx ADC,调制模块都会打开工作

        可以配置成下面几种子模式:

  • 连续接收:设备一直保持接收模式,直至主机通过命令切换模式
  • 单次接收:接收到数据后,自动切换至STDBY_RC模式
  • 单次超时接收:当接收到数据或者接收窗口超时时,自动切换至STDBY_RC模式
  • 监听接收:使用命令SetRxDutyCycle(...)来实现,设备在睡眠和Rx模式之间交替,直到一个IRQ被触发

8 Tx Mode

        在Tx模式下,可以配置成如下子模式:

  • 单次发送:完成一包数据的发送后自动切换至STDBY_RC
  • 单次超时发送:在单次发送的模式下,增加一个超时机制,如果设置时间来未发送完毕会产生TxTimeout中断,并自动切换至STDBY_RC。该超时可以被用作一个安全措施,以确保如果由于任何原因,Tx被中止或不成功。

9 各模式切换时间

  • 切换时间是从命令发送完毕NSS上拉开始,直至芯片内部完成模式切换,BUSY引脚下拉结束的总时间

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值