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
|