找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2681|回复: 0
收起左侧

MSP430单片机关于XS1212通讯

[复制链接]
ID:161501 发表于 2017-1-12 18:35 | 显示全部楼层 |阅读模式
k Easy-link  编程指南
项目名称 :2 SX1212 M 433M  标准模块
项目型号 : LSD4RF-2H310N10


文 件 修 改 记 录 台 帐
项目名称 Easy-link 编程指南 项目型号 LSD4RF-2H310N10
编制人 蒋俊杰 编制日期 2015-08
审核人 孙香涛、于海波 审核日期 2015-08
版本号 修改日志 修改人 审核人
修改日期
(XXXX-XX-XX)
V1.0 新建 蒋俊杰 于海波 2015-08-21

目 目  录
第一章 简介..............................................................................................................................................................1
第二章 快速建立通信测试试验.............................................................................................................................. 2
第三章 例程流程图.................................................................................................................................................. 4
第四章 移植..............................................................................................................................................................5
1、修改宏定义.................................................................................................................................................. 5
2、SPI 初始化................................................................................................................................................... 6
3、MCU 硬件功能的移植................................................................................................................................... 6
4、建立测试工程.............................................................................................................................................. 8
第五章 更改无线模块的通信参数........................................................................................................................ 10
1、设置载波频率............................................................................................................................................ 10
2、设置波特率................................................................................................................................................ 11
3、设置同步字................................................................................................................................................ 12
4、定义是否打开 CRC..................................................................................................................................... 13
5、数据包长度定义........................................................................................................................................ 13
6、数据包数据定义........................................................................................................................................ 14
7、调制方式 FSK 与 OOK 的切换.................................................................................................................... 14
第六章 LSD4RF-2H310N10 例程部分代码介绍......................................................................................................15
1、SX1212_RF.h.............................................................................................................................................. 15
2、SX1212_RF.c.............................................................................................................................................. 15
3、SX1212_RF.c.............................................................................................................................................. 15
4、读写 LSD4RF-2H310N10 寄存器的值........................................................................................................ 15
5、清除 LSD4RF-2H310N10 的 FIFO............................................................................................................... 15
6、设置 LSD4RF-2H310N10 的工作模式........................................................................................................ 16
7、复位 LSD4RF-2H310N10 模块.................................................................................................................... 16
8、初始化 LSD4RF-2H310N10 模块................................................................................................................ 16
9、发送数据包................................................................................................................................................ 17
10、接收数据包.............................................................................................................................................. 17
敬告用户:................................................................................................................................................................17
1
章 第一章  简介
本编程指南主要讲解了 LSD4RF-2H310N10 easy-link(简单通信)库函数调
用的应用。方便用户快速建立测试工程,进行简单的通信。
Easy-link 为用户提供了一个数据包长度可变的通信测试代码。代码中有关
无线模块的文件主要包括了 SX1212_RF.h、SX1212_RF.c 文件。主函数 SX1212_tx
(SX1212_rx)调用了对应文件里的函数,为用户调用函数和测试提供了参考。
Easy-link 代码完全用的标准 C 语言写的,用户只需更改一些宏定义和
SX1212_RF 配置参数就可以方便地应用于其他 MCU 平台。
提示:本程序只是为用户提供一个简单易用的通信测试代码,当用户测试
通信成功后,可以适当地根据自己的需求更改一些参数。
经测试,本代码在 MSP430F4152 平台上正常运行。
实物连接图,按照蓝色连接线直接插入。
Msp430 底板
无线模块
2
章 第二章  快速建立通信测试试验
为了使客户更快更方便的使用我们的产品,我们将程序做了统一的整合规
范,让客户更容易操作起来,提高开发进度。客户只需要三步即可完成 easy-link
(简单通信)数据收发。(适用于 MSP430F4152)
步骤一:
首先根据自己使用的(MCU)单片机,修改对应 msp430_sys.h 中的
LSD_SPI_SIMO 、 LSD_SPI_SCK 、 LSD_SPI_SOMI 、 LSD_SPI_NSS_CONFIG 、
LSD_SPI_NSS_DATA、LSD_RF_IRQ0、LSD_RF_IRQ1 的宏定义,例如如下。
3
根据不同平台,根据自己实际用的射频IO 口,修改相应的 IO 口定义 。
本测试代码基于 MSP430F4152 平台。
步骤二 :
1、建立发送测试 SX1212_tx.c 工程,在 workspace 处选择 SX1212_tx,
并且选中 SX1212_tx.c 为当前文件编译。下载到一个控制底板(MSP430)
2、建立接收测试 SX1212_rx.c 工程,在 workspace 处选择 SX1212_rx,
并且选中 SX1212_rx.c 为当前文件编译。下载到另一个控制底板(MSP430)
步骤三 :
完成后,上电模块可自动进行数据收发。可在该中断函数中增加 LED 亮灭
的功能来观察通信效果。如下,
4
章 第三章  例程流程图
初始化后进入空闲状态,如想进入接收状态,可以调用 LSD_RF_RXmode();进入
接收状态,如想进入发送发送数据,可以调用 SendRfFrame((unsigned char
*)(&RF_Pkt), sizeof(RF_Pkt))函数,接收和发送可以直接切换,也可以进入
空闲后,再切换。
注意:每次完成发送或接收会自动进入低功耗状态。
上电
初始化
空闲
发送
接收
InitSX1212();
LSD_RF_RXmode();
SendRfFrame((unsigned char *)(&RF_Pkt),
LSD_RF_RXmode();
SendRfFrame((unsigned char *)(&RF_Pkt),
5
章 第四章  移植
1 1 、 修改宏定义
因为无线模块是通过 SPI 总线控制的,所以首先得移植模拟的 SPI。找到头
文件 msp430_sys.h,根据自己的需求修改宏定义 SIMO、SCK、SOMI、NSS_CONFIG、
NSS_DATA 对应的 IO 口。此举决定了 SPI 通信成功与否。
根据需要,在 msp430_sys.h 中更改 IRQ0 的宏定义对应的 IO 口,这决定了
无线模块能否正常发送接收。IRQ0 连接到 MCU 具有外部中断的 IO 口上。IO 口
中断开,选择上升沿触发中断。
这六处宏定义是与 MCU 相连的最基本的五个接口,请务必调试成功。如果
换到其他平台请仔细区别各个平台的 IO。例如普通 51 单片机的 P0,P1,P2 端口
6
没有方向寄存器和功能选择寄存器等。
2 2 、I SPI  初始化
在 SX1212_RF.c 文件中,定义了 SPI 的初始化,
设置了 SPI 的 IO 口的方向,输入输出初始电平。如果用的其他平台的 MCU,保
证自己用的 IO 口功能就行。(初始化 SIMO、SCK、SOMI、NSS_CONFIG、NSS_DATA)
3 3 、U MCU  硬件功能的移植
本示例程序用到了 MSP430F4152 的定时器 TIMERA 中断功能,和端口 PORT1
的外部中断功能。在非 MSP430 平台上的时候注意这个功能的移植,因为无线模
块的发送和接收都是在中断函数里进行的。在SX1212_tx.c 文件里,
(1 1 ) 定时发送一包数据
7
(2 2 ) 中断接收一包数据
8
4 4 、 建立测试工程
(1 1 ) 建立发送测试 c SX1212_tx.c  工程 ,在 workspace 处选择 SX1212_tx,
并且选中 SX1212_tx.c 为当前文件。
首先初始化 MCU。
然后初始化无线模块 SX1212,如果初始化失败,MCU 会重新启动。(提示:
失败一般是 SPI 通信不正常,请确保 SPI 能正确通信。其次,再检查硬件连接
正确与否。最后再看模块有无损坏)
测试通过后,建立数据包。
MCU 进入低功耗。
编译通过后,下载到一个控制底板,作为发送方。
(2) 、 建立接收测试 c SX1212_rx.c  工程 ,在 workspace 处选择 SX1212_rx,
并且选中 SX1212_rx.c 为当前文件。
首先初始化 MCU。
然后初始化无线模块 SX1212,如果初始化失败,MCU 会重新启动。(提示:
9
失败一般是 SPI 通信不正常,请确保 SPI 能正确通信。其次,再检查硬件连接
正确与否。最后再看模块有无损坏)
测试通过后,模块进入接收模式。
MCU 进入低功耗。
编译通过后,下载到另一个控制底板,作为接收方。
完成后,进行通信测试,如果不成功,请排查之前的步骤有没有做好。直到
通信成功。
通信成功的现象:
A 模块发送一包数据包红灯闪烁,B 模块接收到数据包黄灯闪烁,B 模块并将
数据回传给 A 模块,A 模块接收到回传数据后黄灯闪烁。
A 模块
B 模块
A 发送数据包
B 发送回传数据包
10
章 第五章  更改无线模块的通信参数
在通信成功的前提下,可以到这章,了解怎么更改无线模块的通信参数。
首先,到 SEMTECH 官网下载软件 SX1212 Start Kit,方便寄存器的配置。
该软件打开后,整个界面是灰色的,不能操控。同时按下 Ctrl+Alt+N,可以解除
灰色限制,整个界面都可以操作。
1 1 、 设置载波频率
点击在如上图所示的红色圆圈内的 McParam,同时在下面的红色椭圆内输入
频率值,例如,434 000 000,然后按下 Enter 键,你会看到如图所示变为红色
的数值,该数值表示当前载波频率对应的数值。
载波频率由四个寄存器控制,分别是 REG_MCPARAM1 地址 0x00、REG_R1 地
址 0x06、REG_P1 地址 0x07、REG_S1 地址 0x08。其地址右边的数值即当前寄存
11
器配置的数值。载波频率设置好后,在 SX1212_RF.c 文件里找到对应的寄存器,
修改 REG_MCPARAM1、REG_R1、REG_P1、REG_S1 右边的数值,下载程序,模块就
会以 434MHZ 的载波频率工作了。如图,
2 2 、 设置波特率
回到软件 SX1212 Start Kit,在如下红色圆圈内输入波特率,以及频偏 Fdev。
更改参数 Fdev 时,对应的 RxBW 也应做相应的修改,建议用户参考 SX1212 的
DATASHEET,因为这两个参数会影响模块的通信效果。
修改成 25000 的波特率后,其寄存器对应的数值会变为红色
12
同理,到 SX1212_RF.c 文件里去更改波特率,如图,
如果想更改其他参数,请结合数据手册和SX1212 Start Kit 上位机软件,
将改好的数值更新到 SX1212_RF.c 头文件中,这些参数会在无线模块的初始化
中完成。
3 3 、 设置同步字
对照数据手册,设置 REG_SYNCCONFIG,
本历程中同步字默认设置为如下图所示,
如果需要更改,请结合上位机软件,在 packet→sync 对应的处输入你想设
置的数值,查看 REG 表中对应的数值,将数值更新到 SX1212_RF.c 文件中。
13
4 4 、 定义是否打开  CRC
由数据手册可以看到
5 、 数据包长度定义
因为之前数据设的可变模式,所以它的值尽量设为较大值,这里设置为 64
14
个字节
由数据手册可以看到,
6 6 、 数据包数据定义
这里随意定义了一个 64 个字节的发送数据包,用户可根据自己的需求做改动。
7 7 、 调制方式 K FSK 与 与 K OOK  的切换
本例程默认为 FSK 调制方式。
在文件 SX1212_RF.c 中,已设置了初始值,如下,
对照数据手册,该值的含义是:数据包模式、FSK。
调制方式的切换,同理我们可以利用上位机来设置调制方式。
注意:保证收发双方的这些寄存器设置必须一致。没有提及的参数,在通
信没有成功之前,不建议修改。
15
章 第六章 LSD4RF-2H310N10 例程部分代码介绍
1 1 、 SX1212_RF.h
全是芯片 SX1208 内部寄存器的宏定义,方便用户的理解和使用。禁止修改。
2 2 、 SX1212_RF.c
首先定义了一个 SX1212 的结构体。该结构体包含了 SX1212 的寄存器地址
和寄存器值。方便用户配置寄存器,一个地址对应一个寄存器数值。
3 3 、 SX1212_RF.c
改文件里包含了 SX1212 的驱动程序。比如,模拟 SPI,发送数据包,切换
模式等函数。
4 4 、 读写 0 LSD4RF-2H310N10  寄存器的值
5 5 、 清除 0 LSD4RF-2H310N10 的 的  FIFO
16
6 6 、 设置 0 LSD4RF-2H310N10  的工作模式
7 7 、 复位 0 LSD4RF-2H310N10  模块
8 8 、 初始化 0 LSD4RF-2H310N10  模块
17
9 9 、 发送数据包
10 、 接收数据包




回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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