首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
测试测量
» Silicon Labs无线收发器SI446x的应用技巧
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
Silicon Labs无线收发器SI446x的应用技巧
发短消息
加为好友
Bazinga
当前离线
UID
1023230
帖子
5213
精华
0
积分
2607
阅读权限
70
在线时间
158 小时
注册时间
2013-12-20
最后登录
2015-10-22
金牌会员
UID
1023230
1
#
打印
字体大小:
t
T
Bazinga
发表于 2015-7-16 21:50
|
只看该作者
Silicon Labs无线收发器SI446x的应用技巧
收发器
,
技巧
,
无线
Silicon Labs的无线Sub-G产品Si446x现在已经越来越多的用于表计产品,如气表、电表等。由于在表计类老产品中TI的CC1101系列应用非常广泛,所以客户使用Si446x时,就会遇到和CC1101兼容问题,本文档将解决此问题。
Si446x 具有硬件CRC、Whitening和软件CRC、Whitening,因为不使用CRC、Whitening和Manchester 时,Si446x和CC1101通信配置比较简单,可以参照Si446x works with CC1101_v1.11.pdf文档,本文档只讨论CRC、Whitening和Manchester同时使能时配置方法。
Si446x 提供软件CRC、Whitening算法支持和CC1101兼容,需要将寄存器PKT_WHT_BIT_NUM 0x1205的SW_WHT_CTRL和SW_CRC_CTRL位置1,使能SW whitening和SW CRC。为了确保Si446x开启SW whitening特性可以和CC1101通信,寄存器PKT_WHT_SEED_15_8 0x1203和PKT_WHT_SEED_7_0 0x1204需要都设置为0xFF。
Si446x最为发送端时,包格式需配置如下:
由于已经开启SW CRC和SW Whitening,所以必须关闭硬件CRC和Whitening,以免重复计算CRC和Whitening,寄存器 PKT_FIELD_1_CONFIG的PN_START和WHITEN位都清零,寄存器PKT_FIELD_1_CRC_CONFIG也配置为 0x00。关闭了硬件CRC,为了发送由软件CRC计算出的2个字节CRC的值,发送数据时需要多发送两个字节给TX FIFO作为CRC字节,并且配置Field1的长度时,也需要额外增加2个字节。比如发送数据为7个字 节,PKT_FIELD_1_LENGTH_12_8和PKT_FIELD_1_LENGTH_7_0则配置成0x00,0x09。下图是数据长度为7的 示意图,其中最后两个字节可以是任意值。
Si446x最为接收端时,包格式需配置如下:
由 于已经开启SW CRC和SW Whitening,所以必须关闭硬件CRC和Whitening,以免重复计算CRC和Whitening,寄存器 PKT_FIELD_1_CONFIG的PN_START和WHITEN位都清零,寄存器PKT_FIELD_1_CRC_CONFIG也配置为 0x00。关闭了硬件CRC,为了发送由软件CRC计算出的2个字节CRC的值,发送数据时需要多发送两个字节给TX FIFO作为CRC字节,并且配置Field1的长度时,也需要额外增加2个字节。比如发送数据为7个字 节,PKT_FIELD_1_LENGTH_12_8和PKT_FIELD_1_LENGTH_7_0则配置成0x00,0x09。下图是数据长度为7的 示意图,其中最后两个字节可以是任意值。
Si446x最为接收端时,包格式需配置如下:
同 样由于使能了SW CRC和SW Whitening,需要将寄存器PKT_FIELD_1_CONFIG的PN_START和WHITEN位都清零,寄存器 PKT_FIELD_1_CRC_CONFIG也配置为0x00,关闭硬件CRC和Whitening。如果配置了寄存器PKT_CONFIG1 0x1206的PH_FIELD_SPLIT位,则TX和RX的寄存器分开配置,需要将寄存器PKT_RX_FIELD_X_CONFIG (X = 1, 2)的PN_START 和WHITEN位清零,寄存器PKT_RX_FIELD_X_CRC_CONFIG (X = 1, 2)设置为0x00。由于禁止了硬件CRC,接收数据时就不会自动接收CRC字节,并且接收的Field2的长度只包含了Address和Data。为了 能够从空中接收CRC字节,则需要告诉IC多接收2个字节,这2个字节就是CRC字节,所以需要调整接收端的包的长度,分以下两种情况配置。
1
、接收端配置为固定包长模式(寄存器
PKT_LEN
的
ENDIAN
位是
0
)
a、 如果PH_FIELD_SPLIT位是0,则Feild1长度配置成1,寄存器PKT_FIELD_1_LENGTH_12_8和 PKT_FIELD_1_LENGTH_7_0配置成0x00,0x01.Feild2的长度需要加2个字节,比如上面发送7个字节,则寄存器 PKT_RX_FIELD_2_LENGTH_12_8和PKT_RX_FIELD_2_LENGTH_7_0配置成0x00,0x09。
b、PH_FIELD_SPLIT位是1,则上面的寄存器就是对应的PKT_RX_FIELD_1_LENGTH和PKT_RX_FIELD_2_LENGTH。
2、
接收端配置为可变包长模式
则 PKT_LEN需配置为0x21,PKT_LEN_FIELD_SOURCE配置为0x02,表示开启可变包长模式,Feild1是不可变的区 域,Feild2是可变包长区域。这种情况,可以配置PKT_LEN_ADJUST为0x02,接收端在接收数据时会自动增加2个字节。 PKT_LEN_ADJUST只针对可变包长。如下图为对应发射的配置图。
在 上述基础上增加Manchester,发送端需将PKT_FIELD_1_CONFIG的MANCH位置1;接收端需同时将 PKT_FIELD_1_CONFIG和PKT_FIELD_2_CONFIG的MANCH位置1,或者是同时将 PKT_RX_FIELD_1_CONFIG和PKT_RX_FIELD_2_CONFIG的MANCH位置1。
注意:
1、由于WDS中没有留出勾选项来配置SW CRC和SW Whitening,所以需要在WDS配置基础上生成工程,在工程中去修改相关寄存器。
2、 在可变包长模式中,如果使用PACKET_INFO来读取接收到的包长,得到的是实际的包长,并且设备接收数据成功后的下一个状态不可以设置为RX状态, 读到的数据长度是最后一次收到数据的长度。如果接收数据成功后就进入下一个状态,那么使用PACKET_INFO命令得到数据会是0。这与读取RSSI值 是类似的。
收藏
分享
评分
the king of nerds
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议