华大HC32L196移植Sx1268

一、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

生成海报
点赞 0

m0_37666038

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

基于8051单片机实现电子时钟+数字秒表设计

概述 电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显 示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生活环境的不断改善和美化,在许

机器的大脑(一)

每个人都有各自的梦想,但有一个梦想,也许是全人类共通的——那就是把自己从重复枯燥的工作中解脱出来,享受自由自在的悠闲时光。用机器替代人力,就是为了实现这个梦想。而运动控制器,

基于51单片机《按键控制流水灯》

1.用4个LED灯发光二极管实现至少四种灯光效果 2.可以通过输入按键在几种灯光之间切换 3.可以通过暂停按键停止彩色灯光效果,使小灯全亮,再次按下按键后继续之前的效果 4.增加自动在几种效果间切换功能 原理图