📄 xe1205driver.h
字号:
/*******************************************************************
** File : XE1205driver.h **
********************************************************************
** **
** Version : V 1.0 **
** **
** Written by : Miguel Luis **
** **
** Date : 19-01-2004 **
** **
** Project : API-1205 **
** **
********************************************************************
** Changes : V 2.1 / MiL - 24-04-2004 **
** **
** Changes : V 2.3 / CRo - 06-06-2006 **
** - I/O Ports Definitions section updated **
** **
** Changes : V 2.4 / CRo - 09-01-2007 **
** - No change **
** **
** **
********************************************************************
** Description : XE1205 transceiver drivers Implementation for the**
** XE8000 family products (BitBang) **
*******************************************************************/
#ifndef __XE1205DRIVER__
#define __XE1205DRIVER__
/*******************************************************************
** Include files **
*******************************************************************/
#include "Globals.h"
/*******************************************************************
** Global definitions **
*******************************************************************/
/*******************************************************************
** RF packet definition **
*******************************************************************/
#define RF_BUFFER_SIZE_MAX 64
#define RF_BUFFER_SIZE 64
#define SYNC_BYTE_FREQ 4
/*******************************************************************
** RF State machine **
*******************************************************************/
#define RF_STOP 0x01
#define RF_BUSY 0x02
#define RF_RX_DONE 0x04
#define RF_TX_DONE 0x08
#define RF_ERROR 0x10
#define RF_TIMEOUT 0x20
#define RF_AFC_DONE 0x40
/*******************************************************************
** RF function return codes **
*******************************************************************/
#define OK 0x00
#define ERROR 0x01
#define RX_TIMEOUT 0x02
#define RX_RUNNING 0x03
#define TX_TIMEOUT 0x04
#define TX_RUNNING 0x05
/*******************************************************************
** I/O Ports Definitions **
*******************************************************************/
#if defined(_XE88LC01A_) || defined(_XE88LC05A_)
#define PORTO RegPCOut
#define PORTI RegPCIn
#define PORTDIR RegPCDir
#define PORTP RegPCPullup
#define ANT_SWITCH RegPCOut
#endif
#if defined(_XE88LC02_) || defined(_XE88LC02_4KI_) || defined(_XE88LC02_8KI_)
#define PORTO RegPD1Out
#define PORTI RegPD1In
#define PORTDIR RegPD1Dir
#define PORTP RegPD1Pullup
#define ANT_SWITCH RegPD1Out
#endif
#if defined(_XE88LC06A_) || defined(_XE88LC07A_)
#define PORTO RegPDOut
#define PORTI RegPDIn
#define PORTDIR RegPDDir
#define PORTP RegPDPullup
#define ANT_SWITCH RegPDOut
#endif
/*******************************************************************
** Port A pins definitions **
********************************************************************
** * uC * XE1205 * PAx **
*******************************************************************/
#define IRQ_1 0x02 //* In * Out * PA1 // DCLK
//#define DATA 0x04 //* In * Out * PA2 // DATAOUT
//#define IRQ_0 0x08 //* In * Out * PA3 // Pattern
#define DATA 0x01 //* In * Out * PA0 // DATAOUT
#define IRQ_0 0x10 //* In * Out * PA4 // Pattern
/*******************************************************************
** Port B pins definitions **
********************************************************************
** * uC * XE1205 * PBx **
*******************************************************************/
/*******************************************************************
** Port C pins definitions **
********************************************************************
** * uC * XE1205 * PCx **
*******************************************************************/
#define NSS_DATA 0x01 //* Out * In * PC0 // DATAIN
#define SW1 0x02 //* In * Out * PC1 // TX
#define SW0 0x04 //* In * Out * PC2 // RX
#define NSS_CONFIG 0x08 //* Out * In * PC3
#define SCK 0x10 //* Out * In * PC4
#define MOSI 0x20 //* Out * In * PC5
#define MISO 0x40 //* In * Out * PC6
/*******************************************************************
** XE1205 SPI Macros definitions **
*******************************************************************/
#define SPIInit() (PORTDIR = (PORTDIR | SCK | NSS_DATA | NSS_CONFIG | MOSI) & (~(MISO | SW1 | SW0)))
#define SPIClock(level) ((level) ? (PORTO |= SCK) : (PORTO &= ~SCK))
#define SPIMosi(level) ((level) ? (PORTO |= MOSI) : (PORTO &= ~MOSI))
#define SPINssData(level) ((level) ? (PORTO |= NSS_DATA) : (PORTO &= ~NSS_DATA))
#define SPINssConfig(level) ((level) ? (PORTO |= NSS_CONFIG) : (PORTO &= ~NSS_CONFIG))
#define SPIMisoTest() (PORTI & MISO)
/*******************************************************************
** XE1205 definitions **
*******************************************************************/
/*******************************************************************
** XE1205 Operating modes definition **
*******************************************************************/
#define RF_SLEEP 0x00
#define RF_RECEIVER 0x40
#define RF_TRANSMITTER 0x80
#define RF_STANDBY 0xC0
/*******************************************************************
** XE1205 Internal registers Address **
*******************************************************************/
#define REG_MCPARAM1 0x00
#define REG_MCPARAM2 0x01
#define REG_MCPARAM3 0x02
#define REG_MCPARAM4 0x03 // LO MSB
#define REG_MCPARAM5 0x04 // LO LSB
#define REG_IRQPARAM1 0x05
#define REG_IRQPARAM2 0x06
#define REG_TXPARAM1 0x07
#define REG_RXPARAM1 0x08
#define REG_RXPARAM2 0x09
#define REG_RXPARAM3 0x0A
#define REG_RXPARAM4 0x0B // MSB FEI
#define REG_RXPARAM5 0x0C // LSB FEI
#define REG_RXPARAM6 0x0D // Pattern 1
#define REG_RXPARAM7 0x0E // Pattern 2
#define REG_RXPARAM8 0x0F // Pattern 3
#define REG_RXPARAM9 0x10 // Pattern 4
#define REG_OSCPARAM1 0x11
#define REG_OSCPARAM2 0x12
/*******************************************************************
** XE1205 default register values definition **
*******************************************************************/
#define DEF_MCPARAM1 0x00 //
#define DEF_MCPARAM2 0x00 //
#define DEF_MCPARAM3 0x00 //
#define DEF_MCPARAM4 0x00 // LO MSB
#define DEF_MCPARAM5 0x00 // LO LSB
#define DEF_IRQPARAM1 0x00 //
#define DEF_IRQPARAM2 0x00 //
#define DEF_TXPARAM1 0x00 //
#define DEF_RXPARAM1 0x00 //
#define DEF_RXPARAM2 0x00 //
#define DEF_RXPARAM3 0x00 //
#define DEF_RXPARAM4 0x00 // MSB FEI
#define DEF_RXPARAM5 0x00 // MSB FEI
#define DEF_RXPARAM6 0x00 // Pattern 1
#define DEF_RXPARAM7 0x00 // Pattern 2
#define DEF_RXPARAM8 0x00 // Pattern 3
#define DEF_RXPARAM9 0x00 // Pattern 4
#define DEF_OSCPARAM1 0x00 //
#define DEF_OSCPARAM2 0x00 //
/*******************************************************************
** XE1205 bit control definition **
*******************************************************************/
// MC Param 1
// Chip operating mode
#define RF_MC1_STANDBY 0xC0
#define RF_MC1_TRANSMITTER 0x80
#define RF_MC1_RECEIVER 0x40
#define RF_MC1_SLEEP 0x00
// Chip mode selection
#define RF_MC1_MODE_SW_PIN 0x20
#define RF_MC1_MODE_CHIP 0x00
// Enables Buffered mode
#define RF_MC1_BUFFERED_MODE_ON 0x10
#define RF_MC1_BUFFERED_MODE_OFF 0x00
// Configure data pin behavior
#define RF_MC1_DATA_UNIDIR_ON 0x08
#define RF_MC1_DATA_UNIDIR_OFF 0x00
// Frequency band
#define RF_MC1_BAND_915 0x06
#define RF_MC1_BAND_868 0x04
#define RF_MC1_BAND_433 0x02
// Frequency deviation MSB
#define RF_MC1_FREQ_DEV_MSB_1 0x01
#define RF_MC1_FREQ_DEV_MSB_0 0x00
// MC Param 2
// Transceiver Frequency deviation
#define RF_MC2_FDEV_5 0x0A
#define RF_MC2_FDEV_10 0x14
#define RF_MC2_FDEV_20 0x28
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -