|
第一章 简介
本编程指南主要讲解了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 VERSION LSD4RF_2S313N10或者#define VERSION LSD4RF_2X717N10来切换两个平台。
第六章 LSD4RF-2S313N10例程部分代码介绍
1、LSD_RFreg.h
几乎全是芯片SX1208内部寄存器的宏定义,方便用户的理解和使用。禁止修改。
2、LSD_RFregsetting.h
首先定义了一个SX1208的结构体。该结构体包含了SX1208的寄存器地址和寄存器值。方便用户配置寄存器,一个地址对应一个寄存器数值。
3、LSD_RF.c
改文件里包含了SX1208的驱动程序。比如,模拟SPI,发送数据包,复位等函数。
4、读LSD4RF-2S313N10寄存器的值
5、清除LSD4RF-2S313N10的FIFO
6、写LSD4RF-2S313N10寄存器
7、设置LSD4RF-2S313N10的工作模式
确保进入STANDBYMODE模式,
8、确保进入SLEEPMODE(休眠)模式
9、复位LSD4RF-2S313N10
10、初始化LSD4RF-2S313N10模块
11、发送数据包
12、接收数据包
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|