CC2420.H
来源:互联网 发布:衣服搭配男软件 编辑:程序博客网 时间:2024/05/16 10:09
#ifndef _CC2420_H
#define _CC2420_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_configure_word(unsigned char Addr,unsigned char DataH,unsigned char DataL);//写配置字
unsigned char read_configure_word(unsigned char Addr,unsigned char *DataH,unsigned char *DataL); //读配置字
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 power_off(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); //设置配置字(用于初始化)
void cc2420_init(void); // CC2420初始化
#endif
- CC2420.H
- cc2420
- CC2420.c
- CC2420引脚连接关系
- CC2420通信了
- cc2420发送数据包
- TinyOS学习-CC2420篇setPower
- 在ARM9(S3C2440)上实现ZigBee协议--基于CC2420芯片
- tmote设计(三) - CC2420(exposed die attach pad)
- tmote设计(四) - CC2420(射频电路设计注意事项)
- tmote设计(五) - CC2420(边缘路由器接入)[RSSI猜想]
- Tinyos中CC2420和CTP协议的数据包格式
- 在ARM9(S3C2440)上实现ZigBee协议--基于CC2420芯片
- h
- h
- h
- ,h
- h
- 用户管理的备份与恢复的初步学习笔记
- 向ECUST-ACM队学习(转载,奋斗不是说说而已)
- CC2420.c
- Qtopia core 4.3.3 移植ok-2440-III经验总结(带触摸
- ubuntu 10.04 笔记~
- CC2420.H
- Qtopia4.3.0编译与移植到ok-2440核心板过程与总结(鼠标)
- SQL Server 2008 R2 应用及多服务器管理
- 失业10天了。
- Linux 下getch()和getche()
- 你好,上海世博!
- 腾讯实习生面试(三)
- XFS文件系统数据恢复实战
- Linux 下批量删除进程