基于SX1276芯片的 LORA 技术开发详解

一、简介

LORA,是“Long Range”的简称。LORA 技术,源自于美国的升特公司(Semtech),是一种用于中、长距离传输的技术,相关信息主要从升特公司官网获取,多为英文版本。

官网网址:https://www.semtech.com/

开发者中心:https://lora-developers.semtech.com/

 

二、资料下载

在开发者中心的 Libary 板块,可以下载到 Lora 相关芯片的数据手册、用于手册、设计指南、硬件设计、低功耗设计、固件驱动 等资料。

本人收集的中文数据手册+适配的驱动 链接如下:

https://download.csdn.net/download/hb69222/11420060

 

三、芯片选型

LORA模块产品数量并不算太多,比较常见的有 SX1276、SX1277、SX1278、SX1279、SX1301

其中SX1301用作网关。其余几个作为普通的收发器,除引脚、封装不同之外,最大的差别就是它们所使用的频段、带宽、速率不同,详见下表

 

四、工作方式

以常见的收发器为例,芯片自带SPI接口,需要一个外接的MCU去控制整个工作流程,包括模式选择,数据收发等。官网自带有各芯片的驱动文件,开发者可以根据自己的选择,调用相应的文件。以SX1276为例,进行驱动文件的简单解读,详情如下。

 

五、SX1276 驱动解读之——初始化

1、重启SX1276芯片,并延时一段时间(数据手册推荐5 ms)  RST引脚触发

2、进入LORA+低频模式 【RegOpMode (0x01)】

3、设置频率通道 【 RegFrfMsb(0x006)】

4、设置输出功率 【RegpalonConfig (0x09)】

5、关闭过流保护 【RegOcp (0x0B)】

6、开启 LNA 最大增益 【RegLna (0x0C)】

7、设置带宽 【RegModernConfig (0x01D)】

8、设置超时时间 【RegSymbTimeoutLsb (0x01F)】

9、设置前导码长度 【RegPreambleMsb (0x20)】

10、设置引脚状态 【 RegDioMapping(0x40)】

11、进入待机模式  【RegOpMode (0x01)】

 

六、SX1276 驱动解读之——进入接收模式

1、设置功率 【RegPaDac (0x4D)】

2、设置FHSS跳频技术 【RegHop{eriod (0x24)】

3、设置引脚状态 【RegPinMapping (0x40)】

4、打开接收完成和超时中断 【RegIrqFlagsMask (0x11)】

5、清除中断标志位 【RegIrqFlags (0x12)】

6、设置负载字节长度 【RegPayLoadLenghth (0x22)】

7、读接收基地址 【RegFifoRxBaseLength (0x0F)】

8、把FIFO指针地址设置为接收基地址【RegFifoAddrPtr (0x0D)】

9、设置LORA模式,持续接收 【RegOpMode (0x01)】

10、直到进入了接收模式,才往下运行 【RegModernStat (0x18)】

 

七、SX1276 驱动解读之——进入发射模式

1、初始化模块

2、设置发射功率 【RegPaDac (0x4D)】

3、设置调频周期 【RegHopPeriod (0x24)】

4、设置引脚状态 【RegIoMapping (0x40)】

5、清除标志位 【RegIrqFlag (0x12)】

6、开启发送结束中断 【RegIrqFlagMask (0x11)】

7、设置包长度 【RegPayLoadLength (0x22)】

8、读发射基地址 【RegFifoTxBaseAddr (0x0E)】

9、将FIFO指针设置为发射基地址 【RegFifoAddrptr (0x0D)】

10、向FIFO中写入数据 【RegFIfo (0x00)】

11、设置LORA+低频+发送模式 【RegOpMode (0x01)】

12、读中断标志位 【 RegIrqFlag(0x12)】

13、直到发送完成,清除标志位 【ReqIrqFlag (0x12)】

14、进入待机模式 【ReqOpMode (0x01)】

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章