一、lora芯片选择sx1268。
关于sx1261、sx1262、sx1268这三者的区别
本次移植选择了EX-S68F的lora模块,该模块封装了sx1268芯片和lora的外围匹配和电子开关。
接线方式如下,sx1268四线spi连接mcu,接收使能通过mcu的io控制,si1268的dio2控制发射使能。
二、MCU选型 华大HC32L196PCTA
选华大这个低功耗系列MCU主要是因为...
三、资料下载
1.sx126x资料可以找Semtech代理商要也可以在官网下载,官网下载地址,
资料下载地址规格和数据表 | 开发者门户
相关的驱动也可以在gitee上下载开源的code,下载地址 LoRaMac-node: LoRaMac-node是Semtech官方发布的LoRaWAN节点端项目
2.HC32L196资料下载地址
HC32L196PCTA-LQFP100-华大半导体有限公司
四、移植准备
1.新建一个空的HC32L196的keil project,并且添加sx126x驱动
2.添加board文件
添加完如下
五、开始移植
为了方便以后移植到其他型号的MCU上,这里使用模拟SPI进行移植
1.在board-config.h里修改SPI接口和相应的io定义。
2.新建board_gpio.c / board_gpio.h
Board_gpio.c 主要封装两个gpio初始化函数
3.新建board_spi.c / board_spi.h
Board_spi.c 封装spi io初始化以及模拟的spi读写函数
Board-spi.h里添加
Spi端口初始化
Spi读写函数参考时序图
4.修改sx126x-board.c
此处修改的函数比较多这里就列出几个关键的函数
io初始化修改
Reset函数busy函数修改
读写命令修改
读写寄存器函数修改,这个是主要的mcu和sx1268通讯接口,比较重要
修改Tcxo配置
由于移植没有使用定时器这里修改函数使用固定值
打开dio2电子开关使能功能
5.Sx126x.c 基本不用改
Sx126x.h
6.radio.c修改
radio.c里的函数主要修改了中断响应函数和应答函数
修改如下
编译注释掉所有的定时器相关的代码,消除所有警告
五、收发测试
经过上面的移植,编译无误,就可以做收发测试了
Main.c可以参考demo里给出的初始化流程
1定义lora参数
2.超时函数
3.参数定义
4.main函数
Mcu初始化
Lora初始化
发射接收测试
移植到这里已经可以进行收发测试了
添加打印函数,连接电脑测试
收发测试正常了,回头测一下发射功率和接收灵敏度
版权声明:本文为CSDN博主「m0_37666038」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37666038/article/details/122345107
一、lora芯片选择sx1268。
关于sx1261、sx1262、sx1268这三者的区别
本次移植选择了EX-S68F的lora模块,该模块封装了sx1268芯片和lora的外围匹配和电子开关。
接线方式如下,sx1268四线spi连接mcu,接收使能通过mcu的io控制,si1268的dio2控制发射使能。
二、MCU选型 华大HC32L196PCTA
选华大这个低功耗系列MCU主要是因为...
三、资料下载
1.sx126x资料可以找Semtech代理商要也可以在官网下载,官网下载地址,
资料下载地址规格和数据表 | 开发者门户
相关的驱动也可以在gitee上下载开源的code,下载地址 LoRaMac-node: LoRaMac-node是Semtech官方发布的LoRaWAN节点端项目
2.HC32L196资料下载地址
HC32L196PCTA-LQFP100-华大半导体有限公司
四、移植准备
1.新建一个空的HC32L196的keil project,并且添加sx126x驱动
2.添加board文件
添加完如下
五、开始移植
为了方便以后移植到其他型号的MCU上,这里使用模拟SPI进行移植
1.在board-config.h里修改SPI接口和相应的io定义。
2.新建board_gpio.c / board_gpio.h
Board_gpio.c 主要封装两个gpio初始化函数
3.新建board_spi.c / board_spi.h
Board_spi.c 封装spi io初始化以及模拟的spi读写函数
Board-spi.h里添加
Spi端口初始化
Spi读写函数参考时序图
4.修改sx126x-board.c
此处修改的函数比较多这里就列出几个关键的函数
io初始化修改
Reset函数busy函数修改
读写命令修改
读写寄存器函数修改,这个是主要的mcu和sx1268通讯接口,比较重要
修改Tcxo配置
由于移植没有使用定时器这里修改函数使用固定值
打开dio2电子开关使能功能
5.Sx126x.c 基本不用改
Sx126x.h
6.radio.c修改
radio.c里的函数主要修改了中断响应函数和应答函数
修改如下
编译注释掉所有的定时器相关的代码,消除所有警告
五、收发测试
经过上面的移植,编译无误,就可以做收发测试了
Main.c可以参考demo里给出的初始化流程
1定义lora参数
2.超时函数
3.参数定义
4.main函数
Mcu初始化
Lora初始化
发射接收测试
移植到这里已经可以进行收发测试了
添加打印函数,连接电脑测试
收发测试正常了,回头测一下发射功率和接收灵敏度
版权声明:本文为CSDN博主「m0_37666038」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_37666038/article/details/122345107
暂无评论