华大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单片机实现电子时钟+数字秒表设计

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

74HC138译码器的原理和使用

前言 译码器就是将每个输入的二进制代码译成对应的输出高低电平信号,和编码器互为逆过程。 百度百科 74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL&#xf