📄 cc1100_z.h
字号:
/***********************************************************************************
文件名: cc1100_z.h
CCC 2008.2.25
Copyright 2007 Texas Instruments, Inc.
***********************************************************************************/
#ifndef CC1100_Z_H
#define CC1100_Z_H
//----------------------------------------------------------------------------------
// CC1100配置寄存器定义
//----------------------------------------------------------------------------------
//(1) 管脚配置寄存器
#define CC1100_IOCFG2 0x00 // GDO2输出管脚配置寄存器
#define CC1100_IOCFG1 0x01 // GDO1输出管脚配置寄存器
#define CC1100_IOCFG0 0x02 // GDO0输出管脚配置寄存器
//(2) 缓冲区门限配置寄存器
#define CC1100_FIFOTHR 0x03 // RX FIFO和TX FIFO门限设置寄存器
//(3) 同步字寄存器
#define CC1100_SYNC1 0x04 // 同步字高字节寄存器
#define CC1100_SYNC0 0x05 // 同步字低字节寄存器
//(4) 包配置寄存器
#define CC1100_PKTLEN 0x06 // 包长度寄存器
#define CC1100_PKTCTRL1 0x07 // 包自动控制寄存器1
#define CC1100_PKTCTRL0 0x08 // 包自动控制寄存器0
//(5) 芯片地址寄存器
#define CC1100_ADDR 0x09 // 芯片地址寄存器
//(6) 信道号寄存器
#define CC1100_CHANNR 0x0A // 信道号寄存器
//(7) 频率合成器控制寄存器
#define CC1100_FSCTRL1 0x0B // 频率合成器控制寄存器1
#define CC1100_FSCTRL0 0x0C // 频率合成器控制寄存器0
//(8) 频率控制字寄存器
#define CC1100_FREQ2 0x0D // 频率控制字高字节寄存器
#define CC1100_FREQ1 0x0E // 频率控制字中字节寄存器
#define CC1100_FREQ0 0x0F // 频率控制字低字节寄存器
//(9)调制解调器配置寄存器
#define CC1100_MDMCFG4 0x10 // 调制解调器配置寄存器4
#define CC1100_MDMCFG3 0x11 // 调制解调器配置寄存器3
#define CC1100_MDMCFG2 0x12 // 调制解调器配置寄存器2
#define CC1100_MDMCFG1 0x13 // 调制解调器配置寄存器1
#define CC1100_MDMCFG0 0x14 // 调制解调器配置寄存器0
//(10)频移设置寄存器
#define CC1100_DEVIATN 0x15 // 调制解调器频移设置寄存器
//(11)主控状态机配置寄存器
#define CC1100_MCSM2 0x16 // 主控状态机配置寄存器2
#define CC1100_MCSM1 0x17 // 主控状态机配置寄存器1
#define CC1100_MCSM0 0x18 // 主控状态机配置寄存器0
//(12)频率偏差补偿配置寄存器
#define CC1100_FOCCFG 0x19 // 频率偏差补偿配置寄存器
//(13)位同步配置寄存器
#define CC1100_BSCFG 0x1A // 位同步配置寄存器
//(14)AGC控制寄存器
#define CC1100_AGCCTRL2 0x1B // AGC控制寄存器2
#define CC1100_AGCCTRL1 0x1C // AGC控制寄存器1
#define CC1100_AGCCTRL0 0x1D // AGC控制寄存器0
//(15)无线唤醒(WOR)阶段0(Event0)超时寄存器
#define CC1100_WOREVT1 0x1E // Event0超时高字节
#define CC1100_WOREVT0 0x1F // Event0超时低字节
//(16)无线唤醒控制寄存器
#define CC1100_WORCTRL 0x20 // 无线唤醒控制寄存器
//(17)RX前端配置寄存器
#define CC1100_FREND1 0x21 // RX前端配置寄存器1
#define CC1100_FREND0 0x22 // RX前端配置寄存器0
//(18)频率合成器校准寄存器
#define CC1100_FSCAL3 0x23 // 频率合成器校准寄存器3
#define CC1100_FSCAL2 0x24 // 频率合成器校准寄存器2
#define CC1100_FSCAL1 0x25 // 频率合成器校准寄存器1
#define CC1100_FSCAL0 0x26 // 频率合成器校准寄存器0
//(19)RC振荡器配置寄存器
#define CC1100_RCCTRL1 0x27 // RC振荡器配置寄存器1
#define CC1100_RCCTRL0 0x28 // RC振荡器配置寄存器0
//(20)频率合成器校准控制寄存器
#define CC1100_FSTEST 0x29 // 频率合成器校准控制寄存器
//(21)测试用寄存器
#define CC1100_PTEST 0x2A // 产品测试寄存器
#define CC1100_AGCTEST 0x2B // AGC测试寄存器
#define CC1100_TEST2 0x2C // 各种测试设置寄存器2
#define CC1100_TEST1 0x2D // 各种测试设置寄存器1
#define CC1100_TEST0 0x2E // 各种测试设置寄存器0
//(22)状态寄存器
#define CC1100_PARTNUM 0xF0 //0x30 // 器件号
#define CC1100_VERSION 0xF1 //0x31 // 当前版本号
#define CC1100_FREQEST 0xF2 //0x32 // 频率偏差估算
#define CC1100_LQI 0xF3 //0x33 // 连接质量的解调器估算
#define CC1100_RSSI 0xF4 //0x34 // 接收信号强度指示(RSSI)
#define CC1100_MARCSTATE 0xF5 //0x35 // 控制状态机的状态
#define CC1100_WORTIME1 0xf6 //0x36 // WOR定时器高字节
#define CC1100_WORTIME0 0xF7 //0x37 // WOR定时器低字节
#define CC1100_PKTSTATUS 0xF8 //0x38 // 当前CDOx状态和包状态
#define CC1100_VCO_VC_DAC 0xF9 //0x39 // PLL校准模式的当前设置(测试专用)
#define CC1100_TXBYTES 0xFA //0x3A // TXFIFO中的字节数及下溢出(亏空)
#define CC1100_RXBYTES 0xFB //0x3B // RXFIFO中的字节数及上溢出(溢出)
//----------------------------------------------------------------------------------
//(23)多字节存储区
//----------------------------------------------------------------------------------
#define CC1100_PATABLE 0x3E //输出功率表(08字节,读写)
#define CC1100_TXFIFO 0x3F //发送缓冲区(64字节,只写)
#define CC1100_RXFIFO 0x3F //接收缓冲区(64字节,只读)
//----------------------------------------------------------------------------------
// 定义寄存器的组/单访问时附加在地址上的指令位
// bit7:读(1)/写(0)。 bit6=单(0)/组(1)。
//----------------------------------------------------------------------------------
#define CC1100_WRITE_SINGLE 0x00 //单写
#define CC1100_WRITE_BURST 0x40 //组写
#define CC1100_READ_SINGLE 0x80 //单读
#define CC1100_READ_BURST 0xC0 //组读
//----------------------------------------------------------------------------------
// 定义触发命令
//----------------------------------------------------------------------------------
#define CC1100_SRES 0x30 //芯片复位。
#define CC1100_SFSTXON 0x31 //使能校准频率合成器(若MCSM0.FS_AUTOCAL=1):
//在RX/TX下:进入等待状态,此时只有频率同步器运行(用于快速切换RX/TX)。
#define CC1100_SXOFF 0x32 //关闭晶振。
#define CC1100_SCAL 0x33 //校准频率合成器然后关闭之(允许快速启动)。
#define CC1100_SRX 0x34 //如果当前在IDEL状态且MCSM0.FS_AUTOCAL=1,则先执行校准再进入RX状态。
#define CC1100_STX 0x35 //如果当前在IDEL状态且MCSM0.FS_AUTOCAL=1,则先执行校准再进入TX状态。
//如果当前在RX状态且使能了CCA,若信道清晰则进入TX状态。
#define CC1100_SIDLE 0x36 //退出RX/TX状态,关闭频率合成器,若允许WOR(无线唤醒),则退出之。
#define CC1100_SAFC 0x37 //执行频率合成器的AFC(自动频率控制)调节。
#define CC1100_SWOR 0x38 //启动自动RX轮询序列( 即无线唤醒WOR)。
#define CC1100_SPWD 0x39 //当CSn变高时,进入掉电模式。
#define CC1100_SFRX 0x3A //清除RX FIFO缓冲区。
#define CC1100_SFTX 0x3B //清除TX FIFO缓冲区。
#define CC1100_SWORRST 0x3C //复位实时时钟。
#define CC1100_SNOP 0x3D //空操作,用于返回状态字节,以简化软件设计。
//----------------------------------------------------------------------------------
// 芯片状态字节:MCU通过SPI向芯片写头、数据和命令时,从SO同时读出的状态字节
//----------------------------------------------------------------------------------
// 状态字节(Chip Status Byte)中的位
#define CC1100_STATUS_CHIP_RDYn_BM 0x80 //Bit7:电源和晶振稳定运行后变低。使用SPI时应保证为低。
#define CC1100_STATUS_STATE_BM 0x70 //Bit6~4:指示当前芯片状态:
//000 = IDEL(也报告一些变化状态以替代SETTLING和CALIBRATE)。
//001 = RX。
//010 = TX。
//011 = FSTXON。快速TX就绪。
//100 = CALIBRATE。正在校准频率合成器。
//101 = SETTLING。PLL已稳定。
//110 = RXFIFO_OVERFLOW。RX FIFO溢出。读出有用的数据后用SFRX命令清除缓冲区。
//111 = TZXFIFO_UNDERFLOW。TX FIFO亏空。SFTX命令确认。
#define CC1100_STATUS_FIFO_BYTES_AVAILABLE_BM 0x0F //bit3~0:RX FIFO中可用字节数,或TX FIFO空闲字节数。
//----------------------------------------------------------------------------------
// 芯片状态(编程时使用的常数)
//----------------------------------------------------------------------------------
#define CC1100_STATE_IDLE 0x00
#define CC1100_STATE_RX 0x10
#define CC1100_STATE_TX 0x20
#define CC1100_STATE_FSTXON 0x30
#define CC1100_STATE_CALIBRATE 0x40
#define CC1100_STATE_SETTLING 0x50
#define CC1100_STATE_RX_OVERFLOW 0x60
#define CC1100_STATE_TX_UNDERFLOW 0x70
//----------------------------------------------------------------------------------
// 接收包附加字节2的位定义
//----------------------------------------------------------------------------------
#define CC1100_LQI_CRC_OK_BM 0x80 //Bit7 = 1:接收数据的CRC校验OK(或禁止CRC校验);0:CRC校验失败。
#define CC1100_LQI_EST_BM 0x7F //Bit6~0:连接质量指示(LQI)。
/**********************************************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -