查看: 163|回复: 0

[应用笔记] LSD4RF-2X717N10 Easy-link编程指南

[复制链接]

74

主题

169

帖子

573

积分

利尔达员工

Rank: 9Rank: 9Rank: 9

积分
573
发表于 2024-2-3 16:36:46 | 显示全部楼层 |阅读模式
  第一章 简介

  本编程指南主要讲解了LSD4RF-2X717N10 easy-link(简单通信)库函数调用的应用。方便用户快速建立测试工程,进行简单的通信。

  Easy-link 为用户提供了一个数据包长度可变的通信测试代码。代码中有关无线模块的文件主要包括了LSD_RFreg.h,LSD_RF.h,LSD_RFregsetting.h,LSD_RF.c 文件。主函数Main_tx(main_rx)调用了对应文件里的函数,为用户调用函数和测试提供了参考。

  Easy-link 代码完全用的标准C 语言写的,用户只需更改一些宏定义和LSD_RF 配置参数就可以方便地应用于其他MCU 平台。

  提示:本程序只是为用户提供一个简单易用的通信测试代码,当用户测试通信成功后,可以适当地根据自己的需求更改一些参数。

  经测试,本代码在MSP430F4152 平台上正常运行。

  实物连接图,按照蓝色连接线直接插入。

  第二章 快速建立通信测试试验

  为了使客户更快更方便的使用我们的产品,我们将程序做了统一的整合规范,让客户更容易操作起来,提高开发进度。客户只需要三步即可完成easy-link(简单通信)数据收发。(适用于MSP430F4152)

  步骤一:

  首先根据自己使用的( MCU ) 单片机, 修改对应LSD_RF.h 中的LSD_SPI_SIMO_?,LSD_SPI_SCK_?,LSD_SPI_SOMI_?,LSD_SPI_NSS_?,LSD_RF_DIO0_?的宏定义,例如如下。(提示:?可表示SEL,DIR,OUT,IN,IFG,IE,IES)

  根据不同平台,根据自己实际用的射频IO 口,修改相应的IO 口定义。本测试代码基于MSP430F4152 平台。

  步骤二:

  1、建立发送测试Main_tx.c 工程,在workspace 处选择TX,

  并且选中Main_tx.c 为当前文件,编译。下载到一个控制底板(MSP430)。

  2、建立接收测试Main_rx.c 工程,在workspace 处选择RX,

  并且选中Main_rx.c 为当前文件,编译。下载到另一个控制底板(MSP430)。

  步骤三:

  完成后,上电模块可自动进行数据收发。可在该中断函数中增加LED 亮灭的功能来观察通信效果。如下,

  第三章 例程流程图

  初始化后进入空闲状态,如想进入接收状态,可以调用LSD_RF_RXmode();进入接收状态,如想进入发送发送数据,可以调用LSD_RF_SendPacket(Uint8*txBuffer, Uint8 size)函数,接收和发送可以直接切换,也可以进入空闲后,再切换。

  注意:每次完成发送或接收会自动进入低功耗状态。

  第四章 移植

  1、修改宏定义

  因为无线模块是通过SPI 总线控制的,所以首先得移植模拟的SPI。找到头文件LSD_RF.h,根据自己的需求修改宏定义SIMO,SCK,SOMI,NSS,对应的IO 口。此举决定了SPI 通信成功与否。

  根据需要,在LSD_RF.h 中更改DIO0 的宏定义对应的IO 口,这决定了无线模块能否正常发送接收。DIO0 连接到MCU 具有外部中断的IO 口上。IO 口中断开,选择上升沿触发中断。

  这五处宏定义是与MCU 相连的最基本的五个接口,请务必调试成功。如果换到其他平台请仔细区别各个平台的IO。例如普通51 单片机的P0,P1,P2 端口没有方向寄存器和功能选择寄存器等。

  2、SPI 初始化

  在LSD_RF.h 头文件中,定义了SPI 的初始化,设置了SPI 的IO 口的方向,输入输出初始电平。其中LSD_SPI_?_PORT_SEL是MSP430 的功能选择寄存器,这里选择为普通的IO 口功能。如果用的其他平台的MCU,将此句注释或删除掉,保证自己用的IO 口功能就行。(?可表示SIMO,SCK,SOMI,NSS)

  3、MCU 硬件功能的移植

  本示例程序用到了MSP430F4152 的定时器TIMERA 中断功能,和端口PORT1 的外部中断功能。在非MSP430 平台上的时候注意这个功能的移植,因为无线模块的发送和接收都是在中断函数里进行的。在main_tx.c 文件里,

  (1)定时发送一包数据

  (2)中断接收一包数据

  4、建立测试工程

  (1)建立发送测试 Main_tx.c工程,在workspace处选择TX,

  并且选中Main_tx.c 为当前文件。

  首先初始化MCU。

  然后初始化无线模块SX1208,如果初始化失败,MCU 会重新启动。(提示:失败一般是SPI 通信不正常,请确保SPI 能正确通信。其次,再检查硬件连接正确与否。最后再看模块有无损坏)

  测试通过后,模块进入接收模式。

  MCU 进入低功耗。

  编译通过后,下载到一个控制底板,作为发送方。

  (2)、建立接收测试 Main_rx.c工程,在workspace处选择RX,

  并且选中Main_rx.c 为当前文件。

  首先初始化MCU。

  然后初始化无线模块SX1208,如果初始化失败,MCU 会重新启动。(提示:失败一般是SPI 通信不正常,请确保SPI 能正确通信。其次,再检查硬件连接正确与否。最后再看模块有无损坏)

  测试通过后,模块进入接收模式。

  MCU 进入低功耗。

  编译通过后,下载到另一个控制底板,作为接收方。

  完成后,进行通信测试,如果不成功,请排查之前的步骤有没有做好。直到通信成功。

  通信成功的现象:

  A 模块发送一包数据包黄灯闪烁,B 模块接收到数据包红灯闪烁,B 模块并将数据回传给A 模块,A 模块接收到回传数据后红灯闪烁。

  第五章 更改无线模块的通信参数

  在通信成功的前提下,可以到这章,了解怎么更改无线模块的通信参数。首先,到SEMTECH 官网下载软件SX1231 Start Kit B,方便寄存器的配置。该软件打开后,整个界面是灰色的,不能操控。同时按下Ctrl+Alt+N,可以解除灰色限制,整个界面都可以操作。如图,

  1、设置载波频率

  点击在如上图所示的红色圆圈内的Reg,同时在下面的红色椭圆内输入频率值,例如,470 000 000,然后按下Enter 键,你会看到如图所示变为红色的数值,该数值表示当前载波频率对应的数值。

  载波频率由三个寄存器控制,分别是RegFrMsb 地址0x07,RegFrMib 地址0x08,RegFrLsb 地址0x09。其地址右边的数值即当前寄存器配置的数值。载波频率设置好后, 在LSD_RFregsetting.h 头文件里找到对应的寄存器, 修改REG_FRMSB,REG_FRMIB,REG_FRLSB 右边的数值,下载程序,模块就会以470MHZ 的载波频率工作了。如图,

  2、设置波特率

  回到软件SX1231 Start Kit B,在如下红色圆圈内输入波特率,以及频偏Fdev。更改参数Fdev 时,对应的RxBW 也应做相应的修改,建议用户参考SX1208的DATASHEET,因为这两个参数会影响模块的通信效果。

  4800 修改成9600 的波特率后,其寄存器对应的数值会变为红色,如下,

  同理,到LSD_RFregsetting.h 头文件里去更改波特率,如图,

  如果想更改其他参数,请结合数据手册和SX1231 Start Kit B 上位机软件,将改好的数值更新到LSD_RFregsetting.h 头文件中,这些参数会在无线模块的初始化中完成。

  3、设置功率

  注意:2X717N10 模块使用的PA_BOOST,所以在用上位机设置功率的时候,一定要选中PA_BOOST , 否则发射不出来功率。这里建议选中PA1+PA2->Transmits on pin PA_BOOST。而2S313N10 模块使用的RFIO。

  PA1 和PA1+PA2 的区别如下,

  可以看到PA1+PA2 的功率范围是+2dBm~17dBm。

  如果设置发射功率大于17dBm,就需要到头文件LSD_RFregsetting.h 里去修改宏定义,如下图所示,HIGH_POWER 为1 表示+5~20dBm,0 表示+2~17dBm。

  修改宏定义后,不需要再去设置如下图的这几个寄存器了,因为例程里已经在发送数据包函数里进行了处理。

  用户只需更改宏定义来改变发射功率的范围。

  举例:15dBm功率的设置,HIGH_POWER宏定义值改为 0

  打开上位机,选中Transmitter 窗口,如下,在红色圆圈内输入15,

  对应的reg 寄存器列表中REGPaLevel 对应的数值会变为红色,如下,

  没有提及的参数默认就行。

  然后到LSD_RFregsetting.h 头文件中将对应位置的0x7F 值改为0x7D,发射功率就是15dBm 了。

  19dBm 功率的设置,HIGH_POWER宏定义值改为 1

  其中Transmitter 窗口中的+20dBm on pin PA_BOOST 选择ON 和HIGH_POWER 宏定义值改为1 是等效的,例程内部已做处理。

  步骤同上。

  LSD4RF-2S313N10 模块的功率设置

  该模块没有HIGH_POWR 宏定义,由于模块使用的RFIO,所以功率范围在-18dBm~13dBm。

  上位机的设置如图:

  选择红色圈内的PA0,并在Output power 内输入功率大小,比如13,

  同理将REGPaLevel 的数值,更新在LSD_RFregsetting.h 头文件对应的位置。

  2S 模块的输出功率就为13dBm。

  4、设置同步字

  对照数据手册,设置REG_SYNCCONFIG,

  本历程中同步字默认设置为如下图所示,

  如果需要更改,请结合上位机软件,在sync value 对应的空白处输入你想设置的数值,查看REG 表中对应的数值,将数值更新到LSD_RFregsetting.h 头文件中。

  5、数据包长度定义以及是否打开CRC

  由数据手册可以看到,

  0x90 表示:可变长数据包模式,CRC 打开。

  6、设置PAYLOADLENGTH

  因为之前数据设的可变模式,所以它的值尽量设为较大值,这里设置为66个字节

  7、数据包数据定义

  这里随意定义了一个64 个字节的发送数据包,用户可根据自己的需求做改动。

  8、调制方式FSK 与OOK 的切换

  本例程默认为FSK 调制方式。

  在文件LSD_RFregsetting.h 中,已设置了初始值,如下,

  对照数据手册,该值的含义是:数据包模式、FSK。

  调制方式的切换,同理我们可以利用上位机来设置调制方式,如图:

  在common 窗口,

  在红色圆圈内选择所需要的调制方式,FSK 或者OOK。Modulation shaping默认OFF,用户也可以根据需要选择其他选项。然后,用户将改变后的寄存器数值,更新到LSD_RFregsetting.h 中。

  注意:保证收发双方的这些寄存器设置必须一致。没有提及的参数,在通信没有成功之前,不建议修改。

  9、程序中LSD4RF-2X717N10 与LSD4RF-2S313N10 平台的切换

  在LSD_RFregsetting.h 头文件里, 选择#define VERSIONLSD4RF_2S313N10 或者#define VERSION LSD4RF_2X717N10 来切换两个平台。

  第六章 LSD4RF-2X717N10例程部分代码介绍

  1、LSD_RFreg.h

  几乎全是芯片SX1208 内部寄存器的宏定义,方便用户的理解和使用。禁止修改。

  2、LSD_RFregsetting.h

  首先定义了一个SX1208 的结构体。该结构体包含了SX1208 的寄存器地址和寄存器值。方便用户配置寄存器,一个地址对应一个寄存器数值。

  3、LSD_RF.c

  改文件里包含了SX1208 的驱动程序。比如,模拟SPI,发送数据包,复位等函数。

  4、读LSD4RF-2X717N10 寄存器的值

  5、清除LSD4RF-2X717N10 的FIFO

  6、写LSD4RF-2X717N10 寄存器

  7、设置LSD4RF-2X717N10 的工作模式

  确保进入STANDBYMODE 模式,

  8、确保进入SLEEPMODE(休眠)模式

  9、复位LSD4RF-2X717N10

  10、初始化LSD4RF-2X717N10 模块

  11、发送数据包

  12、接收数据包

  敬告用户:
  1、欢迎您使用利尔达科技集团股份有限公司的产品,在使用我公司产品前,请先阅读此敬告; 如果您已开始使用说明您已阅读并接受本敬告。
  2、利尔达科技有限公司保留所配备全部资料的最终解释和修改权, 如有更改恕不另行通知。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表