155 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			155 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/****************************************************************************
 | 
						|
 | 
						|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | 
						|
 | 
						|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | 
						|
be copied by any method or incorporated into another program without
 | 
						|
the express written consent of Aerospace C.Power. This Information or any portion
 | 
						|
thereof remains the property of Aerospace C.Power. The Information contained herein
 | 
						|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | 
						|
liability for its use in any way and conveys no license or title under
 | 
						|
any patent or copyright and makes no representation or warranty that this
 | 
						|
Information is free from patent or copyright infringement.
 | 
						|
 | 
						|
****************************************************************************/
 | 
						|
#ifndef __PHY_RF_CHN_H__
 | 
						|
#define __PHY_RF_CHN_H__
 | 
						|
 | 
						|
#include "os_types.h"
 | 
						|
#include "plc_protocol.h"
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
/* define rf chip version is invaild */
 | 
						|
#define RF_VER_INVAILD                      0
 | 
						|
/* define rf chip version is unkonwn */
 | 
						|
#define RF_VER_UNKNOWN                      7
 | 
						|
/* define rf chip version is version 1 */
 | 
						|
#define RF_VER_1                            1
 | 
						|
/* define rf chip version is version 2 */
 | 
						|
#define RF_VER_2                            2
 | 
						|
/* define rf chip version is version 3 */
 | 
						|
#define RF_VER_3                            3
 | 
						|
 | 
						|
/* define phy rf freq band */
 | 
						|
typedef enum _phy_rf_band {
 | 
						|
    /* band for smart power grid, freq range:470Mhz~510Mhz */
 | 
						|
    PHY_RF_BAND_NSG,
 | 
						|
    /* band for overseas power grid, freq range:863Mhz~876Mhz &
 | 
						|
     * 902Mhz~928Mhz.
 | 
						|
     */
 | 
						|
    PHY_RF_BAND_OVERSEAS,
 | 
						|
    PHY_RF_BAND_MAX
 | 
						|
} PHY_RF_BAND_T;
 | 
						|
 | 
						|
typedef enum _phy_rf_option_id_range_t {
 | 
						|
    /* option1 channel interval 1M */
 | 
						|
    PHY_RF_OPTION1_1M = RF_OPTION_1,
 | 
						|
    /* option2 channel interval 500K */
 | 
						|
    PHY_RF_OPTION2_500K = RF_OPTION_2,
 | 
						|
    /* option3 channel interval 200K */
 | 
						|
    PHY_RF_OPTION3_200K = RF_OPTION_3,
 | 
						|
    PHY_RF_OPTION_MAX = PHY_RF_OPTION3_200K + 1
 | 
						|
} phy_rf_option_id_range_t;
 | 
						|
 | 
						|
/* phy rf band NSG option  1,2,3 channel 1 cneter frequency, uint is Hz */
 | 
						|
#define PHY_RF_BAND_NSG_OPT1_CH1_CF             471000000
 | 
						|
#define PHY_RF_BAND_NSG_OPT2_CH1_CF             470500000
 | 
						|
#define PHY_RF_BAND_NSG_OPT3_CH1_CF             470100000
 | 
						|
/* phy rf band NSG option 1,2,3 channel id max */
 | 
						|
#define PHY_RF_BAND_NSG_OPT1_CH_ID_MAX          40
 | 
						|
#define PHY_RF_BAND_NSG_OPT2_CH_ID_MAX          80
 | 
						|
#define PHY_RF_BAND_NSG_OPT3_CH_ID_MAX          201
 | 
						|
/* define default options and channels for NSG band */
 | 
						|
#define PHY_RF_BAND_NSG_OPTION_DFT              RF_OPTION_2
 | 
						|
#define PHY_RF_BAND_NSG_CH_DFT                  RF_CHANNEL_ID_16
 | 
						|
 | 
						|
/* phy rf band OVERSEAS option 1,2,3 some typical channel cneter frequency,
 | 
						|
*  uint is Hz.
 | 
						|
*/
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT1_CH1_CF        864000000
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT1_CH13_CF       903000000
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT2_CH1_CF        863500000
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT2_CH26_CF       902500000
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT3_CH1_CF        863200000
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT3_CH65_CF       902200000
 | 
						|
/* phy rf band OVERSEAS option 1,2,3 channel id max */
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT1_CH_ID_MAX     38
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT2_CH_ID_MAX     77
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPT3_CH_ID_MAX     194
 | 
						|
/* define default options and channels for OVERSEAS band */
 | 
						|
#define PHY_RF_BAND_OVERSEAS_OPTION_DFT         RF_OPTION_2
 | 
						|
#define PHY_RF_BAND_OVERSEAS_CH_DFT             51
 | 
						|
 | 
						|
/* define the channel spacing of option 1, 1M, unit hz */
 | 
						|
#define OPTION1_CHANNEL_SPACING                 1000000
 | 
						|
/* define the channel spacing of option 2, 500K, unit hz */
 | 
						|
#define OPTION2_CHANNEL_SPACING                 500000
 | 
						|
/* define the channel spacing of option 3, 200K, unit hz */
 | 
						|
#define OPTION3_CHANNEL_SPACING                 200000
 | 
						|
 | 
						|
/* define the minimum value of RF signal gain */
 | 
						|
#define PHY_RF_GAIN_MIN                         13
 | 
						|
 | 
						|
/* define the mmaximum value of RF signal gain */
 | 
						|
#define PHY_RF_GAIN_MAX                         74
 | 
						|
 | 
						|
/*
 | 
						|
 * @breif phy_rf_get_channel_freq_by_id()   - get channel frequency by channel id.
 | 
						|
 * @param option                            - rf optino, PHY_RF_OPTION_xx.
 | 
						|
 * @param channel_id                        - rf channel see RF_CHANNEL_ID_xx.
 | 
						|
 * @return uint32_t                         - frequency, unit hz.
 | 
						|
 */
 | 
						|
uint32_t phy_rf_get_channel_freq_by_id(uint32_t option, uint32_t channel_id);
 | 
						|
 | 
						|
/*
 | 
						|
 * @breif phy_rf_get_channel_id_max()   - get channel id max.
 | 
						|
 * @param option                        - rf optino, PHY_RF_OPTION_xx.
 | 
						|
 * @return uint32_t               - channel id max. see OPTIONxx_CAHNNEL_ID_MAX.
 | 
						|
 */
 | 
						|
uint32_t phy_rf_get_channel_id_max(uint32_t option);
 | 
						|
 | 
						|
/*
 | 
						|
 * @breif phy_rf_check_rf_version()   - check whether the rf version is valid.
 | 
						|
 * @param ver                         - rf version, see RC_VER_XXX.
 | 
						|
 * @return uint8_t                    - 1 : valid, 0 : not valid.
 | 
						|
 */
 | 
						|
uint8_t phy_rf_check_rf_version(uint8_t ver);
 | 
						|
 | 
						|
/*
 | 
						|
 * @breif phy_rf_band_info_init()   - initialize phy  rf band info
 | 
						|
 * @param band_sel                  - RF band selection code, see PHY_RF_BAND_T
 | 
						|
 */
 | 
						|
void phy_rf_band_info_init(PHY_RF_BAND_T band_sel);
 | 
						|
 | 
						|
/*
 | 
						|
 * @breif phy_rf_get_band_sel()   -  get RF phy current band.
 | 
						|
 * @return PHY_RF_BAND_T          - RF band selection code, see PHY_RF_BAND_T
 | 
						|
 */
 | 
						|
PHY_RF_BAND_T phy_rf_get_band_sel();
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief phy_rf_get_power()    -  get RF phy default tx power.
 | 
						|
 * @param min                   - return min tx power
 | 
						|
 * @param max                   - return max tx power
 | 
						|
 * @param def                   - return default tx power
 | 
						|
 * @param full                  - return full tx power
 | 
						|
 */
 | 
						|
void phy_rf_get_power(int8_t *min, int8_t *max, int8_t *def, int8_t *full);
 | 
						|
 | 
						|
/*
 | 
						|
 * @breif phy_rf_get_default_cfg()   -  get the default working options and channels of
 | 
						|
 *                                      the current RF phy band
 | 
						|
 * @param opt                        - Return default option of current band
 | 
						|
 * @param ch                         - Return default option of current band
 | 
						|
 */
 | 
						|
void phy_rf_get_default_cfg(uint8_t *opt, uint8_t *ch);
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif // __PHY_RF_CHN_H__
 |