CC1101中文数据手册.docx
- 文档编号:6004315
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:66
- 大小:828.03KB
CC1101中文数据手册.docx
《CC1101中文数据手册.docx》由会员分享,可在线阅读,更多相关《CC1101中文数据手册.docx(66页珍藏版)》请在冰豆网上搜索。
CC1101中文数据手册
SWRS061DPage1of42
低成本、低功耗1GHz以下无线收发器(增强型CC1100)
应用
l基于
315/433/868/915MHzISM/SRD
的极低功耗的无线应用。
l无线报警和安全系统
l工业监视和控制
产品描述
CC1101是低成本的1GHz以下的无线收发器,为极低功耗的无线应用而设计。
电路主要设
计为ISM(工业、科学和医疗)和SRD(短距离设备),频段在315、433、868和915,但是可
以很容易的编程,使之工作在其他频率,在300-348MHz,387-464MHz和779-928MHz
频段。
CC1101是CC1100RF收发器改良以及代码一致的版本。
CC1101的主要改进如下:
l改良的伪应答
l更好的关闭相位噪声,因而改善相邻信道功耗(ACP)的性能
l更高的输入饱和级别
l改善输出功率斜面
l扩大工作频段:
CC1100:
400-464MHzand800-928MHz
CC1101:
387-464MHzand779-928MHz
CC1101
SWRS061DPage2of42
104线串口配置和数据接口
CC1101通过4线SPI兼容接口(SI,SO,SCLK和CSn)进行配置,CC1101作为从设备。
这个接口同事用作读写缓冲器数据。
SPI接口上所有的数据传送都是先传送MSB。
SPI接口上的所有传送都是以一个头字节(headerbyte)开始,包含一个读写位(R/W),
一个突发(burstaccess)访问位(B)和6位地址位(A5~A0)。
在SPI总线上传输数据时,CSn脚必须保持低电平。
如果在发送头字节或者读写寄存器
时CSn拉高,传送将被取消。
SPI接口上地址和数据的发送时序图见图12,并参考表19。
当CSn被拉低,MCU在发送头字节之前,必须等到CC1101的SO脚变为低电平。
这
说明晶振开始工作。
除非芯片在SLEEP或者XOFF状态,SO脚在CSn引脚被拉低后马上
变为低电平。
图12:
配置寄存器读写操作
表19:
SPI接口时序要求
CC1101
SWRS061DPage3of42
10.1芯片状态字节
当在SPI接口上发送头字节,数据字节或者命令选通(commandstrobe)时,CC1101
在SO引脚上发送芯片状态字节。
状态字节包含对MCU有用的关键状态信号。
第1位,S7,
为CHIP_RDYn信号,在SCLK的第一个上升沿之前,该信号必须变为低电平。
CHIP_RDYn表
示晶振已经开始工作。
第6、5、4位组成(STATE)状态值,该值反映芯片的状态。
在空闲(IDLE)状态,
XOSC和数字核的电源被打开,但是其他模块全部掉电。
频率和信道配置只能在芯片处于该
状态时被更新。
当芯片处于接收模式时,接收(RX)状态被激活。
同样,当芯片处于发送
模式时,发送(TX)状态被激活。
状态字节的最后4位(3:
0)包含FIFO_BYTES_AVAILABLE。
在读操作中(头字节的
R/W位置1),FIFO_BYTES_AVAILABLE包含从RXFIFO可读到的数据字节数。
在写操作中
(头字节的R/W位置0),FIFO_BYTES_AVAILABLE包含可写入到TXFIFO中的字节数。
当FIFO_BYTES_AVAILABLE=15,15个或者更多字节是可读的/空闲的。
表20为状态字节概要。
位名称描述
7CHIP_RDYn保持高电平,直到电源和晶振稳定。
当时用SPI接口时必须
变为低电平。
6:
4STATE[2:
0]显示当前主状态机器模式
值状态描述
000IDLE空闲状态
001RX接收模式
010TX发送模式
011FSTXON快速TX准备
100CALIBRATE频率合成器校准运行中
101SETTLINGPLL设置中
110RXFIFO_OVE
RFLOW
RXFIFO溢出。
读出有用的数
据,时用SFRX清洗FIFO
111TXFIFO_UND
ERFLOW
TXFIFO下溢,使用SFTX命令
3:
0FIFO_BYTES_AVAILA
BLE[3:
0]
表20:
状态字节概要
10.2寄存器访问
CC1101的配置寄存器位于SPI地址的0x00~0x2E。
64页的表37列出了所有配置寄存
器。
推荐使用SmartRF@Studio生成合适的寄存器设定值。
每个寄存器的详细说明见67页的
29.1和29.2。
所有配置寄存器都是可读写的。
当写寄存器时,每次一个头字节或者数据字节在
SI引脚上传送,一个状态字节都在SO引脚上传送。
当读寄存器时,每次一个头字节在SI引脚
上传送时,一个状态字节都在SO引脚上传送。
通过设置头字节的burst位(B)可以高效的实现寄存器的连续地址访问。
地址位(A5~A0)
CC1101
SWRS061DPage4of42
在内部地址指针中设置起始地址。
指针通过每一个新的字节自动增加(每8个时钟脉冲)。
突
发访问可以是读,也可以是写访问,必须通过将CS脚拉高来停止操作。
在0x30-0x3D的寄存器地址范围,burst位置1选择状态寄存器,而burst置0选择命令选通
(commandstrobes)。
详见10.3。
因此,突发访问不可用于状态寄存器的访问,一次只能访问
一个状态寄存器。
状态寄存器为只读。
10.3读SPI
10.4命令选通(commandstrobes)
命令选通可以看做是CC1101的一个单字节指令。
通过寻址一个命令选通寄存器,将启
动内部序列。
这些命令用来禁止晶振,使能接收,使能无线唤醒等。
13个命令选通的清单
见63页的表36。
Note:
一个SIDLE命令将清除所有的未定命令,直到达到IDLE状态。
这意味着比如
当无线处于接收状态时执行SIDLE命令,当无线达到IDLE状态之前执行任何其他的命令
选通都是无效的。
命令选通寄存器通过发送单一的头字节来访问(不传送数据字节)。
也就是说,只有一
个R/W位,一个突发访问位(置0)和6位地址位(在0x30~0x3D范围内)被传送。
R/W
位可以是1或者0,这将决定状态字节中的FIFO_BYTES_AVAILABLE区域如何确认。
当写命令选通时,状态字节将在SO引脚上被发送。
命令选通可以在CSn不被拉高的情况下,跟随在任何其他SPI访问之后。
然而,如果
一个SRES命令被执行,下一个头字节被执行之前必须等到SO引脚被拉低,见图13。
命令
选通将立即被执行,除了SPWD和SXOFF命令在CSn拉高之后执行。
10.5FIFO访问
64字节的TXFIFO和64字节的RXFIFO通过0x3F地址访问。
当R/W位置0时,
TXFIFO被访问,当R/W位置1时RXFIFO被访问。
TXFIFO为只写,RXFIFO为
只读。
Burst位用来确定FIFO访问时单字节访问还是突发访问。
单字节访问方式是一个burst
位置0的头字节和一个数据字节。
数据字节之后,跟随一个新的头字节。
因此,CSn可以保
持低电平。
突发访问的方式是一个头字节和连续的数据字节,直到将CSn拉高来停止访问。
使用下列头字节来访问FIFO:
Ø0x3F:
单字节访问TXFIFO
Ø0x7F:
突发访问TXFIFO
CC1101
SWRS061DPage5of42
Ø0xBF:
单字节访问RXFIFO
Ø0xFF:
突发访问RXFIFO
当向TXFIFO写入数据时,在每一个新的字节发送时状态字节在SO引脚上输出。
(图
12)当向TXFIFO写入数据时,状态字节可以用来检测TXFIFO的下溢。
注意状态字节包含的空闲字节数是正在传送到TXFIFO的字节写入之前的值。
当最后
一个可以写入TXFIFO的字节在SI引脚上传送的时候,同时在SO引脚上接收的状态字
节将显示TXFIFO中有一个字节的空闲。
TXFIFO可以通过SFTX命令刷新。
同样SFRX命令可以刷新RXFIFO。
SFTX和SFRX命令
只能再IDLE、TXFIFO_UNDERFLOW、RXFIFO_OVERFLOW状态使用。
在进入SLEEP
状态时,两个FIFO都将被刷新。
10.6PATABLE访问
0x3E地址用来访问PATABLE,用来选择PA功率控制设置。
SPI在接收到该地址后,
传送8字节数据。
通过编程PATABLE,可以完成对PA功率的增加和减少的控制,以及ASK
调制的修正以减小带宽。
参照samrtRFstudio推荐的修正和PA序列。
参照55页的Section
24对PA功率输出编程的详细说明。
PATABLE是一个8字节表,定义PA功率控制使用的8个字节中的任意值。
(通过
FREND0.PA_POWER中的3位值选择)表格可以从最低设置(0)到最高的(7)读写,一次
一个字节。
一个索引指针用来控制访问表格。
指针在每次读写表格的一个字节时自动增加,
并且在CSn拉高时自动设置为最小值。
当达到最高值时自动复位。
依靠burst位,访问PATABLE既可以是单字节访问也可以是突发访问。
当时用突发访
问时,索引指针自动增加,当指针达到7时,自动复位为0。
R/W位控制访问时读操作还是
写操作。
注意,当进入SLEEP状态时PATABLE的内容将全部消失,除了第一个字节(index0)。
11.MCU接口和引脚配置
在典型系统中,CC1101必须连接MCU。
MCU必须具备:
Ø编程CC1101到不同的模式。
Ø读写数据缓冲器。
Ø通过4线SPI总线(SI、SO、SCLK和CSn)读取状态信息。
CC1101
SWRS061DPage6of42
11.1配置接口
MCU使用4个IO口作为SPI配置接口。
(SI、SO、SCLK和CSn)SPI的描述见28页
的Section10。
11.2基本控制和状态脚
CC1101有2个专用配置脚(GDO0和GDO2)和一个共用脚(GDO1)可以向控制软件
输出有用的内部状态信息。
这些脚可以用来向MCU产生中断。
GDO1和SPI的SO引脚共用。
GDO1/SO的默认设置时3态输出。
通过选择任何编程
选项,GDO1/S将变为普通引脚。
当CSn拉低,该引脚将始终作为普通的SO功能引脚。
在同步和异步串行模式,在发送模式下,GDO0引脚将作为串行TX数据输入引脚。
GDO0也可以用作片上模拟温度传感器。
通过外部ADC测量GDO0脚的电压,可以计算
出温度。
温度传感器的详细说明见18页的Section4.7。
通过默认的PTEST寄存器设置
(0x7F),如果频率合成器被允许温度传感器的的输出时可用的。
(例如:
MANCAL,
FSTXON,RX和TX状态)在IDLE状态向PTEST寄存器写入0xBF允许模拟温度传感器是必
要的。
离开IDLE状态之前,必须恢复PTEST寄存器为默认值(0x7F)。
11.3可选的无线控制特性
CC1101有一个可选的控制方式,通过SPI接口的SI,SCLK和CSn的重新使用。
这
个特性允许普通的三引脚控制无线的主要状态:
SLEEP,IDLE,RX和TX。
这些附加功能
通过MCSM0.PIN_CTRL_EN配置为来使能。
状态变化遵从以下命令:
n如果CSn被拉高,SI和SCLK依照表21设置好想要的状态。
n如果CSn被拉低,SI和SCLK的状态被锁定,按照引脚的配置在内部产生一个
commandstrobe。
只允许在功能实现之后改变状态。
例如,如果SI和SCLK设置为RX状态,并且已经
由CSn触发,RX将不能再重新启动。
当CSn拉低吼,SI和SCLK将作为普通的SPI
功能。
除了SPWD外,所有引脚控制命令将立即执行,SPWD延时到CSn拉高后执行。
CC1101
SWRS061DPage7of42
12数据速率编程
发送或者接收的数据速率通过MDMCFG3.DRATE_M和MDMCFG4.DRATE_E配置寄存器
来编程。
数据速率由下面的公式来计算。
根据公式,数据速率的编程依赖于晶振频率。
下面的方面可以计算出适合的数据速率:
如果DRATE_M接近整数并且变为256,DRATE_E加1并且DRATE_M=0.
数据速率可以设置为从1.2K~500K,按照表22的最小步值。
13接收信道滤波带宽
为了区分不同信道带宽,接收信道滤波器是可设置的。
MDMCFG4.CHANBW_E和
DMCFG4.CHANBW_M配置寄存器控制接收信道滤波器带宽,通过晶振频率来衡量。
下面的公式给出寄存器配置和信道滤波带宽之间的关系:
表23列出了CC1101支持的信道滤波带宽。
CC1101
SWRS061DPage8of42
为了达到更好的性能,信道滤波带宽必须设置以至于信号带宽至多占80%的信道滤波带
宽。
对于晶振精度的信道中心公差应该从信号带宽中减去。
下面举例说明:
信道滤波带宽设置为500kHz,信号带宽保持在500kHz的80%之内,400kHz。
发送
和接收设备都在中心频率915MHz和±20ppm频率误差,总共的频率误差是915MHz的±
40ppm,即±37kHz。
如果整个发送的信号带宽达到接收的400kHz之内,发送信号带宽
的最大值为400kHz-2*37kHz,即326kHz。
通过修正发送和接收的频率偏移,滤波带宽可以减小,并且可以改善灵敏度。
详见
DN005[20]和Section14.1。
14解调器、符号同步器和数据判定
CC1101包含一个高级的和高可配置的解调器。
信道滤波和频率偏移补偿都可以数字化。
14.1频率偏移补偿
CC1101有非常好的频率分辨率。
(表12)这个特性可以用来补偿频率偏移和温漂。
当时用2-FSK、GFSK或MSK调制时,解调器将在发送和接收频率的一定界限内,通
过估计接收数据的中心,补偿频率偏移。
频率偏移补偿配置由FOCCFG寄存器控制。
通过
补偿发送和接收之间最大的频率偏移,可以改善灵敏度,见DN005。
运算法则的跟踪范围是通过FOCCFG.FOC_LIMIT配置寄存器选择一部分信道带宽。
如果FOCCFG.FOC_BS_CS_GATE位设置,频率补偿将被冻结,直到carriersense生效。
这对于无线常时间处于RX状态而没有通信是非常有用的,sincethealgorithmmaydrifttothe
boundarieswhentryingtotracknoise。
追踪循环有两个增益要素,影响设定时间和运算的噪声灵敏度。
同步字节被检测到之前
由FOCCFG.FOC_PRE_K设定增益,同步字节检测到之后由FOCCFG.FOC_POST_K选择增
益。
注意:
ASK和OOK调制不支持频率偏移补偿。
在FREQEST状态寄存器中的预置频率偏移值是可用的。
可以用作永久的频率偏移补偿。
通过把FREQEST中的值写入FSCTRL0.FREQOFF,平率合成器将依照预置频率偏移自动被
调整。
更详细的关于永久频率补偿计算参照DN015[13]。
CC1101
SWRS061DPage9of42
14.2位同步
14.3字节同步
字节同步通过连续的同步字查询实现。
同步字是一个16位配置区(可重复得到32位),
在发送模式下通过调制器自动插入到包的起始。
在同步字中MSB首先发送。
解调器使用这
个区域寻找比特流中的字节边界。
同步字也有系统标识符的功能,因此如果RX中的同步字
检测在寄存器MDMCFG2中被使能(Section17.1),只有正确的预先确定的同步字的包
才接收。
同步字检测可以关联用户配置的16或者32位同步字。
关联端可以设置为15/16、
16/16或30/32位匹配。
同步字能更好的使用前导质量指示机制的描述和/或载波监听条件。
同步字通过SYNC1和SYNC0寄存器配置。
为了确保同步字检测的错误更少,一个前导质量指示(PQI)机制被用来仙子同步字。
为确保同步字被接收,必须超过前导质量的门限值。
详见42页Section。
15数据包处理的硬件支持
CC1101有内置的硬件支持作为数据包导向的无线协议。
在发送模式,数据包的处理者可以配置增加下面的元素到TXFIFO中的数据包存储:
n一个可编程数量的前导字节。
n两字节同步字。
可复制为4字节同步字。
只插入前导字节或者同步字节是不可能的。
n一个覆盖数据区域的CRC校验计算。
推荐设置4字节前导和4字节同步字,除了500k波特率时推荐使用8字节前导。
另外,
在数据区域和附加的2字节CRC校验,以下可以被执行:
n使用PN9序列Whitening数据。
n通过使用交叉和编码数据(卷积编码)前向纠错。
在接收模式,数据包处理支持将是解构数据包,(如使能)以下可以被执行:
n前导检测
n同步字检测
nCRC计算和CRC检查
n一个字节地址检测
n包长度检查(根据设置的最大长度检查长度字节)
n反Whitening
n反交叉和解码
另外,RSSI(接收信号强度指示)、LQI(链路质量指示)和CRC状态的两个状态字
节可以附加在RXFIFO。
CC1101
SWRS061DPage10of42
注意:
控制数据包处理特性的寄存器区只能再CC1101处于IDLE状态时被修改。
15.1DataWhitening
将PKTCTRL0.WHITE_DATA置1,除了前导和同步字外,所有的数据在发送前将XOR
一个9位的伪随机序列(PN9)。
在接收结束后,数据将使用相同的伪随机序列XOR。
PN9
序列初始化全部为1。
15.2数据包格式
数据包的格式可以配置为由以下部分组成:
n前导
n同步字
n可选的长度字节
n可选的地址字节
n净荷
n可选的2字节CRC
前导的格式是一个交叉的1和0的序列(10101010……)。
前导的最小长度可以通过
MDMCFG1.NUM_PREAMBLE的值来设置。
当使能发送,调制器将开始发送前导。
当发送完
编程数量的前导子节后,调制器开始发送同步字和TXFIFO中的可用数据。
如果TXFIFO
是空的,调制器将继续发送前导字节,直到第一个字节写入到TXFIFO。
调制器将接着发
送同步字和数据字节。
同步字是在SYNC1和SYNC0寄存器中设置的2字节数据。
同步字节提供了引入数据包
的字节同步。
一个字节的同步字可以复制,通过设定SYNC1的值到前导格式。
也可以通过
设定MDMCFG2.SYNC_MODE的值为3或7将同步字复制为32位。
同步字将被复制2次。
CC1101支持定长数据包协议和变长数据包协议。
可变的或固定数据包长度模式可用于
最长255字节数据包长度。
再长的数据包,就必须使用无限数据包长度模式。
CC1101
SWRS061DPage11of42
固定数据包长度模式通过设定PKTCTRL0.LENGTH_CONFIG=0来选择。
期望的数据包
长度通过PKTLEN寄存器来设置。
在可变数据包长度模式,PKTCTRL0.LENGTH_CONFIG=1,数据包长度由同步字后面
的第一个字节配置。
数据包长度定义为有效载荷,不包括长度字节和可选的CRC。
PKTLEN
用来配置允许接收的最大数据包长度。
任何接收的数据包长度大于PKTLEN的值都将被丢
弃。
PKTCTRL0.LENGTH_CONFIG=2,数据包长度将设置为无限长,发送和接收将持续到
手动关闭。
在下一部分描述中,将使用不同长度的配置来支持数据包格式。
必须确保在发送
前半个或任何字节的时候TX模式不被关闭。
参考CC1101的勘误表。
15.2.1任意长度区域配置
数据包长度寄存器PKTLEN,在接收和发送时可以重新编程。
结合固定数据包长度模式
(PKTCTRL0.LENGTH_CONFIG=0),这使与变长数据包不同的长度配置成为可能。
(在
可变数据包长度模式下长度字节是同步字节后第一个字节)在接收开始,数据包长度设置为
一个大的值。
MCU读取足够多的字节来解析数据包中的长度区域。
然后依照这个值对
PKTLEN进行设置。
当数据包处理器中的字节指针等于PKTLEN寄存器的值时数据包结束。
因此,MCU必须在内部指针达到数据包长度之前确认正确的长度。
15.2.2数据包长度大于255
数据包自动控制寄存器PKTCTRL0,可以在TX和RX期间重新编程。
这就使发送和接
收数据包长度超过256字节并且仍然使用数据包处理器硬件支持成为可能。
在数据包开始
时,必须激活无限数据包长度模式(PKTCTRL0.LENGTH_CONFIG=2)。
在发送端,PKTLEN
寄存器设置为模(长度,256)。
在接收端,MCU读出足够长度的字节来解析出数据包长度
并设置PKTLEN寄存器为模(长度,256)。
当数据包中还有少于256字节数据,MCU禁
止数据包无限长度模式并且激活固定长度模式。
当内部字节指针达到PKTLEN时,发送和
接收结束。
(无线进入的状态由TXOFF_MODE或RXOFF_MODE决定)自动CRC添加/校验
也可以使用(通过设置PKTCTRL0.CRC_EN=1)。
例如当药发送一个600字节的数据包时,MCU必须按照以下执行:
l设置PKTCTRL0.LENGTH_CONFIG=2。
l重新设置PKTLEN寄存器模(600,256)=88.
l至少发送345字节(600-255),例如通过填充64字节TXFIFO6次(发送
384字节)。
l设置PKTCTRL0.LENGTH_CONFIG=0。
l当数据包指针达到88发送完成。
一共600字节被发送。
CC1101
SWRS061DPage12of42
15.3接收模式下的数据过滤
CC1101支持三种不同类型的数据包过滤:
地址过滤,最大长度过滤和CRC过滤。
15.3.1地址过滤
设置PKTCTRL1.ADR_CHK为任意大于0的值使能数据包地址过滤。
数据包处理器启动后
将比较数据包中的目标地址字节和在ADDR寄存器中设置的节点地址或者当
PKTCTRL1.ADR_CHK=10时的广播地址0x00以及PKTCTRL1.ADR_CHK=11时的广播地址
0x00和0xFF。
如果接收的地址匹配到一个正确地址,数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC1101 中文 数据 手册