⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cc1100_z.h

📁 用c8051f310开发的433M无线模块cc1100的完整程序
💻 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 + -