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

📄 dd._h

📁 ADI公司射频芯片7020+ATMEGA16射频模块源程序
💻 _H
字号:
/*****************************************************************************
*   dd.h
*****************************************************************************/

#ifndef _dd_H
#define _dd_H

/* Include dependencies */
#include   <iom16v.h>
#include   "adi_types.h"
#include   <string.h>
#include   <macros.h>
#include   <stdio.h> 



/****************************************************************************
 *                    Hardware pin mapping                                  *
 ****************************************************************************/

/* ADF7021 register interface */
#define ADF7021_SCLK             0     // PA      OUTPUT
#define ADF7021_SDATA            2     // PA      OUTPUT
#define ADF7021_SLE              3     // PA      OUTPUT
#define ADF7021_SREAD            1     // PA      INPUT
#define CTR_RXTX                 4     // PA      OUTPUT
#define RFMD_EN                  6     // PA      OUTPUT



/* Other ADF7021 connections */
#define ADF7021_CE                 3     // PB    OUTPUT
#define ADF7021_MUXOUT             2     // PB    INPUT


/* GPIO access to SPI lines */
#define SPI_SCLOCK                 7     // PB    INPUT
#define SPI_MISO                   6     // PB    OUTPUT
#define SPI_MOSI                   5     // PB    INPUT

/* LEDs */
#define TX_LED                     3     // PD    OUTPUT
#define RX_LED                     4     // PD    OUTPUT

/* I2C */
#define RF_SCL                     0     // PC    OUTPUT
#define RF_SDA                     1     // PC    OUTPUT
#define RF_WR                      7     // PD    OUTPUT 
/* INIT */
#define init                       6     // PD    INPUT
/* UART */
#define RXD_MCU                    0     // PD    INPUT
#define TXD_MCU                    1     // PD    OUTPUT





/* Default states to set ports to after power up */
/* (These must be set manually based on the mappings above) */
#define P0_DEFAULT              0xFF       // Output (P0 is open drain & has no pullups)
#define P1_DEFAULT              0x5F       // P1.7 & P1.5 digital in, others analogue in
#define P2_DEFAULT              0x5F       // Input, ADF7021_SCLK and ADF7021_SLE low
#define P3_DEFAULT              0x7F       // Input, ADF7021_CE low




/* Flag to indicate sleep state and cause of wakeup */
typedef enum
{
    AWAKE                   = 1
,   SLEEPING                = 2
,   POLLING                 = 3
,   WOKEN_BY_TIMER          = 4
,   WOKEN_BY_HW_EVENT       = 5

} SLEEP_FLAG_E;


typedef enum
{
    DATA_PORT_IDLE          = 1
,   DATA_PORT_TRANSMITTING  = 2
,   DATA_PORT_RECEIVING     = 3

} DATA_PORT_STATE_E;



typedef enum
{
    PHY_DISABLED        = 1
,   PHY_POWERON      	= 2
,   PHY_IN_RX_MODE      = 3
,   PHY_IN_TX_MODE      = 4
,   PHY_IN_RSSI_MODE    = 5

} PHY_STATE_E;


typedef enum
{
    UART_PORT_IDLE          = 1
,   UART_PORT_TRANSMITTING  = 2
,   UART_PORT_RECEIVING     = 3

} UART_PORT_STATE_E;


typedef enum
{
    HOST_CMD_IDLE   		=  0x00

,   HOST_CMD_TX_FRAME						=  0x10
,   HOST_CMD_TX_FRAME_FOREVER_STRART		=  0x18
,   HOST_CMD_TX_FRAME_FOREVER_STOP			=  0x19
,   HOST_CMD_TX_FRAME_MAX_TIMES				=  0x1A

,   HOST_CMD_RX_FRAME   	=  0x20

,   HOST_CMD_POWERON   		=  0x30
,   HOST_CMD_POWERDOWN 		=  0x31
,   HOST_CMD_TX_MODE 		=  0x32
,   HOST_CMD_RX_MODE 		=  0x33
,   HOST_CMD_REG_WRITE   	=  0x38		//write ADF70xx register
,   HOST_CMD_REG_READ  		=  0x39		//read ADF70xx register

,   HOST_CMD_READ_AFC   	=  0x50		//readback AFC
,   HOST_CMD_READ_RSSI   	=  0x54		//readback RSSI
,   HOST_CMD_READ_BATT   	=  0x55		//readback battery voltage
,   HOST_CMD_READ_TEMP   	=  0x56		//readback temperature
,   HOST_CMD_READ_EXT_ADC 	=  0x57		//readback external voltage
,   HOST_CMD_READ_FILTER   	=  0x58		//readback filter cal
,   HOST_CMD_READ_VERSION  	=  0x5C		//readback ADF70xx version

,   HOST_CMD_LOOPBACK   	=  0x80

} UART_CMD_E;


typedef enum
{
    PACKET_PHASE_IDLE           = 1
,   PACKET_PHASE_PREAMBLE       = 2
,   PACKET_PHASE_SYNCWORD       = 3
,   PACKET_PHASE_HEADER         = 4
,   PACKET_PHASE_PAYLOAD        = 5
,   PACKET_PHASE_CRC            = 6
,   PACKET_PHASE_ENDAMBLE       = 7
,   PACKET_PHASE_LENGTH         = 8
,   PACKET_PHASE_TX_FRAME       = 9
,   PACKET_PHASE_RX_FRAME       = 10

} PACKET_PHASE_E;



#define UART_PAYLOAD_LENGTH 252

/****************************************************************************
 *                  Public Variable and Buffer Prototypes                   *
 ****************************************************************************/
/* Variables exported from device drivers */
extern  SLEEP_FLAG_E sleep_flag;
extern  char dd_user_irq_occurred;

extern  unsigned char max_transmit_times;
extern  char need_keep_transmitting;
extern  char is_use_crystal;
extern  char is_ADF7021_AFC_ON;
extern  char is_fine_IF_filter_cal;
extern  char is_internal_PA_ramp_used;
extern  char has_set_tx_mode_before;
extern  char has_set_rx_mode_before;
extern  char dd_has_received_whole_frame;


#define max_uart_buffer_size 100
#define max_port_data_buffer_size 100

//for data port buffer and variable
extern unsigned char dd_port_data_tx_buffer[max_port_data_buffer_size];
extern unsigned char dd_port_data_rx_buffer[max_port_data_buffer_size];
extern unsigned char dd_port_data_tx_frame_idx;
extern unsigned char dd_port_data_rx_frame_idx;
extern unsigned char dd_port_data_rx_payload_length;
extern unsigned char * p_active_data_tx_buffer;

extern DATA_PORT_STATE_E dd_data_port_state;
extern PACKET_PHASE_E dd_data_packet_phase;


//!!!!!!!!!new
extern unsigned char rf_tx_state[3];
extern unsigned char uart_rx_rf_tx_count;
extern unsigned char time_count;



//for uart buffer and variable
extern unsigned char uart_rx_buffer[max_uart_buffer_size];
extern unsigned char uart_tx_buffer[max_uart_buffer_size];
extern unsigned char uart_buffer_tx_idx;
extern unsigned char uart_buffer_rx_idx;
extern unsigned char * p_active_uart_buffer;
extern unsigned char uart_rx_payload_length;
extern unsigned char uart_tx_payload_length;
extern UART_PORT_STATE_E dd_uart_host_state;
extern UART_CMD_E dd_uart_command;


//for phy
extern PHY_STATE_E phy_state;


//for mac
extern struct MAC_PACKET_HEADER_T mac_rx_packet_header;  
extern struct MAC_PACKET_HEADER_T mac_tx_packet_header; 
          
extern unsigned char * p_mac_active_tx_frame;

extern  unsigned char crc_lo, crc_hi;

extern  unsigned char temp_count[4];
extern  unsigned int  temp_count1[4];
extern  unsigned char led_state[2];
extern  unsigned char crc_tempn[2];


/****************************************************************************
 *                       Function Reference Prototypes                      *
 ****************************************************************************/
// for ADF7021.c
extern union ADF70XX_REG_T dd_read_7021_reg(unsigned char);
extern void dd_write_7021_reg(unsigned char * reg_bytes);
extern void dd_set_TX_to_RX_mode(void);
extern void dd_set_RX_mode(void);
extern void dd_set_TX_mode(void);
extern void dd_set_RX_to_TX_mode(void);
extern void dd_set_ADF7021_Power_on(void);
extern void dd_set_ADF7021_Power_off(void);
extern void dd_read_ADF70XX_version(void);
extern void test_mode(void);
extern void dd_read_filter_cal(void);
// for ADuC847.c
extern void dd_initialise(void);
extern void dd_idle(void);

extern void my_delay(long);
extern void my_delay_1(unsigned int length);
extern void dd_short_delay(unsigned char count);

//Data Port Functions
extern void dd_data_port_rx_handler(void);
extern unsigned int crc16(unsigned char byte);

// for main.c

extern void transmit_constant_frame(void);
extern void receive_constant_frame(void);

//Uart Functions
extern void dd_uart_port_tx(unsigned char * p_buffer, unsigned char tx_number);
extern void uart_rx_data_handler(void);

// const data matrix
//extern unsigned char code tx_frame_payload[];
//extern unsigned char code mac_preamble_syncword[];
//
extern unsigned char ADF7021_CE_SIGNAL;

#pragma interrupt_handler dd_spi_i2c_isr:11
#pragma interrupt_handler timer1_int:7
#pragma interrupt_handler dd_adf7021_sync_isr:19
#pragma interrupt_handler UART_RECV_DEAL:12
#pragma interrupt_handler UART_SEND_DEAL:14

extern  void  timer1_int (void);
extern  void  timer1_init (void);
extern  void USART_Init(void);



extern union ADF70XX_REG_T
    {
        unsigned long  whole_reg;
        unsigned char   byte[4];    // Warning: Be endian-specific when accessing bytes

    };
	
extern struct MAC_PACKET_HEADER_T
	{
	    unsigned int      seq_number;
	    unsigned char       short_address;
	    unsigned char       payload_length;
	
	};




#endif







⌨️ 快捷键说明

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