235 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			235 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/****************************************************************************
 | 
						|
 | 
						|
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_CHN_EST_H
 | 
						|
#define __PHY_CHN_EST_H
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#pragma pack(push)  /* save the pack status */
 | 
						|
#pragma pack(1)     /* 1 byte align */
 | 
						|
 | 
						|
#define IOT_CHANNEL_DUMP_TEST_START          (0)
 | 
						|
#define IOT_CHANNEL_DUMP_TEST_DONE           (1)
 | 
						|
#define IOT_CHANNEL_TEST_END                 (3)
 | 
						|
 | 
						|
#define IOT_ADA_DUMP_MSG_PKT_SIZE            (128)
 | 
						|
#define IOT_PHY_CHN_DUMP_SIZE                (32)
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    ADC_DUMP_TRIG_ORIG_SPD      = 0,
 | 
						|
    ADC_DUMP_TRIG_1_2_SPD       = 1,
 | 
						|
    ADC_DUMP_TRIG_1_4_SPD       = 2,
 | 
						|
    ADC_DUMP_TRIG_1_8_SPD       = 3
 | 
						|
} iot_phy_chn_dump_rt_speed_t;
 | 
						|
 | 
						|
typedef enum {
 | 
						|
    ADC_DUMP_TRIG_CCA           = 0,
 | 
						|
    ADC_DUMP_TRIG_PKT_DECT      = 1,
 | 
						|
    ADC_DUMP_TRIG_SYNC_OK       = 2,
 | 
						|
    ADC_DUMP_TRIG_FC_DONE       = 3,
 | 
						|
    ADC_DUMP_TRIG_FC_CRC_OK     = 4,
 | 
						|
    ADC_DUMP_TRIG_FC_CRC_FAIL   = 5,
 | 
						|
    ADC_DUMP_TRIG_PB_DONE       = 6,
 | 
						|
    ADC_DUMP_TRIG_PB_CRC_OK     = 7,
 | 
						|
    ADC_DUMP_TRIG_PB_CRC_FAIL   = 8,
 | 
						|
    ADC_DUMP_TRIG_FC_OK_REV_PB  = 9,
 | 
						|
    ADC_DUMP_TRIG_PWR_JUMP      = 10,
 | 
						|
    ADC_DUMP_TRIG_RX_ERR_RCV_PB = 11,
 | 
						|
    ADC_DUMP_TRIG_TX_UNDERFLOW  = 12,
 | 
						|
    ADC_DUMP_TRIG_TX_ST_FILTER  = 13,
 | 
						|
    ADC_DUMP_TRIG_RX_ABORT      = 14
 | 
						|
} iot_phy_chn_dump_trig_mode_t;
 | 
						|
 | 
						|
/******************RX direction******************/
 | 
						|
 | 
						|
/**
 | 
						|
 *  description:        runtime dump type
 | 
						|
 *  range:              0 ~ 255
 | 
						|
 *  default:            0
 | 
						|
 *  display:            noise/trig:FC
 | 
						|
 */
 | 
						|
typedef enum {
 | 
						|
    IOT_PHY_CHN_DUMP_NOISE = 0,
 | 
						|
    IOT_PHY_CHN_DUMP_TRIG_THD,
 | 
						|
    IOT_PHY_CHN_DUMP_TRIG_FC,
 | 
						|
    IOT_PHY_CHN_DUMP_RF,
 | 
						|
} iot_phy_chn_dump_rt_typ_t;
 | 
						|
 | 
						|
/* runtime dump parameters */
 | 
						|
typedef struct _iot_phy_chn_dump_rt_param {
 | 
						|
    /**
 | 
						|
     * range:              -24 ~ 60 (fix gain)
 | 
						|
     * default:            127 (auto gain)
 | 
						|
     * display:            gain:auto/fix
 | 
						|
     */
 | 
						|
    int8_t gain;
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 96K
 | 
						|
     * default:            96K
 | 
						|
     * display:            sample points
 | 
						|
     */
 | 
						|
    uint32_t size;
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 1000000 ms
 | 
						|
     * default:            30000
 | 
						|
     * display:            timeout
 | 
						|
     */
 | 
						|
    uint32_t timeout;
 | 
						|
    /**
 | 
						|
     * range:              0,1,2,3
 | 
						|
     * default:            0
 | 
						|
     * display:            sample speed
 | 
						|
     */
 | 
						|
    iot_phy_chn_dump_rt_speed_t speed;
 | 
						|
} iot_phy_chn_dump_rt_param_t;
 | 
						|
 | 
						|
/* trig dump parameters */
 | 
						|
typedef struct _iot_phy_chn_dump_trig_param {
 | 
						|
    /**
 | 
						|
     * range:              -24 ~ 60 (fix gain)
 | 
						|
     * default:            127 (auto gain)
 | 
						|
     * display:            gain:auto/fix
 | 
						|
     */
 | 
						|
    int8_t gain;
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 96K
 | 
						|
     * default:            96K
 | 
						|
     * display:            buffer points
 | 
						|
     */
 | 
						|
    uint32_t buf_size;
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 96K
 | 
						|
     * default:            96K
 | 
						|
     * display:            sample points
 | 
						|
     */
 | 
						|
    uint32_t sample_size;
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 1000000 ms
 | 
						|
     * default:            30000
 | 
						|
     * display:            timeout
 | 
						|
     */
 | 
						|
    uint32_t timeout;
 | 
						|
    /**
 | 
						|
      * range:              0,1,2,3
 | 
						|
      * default:            0
 | 
						|
      * display:            sample speed
 | 
						|
      */
 | 
						|
    iot_phy_chn_dump_rt_speed_t speed;
 | 
						|
} iot_phy_chn_dump_trig_param_t;
 | 
						|
 | 
						|
/* trig threshold dump parameters */
 | 
						|
typedef struct _iot_phy_chn_dump_trig_thd_param {
 | 
						|
    /**
 | 
						|
     * range:              -512 ~ 511
 | 
						|
     * default:            100
 | 
						|
     * display:            level thrshold
 | 
						|
     */
 | 
						|
    int16_t thd;
 | 
						|
    iot_phy_chn_dump_trig_param_t trig_common;
 | 
						|
} iot_phy_chn_dump_trig_thd_param_t;
 | 
						|
 | 
						|
/* trig threshold dump parameters */
 | 
						|
typedef struct _iot_phy_chn_dump_trig_phy_param {
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 9 see macro define
 | 
						|
     * default:            4:ADC_DUMP_TRIG_FC_CRC_OK
 | 
						|
     * display:            trig id
 | 
						|
     */
 | 
						|
    iot_phy_chn_dump_trig_mode_t trig_id;
 | 
						|
    iot_phy_chn_dump_trig_param_t trig_common;
 | 
						|
} iot_phy_chn_dump_trig_phy_param_t;
 | 
						|
 | 
						|
/* rf dump parameters */
 | 
						|
typedef struct _iot_phy_chn_dump_rf_rx_param {
 | 
						|
    /**
 | 
						|
     * range:              13 ~ 74 (fix gain)
 | 
						|
     * default:            0 (auto gain)
 | 
						|
     * display:            gain:auto/fix
 | 
						|
     */
 | 
						|
    uint8_t gain;
 | 
						|
    /**
 | 
						|
     * range:              0 ~ 96K, unit is 4 bytes
 | 
						|
     * default:            96K
 | 
						|
     * display:            sample points
 | 
						|
     */
 | 
						|
    uint32_t size;
 | 
						|
    /**
 | 
						|
     * range:              100E6 ~ 1000E6, unit is 1Hz
 | 
						|
     * display:            center frequency
 | 
						|
     */
 | 
						|
    uint32_t lo_freq;
 | 
						|
    /**
 | 
						|
     * range:              1 ~ 0x1FF
 | 
						|
     * default:            0, current option rx filter
 | 
						|
     * display:            rx filter
 | 
						|
     */
 | 
						|
    uint16_t rx_filter;
 | 
						|
} iot_phy_chn_dump_rf_param_t;
 | 
						|
 | 
						|
/* runtime dump config */
 | 
						|
typedef struct _iot_phy_chn_dump_rt_cfg {
 | 
						|
    iot_phy_chn_dump_rt_typ_t dump_typ;
 | 
						|
    union {
 | 
						|
         iot_phy_chn_dump_rt_param_t force_dump;
 | 
						|
         iot_phy_chn_dump_trig_thd_param_t trig_thd;
 | 
						|
         iot_phy_chn_dump_trig_phy_param_t trig_phy;
 | 
						|
         iot_phy_chn_dump_rf_param_t rf_dump;
 | 
						|
    } param;
 | 
						|
} iot_phy_chn_dump_rt_cfg_t;
 | 
						|
 | 
						|
/* ada dump param */
 | 
						|
typedef struct _iot_phy_chn_dump_param{
 | 
						|
    /* trig point */
 | 
						|
    uint32_t trig_offset;
 | 
						|
    /* dump result */
 | 
						|
    uint32_t dump_rst;
 | 
						|
    /* dump max_pwr */
 | 
						|
    uint32_t  max_pwr;
 | 
						|
} iot_phy_chn_dump_param_t;
 | 
						|
 | 
						|
/* ada dump report */
 | 
						|
typedef struct _iot_phy_chn_dump_report {
 | 
						|
    /* configuration */
 | 
						|
    iot_phy_chn_dump_param_t params;
 | 
						|
    /* dummy data to make it a fixed size */
 | 
						|
    uint8_t dummy[IOT_PHY_CHN_DUMP_SIZE - sizeof(iot_phy_chn_dump_param_t)];
 | 
						|
} iot_phy_chn_dump_report_t;
 | 
						|
 | 
						|
/**************** dump result ******************/
 | 
						|
typedef struct _iot_phy_chn_dump_result {
 | 
						|
    int8_t gain;
 | 
						|
    uint8_t* start_ptr;
 | 
						|
    uint32_t len;
 | 
						|
    iot_phy_chn_dump_report_t report;
 | 
						|
} iot_phy_chn_dump_result;
 | 
						|
 | 
						|
 | 
						|
/***************** ipc msg type ******************/
 | 
						|
typedef struct _iot_channel_test_msg {
 | 
						|
    uint8_t msg_id;
 | 
						|
    uint8_t data[0];
 | 
						|
} iot_channel_test_msg;
 | 
						|
 | 
						|
#pragma pack(pop)   /* restore the pack status */
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif
 |