无线通信模块SI4322变频器载波频率率怎么计算

Si443x+寄存器设置_RevV-v23中文版_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Si443x+寄存器设置_RevV-v23中文版
上传于||文档简介
&&s​i42​物​联​网​射​频​模​块​寄​存​器​的​设​置​》
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
你可能喜欢君,已阅读到文档的结尾了呢~~
Silicon Labs SiM无线模块无线,模块,Si,Labs,labs,LABS,无线模块,433M
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
Silicon Labs SiM无线模块
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
ISM频段无线通信模块设计.pdf70页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:200 &&
你可能关注的文档:
··········
··········
将X射线千伏 kV 测量值传输出屏蔽室的传统方法是使用长电缆线传输模
拟信号或数字信号。当传输模拟信号时,由于电缆的漏电因素造成测量值误差较
大,改用传输数字信号后仍不能克服布线灵活性差的缺点。本课题采用的是数字
无线方式将X射线kV测量值传输出屏蔽室。课题来源于中国测试技术研究院开
发的“X射线kV测量”课题中的“无线数据传输’’子课题。由于无线频段的使用
有严格的限制,该无线数据传输系统的数据接收/发射机工作设计在免许可的ISM
的低UHF频段部分。
由于IsM是开放性的频段,经常容易导致通信的堵塞或中断的现象。利用抗
干扰技术解决此频段的通信稳定性问题,成为本课题研究的主要内容。跳频通信
FH 技术具有优良的抗干扰性能。目前,利用无线方式传输X射线kV测量值
在国内未见有产品,同时在ISM频段下通信模块也没有采用抗干扰技术。因此,
在研究了跳频通信相关技术和文献的基础上,结合现有产品,设计了满足X射线
kV测量值要求的基于ISM频段的跳频通信模块。
本文在分析了跳频技术特点的基础上,针对本项目的设计要求,首先在模块
的选型和特点基础上介绍了X射线kV测量的无线通信模块各硬件部分的设计;
由于X射线kV测量的现场环境对信号具有很强屏蔽作用,使用了868MHz的载
波中心频率。接着在探讨了跳频通信的特点的基础上,设计了本通信模块的通信
指令、数据包格式、差错控制方案、跳频同步、跳频序列方案和AFH跳频协议等。
在模块调试和测试阶段,使用高级语言VisualBasic设计开发上层测试应用程序。
通过串口,射频模块将接
正在加载中,请稍后...基于Si4432和SX1212间无线通信的实现_无线模块吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:677贴子:
基于Si4432和SX1212间无线通信的实现收藏
在为客户提供技术支持和RF定制的过程中,我们发现由于功能要求升级和产品更新换代等原因,经常会遇到需要内嵌不同无线芯片的模块能相互通信的问题,但芯片间的规格、参数、数据格式的各种区别让人不知从何着手。本次测试选用的是深圳市思为无线科技有限公司自主研发的RF模块RF4432PRO(内嵌Si4432芯片)和RF4463PRO(内嵌Si4463芯片),并描述了详细实验过程、硬件接口和相关示例程序,希望为解决不同无线芯片间的通信问题提供一个参考的方法。
深圳市思为无线科技有限公司是一家专注于RF及传感器类模块应用开发的技术、服务及销售型公司。其针对不同的射频芯片开发了多种应用模块和方案。目前产品覆盖有20mW、100mW、500mW、1W、2W、3W、5W 等不同功率等级;SPI、UART(含TTL/RS232/RS485及USB)等多种通讯接口; 315/ 433/470/868/915 MHz及2.4 GHz等不同工作频率,总共上百种模块。多年的沉淀和积累使得深圳市思为无线科技有限公司在射频应用的软硬件方面都有着强劲的研发实力和丰富的应用经验。二、实验系统硬件设计1. 芯片性能和特点
图1:Si4432和Si4463芯片内置模块框图
RF4432PRO模块中的Si4432是美国Silabs研发的一款工作频段低于1GHz的高性能射频收发芯片,属于其EzRadioPro系类。在国内已经广泛应用于工业、科研、医疗(ISM)以及短距离无线通信设备(SRD),其输出功率可高达 +20 dBm,接收灵敏度亦达到 -121 dBm。
RF4463PRO模块采用的是Silicon Lab Si4463器件,这是一款高度集成的无线ISM频段收发芯片。极低的接收灵敏度(-126 dBm),再加上业界领先的+20 dBm的输出功率保证扩大范围和提高链路性能。同时内置天线多样性和对跳频支持可以用于进一步扩大范围,提高性能。
具体参数可见Si4432和Si4463的芯片手册。RF4432PRO和RF4463PRO模块内提供了Si4432和Si4463芯片内置功能的硬件支持,用户可直接根据芯片手册进行模块的编程开发与控制。模块 RF4432PRO RF4463PRO 频率范围 403MHz,433MHz,463MHz 403MHz,433MHz,463MHz 发射电流 85mA,@20dBm 85mA,@20dBm 接收电流 18.5mA 13.5mA 静态功耗 &1uA &0.1uA 发射功率范围 1dBm~20dBm -5dBm~20dBm 接收灵敏度 -121dbm @ data=1.2kbps -126dbm@data=500bps 表1: 经测试RF4432与RF1212射频参数对比2.系统硬件设计
实验系统硬件使用了无线模块RF4432PRO和RF4463PRO及其相应的DEMO演示板。RF4432PRO和RF4463PRO模块内含了经严格测试通过的工业级高性能的芯片应用电路。将各模块通过插针连接在一起,便完成了硬件平台的搭建。通过DEMO演示板中单片机的SPI口控制,两个无线收发模块之间相互通信,从而实现数据的无线传输。
无线模块DEMO演示板(如下图2)是配合无线前端收发模块,为方便客户调试程序、测试距离而研发的开发板。该DEMO演示板外置无线模块引脚,设置参数可掉电保存。用户可通过按键设置修改模块的工作频率、发射功率以及通讯速率等相关参数。DEMO演示板共有5种工作模式,如表2。表3和表4分别是RF4463PRO模块和RF4432PRO模块的脚位定义,具体可见深圳市思为无线科技有限公司官网中的RF4432PRO规格书和RF4463PRO规格书。图2:DEMO演示板和无线模块硬件连接 图3: DEMO演示板LCD界面 工作模式 描
述 正常发射(主模式) 定时发射数据包,成功发射一个数据包后红灯亮,转入接收模式,接收到应答信号后蓝灯亮,LCD显示发射和接收数据包的数量 正常接收(从模式) 接收数据包,接收正确蓝灯亮,并将正确接收到的数据包再发射出去,发射成功后红灯亮,LCD显示发射和接收数据包的数量 常发射(发射测试) 模块处于常发状态,红灯长亮,不显示数据包数量 常接收(接收测试) 模块处于常接收状态,相应管脚实时输出接收波形,不计算接收数据包数量 休眠 RF模块处于休眠状态,可在此模式下测量静态功耗 表2: DEMO演示板工作模式脚位编号 引脚定义 描
述 1 GND 接电源地 2 NC 空脚 3 GPIO0 直接连芯片的GPIO0引脚 4 GPIO1 直接连芯片的GPIO1引脚 5 VCC 接电源正极3.3V 6 SDO 0~VDD V数字输出,提供了对内部控制寄存器的串行回读功能 7 SDI 串行数据输入。0~VDD V数字输入。该引脚为4线串行数据串行数据流总线。 8 SCLK 串行时钟输入。0~VDD V数字输入。该引脚提供了4线串行数据时钟功能。 9 nSEL 串行接口选择输入引脚。0~VDD V数字输入。这个引脚为4线串行数据总线提供选择/使能功能,这个信号也用于表示突发读/写模式。 10 nIRQ 中断输出引脚 11 SDN 关闭输入引脚。0~VDD V数字输入。在除关机模式的所有模式SDN=0。当SDN=1时芯片将彻底关闭并且寄存器的内容将丢失。 12 GND 接电源地 13 ANT 接50欧的同轴天线 14 GND 接电源地 表3: RF4463PRO模块的脚位定义脚位编号 引脚定义 描述 1 GND 接电源地 2 GPIO0 内部已接模块的发送控制脚 3 GPIO1 内部已接模块的接收控制脚 4 GPIO2 直接连芯片的GPIO2脚 5 VCC 接电源正极3.3V 6 SDO 0~VDD V数字输出,提供了对内部控制寄存器的串行回读功能 7 SDI 串行数据输入。0~VDD V数字输入。该引脚为4线串行数据流总线 8 SCLK 串行时钟输入。0~VDD V数字输入。该引脚提供了4线串行数据时钟功能 9
nSEL 串行接口选择输入引脚。0~VDD V数字输入。这个引脚为4线串行数据总线提供选择/使能功能,这个信号也用于表示突发读/写模式。 10 nIRQ 中断输出引脚 11
SDN 关闭输入引脚。0~VDD V数字输入。在除关机模式的所有模式SDN=0。当SDN=1时芯片将被彻底关闭并且寄存器的内容将丢失 12 GND 接电源地 13 ANT 接50欧的同轴天线 14 GND 接电源地 表4: RF4432PRO模块脚位定义三、无线模块工作原理
无线信号的发射和接收是将信号调制和解调的过程。无论是相同还是不同的无线模块通信,发射和接收两部分调制格式、调制速率和频率、频偏和接收带宽等调制参数的差别都会导致模块之间无法通信的情况。3.1 SPI总线控制时序
RF4432PRO和RF4463PRO模块与单片机的通信是RF模块根据单片机通过SPI总线写入的控制命令和数据将无线信号发射出去,并将接收到的数据和自身的相关信息通过SPI总线传送给单片机。Si4432与Si4463的SPI时序稍有区别。图4:Si4432芯片SPI写时序图5:Si4463芯片SPI写时序3.2 测试模式
RF4432PRO和RF4463PRO模块的DEMO演示板都有常发和常收两种测试模式,便于调试程序。RF4432PRO和RF1212模块在DEMO演示板测试模式下共同点是不停地传送“101010......”,并可在相应引脚看到接收的实时波形。 图6:DEMO演示板测试模式波形3.3 正常模式
RF4432PRO和RF4463PRO模块的DEMO演示板的正常收发模式运行在Si4432和Si4463的PH+FIFO模式。
Si4432与Si4463都配置了64字节的FIFO及相应的数据包处理功能。该模式下,芯片自动添加和侦测前导码、同步字、校验等,并通过中断表示通信状态,大大方便了通信过程。在正常模式下通信,必须保证通信的两个模块的数据包格式设置完全一致,否则芯片将无法产生中断。图7:Si4432数据包格式图8:Si4463数据包格式3.4 总结
对比Si4432和Si4463芯片的数据包格式如表5。可以发现除了Si4463的数据包中可分为多个部分并各自设CRC校验外,其余部分基本一致。为保证两个芯片可以通信,将测试数据包格式设置如表6。
Si4432 Si4463 前导码Preamble 1~8 Bytes 1~8 Bytes 同步字Sync Word 1~4 Bytes 1~4 Bytes 字头TX Header √ √ 数据长度Packet Length √ √ 数据DATA 0~64 Bytes 0~64 Bytes CRC 0~2 Bytes 0,2,4 Bytes 表5: Si4432与Si4463数据包格式对比
前导码 同步字 字头 数据 长度 Si4432 8 Bytes 2 Bytes 4 Bytes 10 Bytes Si4463 8 Bytes 2 Bytes 4 Bytes 10 Bytes 内容 Si4432 “010101...” 0xb42b “swwx” “ABCDEFGHIm” Si4463 “010101...” 0xb42b “swwx” “ABCDEFGHIm” 表6:测试数据包格式四、具体调试过程
系统通信采用的射频参数设置为:收发频率433.0 MHz、频偏20 KHz、RF速率:1.2 Kbps。发送的数据格式如表6所示。
为确保RF4432PRO和RF4463PRO模块都能正常工作和提供参考波形,首先分别使相同模块能在该设置下使用DEMO演示板的正常模式通信。4.1 对比接收与发射波形
数据包模式由于芯片自动处理数据,只显示结果,不利于程序的调试。因此我们使用DEMO演示板测试模式和外置引脚,通过同步观察发送和接收波形这种最直观的方式,来判断通信质量的好坏。将RF4432PRO和RF4463PRO的GPIO2和GPIO1设置为Rx Data output功能输出,使接收的数据可以分别从GPIO2和GPIO1脚上实时输出。使用逻辑分析仪来同步观察RF4463PRO和RF4432PRO模块发射、接收的波形并做相应的对比。如图10,可发现RF4432PRO和RF4463PRO能正确接收对方的发射信号。 图9:433MHz、1.2Kbps、20KHz频偏下RF4432与RF4463接收测试波形
持续在测试模式下接收一段时间,观察每个接收波形,如图11,发现接收信号没有变形,判断在该射频参数下RF4432PRO和RF4463PRO可以正常通信。图10:433MHz、1.2Kbps、20KHz频偏下RF4432与RF4463长时间接收测试波形
如果RF4432PRO和RF4463PRO模块的接收波形不正确,可尝试调整两模块的调制频率、频偏、带宽等射频参数。如RF4432PRO和RF4463PRO模块的接收带宽与发射频偏设置不对应时,就会出现如图11的接收波形错误情况。 图11
433MHz 、1.2kbps、 30khz频偏下的RF4463接收波形4.2 数据包模式接收
RF4432PRO模块和RF4463PRO模块互相接收波形正确,因此保留射频参数,将DEMO演示板的工作模式设为正常模式,看能否让芯片产生中断。发现没有RF4432PRO模块和RF4463PRO模块都没有产生接收中断。
分别将DEMO演示板设置成RF4432PRO正常发射、RF4463PRO测试接收,RF4463PRO正常发射、RF4432PRO测试接收,对比RF4432PRO和RF4463PRO发射的数据包波形,发现两模块的数据包格式设置不一致。 图12: 433MHz 、1.2kbps、20khz频偏下RF4432和RF4463发送数据包波形
经对比,发现4463的同步字与设置“0x2DD4”不符,而是“0xB42B”。且4432的前导码为“0101...”,不是之前默认的“1010...”。将两模块的数据包格式重新调整,用DEMO演示板正常模式通信。发现RF4432PRO和RF4463PRO模块都产生了接收中断。
RF4463发射中断
RF4432接收中断
RF4463接收中断
RF4432发射中断 图13:433MHz 、1.2kbps 、20khz频偏RF4463和RF4432中断 4.3总体流程图 图14: RF4432PRO和RF4463PRO通信调试流程图 五、实验结果5.1 硬件结果
RF4463PRO工作在DEMO演示板的正常发射模式,RF4432PRO工作在DEMO演示板的正常接收模式。发送和接收的数据包数量显示在屏幕上。如图18,发送一段时间后没有丢包现象。图15: RF4432PRO(左)与RF4463PRO通信实物图5.2 软件结果
图19中4432IRQ为RF4432PRO中断引脚,4463IRQ为RF4463PRO的中断引脚。可见每个发送中断都有相应的接收中断。 图16: RF4432PRO和RF4463PRO通信中断六、示例程序
实验的关键在于RF4432PRO和RF4463PRO模块的初始化设置部分,其余与相同模块间的通信程序一致。将以下测试可行的RF4432PRO和RF4463PRO模块初始化代码直接代入通信程序,即可实现RF4432PRO和RF4463PRO模块间的通信。本实验使用的完整测试程序可见深圳市思为无线科技有限公司官网的RF4432 DEMO CODE和RF4463 DEMO CODE。 6.1 RF4432PRO初始化示例 void SI4432_init(void){
ItStatus1 = spi_rw(0x03,0x00);
// clr RF interrupt factor
ItStatus2 = spi_rw(0x04,0x00);
SpiWriteCfg(0x06|0x80, 0x00);
Set RF interrupt
SpiWriteCfg(0x07|0x80, SI4432_PWRSTATE_READY);
// enter ready mode
SpiWriteCfg(0x09|0x80, 0x7f);
load cap = 12P
SpiWriteCfg(0x0a|0x80, 0x05);
// output clk set
SpiWriteCfg(0x0b|0x80,0xea);
// gpio0 for digital output
SpiWriteCfg(0x0c|0x80,0xea);
// gpio0 for digital output
SpiWriteCfg(0x0d|0x80, 0xf4);
// GPIO 2 = rx data
SpiWriteCfg(0x70|0x80, 0x2c);
SpiWriteCfg(0x1d|0x80, 0x40);
// enable afc
// 1.2K bps setting
SpiWriteCfg(0x1c, 0x16);
// according to Silabs's excel
SpiWriteCfg(0x20, 0x83);
SpiWriteCfg(0x21, 0xc0);
SpiWriteCfg(0x22, 0x13);
SpiWriteCfg(0x23, 0xa9);
SpiWriteCfg(0x24, 0x00);
SpiWriteCfg(0x25, 0x04);
SpiWriteCfg(0x2a, 0x14);
SpiWriteCfg(0x72, 0x20);
SpiWriteCfg(0x6e, 0x09);
SpiWriteCfg(0x6f, 0xd5);
SpiWriteCfg(0x70, 0x2c);
// 1.2K bps setting end
SpiWriteCfg(0x30|0x80, 0x88);
// enable packet handler, msb first, enable crc,
SpiWriteCfg(0x32|0x80, 0xff);
// 0x32address enable for headere byte 0, 1,2,3, receive header check for byte 0, 1,2,3
SpiWriteCfg(0x33|0x80, 0x4a);
// header 3, 2, 1,0 used for head length, fixed packet length,
SpiWriteCfg(0x34|0x80, 64);
// preamble = 64 nibbles
SpiWriteCfg(0x35|0x80, 0x20);
// preamble detection = 20 bit
SpiWriteCfg(0x36|0x80,b4);
// sync word =
SpiWriteCfg(0x37|0x80,2b);
SpiWriteCfg(0x38|0x80, 0x00);
SpiWriteCfg(0x39|0x80, 0x00);
SpiWriteCfg(0x3a|0x80, 's');
// tx header
SpiWriteCfg(0x3b|0x80, 'w');
SpiWriteCfg(0x3c|0x80, 'w');
SpiWriteCfg(0x3d|0x80, 'x');
SpiWriteCfg(0x3e|0x80, 10);
// total tx 10 byte
SpiWriteCfg(0x3f|0x80, 's');
// check hearder
SpiWriteCfg(0x40|0x80, 'w');
SpiWriteCfg(0x41|0x80, 'w');
SpiWriteCfg(0x42|0x80, 'x');
SpiWriteCfg(0x43|0x80, 0xff);
// all the bit to be checked
SpiWriteCfg(0x44|0x80, 0xff);
// all the bit to be checked
SpiWriteCfg(0x45|0x80, 0xff);
// all the bit to be checked
SpiWriteCfg(0x46|0x80, 0xff);
// all the bit to be checked
SpiWriteCfg(0x6d|0x80, 0x07);
// maximum ouput power
SpiWriteCfg(0x79|0x80, 0x0);
// non hop
SpiWriteCfg(0x7a|0x80, 0x0);
// non hop
SpiWriteCfg(0x71|0x80, 0x22);
// FiFo, FSK , not need clk
SpiWriteCfg(0x72|0x80, 0x50);
// deviation:
SpiWriteCfg(0x73|0x80, 0x0);
// no frequency offset
SpiWriteCfg(0x74|0x80, 0x0);
// no frequency offset
SpiWriteCfg(0x75|0x80,0x53);
SpiWriteCfg(0x76|0x80,0x57);
SpiWriteCfg(0x77|0x80,0x80);
// frequency:433.5 MHz
} 6.2 RF4463初始化示例const unsigned char RF_MODEM_CLKGEN_BAND_1_data[] = {RF_MODEM_CLKGEN_BAND_1};//according to Silabs's wireless development suiteconst unsigned char RF_FREQ_CONTROL_INTE_8_data[] = {RF_FREQ_CONTROL_INTE_8};const unsigned char RF_POWER_UP_data[] = { RF_POWER_UP};const unsigned char RF_GPIO_PIN_CFG_data[] = { RF_GPIO_PIN_CFG};const unsigned char RF_GLOBAL_XO_TUNE_1_data[] = { RF_GLOBAL_XO_TUNE_1};const unsigned char RF_GLOBAL_CONFIG_1_data[] = { RF_GLOBAL_CONFIG_1};const unsigned char RF_FRR_CTL_A_MODE_4_data[] = { RF_FRR_CTL_A_MODE_4};const unsigned char RF_PREAMBLE_TX_LENGTH_9_data[] = { RF_PREAMBLE_TX_LENGTH_9};const unsigned char RF_SYNC_CONFIG_5_data[] = { RF_SYNC_CONFIG_5};const unsigned char RF_PKT_CRC_CONFIG_1_data[] = { RF_PKT_CRC_CONFIG_1};const unsigned char RF_PKT_CONFIG1_1_data[] = { RF_PKT_CONFIG1_1};const unsigned char RF_PKT_LEN_3_data[] = { RF_PKT_LEN_3};const unsigned char RF_PKT_FIELD_1_LENGTH_12_8_12_data[]={ RF_PKT_FIELD_1_LENGTH_12_8_12};const unsigned char RF_PKT_FIELD_4_LENGTH_12_8_8_data[] = { RF_PKT_FIELD_4_LENGTH_12_8_8};const unsigned char RF_MODEM_FREQ_DEV_0_1_data[] = { RF_MODEM_FREQ_DEV_0_1};const unsigned char RF_MODEM_AGC_CONTROL_1_data[] ={ RF_MODEM_AGC_CONTROL_1};const unsigned char RF_MATCH_VALUE_1_12_data[] ={ RF_MATCH_VALUE_1_12};const unsigned char RF_MODEM_RSSI_COMP_1_data[] = { RF_MODEM_RSSI_COMP_1};const unsigned char RF_MODEM_MOD_TYPE_12_data[]= {RF_MODEM_MOD_TYPE_12};const unsigned char RF_MODEM_TX_RAMP_DELAY_8_data[]=
{RF_MODEM_TX_RAMP_DELAY_8};const unsigned char RF_MODEM_BCR_OSR_1_9_data[]={RF_MODEM_BCR_OSR_1_9};const unsigned char RF_MODEM_AFC_GEAR_7_data[]={RF_MODEM_AFC_GEAR_7};const unsigned charRF_MODEM_AGC_WINDOW_SIZE_9_data[]={RF_MODEM_AGC_WINDOW_SIZE_9};const unsigned char RF_MODEM_OOK_CNT1_11_data[]={RF_MODEM_OOK_CNT1_11};const unsigned char RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12_data[]={RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12};const unsigned char RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12_data[]={RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12};const unsigned char RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12_data[]={RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12};const unsigned char RF_SYNTH_PFDCP_CPFF_7_data[]={RF_SYNTH_PFDCP_CPFF_7};void SI4463_init(void){
U8 app_command_buf[20],i;
//spi_write(0x07, RF_GPIO_PIN_CFG_data);
app_command_buf[0] = 0x13;
// SET GPIO PORT
app_command_buf[1]
// gpio 0 ,Rx data
app_command_buf[2]
// gpio1, output 0
app_command_buf[3]
// gpio2, hign while in receive mode
app_command_buf[4]
// gpio3, hign while in transmit mode
app_command_buf[5]
app_command_buf[6]
spi_write(7, app_command_buf);
// spi_write(0x05, RF_GLOBAL_XO_TUNE_1_data);
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
adjustment
spi_write(5, app_command_buf);
// spi_write(0x05, RF_GLOBAL_CONFIG_1_data);
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
// tx = rx = 64 byte,PH,high performance mode
spi_write(5, app_command_buf);
spi_write(0x08, RF_FRR_CTL_A_MODE_4_data);
// disable all fast response register
// spi_write(0x0D, RF_PREAMBLE_TX_LENGTH_9_data); // set Preamble
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
8 bytes Preamble
app_command_buf[5]
detect 20 bits
app_command_buf[6]
app_command_buf[7]
app_command_buf[8]
no manchest.1010...
app_command_buf[9]
app_command_buf[10]
app_command_buf[11]
app_command_buf[12]
spi_write(13, app_command_buf);
RF_SYNC_CONFIG_5_data,
// set sync
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
// no manchest , 2 bytes
app_command_buf[5]
// sync byte3
app_command_buf[6]
// sync byte2
app_command_buf[7]
// sync byte1
app_command_buf[8]
// sync byte0
spi_write(9, app_command_buf);
packet crc
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
spi_write(5, app_command_buf);
gernale configuration
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
// CRC MSB, data MSB
spi_write(5, app_command_buf);
// spi_write(0x07, RF_PKT_LEN_3_data);
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
app_command_buf[5]
app_command_buf[6]
spi_write(7, app_command_buf);
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
app_command_buf[5]
//header(4)+10 bytes
app_command_buf[6]
app_command_buf[7]
app_command_buf[8]
app_command_buf[9]
app_command_buf[10]
app_command_buf[11]
app_command_buf[12]
app_command_buf[13]
app_command_buf[14]
app_command_buf[15]
spi_write(16, app_command_buf);
// set length of Field 1 -- 4
// spi_write(0x0C, RF_PKT_FIELD_4_LENGTH_12_8_8_data);
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
app_command_buf[5]
app_command_buf[6]
app_command_buf[7]
app_command_buf[8]
app_command_buf[9]
app_command_buf[10]
app_command_buf[11]
spi_write(12, app_command_buf);
spi_write(0x10, RF_MODEM_MOD_TYPE_12_data);
spi_write(0x05, RF_MODEM_FREQ_DEV_0_1_data);
spi_write(0x0C, RF_MODEM_TX_RAMP_DELAY_8_data);
spi_write(0x0D, RF_MODEM_BCR_OSR_1_9_data);
spi_write(0x0B, RF_MODEM_AFC_GEAR_7_data);
spi_write(0x05, RF_MODEM_AGC_CONTROL_1_data);
spi_write(0x0D, RF_MODEM_AGC_WINDOW_SIZE_9_data);
spi_write(0x0F, RF_MODEM_OOK_CNT1_11_data);
// spi_write(0x05, RF_MODEM_RSSI_COMP_1_data);
app_command_buf[0] = 0x11;
app_command_buf[1] = 0x20;
app_command_buf[2] = 0x01;
app_command_buf[3] = 0x4e;
app_command_buf[4]
spi_write(5, app_command_buf);
spi_write(0x10, RF_MODEM_CHFLT_RX1_CHFLT_COE13_7_0_12_data);
spi_write(0x10, RF_MODEM_CHFLT_RX1_CHFLT_COE1_7_0_12_data);
spi_write(0x10, RF_MODEM_CHFLT_RX2_CHFLT_COE7_7_0_12_data);
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
app_command_buf[5]
// set max power
app_command_buf[6]
app_command_buf[7]
spi_write(8, app_command_buf);
spi_write(0x0B, RF_SYNTH_PFDCP_CPFF_7_data);
// header match
app_command_buf[0] = 0x11;
app_command_buf[1]
app_command_buf[2]
app_command_buf[3]
app_command_buf[4]
= 's';
app_command_buf[5]
app_command_buf[6]
app_command_buf[7]
= 'w';
app_command_buf[8]
app_command_buf[9]
app_command_buf[10] = 'w';
app_command_buf[11]
app_command_buf[12]
app_command_buf[13]
= 'x';
app_command_buf[14]
app_command_buf[15]
spi_write(16, app_command_buf);
spi_write(5, RF_MODEM_CLKGEN_BAND_1_data);
spi_write(12, RF_FREQ_CONTROL_INTE_8_data);
// set frequency =433.57 总结
本文描述了深圳市思为无线科技有限公司的无线收发模块通信RF4432PRO和RF4463PRO间的详细实现过程、硬件接口和示例程序,经实验验证可行。实现通信的基本方法是将RF4432PRO和RF4463PRO设置相同射频参数及数据格式。这个方法也可以引申至其他不同无线模块和无线芯片的通信。如遇到与文中不同的实验现象,对实验过程有疑问或其他想法欢迎与我们进行技术交流。
以上内容来自,转载请注意出处,谢谢!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 载波频率偏移 的文章

 

随机推荐