本文根据SX1261/2芯片手册,阐述SX161/2射频芯片的8种操作模式及其设置。
目录:
一. MCU与射频芯片之间的操作接口
二.SX1261/2射频芯片的6种工作模式的含义
三. SX1261/2射频芯片工作模式的设置
四. SX1261/2射频芯片的6种工作模式切换
五. 不同操作模式下的参数设置
(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可以工作在如下几种工作模式下:
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:启动射频数据的接收(暂态)
接收完成或超时后,自动进入设定的低功耗状态,或继续进行间隙性接收。
连续接收:休眠后一段时间后,自动唤醒,直接接入接收状态,检查链路,是否有数据需要接收。
MCU可以通过SPI接口,强制让射频芯片工作在特定的状态。
备注:
在设置Tx和Rx模式时,需要同时制定发送和接收的超时时间。
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模式,实际就是设置视频芯片工作模式的几种预定义的策略。