SX1278 移植笔记

概述

项目代码链接。

SX1276/77/78所用驱动均相同。SX1278具有LoRa和FSK的调制解调能力1,本过程移植的是LoRa功能。

底层代码移植

在移植过程中对代码进行了精简,将关于FSK通信部分的代码全部删除。只要是关于FSK的代码和宏定义全部去掉。

名称用途适配
platform.h平台配置文件需要
radio.c无线通信接口源文件,提供无线通信主要实现方法
radio.h无线通信接口头文件,提供声明
sx1276.csx1276/77/78芯片初始化,寄存器配置源文件
sx1276.hsx1276/77/78芯片初始化,寄存器配置头文件
sx1276-Hal.csx1276/77/78芯片硬件驱动源文件,提供spi初始化、读写等方法的具体实现。采用不同MCU时,需要具体实现这里的方法需要
sx1276-Hal.hsx1276/77/78芯片硬件驱动头文件
sx1276-LoRa.cLora寄存器配置源文件需要
sx1276-LoRa.hLora寄存器配置头文件
sx1276-LoRaMisc.c基于Lora寄存器配置的功能配置源文件
sx1276-LoRaMisc.h基于Lora寄存器配置的功能配置头文件

platform.h

本文件中仅包含两个标准头文件即可,<stdint.h><stdbool.h>

sx1276-Hal.c

需要适配NRST、NSS、DIO0、DIO1、DIO2、DIO3、DIO4、DIO5硬件引脚,其中DIO1、DIO2、DIO3、DIO4、DIO5根据实际需求进行适配。

  • SX1276SetReset

复位方法,打开时,置0,关闭时置1或者引脚配置为输入。

  • SX1276WriteBuffer

缓存写。按照数据手册,写需要先发地址,再发数据2

  • SX1276ReadBuffer

缓存读。按照数据手册,读需要先发地址,再读数据2

sx1276-LoRa.c

主要修改LoRaSettings该变量,该变量包含SX1278的属性3。注意:sx1278的工作频率范围,和功率。

  • RFFrequency——射频频率
  • Power——功率
  • SignalBw——信号带宽
  • SpreadingFactor——扩频因子
  • ErrorCoding——编码率
  • CrcOn——CRC校验开关
  • ImplicitHeaderOn——隐式包头开关
  • RxSingleOn——单一接受开关
  • FreqHopOn——跳频开关
  • HopPeriod——跳频周期
  • TxPacketTimeout——发送超时
  • RxPacketTimeout——接收超时
  • PayloadLength——有效负载长度

上层API调用

主要是对tRadioDriver该结构体的调用。其中StartRx接收和SetTxPacket发送函数仅仅将标志位进行了变化,并没有对实际的芯片寄存器进行操作,需要通过Process方法实现。

备注

中文参考资料时间为2013年版本,其中有些寄存器没有披露。在英文参考资料2015年版本中,进行了披露。

参考文献


  1. 《SX1276/77/78中文数据手册》, 2013年9月, 修订版1,P1. ↩︎

  2. 《SX1276/77/78中文数据手册》, 2013年9月, 修订版1,P77-P78. ↩︎ ↩︎

  3. 《SX1276/77/78中文数据手册》, 2013年9月, 修订版1,P26-P33. ↩︎

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值