CC1101笔记

2017-03-23  本文已影响0人  Alex_Lin

产品描述

工作频段

**CC1100: **400-464 MHz and 800-928MHz
CC1101: 387-464 MHz and 779-928MHz

芯片引脚

cc1101引脚

引脚说明

引脚编号 | 引脚名 |引脚类型| 描述
----|
1| SCLK |数字输入 |连续配置接口,时钟输入
2| SO(GD01)| 数字输出 |连续配置接口,数据输出当 CSn 为高时为可选的一般输出脚
3 | GDO2 | 数字输出 | 一般用途的数字输出脚:1>测试信号;2>FIFO 状态信号;3>时钟输出,从 XOSC 向下分割;4>连续输入 TX 数据
4 | DVDD | 功率(数字)| 数字 I/O 和数字中心电压调节器的 1.8V-3.6V 数字功率供给输出
5| DCOUPL| 功率(数字)| 对退耦的 1.6V-2.0V 数字功率供给输出;注意:这个引脚只对 CC2500 使用。不能用来对其他设备提供供给电压
6| GDO0(ATEST)|数字 I/O | 一般用途的数字输出脚:1> 测试信号;2>FIFO 状态信号;3>时钟输出,从 XOSC 向下分割;4>连续输入 TX 数据;5>也用作原型/产品测试的模拟测试 I/O
7 | CSn| 数字输入 | 连续配置接口,芯片选择
8 | XOSC_Q1| 模拟 I/O| 晶体振荡器脚 1,或外部时钟输入
9 |AVDD |功率(模拟)| 1.8V-3.6V 模拟功率供给连接
10| XOSC_Q2| 模拟 I/O| 晶体振荡器脚
11| AVDD| 功率(模拟)| 1.8V-3.6V 模拟功率供给连接
12 | RF_P | RF I/O | 接收模式下对 LNA 的正 RF 输入信号发送模式下对 LNA 的正 RF 输出信号
13 |AVDD | RF I/O | 接收模式下对 LNA 的负 RF 输入信号发送模式下对 LNA 的负 RF 输出信号
14| AVDD |功率(模拟)| 1.8V-3.6V 模拟功率供给连接
15| AVDD |功率(模拟)| 1.8V-3.6V 模拟功率供给连接
16| GND | 地(模拟) | 模拟接地
17| RBIAS| 模拟 I/O | 参考电流的外部偏阻器
18 | DGUARD| 功率(数字)| 对数字噪声隔离的功率供给连接
19| GND |地(数字)| 数字噪声隔离的接地
20| SI| 数字输入 | 连续配置接口,数据输入

通讯方式以及配置方式---SPI

拓展知识:
MSB:高位前导
LSB:低位前导。
big endian(大端)是指低地址存放最高有效字节(MSB),
little endian(小端)则是低地址存放最低有效字节(LSB)

SPI 读写注意事项

芯片状态字节

寄存器访问

命令选通(command strobes)

FIFO访问

PATABLE 访问

基本控制和状态脚

数据包处理的硬件支持

发送模式下

数据包的处理者可以配置增加下面的元素到TX FIFO中的数据包存储

推荐设置4字节前导和4字节同步字,除了500k波特率时推荐使用8字节前导。另外,在数据区域和附加的2字节CRC校验,以下可以被执行

接收模式下

数据包处理支持将是解构数据包,(如使能)以下可以被执行

数据包格式

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

前导形式是一个交互的0 /1 序 列(01010101...)前导的最小长度是可编程控制的。当启用 TX 时,调制器开始传送前导。当控制数目的前导字节被传送完毕,调制器开始发送同步词汇,然后传送来自 TX FIFO的可利用的数据。若 TX FIFO 为空,调制器将继续传送前导字节,直到第一个字节被写入 TX FIFO。调制器将随后传送同步词汇和数据字节;
前导字节的长度由MDMCFG1.NU_PREAMBLE 值控制。

数据包长度

使用不同长度的配置来支持数据包格式。必须确保在发送前半个或任何字节的时候TX模式不被关闭

固定数据包长度

可变数据包长度

可变长数据包收发逻辑

数据包长度寄存器PKTLEN,在接收和发送时可以重新编程。结合固定数据包长度模式(PKTCTRL0.LENGTH_CONFIG=0),这使与变长数据包不同的长度配置成为可能。(在可变数据包长度模式下长度字节是同步字节后第一个字节)在接收开始,数据包长度设置为一个大的值。MCU读取足够多的字节来解析数据包中的长度区域。然后依照这个值对PKTLEN进行设置。当数据包处理器中的字节计数器等于PKTLEN寄存器的值时数据包结束。因此,MCU必须在内部计数器达到数据包长度之前确认正确的长度

无限数据包长度模式(大于255个字节)

无限数据包长度收发逻辑

例子:发送一个600字节的数据包时,MCU必须按照以下执行:

接收模式下的数据包过滤

CC1101支持三种不同类型的数据包过滤:

地址过滤

最大长度过滤

在可变数据包模式,PKTCTRL0.LENGTH_CONFIG=1,PKTLEN.PACKET_LENGTH寄存器用来设置最大允许的数据包长度。如果接收的长度字节大于这个值,数据包将被丢弃,重新启动接收模式(不管MCSM1.RXOFF_MODE的设置)。

CRC过滤

发送模式下的数据包处理

接收模式下的数据包处理

接收数据包状态字1 接收数据包状态字2

MCU数据包处理

如果在固件中执行一个数据包导向的无线协议,MCU需要知道一个数据包什么时候收到/发送。
加之,超过64字节长度的数据包,当接收时需要读取RX FIFO和当发送时TX FIFO需要重新填充。
这就意味着MCU必须知道有多少个字节可以从RX FIFO中读取或者可以向TX FIFO中写入。
有两种方法可以获得必要的状态信息。

推荐使用中断驱动方法因为高速率SPI轮询将减小RX的灵敏度。
而且,在Section10.3和CC1101勘误表【4】中,当使用SPI轮询,单一读取PKTSTATUS、 RXBYTES和 TXBYTES有一个小的有限的错误的可能性。
当读取芯片状态字节有同样的问题。

RSSI

注意:从无线进入RX模式到在RSSI寄存器检测到一个正确的RSSI值需要一定的时间。查看DN505[15]获得RSSI响应时间估算的详细信息。
RSSI的值以dBm和1/2 dB给出。
RSSI更新速率,fRSSI 依赖于接收滤波带宽和AGCCTRL0.FILTER_LENGTH。

  1. 读取RSSI状态寄存器
  2. 将读到的数据从16进制数转换到二进制数(RSSI_dec)
  3. 如果RSSI_dec≧128,RSSI_dBm =(RSSI_dec - 256)/2 – RSSI_offset 4)
    4 ) 如果RSSI_dec<128,RSSI_dBm =RSSI_dec /2 – RSSI_offset

净信道评估(CCA)

链路质量指示(LQI)

上电启动序列

自动POR

CC1101内部包含上电复位电路。最小的需求见表15,完整的上电复位功能必须遵循。当CHIP_RDYn变低内部上电序列完成。在CSn拉低后在SO引脚上可以查看CHIP_RDYn。
当CC1101复位完成,芯片将进入IDLE状态,晶振开始运行。如果芯片在上电之后有足够的时间让晶振稳定,在捕获CSn变低之后SO引脚将马上变低。如果在复位完成之前CSn被拉低,SO引脚将首先变高,指示晶振没有稳定,变低之前见下图。


自动POR

手动复位

CC1101上的其它全部复位时使用SRES命令。通过执行这个命令,所有内部寄存器和状态恢复默认,IDLE状态。手动复位序列如下(图 手动复位):

注意:以上复位程序只需要在电源给电之后。如果用户在这之后想要复位CC1101,只需要执行SRES命令选通

常规用途/ 测试输出控制引脚

3 个数字输出引脚 GDO0 和 GDO1 和 GDO2为常规控制脚。它们的功能分别由

GDO0_CFG[5:0] GDO1_CFG[5:0] GDO2_CFG[5:0] 描述
0(0x00) 与 RX FIFO 关联:当 RX FIFO 在 RXFIFO_THR 上被填充时声明。当 RX FIFO 在RXFIFO THR 之下时被反声明
1(0x01) 与 RX FIFO 关联:当 RX FIFO 在 RXFIFO_THR 上被填充或到达数据包末端时声明。当RX FIFO 空时被反声明
2(0x02) 与 TX FIFO 关联:当 TX FIFO 在 TXFIFO_THR 上被填充时声明。当 TX FIFO 在TXFIFO THR 之下时被反声明
3(0x03) 与 TX FIFO 关联:当 TX FIFO 满时声明。当 TX FIFO 在 TXFIFO_THR 之下为空时被反声明
4(0x04) 当 RX FIFO 已溢出时声明。当 FIFO 被淹没时被反声明
5(0x05) 当 TX FIFO 已下溢时声明。当 FIFO 被淹没时被反声明
6(0x06) 当同步词汇被送出/收到时声明,在数据包末端时反声明。对 RX,当可选地址检测失败或 RX FIFO 溢出时,引脚被反声明。若 TX FIFO 下溢,这个引脚将同样被反声明
7(0x07) 当一个数据包被 OK CRC 收到时声明。当第一个字节从 RX FIFO 中读取时反声明
8(0x08) 前导质量达到。当 PQI 高于控制 PQT 值时声明
9(0x09) 清理信道评估。当 RSSI 等级低于门限时为高(决定于当前 CCA MODE 设置)
10(0x0A) 锁定检测器输出
11(0x0B) 连续时钟。与同步连续模式下的数据同步。数据在下降沿建立,在 SERIAL CLK 上升沿被读取。
12(0x0C) 连续同步数据输出。同步连续模式时使用。在 SERIAL_CLK 上升沿 MCU 必须读 DO。数据在下降沿由 CC2500 建立
13(0x0D) 连续透明数据输出。同步连续模式时使用。
14(0x0E) 载波感应。当 RSSI 等级低于门限时为高
15(0x0F) CRC OK。上一个 CRC 对比匹配。当进入/重启 RX 模式时清理。
16(0x10) 保留-测试用
17(0x11) 保留-测试用
18(0x12) 保留-测试用
19(0x13) 保留-测试用
20(0x14) 保留-测试用
21(0x15) 保留-测试用
22(0x16) RX_HARD_DATA[1]。能同RX_SYMBOL_TICK一起使用在交替连续RX输出上。
23(0x17) RX_HARD_DATA[1]。能同RX_SYMBOL_TICK一起使用在交替连续RX输出上。
24(0x18) 保留-测试用
25(0x19) 保留-测试用
26(0x1A) 保留-测试用
27(0x1B) 1 时 PA PD.PA 开启,0 时功率降低。能用来控制外部 PA 或 RX/TX 开关
28(0x1C) 1 时 LNA PD.LNA 开启,0 时功率降低。能用来控制外部 LNA 或 RX/TX 开关
29(0x1D) RX_SYMBOL_TICK。能同RX_HARD_DATA一起使用在交替连续RX输出上。
30(0x1E) 保留-测试用
31(0x1F) 保留-测试用
32(0x20) 保留-测试用
33(0x21) 保留-测试用
34(0x22) 保留-测试用
35(0x23) 保留-测试用
36(0x24) 保留-测试用
37(0x25) 保留-测试用
38(0x26) 保留-测试用
39(0x27) 保留-测试用
40(0x28) 保留-测试用
41(0x29) CHIP RDY
42(0x2A) 保留-测试用
43(0x2B) XOSC STABLE
44(0x2C) 保留-测试用
45(0x2D) GDO0 Z EN N。当这个输出为 0 时,GDO0 配置为输入(为连续 TX 数据)
46(0x2E) 高阻抗(3-状态)
47(0x2F) HW 到 0(HW1 同 INV 信号一起完成)
48(0x30) CLK XOSC/1
49(0x31) CLK XOSC/1.5
50(0x32) CLK XOSC/2
51(0x33) CLK XOSC/3
52(0x34) CLK XOSC/4
53(0x35) CLK XOSC/6
54(0x36) CLK XOSC/8
55(0x37) CLK XOSC/12
56(0x38) CLK XOSC/16
57(0x39) CLK XOSC/24
58(0x3A) CLK XOSC/32
59(0x3B) CLK XOSC/48
60(0x3C) CLK XOSC/64
61(0x3D) CLK XOSC/96
62(0x3E) CLK XOSC/128
63(0x3F) CLK XOSC/192

寄存器配置

CC1101的配置通过编程8位寄存器来实现

命令寄存器(12个)

访问这些寄存器将会发起内部状态或模式的改变

地址 名称 描述
0x30 SRES 复位芯片
0x31 SFSTXON 使能和校准频率合成器(如果MCSM0.FS_AUTOCAL=1)。如果在RX(使能CCA),仅当合成器运行时转到等待状态(RX/TX快速转换)
0x32 SXOFF 关闭晶振
0x33 SCAL 校准频率合成器并关闭。SCAL可以从IDLE模式执行而不需要设置收到校准模式(MCSM0.FS_AUTOCAL=0)。
0x34 SRX 使能RX。如果来自IDLE状态并且MCSM0.FS_AUTOCAL=1首先执行校准。
0x35 STX 在IDLE状态:使能TX。如果MCSM0.FS_AUTOCAL=1首先执行校准。如果在RX状态并使能CCA仅在信道为空时转到TX。
0x36 SIDLE 离开RX/TX模式,关闭频率合成器,如果可用离开WOR。
0x38 SWOR 如果WORCTRL.RC_PD=0像Section19.5的描述一样开始自动RX轮询序列(WOR)。
0x39 SPWD 当CSn拉高进入掉电模式。
0x3A SFRX 清除RX FIFO缓冲器。只在IDLE 或 RXFIFO_OVERFLOW状态运行SFRX。
0x3B SFTX 清除TX FIFO缓冲器。只在IDLE 或 TXFIFO_UNDERFLOW状态运行SFTX。
0x3C SWORRST 复位实时时钟到Event1值。
0x3D SMOP 无操作,可以用来访问获取芯片状态字节。

配置寄存器

地址 寄存器 描述 保持在休眠状态中
0x00 IOCFG2 GDO2输出引脚配置
0x01 IOCFG1 GDO1输出引脚配置
0x02 IOCFG0 GDO0输出引脚配置
0x03 FIFOTHR RX FIFO和TX FIFO门限
0x04 SYNC1 同步字,高字节
0x05 SYNC0 同步字,低字节
0x06 PKTLEN 数据包长度
0x07 PKTCTRL1 数据包自动控制
0x08 PKTCTRL0 数据包自动控制
0x09 ADDR 设备地址
0x0A CHANNR 信道号
0x0B FSCTRL1 频率合成器控制
0x0C FSCTRL0 频率合成器控制
0x0D FREQ2 频率控制字,高字节
0x0E FREQ1 频率控制字,中间字节
0x0F FREQ0 频率控制字,低字节
0x10 MDMCFG4 Modem配置
0x11 MDMCFG3 Modem配置 是 、
0x12 MDMCFG2 Modem配置
0x13 MDMCFG1 Modem配置
0x14 MDMCFG0 Modem配置
0x15 DEVIATN Modem背离设定
0x16 MCSM2 主无线控制状态机配置
0x17 MCSM1 主无线控制状态机配置
0x18 MCSM0 主无线控制状态机配置
0x19 FOCCFG 频率偏移补偿配置
0x1A BSCFG 位同步配置
0x1B AGCTRL2 AGC控制
0x1C AGCTRL1 AGC控制
0x1D AGCTRL0 AGC控制
0x1E WOREVT1 事件0超时高字节
0x1F WOREVT0 事件0超时低字节
0x20 WORCTRL WOR控制
0x21 FREND1 前端RX配置
0x22 FREND0 前端TX配置
0x23 FSCAL3 频率合成器校准
0x24 SCAL2 频率合成器校准
0x25 SCAL1 频率合成器校准
0x26 SCAL0 频率合成器校准
0x27 RCCTRL1 RC振荡器配置
0x28 RCCTRL0 RC振荡器配置
0x29 FSTEST 频率合成器校准控制
0x2A PTEST 产品测试
0x2B AGCTEST AGC测试
0x2C TEST2 各方面测试设定
0x2D TEST1 各方面测试设定
0x2E TEST0 各方面测试设定

状态寄存器总览

地址 寄存器 描述
0x30(0xF0) PARTNUM CC1101零件号
0x31(0xF1) VERSION 当前版本号
0x32(0xF2) FREQEST 频率偏移评估
0x33(0xF3) LQI 解调器链路质量估计
0x34(0xF4) RSSI 接收信号强度指示
0x35(0xF5) MARCSTATE 控制状态机状态
0x36(0xF6) WORTIME1 WOR定时器高字节
0x37(0xF7) WORTIME0 WOR定时器低字节
0x38(0xF8) PKTSTATUS 当前GDOx状态和数据包状态
0x39(0xF9) VCO_VC_DAC PLL校准模块的当前设置
0x3A(0xFA) TXBYTES 下溢和TX FIFO中的字节数
0x3B(0xFB) RXBYTES 上溢和RX FIFO中的字节数
0x3C(0xFC) RCCTRL1_STATUS 上一次RC振荡器校准结果
0x3D(0xFD) RCCTRL0_STATUS 上一次RC振荡器校准结果
寄存器总图

参考:https://wenku.baidu.com/view/c2b0081b227916888486d769.html

上一篇下一篇

猜你喜欢

热点阅读