📄 cc2420._h
字号:
/***************************************
*2008,浙江工业大学信息与控制研究所
*All rights reserved
*
*文件名称:cc2420.h
*摘 要:无线收发芯片cc2420驱动的头文件
*
*当前版本:1.0
*作 者:董齐芬
*完成日期:2008.8.11
****************************************/
#ifndef _CC2420_H
#define _CC2420_H
#include<iom128v.h>
#include<macros.h>
#include "common.h"
//以下定义15个命令寄存器
#define SNOP 0X00 //空操作,仅为读取状态寄存器
#define SXOSCON 0X01 //开启晶体振荡器(设置XOSC16M=0,BIAS_PD=0)
#define STXCAL 0X02 //使能和校准频率合成器
#define SRXON 0X03 //RX使能
#define STXON 0X04 //TX使能
#define STXONCCA 0X05 //
#define SRFOFF 0X06 //关闭RX/TX和频率合成器
#define SXOSCOFF 0X07 //关闭晶体振荡器和RF
#define SFLUSHRX 0X08 //清楚接收FIFO缓存
#define SFLUSHTX 0X09 //清楚发送FIFO缓存
#define SACK 0X0A //发送确认帧,pending域清0
#define SACKPEND 0X0B //发送确认帧,pending域置1
#define SRXDEC 0X0C //启动RXFIFO在线解码/认证
#define STXENC 0X0D //启动TXFIFO在线编码/认证
#define SAES 0X0E //AES编码
//以下定义33个16位的配置寄存器
#define MAIN 0X10 //主控制寄存器
#define MDMCTRL0 0X11 //调制解调控制寄存器0
#define MDMCTRL1 0X12 //调制解调控制寄存器1
#define RSSI 0X13 //RSSI和CCA状态控制寄存器
#define SYNCWORD 0X14 //同步字i控制寄存器
#define TXCTRL 0X15 //发送控制寄存器
#define RXCTRL0 0X16 //接收控制寄存器0
#define RXCTRL1 0X17 //接收控制寄存器1
#define FSCTRL 0X18 //频率合成器控制与状态寄存器
#define SECCTRL0 0X19 //安全控制寄存器0
#define SECCTRL1 0X1A //安全控制寄存器1
#define BATTMON 0X1B //电池监测控制寄存器
#define IOCFG0 0X1C //I/O配置寄存器0
#define IOCFG1 0X1D //I/O配置寄存器1
#define MANFIDL 0X1E //厂商ID号低16位,只读
#define MANFIDH 0X1F //厂商ID号高16位,只读
#define FSMTC 0X20 //有限状态机定时常数寄存器
#define MANAND 0X21 //人工信号与代理寄存器
#define MANOR 0X22 //人工信号或代理寄存器
#define AGCCTRL 0X23 //AGC控制寄存器
#define FSMSTATE 0X2C //有限状态机信息寄存器,只读
#define RESERVED 0X30 //保留
#define TXFIFO 0X3E //TXFIFO寄存器
#define RXFIFO 0X3F //RXFIFO寄存器
//以下寄存器只用于测试目的
#define AGCTST0 0X24
#define AGCTST1 0X25
#define AGCTST2 0X26
#define FSTST0 0X27
#define FSTST1 0X28
#define FSTST2 0X29
#define FSTST3 0X2A
#define RXBPFTST 0X2B
#define ADCTST 0X2D
#define DACTST 0X2E
#define TOPTST 0X2F
//定义状态寄存器中各个位
#define XOSC16M_STABLE 6 //晶振是否稳定运行
#define TX_UNDERFLOE 5 //发送TXFIFO是否发生下溢
#define ENC_BUSY 4 //编码模块是否处于忙状态
#define TX_ACTIVE 3 //射频发送是否处于活动状态
#define LOCK 2 //频率合成器PLL是否处于锁存状态
#define RSSI_VALID 1 //RSSI值是否有效
//声明各种访问CC2420的方式
unsigned char Write_Command(unsigned char command); //写命令寄存器
unsigned char Read_Status(void); //读状态寄存器
unsigned char Write_ConfigureWord(unsigned char Addr,unsigned char DataH,unsigned char DataL);//写配置字
unsigned char Read_ConfigureWord(unsigned char Addr,unsigned char &,unsigned char &); //读配置字
unsigned char Read_RXFIFO(unsigned char Data_Num,unsigned char *p_Data); //读RXFIFO
unsigned char Write_TXFIFO(unsigned char Data_Num,unsigned char *p_Data); //写TXFIFO
unsigned char Write_RAM(unsigned char AddrH,unsigned char AddrL,unsigned char Data_Num,unsigned char *p_Data); //写RAM
unsigned char Read_RAM(unsigned char AddrH,unsigned char AddrL,unsigned char Data_Num,unsigned char *p_Data); //读RAM
unsigned char Read_RXFIFO_Byte(void); //读一字节RXFIFO
unsigned char Write_TXFIFO_Byte(unsigned char p_Data); //写一字节TXFIFO
unsigned char Write_RAM_Byte(unsigned char AddrH,unsigned char AddrL,unsigned char p_Data); //写一字节RAM
unsigned char Read_RAM_Byte(unsigned char AddrH,unsigned char AddrL); //读一字节RAM
//声明CC2420的各种工作模式及模式之间的转换
void PowerOff(void); //关闭电压校准器模式
void PwOff_PwDown(void); //从电压校准器关闭模式转换到掉电模式
void AllStates_PwDown(void); //其他任何模式转换到掉电模式
void PwDown_Idle(void); //从掉电模式转换到空闲模式
void AllStates_Idle(void); //从其他任何模式转换到空闲模式
void Idle_Tx(void); //从空闲模式启动发送
void Rx_Tx(void); //从接收状态转换到发送模式
void Idle_Rx(void); //从空闲模式启动接收模式
void Set_Configure(void); //设置配置字(用于初始化)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -