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系列单片机,便于上手操作,有兴趣的朋友可以用于参考。


浅谈KUKA机器人CWRITE编程用法
采用FPGA技术芯片模块实现运动估计的设计方案并进行仿真研究
土壤成分检测仪器的特点及技术指标
30种SQL语句优化方法
是德科技宣布推出一套端到端解决方案
SX1278转到LLCC68和SX1268/SX1262的软件细节教程
数据为王!打造未来工业*强大脑——控制台在工业数据中心的应用
都是骁龙835,小米6、HTC U11、一加5选哪个好?
华为2019年的谢幕之作,各方面的表现都很不错
华为回应关于华为5G相关误解报道 全球取得50多份合作协议
学生党高音质蓝牙耳机推荐?学生党入门无线耳机推荐!
比亚迪副总裁豪捐1.6亿
分享吸顶消防应急灯的安装及调试技巧
太空3D打印 揭开了人类 太空制造 自给自足 的序幕
单片机模拟银行自动取款机仿真设计方案
国行版三星Galaxy Fold曝光最早将于11月1日开启预售
智慧安全3.0让城市网络安全能力提升
PROFIBUS现场总线的基本特性和控制方式
高压放大器在骨的逆力电研究中的应用
解析 Exynos 1080 :为何称之为“旗舰芯” 三星最强 5nm 芯片