CC1100无线模块使用说明.docx
- 文档编号:17962452
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:17
- 大小:72.50KB
CC1100无线模块使用说明.docx
《CC1100无线模块使用说明.docx》由会员分享,可在线阅读,更多相关《CC1100无线模块使用说明.docx(17页珍藏版)》请在冰豆网上搜索。
CC1100无线模块使用说明
CC1101无线模块使用说明书
1.功能介绍
1.1.射频(RF)性能:
1)采用TI最新的CC110L无线射频芯片,软件完全兼容CC1100,CC1101,
相比于前两者,CC110L芯片更专注核心部分,因此更稳定
2)接收灵敏度低至−116dBm(在1kbps数据速率下,典型状态下-110dBm)
3)可编程数据速率:
范围0.6至600kbps(推荐2.4kbps--500kbps)
4)工作于433MHz免费ISM频段(387-464MHz,推荐中心频点430-436MHz)
5)调制方式:
支持2-FSK、4-FSK、GFSK和OOK(不支持MSK调制方式)
1.2.数字特性:
1)64字节接收(RX)和发送(TX)FIFO
2)模块可软件设地址,只有收到本机地址时才会输出数据(提供中断指示),
可直接接各种单片机使用,软件编程非常方便
1.3.低功耗特性:
1)睡眠模式电流消耗约2uA
2)最大发射功率:
+10dBm,最大发射电流30mA,持续接收电流约16mA
3)快速启动时间:
240uS(从睡眠模式到接收[RX]模式或发送[TX]模式)
4)快速切换:
模块在接收[RX]和发射[TX]模式切换时间<1ms
1.4.接口及传输特性:
1)采用标准2.54mm间距双排针接口方式。
可以和我公司出品的CC1100系
列微功率模块、USB接口/串口模块、RFC-1100H大功率模块等互相通信、
组网工作
2)配置标配5CM胶棒天线,直线可视通讯距离可达250-300米;配置弹簧
天线,直线可视通信距离200米(距离与测试环境、放置高度、波特率设
置甚至天气等都息息相关)采用高增益天线,可以使通信距离更远
2.引脚说明
(1)VCC脚接电压范围为1.9V-3.6V之间,不能在这个区间之外,超过3.6V
将会烧毁模块。
推荐电压3.3V左右。
(2)除电源VCC和接地端,其余脚都可以直接和普通的5V单片机IO口直接相
连,无需电平转换。
当然对3V左右的单片机更加适用了。
(3)硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO口模拟
SPI不需要单片机真正的串口介入,只需要普通的单片机IO口就可以了,当
然用串口也可以了。
(4)9脚,10脚为接地脚,需要和母板的逻辑地连接起来
(5)排针间距为100mil/2.54mm,标准DIP插针,此外我们还有2.0mm单排针
和贴片焊接方式的版本。
(6)与51系列单片机P0口连接,需要加10K的上拉电阻,与其余口连接不需要。
(7)其他系列的单片机,如果是5V的,请参考该系列单片机IO口输出电流
大小,如果超过10mA,需要串联电阻分压,否则容易烧毁模块!
如果是3.3V
的,可以直接和RF1100SE模块的IO口线连接。
引脚编号
引脚名
引脚类型
描述
1,2
VCC
电源输入
1.9V-3.6V之间
3
SI
数据输入
连续配置接口(SPI接口),数据输入
4
SCLK
时钟输入
连续配置接口(SPI接口),时钟输入
5
SO(GD01)
数据输出
连续配置接口(SPI接口),数据输出
当CSn为高时为可选的一般输出脚
6
GDO2
数字输出
一般用途的数字输出脚:
测试信号FIFO状态信号时钟输出,从XOSC向下分割连续输入TX数据
7
CSn
数字输入
连续配置接口(SPI接口),芯片选择
8
GDO0
数字输出
一般用途的数字输出脚:
测试信号FIFO状态信号时钟输出,从XOSC向下分割连续输入TX数据,也用作产品测试的模拟测试I/O
9,10
GND
地(模拟)
模拟接地
3.通信协议
所有配置字都是通过SPI接口送给CC110L。
SIP接口的工作方式可通过SPI指令进行设置。
SPI读/写操作
参数
描述
最小值
最大值
单位
FSCLK
SCLK频率
0
10
MHz
tsp,pd
CSn低到SCLK的正边缘,功率降低模式下
150
-
us
tsp
CSn低到SCLK的正边缘,活动模式下
20
-
ns
tch
时钟高
50
-
ns
tcl
时钟低
50
-
ns
trise
时钟上升时间
-
5
ns
tfall
时钟上升时间
-
5
ns
tsd
向SCLK的正边缘建立数据
76
-
ns
thd
在SCLK的正边缘之后保持数据
20
-
ns
tns
SCLK到CSn高时的负边缘
20
-
ns
4.指令集
4.1.芯片状态字节
比特
名称
描述
7
CHIP_RDYn
保持高,直到功率和晶体已稳定。
当使用SPI接口时应始终为低。
6:
4
STATE[2:
0]
表明当前主状态模式
值
状态
描述
000
空闲
空闲状态
001
RX
接收模式
010
TX
发送模式
011
FSTXON
快速TX准备
100
校准
频率合成器校准正运行
101
迁移
PLL正迁移
110
RXFIFO_OVERFLOW
RXFIFO已经溢出,读
出任何有用数据,然后用SFRX冲洗FIFO
111
TXFIFO_OVERFLOW
TXFIFO已经下溢,同SFTX应答
3:
0
FIFO_BYTES_AVAILABLE[3:
0]
TXFIFO中的自由比特数。
若FIFO_BYTES_AVAILABLE=15,它表明有15或更多个比特是可用/自由的。
4.2配置寄存器
地址
寄存器
描述
保存在休眠状态中
0x00
IOCFG2
GDO2输出脚配置
Yes
0x01
IOCFG1
GDO1输出脚配置
Yes
0x02
IOCFG0
GDO0输出脚配置
Yes
0x03
FIFOTHR
RXFIFO和TXFIFO门限
Yes
0x04
SYNC1
同步词汇,高字节
Yes
0x05
SYNC0
同步词汇,低字节
Yes
0x06
PKTLEN
数据包长度
Yes
0x07
PKTCTRL1
数据包自动控制
Yes
0x08
PKTCTRL0
数据包自动控制
Yes
0x09
ADDR
设备地址
Yes
0x0A
CHANNR
信道数
Yes
0x0B
FSCTRL1
频率合成器控制
Yes
0x0C
FSCTRL0
频率控制词汇,高字节
Yes
0x0D
FREQ2
频率控制词汇,中间字节
Yes
0x0E
FREQ1
频率控制词汇,低字节
Yes
0x0F
FREQ0
调制器配置
Yes
0x10
MDMCFG4
调制器配置
Yes
0x11
MDMCFG3
调制器配置
Yes
0x12
MDMCFG2
调制器配置
Yes
0x13
MDMCFG1
调制器配置
Yes
0x14
MDMCFG0
调制器背离设置
Yes
0x15
DEVIATN
主通信控制状态机配置
Yes
0x16
MCSM2
主通信控制状态机配置
Yes
0x17
MCSM1
主通信控制状态机配置
Yes
0x18
MCSM0
频率偏移补偿配置
Yes
0x19
FOCCFG
位同步配置
Yes
0x1A
BSCFG
AGC控制
Yes
0x1B
AGCTRL2
AGC控制
Yes
0x1C
AGCTRL1
AGC控制
Yes
0x1D
AGCTRL0
高字节时间0暂停
Yes
0x1E
WOREVT1
低字节时间0暂停
Yes
0x1F
WOREVT0
电磁波激活控制
Yes
0x20
WORCTRL
前末端RX配置
Yes
0x21
FREND1
前末端TX配置
Yes
0x22
FREND0
频率合成器校准
Yes
0x23
FSCAL3
频率合成器校准
Yes
0x24
FSCAL2
频率合成器校准
Yes
0x25
FSCAL1
频率合成器校准
Yes
0x26
FSCAL0
RC振荡器配置
Yes
0x27
RCCTRL1
RC振荡器配置
Yes
0x28
RCCTRL0
频率合成器校准控制
Yes
0x29
FSTEST
产品测试
No
0x2A
PTEST
AGC测试
No
0x2B
AGCTEST
不同的测试设置
No
0x2C
TEST2
不同的测试设置
No
0x2D
TEST1
不同的测试设置
No
0x2E
TEST0
No
5.操作函数
5.1.操作步骤
5.1.1.发射模式
1)芯片初始化
2)设置为发射模式
3)发送数据
4)检测是否发送成功
5.1.2.接收模式
1)芯片初始化
2)设置为接收模式
3)检测到接收信号
4)读取数据寄存器
5.2.函数
1)读写一个字节
INT8USpiTxRxByte(INT8Udat)
{
INT8Ui,temp;
temp=0;
SCK=0;
for(i=0;i<8;i++)
{
if(dat&0x80)
{
MOSI=1;
}
elseMOSI=0;
dat<<=1;
SCK=1;
_nop_();
_nop_();
temp<<=1;
if(MISO)temp++;
SCK=0;
_nop_();
_nop_();
}
returntemp;
}
2)写命令
voidhalSpiStrobe(INT8Ustrobe)
{
CSN=0;
while(MISO);
SpiTxRxByte(strobe);//写入命令
CSN=1;
}
3)写入配置
voidhalSpiWriteReg(INT8Uaddr,INT8Uvalue)
{
CSN=0;
while(MISO);
SpiTxRxByte(addr);//写地址
SpiTxRxByte(value);//写入配置
CSN=1;
}
4)读取配置
INT8UhalSpiReadReg(INT8Uaddr)
{
INT8Utemp,value;
temp=addr|READ_SINGLE;//读寄存器命令
CSN=0;
while(MISO);
SpiTxRxByte(temp);
value=SpiTxRxByte(0);
CSN=1;
returnvalue;
}
5)写入一串数据
voidhalSpiWriteBurstReg(INT8Uaddr,INT8U*buffer,INT8Ucount)
{
INT8Ui,temp;
temp=addr|WRITE_BURST;
CSN=0;
while(MISO);
SpiTxRxByte(temp);
for(i=0;i { SpiTxRxByte(buffer[i]); } CSN=1; } 6)读取一串数据 voidhalSpiReadBurstReg(INT8Uaddr,INT8U*buffer,INT8Ucount) { INT8Ui,temp; temp=addr|READ_BURST;//写入要读的配置寄存器地址和读命令 CSN=0; while(MISO); SpiTxRxByte(temp); for(i=0;i { buffer[i]=SpiTxRxByte(0); } CSN=1; } 7)发送一组数据 voidhalRfSendPacket(INT8U*txBuffer,INT8Usize) { halSpiWriteReg(CCxxx0_TXFIFO,size); halSpiWriteBurstReg(CCxxx0_TXFIFO,txBuffer,size);//写入要发送的数据 halSpiStrobe(CCxxx0_STX);//进入发送模式发送数据 //WaitforGDO0tobeset->synctransmitted while(! GDO0); //WaitforGDO0tobecleared->endofpacket while(GDO0); halSpiStrobe(CCxxx0_SFTX); } 8)接收一组数据 INT8UhalRfReceivePacket(INT8U*rxBuffer,INT8U*length) { INT8Ustatus[2]; INT8UpacketLength; INT8Ui=(*length)*4;//具体多少要根据datarate和length来决定 halSpiStrobe(CCxxx0_SRX);//进入接收状态 //delay(5); //while(! GDO1); //while(GDO1); delay (2); while(GDO0) { delay (2); --i; if(i<1) return0; } if((halSpiReadStatus(CCxxx0_RXBYTES)&BYTES_IN_RXFIFO))//如果接的字节数不为0 { packetLength=halSpiReadReg(CCxxx0_RXFIFO);//读出第一个字节,此字节为该帧数据长度 if(packetLength<=*length)//如果所要的有效数据长度小于等于接收到的数据包的长度 { halSpiReadBurstReg(CCxxx0_RXFIFO,rxBuffer,packetLength);//读出所有接收到的数据 *length=packetLength;//把接收数据长度的修改为当前数据的长度 //Readthe2appendedstatusbytes(status[0]=RSSI,status[1]=LQI) halSpiReadBurstReg(CCxxx0_RXFIFO,status,2);//读出CRC校验位 halSpiStrobe(CCxxx0_SFRX);//清洗接收缓冲区 return(status[1]&CRC_OK);//如果校验成功返回接收成功 } else { *length=packetLength; halSpiStrobe(CCxxx0_SFRX);//清洗接收缓冲区 return0; } } else return0; } 9)初始化配置 voidhalRfWriteRfSettings(void) { halSpiWriteReg(CCxxx0_FSCTRL0,rfSettings.FSCTRL2);//Writeregistersettings halSpiWriteReg(CCxxx0_FSCTRL1,rfSettings.FSCTRL1); halSpiWriteReg(CCxxx0_FSCTRL0,rfSettings.FSCTRL0); halSpiWriteReg(CCxxx0_FREQ2,rfSettings.FREQ2); halSpiWriteReg(CCxxx0_FREQ1,rfSettings.FREQ1); halSpiWriteReg(CCxxx0_FREQ0,rfSettings.FREQ0); halSpiWriteReg(CCxxx0_MDMCFG4,rfSettings.MDMCFG4); halSpiWriteReg(CCxxx0_MDMCFG3,rfSettings.MDMCFG3); halSpiWriteReg(CCxxx0_MDMCFG2,rfSettings.MDMCFG2); halSpiWriteReg(CCxxx0_MDMCFG1,rfSettings.MDMCFG1); halSpiWriteReg(CCxxx0_MDMCFG0,rfSettings.MDMCFG0); halSpiWriteReg(CCxxx0_CHANNR,rfSettings.CHANNR); halSpiWriteReg(CCxxx0_DEVIATN,rfSettings.DEVIATN); halSpiWriteReg(CCxxx0_FREND1,rfSettings.FREND1); halSpiWriteReg(CCxxx0_FREND0,rfSettings.FREND0); halSpiWriteReg(CCxxx0_MCSM0,rfSettings.MCSM0); halSpiWriteReg(CCxxx0_FOCCFG,rfSettings.FOCCFG); halSpiWriteReg(CCxxx0_BSCFG,rfSettings.BSCFG); halSpiWriteReg(CCxxx0_AGCCTRL2,rfSettings.AGCCTRL2); halSpiWriteReg(CCxxx0_AGCCTRL1,rfSettings.AGCCTRL1); halSpiWriteReg(CCxxx0_AGCCTRL0,rfSettings.AGCCTRL0); halSpiWriteReg(CCxxx0_FSCAL3,rfSettings.FSCAL3); halSpiWriteReg(CCxxx0_FSCAL2,rfSettings.FSCAL2); halSpiWriteReg(CCxxx0_FSCAL1,rfSettings.FSCAL1); halSpiWriteReg(CCxxx0_FSCAL0,rfSettings.FSCAL0); halSpiWriteReg(CCxxx0_FSTEST,rfSettings.FSTEST); halSpiWriteReg(CCxxx0_TEST2,rfSettings.TEST2); halSpiWriteReg(CCxxx0_TEST1,rfSettings.TEST1); halSpiWriteReg(CCxxx0_TEST0,rfSettings.TEST0); halSpiWriteReg(CCxxx0_IOCFG2,rfSettings.IOCFG2); halSpiWriteReg(CCxxx0_IOCFG0,rfSettings.IOCFG0); halSpiWriteReg(CCxxx0_PKTCTRL1,rfSettings.PKTCTRL1); halSpiWriteReg(CCxxx0_PKTCTRL0,rfSettings.PKTCTRL0); halSpiWriteReg(CCxxx0_ADDR,rfSettings.ADDR); halSpiWriteReg(CCxxx0_PKTLEN,rfSettings.PKTLEN); } 10)设置接收模式 voidsetRxMode(void) { halSpiStrobe(CCxxx0_SRX);//进入接收状态 } 11)设置发送模式 voidsetTxMode(void) { halSpiStrobe(CCxxx0_STX);//进入接收状态 }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC1100 无线 模块 使用说明