📄 xe1205driver.h
字号:
/*******************************************************************
** File : XE1205driver.h **
********************************************************************
** **
** Version : V 1.0 **
** **
** Written by : Miguel Luis & Gr間oire Guye **
** **
** Date : 19-01-2004 **
** **
** Project : API-1205 **
** **
********************************************************************
** Changes : V 2.1 / MiL - 24-04-2004 **
** **
** Changes : V 2.3 / CRo - 06-06-2006 **
** - No change **
** **
** Changes : V 2.4 / CRo - 09-01-2007 **
** - No change **
** **
** **
********************************************************************
** Description : XE1205 transceiver drivers implementation for the**
** XE8806A and XE8807A (BitJockey) **
*******************************************************************/
#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 **
*******************************************************************/
#define PORTO RegPDOut
#define PORTI RegPDIn
#define PORTDIR RegPDDir
#define PORTP RegPDPullup
#define ANT_SWITCH RegPBOut
/*******************************************************************
** Port A pins definitions **
********************************************************************
** * uC * XE1205 * PAx **
*******************************************************************/
/*******************************************************************
** Port B pins definitions **
********************************************************************
** * uC * XE1205 * PBx **
*******************************************************************/
#define SW1 0x10 //* In * Out * PB4 // TX
#define SW0 0x40 //* In * Out * PB5 // RX
/*******************************************************************
** Port C pins definitions **
********************************************************************
** * uC * XE1205 * PCx **
*******************************************************************/
#define DATA 0x01 //* In/Out * In/Out * PD0 // DATA -> DataOut
#define IRQ_1 0x02 //* In * Out * PD1 // DCLK
#define IRQ_0 0x04 //* In * Out * PD2 // PATTERN
#define NSS_DATA 0x08 //* In/Out * In/Out * PD3 // NSS_DATA -> DataIn
#define NSS_CONFIG 0x10 //* Out * In * PD4
#define SCK 0x20 //* Out * In * PD5
#define MOSI 0x40 //* Out * In * PD6
#define MISO 0x80 //* In * Out * PD7
/*******************************************************************
** XE1205 SPI Macros definitions **
*******************************************************************/
#define SPIInit() (PORTDIR = (PORTDIR | SCK | NSS_CONFIG | MOSI) & (~(MISO | NSS_DATA | IRQ_0 | IRQ_1 | DATA)))
#define SPIClock(level) ((level) ? (PORTO |= SCK) : (PORTO &= ~SCK))
#define SPIMosi(level) ((level) ? (PORTO |= MOSI) : (PORTO &= ~MOSI))
#define SPINssData(level) ((level) ? (RegPBOut |= NSS_DATA) : (RegPBOut &= ~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
#define REG_MCPARAM5 0x04
#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 //
#define DEF_MCPARAM5 0x00 //
#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
#define RF_MC2_FDEV_40 0x50
#define RF_MC2_FDEV_55 0x6E
#define RF_MC2_FDEV_80 0xA0
#define RF_MC2_FDEV_100 0xC8
#define RF_MC2_FDEV_160 0x40 // RF_MC1_FREQ_DEV_MSB needs to be set
#define RF_MC2_FDEV_200 0x90 // RF_MC1_FREQ_DEV_MSB needs to be set
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -