SX1278转到LLCC68和SX1268/SX1262的软件细节教程

描述

本篇主要介绍SX1278转到LLCC68和SX1268/SX1262的软件细节教程,文中涉及到的代码,大家可去原文查看。

首先和大家介绍一下这几款芯片的区别特点:

SX127x类:包含安信可Ra-01、Ra-01H、Ra-02,分别对应两个版本芯片SX1278和SX1276,代码驱动通用,只是频率参数有区别。

SX126x和LLCC68:包含安信可Ra-01S,Ra-01SC,Ra-01SCH,作为一个类别,分别对应芯片SX1268和LLCC68,他们代码驱动通用,参数值配置有一定区别。

综上所述,只要准备两份驱动代码就能将上述模组完全驱动起来,今天的目的是实现安信可127x和126x之间的通信。其中会涉及一些代码逻辑框架的讲解。

代码资源获取

Ra-01驱动代码:链接
Ra-01S、Ra-01SC:链接
127x芯片手册:链接
126x芯片手册:链接
LLCC68芯片手册:链接

SX127x系列驱动详解

安信可封装到站点的代码使用的驱动MCU是STM32F103,只要使用同类MCU就可以完成直接驱动,代码中附详细接线文档,下面使用127x代码来介绍整个代码的流程框架。

安信可

发射机的配置参数说明(SX127x)

1、RadioModems_t modem:无线电模块类型。

2、int8_t power:发射功率。

3、uint32_t fdev:频率偏移。

4、uint32_t bandwidth:带宽。

5、uint32_t datarate:数据速率。

6、uint8_t coderate:编码率。

7、uint16_t preambleLen:前导码长度。

8、bool fixLen:是否固定长度。

9、bool crcOn:是否开启CRC校验。

10、bool FreqHopOn:是否开启频率跳变。

11、uint8_t HopPeriod:频率跳变周期。

12、bool iqInverted:是否反转IQ信号。

13、uint32_t timeout:超时时间。

安信可

备注:这部分是发射机的参数配置,源码.h文件内也有详细说明。

接收机配置参数说明(SX127x)

1、RadioModems_t modem:无线电模块类型。

2、uint32_t bandwidth:接收带宽。

3、uint32_t datarate:数据速率。

4、uint8_t coderate:编码率。

5、uint32_t bandwidthAfc:AFC带宽。

6、uint16_t preambleLen:前导码长度。

7、uint16_t symbTimeout:符号超时。

8、bool fixLen:是否固定长度。

9、uint8_t payloadLen:有效载荷长度。

10、bool crcOn:是否启用CRC。

11、bool FreqHopOn:是否启用频率跳变。

12、uint8_t HopPeriod:频率跳变周期。

13、bool iqInverted:是否反转IQ。

14、bool rxContinuous:是否持续接收。

安信可

LoRa初始化配置(SX127x)

LoRa的初始化配置也是重要的一部分


安信可

SPI初始化配置(SX127x)

LoRa是SPI驱动的,所以在代码移植配置时一定要确保SPI的配置正常,时序和访问正常才能能正常使用,代码中用的是STM32的SPI1。

安信可

LoRa参数配置(SX127x)

这里的参数配置对应”接收机“和”发射机“的参数,共用一个参数才能够互相通信。

安信可

SX126x和LLCC68驱动详解

下面是126x系列的代码驱动包,驱动代码和LLCC68系列是通用的。

安信可

发射机的配置参数说明(SX126x&LLCC68

1、RadioModems_t modem:无线电模块类型。

2、int8_t power:发射功率。

3、uint32_t fdev:频率偏移。

4、uint32_t bandwidth:带宽。

5、uint32_t datarate:数据速率。

6、uint8_t coderate:编码率。

7、uint16_t preambleLen:前导码长度。

8、bool fixLen:是否固定长度。

9、bool crcOn:是否开启CRC校验。

10、bool freqHopOn:是否开启Period`:频率跳变周期。

11、bool iqInverted:是否反转IQ信号。

12、uint32_t timeout:超时时间。

安信可

接收机配置参数说明(SX126x&LLCC68

    1、RadioModems_t modem:无线电模块类型。

2、uint32_t bandwidth:接收带宽。

3、uint32_t datarate:数据速率。

4、uint8_t coderate:编码率。

5、uint32_t bandwidthAfc:AFC带宽。

6、uint16_t preambleLen:前导码长度。

7、uint16_t symbTimeout:符号超时。

8、bool fixLen:是否固定长度。

9、uint8_t payloadLen:有效载荷长度。

10、bool crcOn:是否开启CRC校验。

11、bool freqHopOn:是否开启频率跳变。

12、uint8_t hopPeriod:频率跳变周期。

13、bool iqInverted:是否反转IQ。

14、bool rxContinuous:是否持续接收。

安信可

LoRa初始化配置

SX126x&LLCC68

SX126X的代码,分为了两个配置文件:

接收配置文件sx126x_example_recive.c

发送配置文件:sx126x_example_recive.h

安信可

LoRa参数配置

SX126x&LLCC68

参数配置区域配置接收和发送的频率、带宽功率等,还配置了SPI的引脚定义。

安信可

SX127x切换SX126x或者LLCC68注意事项

对于前期使用SX127x的用户现在换成SX126x或者LLCC68,需要注意以下几点:

1、代码驱动:目前两个系列的代码驱动是不一样的,不管是原厂的封装接口或者是寄存器都是不一样的,切换意味着必须换代码驱动。

2、两个驱动代码的驱动逻辑和参数设置流程大同小异,特别是接收机发送机和参数区域,只是定义名和寄存器值名称有区别,所以阅读代码切换时就会容易很多。

3、封装脚位:SX127x系列切换SX126x或者LLCC68系列是从芯片上定义,但是安信可的驱动是基于模块来开发的,两个系列模组的脚位也有一定区别,不是SPI接口有差异,都是ST的SPI封装库,直接添加调用即可

4、BUSY脚差异在于SX126x或者LLCC68系列上有一个BUSY脚位,用于提示主控当前芯片的工作状态,此脚位配合中断进程,可以简化代码编辑的复杂程度,提高运行效率。

SPI通信接口测试

以下代码用于测试当前主控STM32与LoRa的SPI通信情况,通过读写某个寄存器的返回值来判断当前SPI驱动是否正常工作,同理SX126x和LL68模组也可以用同样方法测试。

安信可

1、读写SX1278寄存器:

安信可

2、在主函数中调用ReadWriteSX1278Register()函数:

安信可

本篇文章已经结束,以上就是关于SX1278转到LLCC68和SX1268/SX1262的软件细节教程,主要使用demo进行分解测试,demo代码中含有大量注释,并且使用的是STM32F103系列单片机,便于上手操作,有兴趣的朋友可以用于参考。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分