




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FytooTechCC1020 模块开发指南V3.2无线应用,无限!杭州飞拓电子科技2009 年 12 月 28 日Fytoo Tech一、模块介绍RF1020 模块(不含天线尺寸:37mm* 24mm板厚:1mm)RF1020 模块特性:(1)频率范围为 402 MHz -470MHz 工作(2)高灵敏度(对 12.5kHz 信道可达-118dBm)(3)可编程输出功率,最大 10dBm(4)低电流消耗(RX:19.9mA)(5)低压供电(2.3V 到 3.6V)(6)数据率最高可以达到 153.6Kbaud(7)SPI 接口配置寄存器(8)标准 DIP 间距接口,便于应用(9)配套无线开发
2、板支持,帮助您更快应用本模块(10) 作为微功率无线数传模块,直线通信距离可达 600 米左右Fytoo Tech二、接口电路VCCRFCC1020PSEL1357911132468101214PDIPCLKNCPDONCDCLKNCDIONCLOCKHeader 7X2引脚说明:管脚名称管脚功能说明1VCC电源+3.3-3.6 DC2PSEL数字输入SPI 接口使能端,低有效3PDI数字输入SPI 输入4PCLK数字输入SPI 时钟5NC无没有使用6PDO数字输出SPI 输出7NC无没有使用8DLCK数字输出在接收或发送模式下的同步时钟9NC无没有使用10DIO输入/输出接收模式下的输出和发
3、送模式下的输入11NC无没有使用Fytoo Tech说明:(1)VCC 脚接电压范围为 3 V3.6V 之间,不能在这个区间之外,超过 3.6V 将会烧毁模块。电压 3.3V 左右。(2)除电源 VCC 和接地端,其余脚都可以直接和普通的 5V 单片机IO口直接相连,无需电平转换。当然对 3V 左右的单片机更加适用了。(3)硬件上面没有 SPI 的单片机也可以控制本模块,用普通单片 IO 口模拟 SPI 不需要单片机 SPI 模块介入,只需添加代码模拟SPI 时序即可。(4)13 脚、14 脚为接地脚,需要和母板的逻辑地连接起来。(5)排针间距为 100mil,标准 DIP 插针,如果需要其他
4、封装接口,比如密脚插针,或者其他形式的接口,可以们定做。(6)与 51 系列单片机 P0 口连接时候,需要加 10K 的上拉电阻,与其余口连接不需要。(7)其他系列的单片机,如果是 5V 的,请参考该系列单片机 IO 口输出电流大小,如果超过 10mA,需要串联电阻分压,否则容易烧毁模块!如果是 3.3V 的,可以直接和 RF1020 模块的 IO 口线连接。12LOCK数字输出PLL 指示,低有效(可选)13GND电源地接地14GND电源地接地Fytoo Tech三、模块引脚和电气参数说明RF1020 模块使用 TI 公司的 CC1020开发而成。 RF1020单片无线收发器工作在 402,
5、424, 426, 429, 433, 447,449, 469, 868and 915 MHz 的 ISM 和 SRD 频段,完全集成的位同步器。具有很低的IF 特性,输出的解调数据在 DIO 引脚产生,可以通过位同步时钟 DCLK解调数据及发送模式下的数据输出。数据包协议添加前导码、同步字、地址信息和发送数据长度等。可以很容易通过SPI 接口进行编程配置,电流消耗很低在为10dBm 时发射电流为 27.1mA,接收电流为 19.9mA.RF1020 模块性能参考数据:参数数值最低工作电压3.0V最大10dBm最大数据率153.6Kbaud功率-20dBm 时工作电流12.3/14.5mA接
6、收模式时工作电流19.9mA温度范围-40 to +85典型灵敏度-144dBmERDOWN 模式工作电流1.8uAFytoo Tech四、工作方式在采用电池的应用中为了满足严格的功率消耗要求,CC1020 提供很大灵活性的功率管理。ER DOWN 模式通过 MAIN 寄存器控制。在MAIN 寄存器中有单独的位控制 RX 部分、TX 部分、频率器和晶体振荡器。在每个应用中这个单独控制可用来优选最低可能电流消耗。为了流入上拉电阻的涓流电流,在功率下降模式期间 PSEL 必须为 3 态的,或设置为。4.1 RF1020 初始化流程:当模块上电后,CC1020 寄存器需要重置(通过清空MAIN 寄存
7、器的 RESET 位)。所有待配置的寄存器必须接着被配置(与默认值不同的)。寄存器可以任何顺序配置。然后 CC1020 必须在 RX 和TX 模式下校准。完成之后,CC1020 即可被使用。在模块上电后:1)重置CC10202)初始化3)唤起CC1020 到RX4)校准5)唤起CC1020 到TX6)校准在校准完成之后,进入 TX 模式(设置 CC1020TX),RX模式(设置Fytoo TechCC1020RX)或ER DOWN 模式(设置CC1020PD)如下图所示,最小功率消耗的一个典型上电和初始化顺序电源关闭复位 CC1020唤起 CC1020到TX/RX设置 CC1020PDER D
8、OWN 模式CC1020 初始化顺序MAIN:PD_MODE=1, FS_PD=1,XOSC_PD=1, BIAS_PD=1,PA_ER=00h校准 VCO 和 PLL 和器连续地打开晶体振荡器,偏压产生器和器设置所有必须的寄存器,除 MAIN 和RESET 外RESET_N=1复位CC1020:MAIN: RX_TX=0,F_REG=0, PD_MODE=1,FS_PD=1, XOSC_PD=1,BIAS_PD=1, RESET_N=0打开电源Fytoo Tech4.2 模式转换流程:从ER DOWN 模式到RX:1)唤起CC1020 到RX2)设置CC1020RX从ER DOWN 模式到T
9、X:1)唤起CC1020 到TX2)设置CC1020TX从RX 到 TX 模式转换:1)设置CC1020TX从TX 到 RX 模式转换:1)设置CC1020RXFytoo Tech下图为有效RX/TX 模式设置流程:Fytoo Tech数据包定义:五、配置RF1020 模块CC1020 通过简单的 4 线SPI 兼容接口(PDI,PDO,PCLK 和PSEL)完成。配置寄存器为 8 位,每一个寄存器的读写均通过一个 7 位地址位、1 位读/写位开始读或写操作。一个完整的配置要求的时间决定于 PCLK频率。在 10MHz 的PCLK 频率下,完整的配置在小于 53us 内完成。在每个写周期,16
10、 个比特在 PDI 线上传输。每个数据帧包含 7 比特(A6 :0)地址位、1 一个比特为 R/W 位(高为写,低为读)、然后 8个数据比特(D7 :0)被传送。在地址和数据传送期间,PSEL 必须保持为低。PDI 上的数据是在 PCLK 的上升沿完成所存,单片机在 PCLK的下降沿建立PDI 数据。在erDown 模式下,配置寄存器的内容将保持不变。域名字 长格式前导码(Preamble)4 bytes0 1 交替出现(0 x AA or 0 x 55)同步字段(SOF)4 bytes0 x D30 x91地址(Address)1 byte1-255数据长度(Length)1 byte1-2
11、55 有效数据长度数据Data Variable1-255接收到的有效数据Fytoo Tech配置寄存器写操作:配置寄存器读操作:Fytoo TechRF1020 配置寄存器:CC1020 配置由设置 8 位的寄存器来完成。配置数据的选择基于系统参数,可容易地在 SmartRF Studio上得到。在 RESET 之后,所有寄存器置为默认值。TEST 寄存器不许由用户更改。为了使模块得到更好的性能,配置数据使用 SmartRF Studio获得。寄存器概述:地址名称描述00hMAIN主控制寄存器01hERFACE接口控制寄存器02hRESET数字模块复位寄存器03hSEQUENCING自动加电
12、序列控制寄存器04hFREQ_2A频率寄存器 2A05hFREQ 1A频率寄存器 1A06hFREQ_0A频率寄存器 0A07hCLOCK_A时钟产生寄存器A08hFREQ 2B频率寄存器 2B09hFREQ_1B频率寄存器 1B0AhFREQ 0B频率寄存器 0B0BhCLOCK_B时钟产生寄存器B0ChVCOVCO 电流控制寄存器0DhMODEM调制控制寄存器0EhDEVIATIONTX 频偏寄存器0FhAFC_CONTROLRX AFC 寄存器10hFILTER通道滤波/RSSI 控制寄存器11hVGA1VGA 控制寄存器 1Fytoo Tech12hVGA2VGA 控制寄存器 213h
13、VGA3VGA 控制寄存器 314hVGA4VGA 控制寄存器 415hLOCK锁存控制寄存器16hFRONTEND前端偏流控制寄存器17hOG模拟模块控制寄存器18hBUFF_SWINGLO 缓冲控制寄存器19hBUFF_CURRENTLO 缓冲和偏置控制寄存器1AhPLL_BWPLL 回路带宽/负荷泵电流控制寄存器1BhCALIBRATEPLL 校准控制寄存器1ChPA_ER功率放大寄存器1DhMATCH匹配电容阵列控制寄存器,为RX/TX 匹配1EhPLO I/Q 相位误差补偿控制寄存器1FhPI/Q 混频器增益误差补偿控制寄存器20hERDOWN掉电模式控制寄存器21hTEST1PLL
14、 校准测试寄存器22hTEST2PLL 校准测试寄存器23hTEST3PLL 校准测试寄存器24hTEST4负荷泵和 IF 链测试寄存器25hTEST5ADC 测试寄存器26hTEST6VGA 测试寄存器27hTEST7VGA 测试寄存器40hSUS状态寄存器(PLL 锁定、RSSI、校准就绪等)41hRESET_DONE数字模块复位状态寄存器Fytoo Tech42hRSSI接收信号强度指示寄存器43hAFCIF 平均接收频率漂移寄存器(可AFC 使用)44hGAUSS_FILTER数字FM 解调器寄存器45hSUS1PLL 校准结果状态(测试用)46hSUS2PLL 校准结果状态(测试用)
15、47hSUS3PLL 校准结果状态(测试用)48hSUS4ADC 信号状态(测试用)49hSUS5通道滤波器信号I状态(测试用)4AhSUS6通道滤波器信号Q状态(测试用)4BhSUS7AGC 状态(测试用)Fytoo TechFytooTech六、编程指南以下是 RF1020 的部分代码,完整的测试代码需要RF1020 模块,将随模块测试代码。SPI 读写函数:Fytoo Tech每次对CC1020 的读写操作都包含 7 位地址位(A6:A0)、1 位写操作位(写为高)、一字节数据,写操作前必须先让 PSEL 使能有效(低有效)。在 PCLK的上升沿,先发送地址MSB 位(A6)。/*函数功
16、能:写一字节数据到CC1020参数:val:要写入的数据出口参数:无备注: 无*/void WriteCC1020(char val)char BitCounter;for (BitCounter=8;BitCounter!=0;BitCounter-)PCLK_LOW;PDI_LOW;if(val&0 x80)PDI_HIGH;val=1;PCLK_HIGH;Fytoo TechPCLK_LOW;/*函数功能:写CC1020 寄存器值参数:addr:寄存器地址data:写入数据出口参数:无备注: 无*/void WriteToCC1020Register(char addr, char da
17、ta)PSEL_LOW;WriteCC1020(addr1)|0 x01);/写数最低位是 1WriteCC1020(data);PSEL_HIGH;SPI 读操作:PCLK 的上升沿,先发送读寄存器的地址 MSB 位,地址发送结束后发送写操作位(写操作为低),之后在 PCLK 的下降沿把寄存器值所存到单片机。/*Fytoo Tech函数功能:读cc1020 寄存器值参数:addr:寄存器地址出口参数:返回寄存器内容备注: 无*/char ReadFromCC1020Register(charaddr)char BitCounter;char Byte;PSEL_LOW;/Send addre
18、ss bitsWriteCC1020(addr1);/CC1020 读操作 发送 7Bit 地址 1Bit R/W 0-W,位移后最低位一定是 0。for(BitCounter=8;BitCounter!=0;BitCounter-)PCLK_HIGH;Byte=1;if(PDO_IN)Fytoo TechByte|=1;PCLK_LOW;PSEL_HIGH;return Byte;程序设计采用状态机切换方式,主程序处理发送缓冲区数据及把从RF1020接收到接收缓冲区的数据通过 UART 发送到 PC 机显示。当没有按键触发发送数据及接收缓冲区为空的时候状态机处于IDLE_SE 状态,模块不断
19、检测数据包前导码,如果检测到正确的前导码及一字节同步字,状态切换到RX_SE 接收同步字、地址、数据包长度、数据。如果有按键触发,主程序初始化发送缓冲区数据包长度及装载发送数据,切换到 TX_SE 发送数据包数据,先发送前导码。数据包协议:字长格式前导码(Preamble)4 bytes0 1 交替出现(0 x AA or 0 x 55)同步字段(SOF)4 bytes0 x D3 0 x91Fytoo Tech状态图:接收到有效发送完成前导码同步字RX_SEIDLE_SETX_SE接完成有按键触发或接收错误缓冲区有数据状态函数:/*函数功能:状态地址(Address)1 byte1-255数
20、据长度(Length)1 byte1-255 有效数据长度数据Data Variable1-255接收到的有效数据Fytoo Tech参数:无出口参数:无备注:空闲状态下CC1020 为接收模式,通过中断查询前导码*/void ChangeSe(void)switch(NextSe)/下一个状态case RX_SE:/下一状态为接收if(Se=TX_SE)/当前为发送/* MSP430 calls */TI_CC_DCLK_PxIES &= DCLK;/on raisingedgeTI_CC_DIO_PxDIR&=DIO;/SetDIOasinputSetupCC1020RX(RXOG,PA_
21、ER);/发送到接收模式切换Se=RX_SE;/接收状态BitCounter=0;/位计数器清零Fytoo TechByteCounter=0;/字计数器清零break;case TX_SE:/下一个状态为发送状态if(Se!=TX_SE)/当前不是发送状态TI_CC_DCLK_PxIES |=DCLK;/on falling edgeTI_CC_DIO_PxDIR |=DIO;/ Set DIO as outputSetupCC1020TX(TXOG, PA_ER);/从接收到发送切换Se=TX_SE;/状态为发送BytesToSend=TXBufferIndex; / Number of
22、bytes to send发送字节数包含 Preable 和HeaderTXBuffreambleLength+3=BytesToSend-HEADER_SIZE-PreambleLength;/装载数据长度Fytoo TechLastDataBit = FALSE;/标志清零TXBufferIndex=0;/发送索引清零BitCounter=0;/位计数器清零ShiftReg=TXBufferTXBufferIndex+;/装载发送数据装载第一个发送数据prfch(ShiftReg);/break;case IDLE_SE: /下一状态为空闲if(Se=TX_SE)/当前状态为发送TI_CC
23、_DCLK_PxIES&=DCLK; /onraising edgeTI_CC_DIO_PxDIR&=DIO; / Set DIOas inputSetupCC1020RX(RXOG, PA_ER);/从发送到接收切换Se=IDLE_SE;/当前状态为空闲/空闲状态初始化发送缓冲区下标Fytoo TechTXBufferIndex=HEADER_SIZE+PreambleLength;PreambleCount=0;PreambleError=0;PreambleFound=FALSE; / Preamble 头标志清零UI1Found=FALSE;/ UI1 标志清零break;RF1020
24、 模块通信:RF1020 和单片机的通信采用中断方式,在 DLCK 产生的中断函数中通过DIO完成通信。定义了一个字节的移位寄存器共用体:/ Union for shifting bits in or out of the CC1020unionchar ShiftReg;/发送,接收字节struct unsignedcharShiftRegLSB :1;unsignedchar:1;unsignedchar:1;Fytoo Techunsignedchar:1;unsignedchar:1;unsignedchar:1;unsignedchar:1;unsignedcharShiftRegM
25、SB:1;中断接收及发送函数:/*函数功能:CC1020 收发数据中断处理参数:无出口参数:无备注: 空闲状态下先接收前导码*/#pragma vector=PORT1_VECTORerrupt void PORT1_ISR(void)/ This function must execute as fast assible./ Therefore, as much prosing assible is leftFytoo Tech/ to the main program.switch(Se)caseTX_SE:/Write dao CC1020/DIO=ShiftRegMSB;if (Shi
26、ftRegMSB)/MCU发送数据到CC1020TI_CC_DIO_PxOUT|=DIO;elseTI_CC_DIO_PxOUT&= DIO;ShiftReg=ShiftRegRFPACKET_EXTEN)/ 发 送 最 后RFPACKET_EXTENbit 位 保持输出功率BitCounter= 0;Fytoo TechTXBufferIndex = 0;LastDataBit = FALSE;NextSe=IDLE_SE;break;else/ Else (notlast databit)else/ Load new TX dataand monitor endofpacket:/装载新的
27、发送数据 并检测是不是最后一个数据if(BitCounter=1)if(TXBufferIndexBytesToSend)/是否发完最后一个发送数据BitCounter =0;LastDataBit=TRUE;/最后字节数据标志ShiftReg=0 x00;Fytoo Tech/发送完数据 发送 0 x00 作为结束标志/发完一个字节if(BitCounter=8)BitCounter=0;ShiftReg=TXBufferTXBufferIndex+;break;case RX_SE:/ Read data from CC1020ShiftReg=ShiftReg1);/ Low-side
28、LO(DIO not inverted)/移位到最后一位BitCounter+;Fytoo Tech/ If received 8bits=1byteif(BitCounter=8)/接收到一个字节BitCounter=0;/ Pros received RF data:switch(ByteCounter)/ Byte-0 = SOF part 1:case 0 :if(ShiftReg!=UI2) /UI2 接收不正确回到空闲状态NextSe=IDLE_SE;break;/Byte-1= address:case1 :/接收到地址字节/Addressing not implementedb
29、reak;/ Byte-2 = packet length/size:Fytoo Techcase 2 : /数据包长度BytesToReceive=ShiftReg; /为长度减 1if(BytesToReceiveTX_BUFFER_SIZE)/接收到的数据长度大于 缓冲区长度BytesToReceive=0;break;/ Rest of the packetis data, storeithe receivebufferdefault :RXBufferRXBufferWriteIndex=ShiftReg;/ 存入缓冲区/RXBufferWriteIndex=(RXBufferWri
30、teIndex+1)%RX_BUFFER_SIZE;RXBufferWriteIndex+;RXBufferWriteIndex&=0 x3F;break;if(ByteCounter=BytesToReceive+2)/如果接收数据包Fytoo Tech完成 /NextSe=IDLE_SE; /转到空闲状态ByteCounter+;break;case IDLE_SE: / Read data from CC1020ShiftReg=ShiftReg1);/读DIO P2.4BitCounter+;/ If preamble found, lookfor Start Of Frame (SO
31、F)if(PreambleFound)/前导标志置 1受到有效前导/ Ifunique identifier found, enterRX modeif(ShiftReg=UI1)/UI1 被找到Fytoo Tech/ Initialise RX prosing se directly:/ Avoid latency with background scheduler.BitCounter=0;/ByteCounter=0;Se = RX_SE;/收到一个则进入接收状态NextSe=RX_SE;/ Else if we arestill receiving preamble, do nothi
32、ng /没有正确收到 UI1elseif(ShiftReg=VALID_PREAMBLE_BYTE_1)|(ShiftReg=VALID_PREAMBLE_BYTE_2) /如果仍然在收到前导 什么都不做/ Else if we are not receiving a correct preamble, declare an errorelse if(PreambleError=0)/否则前导错误PreambleError+;/前导错误变量加 1else/ If preamble error found, increase the error counter regardlessFytoo T
33、echof bits readif(PreambleError0)/前导错误变量加 1PreambleError+;/Once an error condition has occurred, a correct SOF must be found/within 9 bits (error counter is initially incrementedby2),otherwise/ we abort and startlooking for preamble againif(PreambleError10)/如果大于 10PreambleFound=FALSE;/前导错误标志 复位/ Else (p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国视频控制设备市场运行态势报告
- 2025-2030年中国路面施工设备行业深度调研及投资前景预测研究报告
- 中国旋挖钻机行业市场调查及投资咨询报告2025年-图文
- 少儿频道合作推广合同书
- 隰县特色小镇投资建设研究报告
- 跨境电商贸易货款支付合同
- 园林绿化行业发展研究报告
- 应届毕业生劳动合同样本
- 2025年企业信用报告-合肥市蜀山区城市建设投资有限责任公司
- 2025年中国指锯行业发展前景及投资战略预测咨询报告
- 2024年北京市朝阳区九年级中考复习一模数学试卷含答案
- 《方剂学》第八章-清热剂
- 艺术中国智慧树知到期末考试答案2024年
- SL432-2008水利工程压力钢管制造安装及验收规范
- 提高卧床患者踝泵运动的执行率
- 2024年辽阳职业技术学院单招职业技能测试题库及答案解析
- 装配式建筑预制构件运输与堆放-预制构件运输基本要求
- 《客船船员特殊培训合格证培》课件-邮轮救生设备的配备
- 腾讯招聘测评题库答案大全
- 道路车辆 48V供电电压 电气要求及试验
- 皮肤性病学课件皮炎与湿疹
评论
0/150
提交评论