⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xe1205driver.h

📁 xe1205无线射频芯片驱动程序
💻 H
📖 第 1 页 / 共 3 页
字号:
/*******************************************************************
** 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 + -