翻译CC1101中文数据手册.docx

上传人:b****6 文档编号:13012990 上传时间:2023-06-10 格式:DOCX 页数:95 大小:936.91KB
下载 相关 举报
翻译CC1101中文数据手册.docx_第1页
第1页 / 共95页
翻译CC1101中文数据手册.docx_第2页
第2页 / 共95页
翻译CC1101中文数据手册.docx_第3页
第3页 / 共95页
翻译CC1101中文数据手册.docx_第4页
第4页 / 共95页
翻译CC1101中文数据手册.docx_第5页
第5页 / 共95页
翻译CC1101中文数据手册.docx_第6页
第6页 / 共95页
翻译CC1101中文数据手册.docx_第7页
第7页 / 共95页
翻译CC1101中文数据手册.docx_第8页
第8页 / 共95页
翻译CC1101中文数据手册.docx_第9页
第9页 / 共95页
翻译CC1101中文数据手册.docx_第10页
第10页 / 共95页
翻译CC1101中文数据手册.docx_第11页
第11页 / 共95页
翻译CC1101中文数据手册.docx_第12页
第12页 / 共95页
翻译CC1101中文数据手册.docx_第13页
第13页 / 共95页
翻译CC1101中文数据手册.docx_第14页
第14页 / 共95页
翻译CC1101中文数据手册.docx_第15页
第15页 / 共95页
翻译CC1101中文数据手册.docx_第16页
第16页 / 共95页
翻译CC1101中文数据手册.docx_第17页
第17页 / 共95页
翻译CC1101中文数据手册.docx_第18页
第18页 / 共95页
翻译CC1101中文数据手册.docx_第19页
第19页 / 共95页
翻译CC1101中文数据手册.docx_第20页
第20页 / 共95页
亲,该文档总共95页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

翻译CC1101中文数据手册.docx

《翻译CC1101中文数据手册.docx》由会员分享,可在线阅读,更多相关《翻译CC1101中文数据手册.docx(95页珍藏版)》请在冰点文库上搜索。

翻译CC1101中文数据手册.docx

翻译CC1101中文数据手册

CC1101

低成本、低功耗1GHz以下无线收发器(增强型CC1100)

 

应用

 

●基于315/433/868/915MHzISM/SRD的极低功耗的无线应用。

●无线报警和安全系统

●工业监视和控制

 

产品描述

 

CC1101是低成本的1GHz以下的无线收发器,为极低功耗的无线应用而设计。

电路主要设

计为ISM(工业、科学和医疗)和SRD(短距离设备),频段在315、433、868和915,但是可

以很容易的编程,使之工作在其他频率,在300-348MHz,387-464MHz和779-928MHz

频段。

CC1101是CC1100RF收发器改良以及代码一致的版本。

CC1101的主要改进如下:

●改良的伪应答

●更好的关闭相位噪声,因而改善相邻信道功耗(ACP)的性能

●更高的输入饱和级别

●改善输出功率斜面

●扩大工作频段:

CC1100:

400-464MHzand800-928MHz

CC1101:

387-464MHzand779-928MHz

 

SWRS061D

 

Page1of42

 

 

3.64线串口配置和数据接口

CC1101

 

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接口时序要求

 

SWRS061D

Page2of42

 

3.6.1芯片状态字节

CC1101

 

当在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为状态字节概要。

7

6:

4

名称

CHIP_RDYn

STATE[2:

0]

描述

保持高电平,直到电源和晶振稳定。

当时用SPI接口时必须

变为低电平。

显示当前主状态机器模式

值状态描述

000IDLE空闲状态

001RX接收模式

010TX发送模式

011FSTXON快速TX准备

100CALIBRATE频率合成器校准运行中

101SETTLINGPLL设置中

110RXFIFO_OVERXFIFO溢出。

读出有用的数

RFLOW据,时用SFRX清洗FIFO

111TXFIFO_UNDTXFIFO下溢,使用SFTX命令

ERFLOW

3:

0FIFO_BYTES_AVAILA

BLE[3:

0]

 

3.6.2寄存器访问

 

表20:

状态字节概要

 

CC1101的配置寄存器位于SPI地址的0x00~0x2E。

64页的表37列出了所有配置寄存

器。

推荐使用SmartRF@Studio生成合适的寄存器设定值。

每个寄存器的详细说明见67页的

29.1和29.2。

所有配置寄存器都是可读写的。

当写寄存器时,每次一个头字节或者数据字节在

SI引脚上传送,一个状态字节都在SO引脚上传送。

当读寄存器时,每次一个头字节在SI引脚

上传送时,一个状态字节都在SO引脚上传送。

通过设置头字节的burst位(B)可以高效的实现寄存器的连续地址访问。

地址位(A5~A0)

 

SWRS061D

Page3of42

 

CC1101

在内部地址指针中设置起始地址。

指针通过每一个新的字节自动增加(每8个时钟脉冲)。

发访问可以是读,也可以是写访问,必须通过将CS脚拉高来停止操作。

在0x30-0x3D的寄存器地址范围,burst位置1选择状态寄存器,而burst置0选择命令选通

(commandstrobes)。

详见10.3。

因此,突发访问不可用于状态寄存器的访问,一次只能访问

一个状态寄存器。

状态寄存器为只读。

 

3.6.3读SPI

 

3.6.4命令选通(commandstrobes)

命令选通可以看做是CC1101的一个单字节指令。

通过寻址一个命令选通寄存器,将启

动内部序列。

这些命令用来禁止晶振,使能接收,使能无线唤醒等。

命令选通寄存器通过发送单一的头字节来访问(不传送数据字节)。

也就是说,只有一

个R/W位,一个突发访问位(置0)和6位地址位(在0x30~0x3D范围内)被传送。

R/W

位可以是1或者0,这将决定状态字节中的FIFO_BYTES_AVAILABLE区域如何确认。

当写命令选通时,状态字节将在SO引脚上被发送。

命令选通可以在CSn不被拉高的情况下,跟随在任何其他SPI访问之后。

然而,如果

一个SRES命令被执行,下一个头字节被执行之前必须等到SO引脚被拉低,见图13。

命令

选通将立即被执行,除了SPWD和SXOFF命令在CSn拉高之后执行。

 

3.6.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

 

SWRS061D

Page4of42

 

 

Ø0xBF:

单字节访问RXFIFO

Ø0xFF:

突发访问RXFIFO

CC1101

当向TXFIFO写入数据时,在每一个新的字节发送时状态字节在SO引脚上输出。

12)当向TXFIFO写入数据时,状态字节可以用来检测TXFIFO的下溢。

注意状态字节包含的空闲字节数是正在传送到TXFIFO的字节写入之前的值。

当最后

一个可以写入TXFIFO的字节在SI引脚上传送的时候,同时在SO引脚上接收的状态字

节将显示TXFIFO中有一个字节的空闲。

TXFIFO可以通过SFTX命令刷新。

同样SFRX命令可以刷新RXFIFO。

SFTX和SFRX命令

只能再IDLE、TXFIFO_UNDERFLOW、RXFIFO_OVERFLOW状态使用。

在进入SLEEP

状态时,两个FIFO都将被刷新。

 

3.6.6PATABLE访问

 

0x3E地址用来访问PATABLE,用来选择PA功率控制设置。

SPI在接收到该地址后,

传送8字节数据。

通过编程PATABLE,可以完成对PA功率的增加和减少的控制,以及ASK

调制的修正以减小带宽。

参照samrtRFstudio推荐的修正和PA序列。

PATABLE是一个8字节表,定义PA功率控制使用的8个字节中的任意值。

(通过

FREND0.PA_POWER中的3位值选择)表格可以从最低设置(0)到最高的(7)读写,一次

一个字节。

一个索引指针用来控制访问表格。

指针在每次读写表格的一个字节时自动增加,

并且在CSn拉高时自动设置为最小值。

当达到最高值时自动复位。

依靠burst位,访问PATABLE既可以是单字节访问也可以是突发访问。

当时用突发访

问时,索引指针自动增加,当指针达到7时,自动复位为0。

R/W位控制访问时读操作还是

写操作。

注意,当进入SLEEP状态时PATABLE的内容将全部消失,除了第一个字节(index0)。

 

3.7MCU接口和引脚配置

 

在典型系统中,CC1101必须连接MCU。

MCU必须具备:

Ø编程CC1101到不同的模式。

Ø读写数据缓冲器。

Ø通过4线SPI总线(SI、SO、SCLK和CSn)读取状态信息。

 

SWRS061D

 

Page5of42

 

 

3.7.1配置接口

CC1101

 

MCU使用4个IO口作为SPI配置接口。

(SI、SO、SCLK和CSn)SPI的描述见28页

的Section10。

 

3.7.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)。

3.7.3可选的无线控制特性

 

CC1101有一个可选的控制方式,通过SPI接口的SI,SCLK和CSn的重新使用。

个特性允许普通的三引脚控制无线的主要状态:

SLEEP,IDLE,RX和TX。

这些附加功能

通过MCSM0.PIN_CTRL_EN配置为来使能。

状态变化遵从以下命令:

⏹如果CSn被拉高,SI和SCLK依照表21设置好想要的状态。

⏹如果CSn被拉低,SI和SCLK的状态被锁定,按照引脚的配置在内部产生一个

commandstrobe。

只允许在功能实现之后改变状态。

例如,如果SI和SCLK设置为RX状态,并且已经

由CSn触发,RX将不能再重新启动。

当CSn拉低吼,SI和SCLK将作为普通的SPI

功能。

除了SPWD外,所有引脚控制命令将立即执行,SPWD延时到CSn拉高后执行。

 

SWRS061D

 

Page6of42

 

 

3.8数据速率编程

CC1101

 

发送或者接收的数据速率通过MDMCFG3.DRATE_M和MDMCFG4.DRATE_E配置寄存器

来编程。

数据速率由下面的公式来计算。

根据公式,数据速率的编程依赖于晶振频率。

 

下面的方面可以计算出适合的数据速率:

 

如果DRATE_M接近整数并且变为256,DRATE_E加1并且DRATE_M=0.

数据速率可以设置为从1.2K~500K,按照表22的最小步值。

 

3.9接收信道滤波带宽

 

为了区分不同信道带宽,接收信道滤波器是可设置的。

MDMCFG4.CHANBW_E和

DMCFG4.CHANBW_M配置寄存器控制接收信道滤波器带宽,通过晶振频率来衡量。

下面的公式给出寄存器配置和信道滤波带宽之间的关系:

 

表23列出了CC1101支持的信道滤波带宽。

 

SWRS061D

Page7of42

 

CC1101

为了达到更好的性能,信道滤波带宽必须设置以至于信号带宽至多占80%的信道滤波带

宽。

对于晶振精度的信道中心公差应该从信号带宽中减去。

下面举例说明:

信道滤波带宽设置为500kHz,信号带宽保持在500kHz的80%之内,400kHz。

发送

和接收设备都在中心频率915MHz和±20ppm频率误差,总共的频率误差是915MHz的±

40ppm,即±37kHz。

如果整个发送的信号带宽达到接收的400kHz之内,发送信号带宽

的最大值为400kHz-2*37kHz,即326kHz。

通过修正发送和接收的频率偏移,滤波带宽可以减小,并且可以改善灵敏度。

详见

DN005[20]和Section14.1。

 

3.10解调器、符号同步器和数据判定

CC1101包含一个高级的和高可配置的解调器。

信道滤波和频率偏移补偿都可以数字化。

 

3.10.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,平率合成器将依照预置频率偏移自动被

调整。

 

SWRS061D

 

Page8of42

 

 

3.10.2位同步

 

3.10.3字节同步

CC1101

 

字节同步通过连续的同步字查询实现。

同步字是一个16位配置区(可重复得到32位),

在发送模式下通过调制器自动插入到包的起始。

在同步字中MSB首先发送。

解调器使用这

个区域寻找比特流中的字节边界。

同步字也有系统标识符的功能,因此如果RX中的同步字

检测在寄存器MDMCFG2中被使能(Section17.1),只有正确的预先确定的同步字的包

才接收。

同步字检测可以关联用户配置的16或者32位同步字。

关联端可以设置为15/16、

16/16或30/32位匹配。

同步字能更好的使用前导质量指示机制的描述和/或载波监听条件。

同步字通过SYNC1和SYNC0寄存器配置。

为了确保同步字检测的错误更少,一个前导质量指示(PQI)机制被用来仙子同步字。

为确保同步字被接收,必须超过前导质量的门限值。

3.11数据包处理的硬件支持

CC1101有内置的硬件支持作为数据包导向的无线协议。

在发送模式,数据包的处理者可以配置增加下面的元素到TXFIFO中的数据包存储:

⏹一个可编程数量的前导字节。

⏹两字节同步字。

可复制为4字节同步字。

只插入前导字节或者同步字节是不可能的。

⏹一个覆盖数据区域的CRC校验计算。

推荐设置4字节前导和4字节同步字,除了500k波特率时推荐使用8字节前导。

另外,

在数据区域和附加的2字节CRC校验,以下可以被执行:

⏹使用PN9序列Whitening数据。

⏹通过使用交叉和编码数据(卷积编码)前向纠错。

在接收模式,数据包处理支持将是解构数据包,(如使能)以下可以被执行:

⏹前导检测

⏹同步字检测

⏹CRC计算和CRC检查

⏹一个字节地址检测

⏹包长度检查(根据设置的最大长度检查长度字节)

⏹反Whitening

⏹反交叉和解码

另外,RSSI(接收信号强度指示)、LQI(链路质量指示)和CRC状态的两个状态字

节可以附加在RXFIFO。

 

SWRS061D

 

Page9of42

 

CC1101

 

注意:

控制数据包处理特性的寄存器区只能再CC1101处于IDLE状态时被修改。

 

3.11.1DataWhitening

 

将PKTCTRL0.WHITE_DATA置1,除了前导和同步字外,所有的数据在发送前将XOR

一个9位的伪随机序列(PN9)。

在接收结束后,数据将使用相同的伪随机序列XOR。

PN9

序列初始化全部为1。

3.11.2数据包格式

 

数据包的格式可以配置为由以下部分组成:

⏹前导

⏹同步字

⏹可选的长度字节

⏹可选的地址字节

⏹净荷

⏹可选的2字节CRC

 

 

前导的格式是一个交叉的1和0的序列(10101010……)。

前导的最小长度可以通过

MDMCFG1.NUM_PREAMBLE的值来设置。

当使能发送,调制器将开始发送前导。

当发送完

编程数量的前导子节后,调制器开始发送同步字和TXFIFO中的可用数据。

如果TXFIFO

是空的,调制器将继续发送前导字节,直到第一个字节写入到TXFIFO。

调制器将接着发

送同步字和数据字节。

同步字是在SYNC1和SYNC0寄存器中设置的2字节数据。

同步字节提供了引入数据包

的字节同步。

一个字节的同步字可以复制,通过设定SYNC1的值到前导格式。

也可以通过

设定MDMCFG2.SYNC_MODE的值为3或7将同步字复制为32位。

同步字将被复制2次。

CC1101支持定长数据包协议和变长数据包协议。

可变的或固定数据包长度模式可用于

最长255字节数据包长度。

再长的数据包,就必须使用无限数据包长度模式。

 

SWRS061D

Page10of42

 

CC1101

固定数据包长度模式通过设定PKTCTRL0.LENGTH_CONFIG=0来选择。

期望的数据包

长度通过PKTLEN寄存器来设置。

在可变数据包长度模式,PKTCTRL0.LENGTH_CONFIG=1,数据包长度由同步字后面

的第一个字节配置。

数据包长度定义为有效载荷,不包括长度字节和可选的CRC。

PKTLEN

用来配置允许接收的最大数据包长度。

任何接收的数据包长度大于PKTLEN的值都将被丢

弃。

PKTCTRL0.LENGTH_CONFIG=2,数据包长度将设置为无限长,发送和接收将持续到

手动关闭。

在下一部分描述中,将使用不同长度的配置来支持数据包格式。

必须确保在发送

前半个或任何字节的时候TX模式不被关闭。

参考CC1101的勘误表。

 

3.11.2.1任意长度区域配置

 

数据包长度寄存器PKTLEN,在接收和发送时可以重新编程。

结合固定数据包长度模式

(PKTCTRL0.LENGTH_CONFIG=0),这使与变长数据包不同的长度配置成为可能。

(在

可变数据包长度模式下长度字节是同步字节后第一个字节)在接收开始,数据包长度设置为

一个大的值。

MCU读取足够多的字节来解析数据包中的长度区域。

然后依照这个值对

PKTLEN进行设置。

当数据包处理器中的字节指针等于PKTLEN寄存器的值时数据包结束。

因此,MCU必须在内部指针达到数据包长度之前确认正确的长度。

 

3.11.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必须按照以下执行:

●设置PKTCTRL0.LENGTH_CONFIG=2。

●重新设置PKTLEN寄存器模(600,256)=88.

●至少发送345字节(600-255),例如通过填充64字节TXFIFO6次(发送

384字节)。

●设置PKTCTRL0.LENGTH_CONFIG=0。

●当数据包指针达到88发送完

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2