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

📄 hal_mac_cfg.h

📁 ZigBee Pro协议栈。该协议栈是基于CC2520+MSP430F2618.
💻 H
📖 第 1 页 / 共 2 页
字号:

/**************************************************************************************************
    Filename:
    Revised:        $Date: 2008-06-10 11:10:50 -0700 (Tue, 10 Jun 2008) $
    Revision:       $Revision: 17186 $

    Description:

    Describe the purpose and contents of the file.

    Copyright (c) 2006 by Texas Instruments, Inc.
    All Rights Reserved.  Permission to use, reproduce, copy, prepare
    derivative works, modify, distribute, perform, display or sell this
    software and/or its documentation for any purpose is prohibited
    without the express written consent of Texas Instruments, Inc.
**************************************************************************************************/


#ifndef HAL_MAC_CFG_H
#define HAL_MAC_CFG_H


/*
 *   Board Configuration File for low-level MAC
 *  --------------------------------------------
 *   Manufacturer : Texas Instruments
 *   Part Number  : MSP2618CC2520 on SmartRF05 EB
 *   Processor    : Texas Instruments MSP430F2618
 *
 */

/* ------------------------------------------------------------------------------------------------
 *                                           Includes
 * ------------------------------------------------------------------------------------------------
 */
#include "hal_mcu.h"
#include "hal_types.h"
#include "hal_defs.h"
#include "hal_board_cfg.h"


/* ------------------------------------------------------------------------------------------------
 *                                  Board Specific Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_VREG_SETTLE_TIME_USECS        50    /* microseconds */
#define HAL_MAC_RSSI_OFFSET                   -76   /* no units */
#ifdef HAL_PA_LNA
#define HAL_MAC_RSSI_LNA_HGM_OFFSET           -9    /* dB */
#define HAL_MAC_RSSI_LNA_LGM_OFFSET           1     /* dB */
#endif

/* ------------------------------------------------------------------------------------------------
 *                                  FIFOP Pin / Interrupt Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_FIFOP_GPIO_BIT                  6
#define HAL_MAC_READ_FIFOP_PIN()                (P1IN & BV(HAL_MAC_FIFOP_GPIO_BIT))
#define HAL_MAC_CONFIG_FIFOP_PIN_AS_INPUT()     MAC_ASSERT(!(P1DIR & BV(HAL_MAC_FIFOP_GPIO_BIT)))

/* FIFOP interrupt macros */
#define HAL_MAC_FIFOP_INT_VECTOR()              PORT1_VECTOR
#define HAL_MAC_ENABLE_FIFOP_INT()              st( P1IE  |=  BV(HAL_MAC_FIFOP_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_DISABLE_FIFOP_INT()             st( P1IE  &= ~BV(HAL_MAC_FIFOP_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_CLEAR_FIFOP_INT_FLAG()          st( P1IFG &= ~BV(HAL_MAC_FIFOP_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_READ_FIFOP_INT_FLAG()           (P1IFG & BV(HAL_MAC_FIFOP_GPIO_BIT))
#define HAL_MAC_CONFIG_FIFOP_RISING_EDGE_INT()  st( P1IES &= ~BV(HAL_MAC_FIFOP_GPIO_BIT); ) /* atomic operation */


/* ------------------------------------------------------------------------------------------------
 *                                  SFD Pin / Interrupt Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_SFD_GPIO_BIT                    2
#define HAL_MAC_CONFIG_SFD_PIN_AS_INPUT()       st( P1DIR &= ~BV(HAL_MAC_SFD_GPIO_BIT); P1SEL |= BV(HAL_MAC_SFD_GPIO_BIT);)


/* SFD interrupt macros */
extern uint8 macMcuTimerProcessFallingEdgeSFDSync;
#define HAL_MAC_ENABLE_SFD_INT()                  st( macMcuTimerProcessFallingEdgeSFDSync = 1; )
#define HAL_MAC_DISABLE_SFD_INT()                 st( macMcuTimerProcessFallingEdgeSFDSync = 0; )
#define HAL_MAC_SFD_INT_IS_ENABLED()              ( macMcuTimerProcessFallingEdgeSFDSync )

#define HAL_MAC_CLEAR_SFD_INT_FLAG()   /* No action */


/* ------------------------------------------------------------------------------------------------
 *                                    FIFO Pin Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_FIFO_GPIO_BIT                   5
#define HAL_MAC_READ_FIFO_PIN()                 (P1IN & BV(HAL_MAC_FIFO_GPIO_BIT))
#define HAL_MAC_CONFIG_FIFO_PIN_AS_INPUT()      MAC_ASSERT(!(P1DIR & BV(HAL_MAC_FIFO_GPIO_BIT)))


/* ------------------------------------------------------------------------------------------------
 *                                    CCA Pin Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_CCA_GPIO_BIT                    1
#define HAL_MAC_READ_CCA_PIN()                  (P1IN & BV(HAL_MAC_CCA_GPIO_BIT))
#define HAL_MAC_CONFIG_CCA_PIN_AS_INPUT()       st( P1DIR &= ~BV(HAL_MAC_CCA_GPIO_BIT); \
                                                    P1SEL &= ~BV(HAL_MAC_CCA_GPIO_BIT); \
                                                    CAPD &= ~BV(HAL_MAC_CCA_GPIO_BIT);  );

/* ------------------------------------------------------------------------------------------------
 *                            TX_ACK_DONE/TX_FRM_DONE Pin / Interrupt Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_TX_ACK_DONE_GPIO_BIT            3
#define HAL_MAC_READ_TX_ACK_DONE_PIN()          (P1IN & BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT))
#define HAL_MAC_CONFIG_TX_ACK_DONE_PIN_AS_INPUT()   st( P1DIR &= ~BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); )
#define HAL_MAC_CONFIG_TX_ACK_DONE_PIN_AS_OUTPUT()  st( P1DIR |=  BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); )

/* TX_ACK_DONE interrupt macros (shared with TX_FRM_DONE) */
#define HAL_MAC_TX_ACK_DONE_INT_VECTOR()        PORT1_VECTOR
#define HAL_MAC_ENABLE_TX_ACK_DONE_INT()        st( P1IE  |=  BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_DISABLE_TX_ACK_DONE_INT()       st( P1IE  &= ~BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_TX_ACK_DONE_INT_IS_ENABLED()    (P1IE & BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT))
#define HAL_MAC_CLEAR_TX_ACK_DONE_INT_FLAG()    st( P1IFG &= ~BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_READ_TX_ACK_DONE_INT_FLAG()     (P1IFG & BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT))
#define HAL_MAC_CONFIG_TX_ACK_DONE_RISING_EDGE_INT() st( P1IES &= ~BV(HAL_MAC_TX_ACK_DONE_GPIO_BIT); ) /* atomic operation */


/* ------------------------------------------------------------------------------------------------
 *                                 VREG_EN Pin Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_VREG_EN_GPIO_BIT                0
#define HAL_MAC_DRIVE_VREG_EN_PIN_HIGH()        st( P1OUT |=  BV(HAL_MAC_VREG_EN_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_DRIVE_VREG_EN_PIN_LOW()         st( P1OUT &= ~BV(HAL_MAC_VREG_EN_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_CONFIG_VREG_EN_PIN_AS_OUTPUT()  st( P1DIR |=  BV(HAL_MAC_VREG_EN_GPIO_BIT); )


/* ------------------------------------------------------------------------------------------------
 *                                  RESETN Pin Configuration
 * ------------------------------------------------------------------------------------------------
 */
#define HAL_MAC_RESETN_GPIO_BIT                 7
#define HAL_MAC_DRIVE_RESETN_PIN_HIGH()         st( P5OUT |=  BV(HAL_MAC_RESETN_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_DRIVE_RESETN_PIN_LOW()          st( P5OUT &= ~BV(HAL_MAC_RESETN_GPIO_BIT); ) /* atomic operation */
#define HAL_MAC_CONFIG_RESETN_PIN_AS_OUTPUT()   st( P5DIR |=  BV(HAL_MAC_RESETN_GPIO_BIT); )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -