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
 |