全面拆解和构建5G物联网-19:LoRa终端--射频芯片SX1261 SX1262的6种操作模式及其设置

本文根据SX1261/2芯片手册,阐述SX161/2射频芯片的8种操作模式及其设置。

目录:

一. MCU与射频芯片之间的操作接口

二.SX1261/2射频芯片的6种工作模式的含义

三. SX1261/2射频芯片工作模式的设置

四. SX1261/2射频芯片的6种工作模式切换

五. 不同操作模式下的参数设置


一. 射频芯片功能模式以及与MCU之间的操作接口

(1)功能模块

(2)操作接口

在上述电路中,MCU通过SPI接口访问LoRa芯片内部的寄存器,也是通过SPI接口操作芯片内部的FIFO,用于收发数据包。

不同于那些把所有操作都直接基于“寄存器地址空间”访问的芯片,LoRa视频芯片暴露给MCU的是:基于“命令”的访问。有点类似所谓的AT命令的格式。

因此MCU是通过“命令”的方式配置、管理、控制LoRa芯片的工作方式。

同时MCU也是通过“命令”的方式,从LoRa内部data buffer中读取数据,向LoRa内部data buffer中写入数据。

SX1261/2通过GPIO busy管脚向MCU指示,当前是否正在执行某一个命令,命令的执行是否完成,以允许或禁止执行下一个命令。

MCU可以通过置位NSS复位管脚,强制SX1261/2终止正在执行的命令。

命令格式:


二. SX1261/2射频芯片的8种工作模式的含义

SX1261/2可以工作在如下几种工作模式下:

1. SLEEP: 休眠模式,这是指LoRa进入最低低功耗。在该模式下工作的部件有

(1)SPI接口:在低功耗模式下,预先MCU通过SPI接口唤醒射频芯片,进入standby模式。

(2)Regulator稳压器,用于保证SPI接口所需要电压,该电源来自于VBAT, 即电池电压。

(3)RC64K 低频晶体震荡电路:用于保证SPI接口所需要参考时钟。

SLEEP模式下,射频芯片绝大多数电路都处于休眠状态,只有SPI接口是可以访问的。

实际上,访问SPI的时候,MCU会置位NSS位,该信号就能够把射频芯片从sleep模式下唤醒。

2.  STDBY_RC: 除了SLEEP下的期间,STDBY_RC新增的功能有:

(1)RC13M:数字电路工作时钟。

(2)LDO:所有的数字电路所需的电压,该LDO的电源来自于VBAT, 即电池电压。

3. STDBY_XOSC:除了STDBY_RC之外的电路,新加的功能有:

(1)XOSC: 这是射频电路26M的高频射频时钟。

(2)DC-DC/LDO:射频工作电压

4. FS:时钟同步状态(暂态)

锁相环与外部的26M时钟同步,得到高频接收和发送所需要的时钟。

只有进入此状态后,进行射频信号的发送和接收。该电路的电源来自于外部电源。

5. Tx:启动射频数据发送(暂态)

发送完成后或超时后,自动进入设定的下一低功耗状态,或进行连续发送。

这里三种发送子模式:

(1)常规发送模式:就是发送数据帧后,自动停止发送

(2)TxContinuousWave:测试命令,连续的发送载波信号(空的载波信号)

(3)TxInfinitePreamble:测试命令,连续的发送物理层前导位(载波信号+物理层帧前导)

6. Rx:启动射频数据的接收(暂态)

接收完成或超时后,自动进入设定的低功耗状态,或继续进行间隙性接收。

连续接收:休眠后一段时间后,自动唤醒,直接接入接收状态,检查链路,是否有数据需要接收。


三. SX1261/2射频芯片的操作命令

MCU可以通过SPI接口,强制让射频芯片工作在特定的状态。

备注:

在设置Tx和Rx模式时,需要同时制定发送和接收的超时时间。


四. SX1261/2射频芯片的8种工作模式的切换

1. 不同模式的切换有两种途径

(0)NSS: SPI片选信号:MCU通过向射频芯片发送SPI命令,把射频芯片从休眠状态唤醒到standby状态。

(2)MCU通过SPI接口,向射频芯片发送模式切换的命令

(3)射频芯片自动的某种动作或内部事件完成后,自动进入设定的状态,

比如在间隙性接收模式下,如果Rx Timeout,表示没有数据,不需要MCU设置, 可以直接进入休眠模式,

比如在Rx done或Tx Done之后,不需要MCU设置, 直接进入standby状态。

2. 主要的内部事件有:

Tx Done发送完成:成功的发送完一个数据包

Rx Done接收完成:成功的接收到一个完整的数据包

Tx Timeout发送超时:在指定的时间内,发送数据包识别

Rx Timeout接收超时:在指定的时间内,没有接收到任何数据包

3. 初始状态:

上电复位后,射频芯片自动重新启动,然后进入standby模式,这时候,芯片的SPI数字接口工作正常,MCU可以访问芯片内部的寄存器和数据内存中的FIFO。


五. 不同操作模式下的参数

1. sleep模式的设置参数

bit0:是否需要周期性的自动唤醒

bit1:命令的发送方向

bit2:自动唤醒时,执行冷启动还是热启动

2. standby模式的设置参数

bit0:进入哪一种standby模式

3. FS模式的参数

无参数

锁相环同步状态,其实在正常情况下,是不需要MCU设置其状态的,这是一个中间状态。

在设置Tx和Rx状态的时候,芯片首先自动进行锁相环同步,进入该状态,然后再进入Tx或Rx状态。

锁相环的输出频率有:SetRfFrequency(...)指定。

4. Tx模式的设置参数

设置发送超时时间

如果在指定的时间内发送数据成功,则产生TxDone事件。

如果在指定的时间内发送数据失败,则产生TxTimeout事件。

0:表示一致处于发送状态,直到TxDone发送完成,没有超时事件。

5. Rx模式的设置参数

设置接收超时时间

如果在指定的时间内接收数据成功,则产生RxDone事件。

如果在指定的时间内接收数据失败,则产生RxTimeout事件。

0:表示一直处于接收状态,知道RxDone成功接收到数据,没有接收超时。

6. 间隙性接收模式设置


备注:

模式的设置,是低功耗设计关键!

LoRa MAC层的Class A, B, C模式,实际就是设置视频芯片工作模式的几种预定义的策略。

猜你喜欢

转载自blog.csdn.net/HiWangWenBing/article/details/107878798