?? 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 *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 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 + -