1269 lines
64 KiB
C
1269 lines
64 KiB
C
|
#ifndef _REG_RF_H_
|
||
|
#define _REG_RF_H_
|
||
|
|
||
|
#include "reg_base.h"
|
||
|
|
||
|
//================================
|
||
|
//BLOCK RF define
|
||
|
|
||
|
#define RF_BASE ((uint32_t)0x4002C000)
|
||
|
#define RF_DIG_CTRL_ADDR_OFFSET 0x000
|
||
|
#define RF_PLL_TAB_OFFSET_ADDR_OFFSET 0x004
|
||
|
#define RF_PLL_GAIN_CTRL_ADDR_OFFSET 0x008
|
||
|
#define RF_RSSI_CTRL_ADDR_OFFSET 0x00c
|
||
|
#define RF_PLL_DAC_TAB0_ADDR_OFFSET 0x010
|
||
|
#define RF_PLL_CAL_ST_ADDR_OFFSET 0x014
|
||
|
#define RF_PLL_FREQ_CTRL_ADDR_OFFSET 0x018
|
||
|
#define RF_PLL_DYM_CTRL_ADDR_OFFSET 0x01c
|
||
|
#define RF_FSM_DLY_CTRL0_ADDR_OFFSET 0x020
|
||
|
#define RF_FSM_DLY_CTRL1_ADDR_OFFSET 0x024
|
||
|
#define RF_PLL_CAL_DAC_STEP_ADDR_OFFSET 0x028
|
||
|
#define RF_PLL_GAIN_CAL_VAL_ADDR_OFFSET 0x02c
|
||
|
#define RF_PLL_DAC_TAB1_ADDR_OFFSET 0x030
|
||
|
#define RF_PLL_DAC_TAB2_ADDR_OFFSET 0x034
|
||
|
#define RF_DATA_DLY_CTRL_ADDR_OFFSET 0x038
|
||
|
#define RF_TX_CH_MAP_ADDR_OFFSET 0x03c
|
||
|
#define RF_RX_CHIDX37_MAP_ADDR_OFFSET 0x040
|
||
|
#define RF_RX_CHIDX38_MAP_ADDR_OFFSET 0x044
|
||
|
#define RF_RX_CHIDX39_MAP_ADDR_OFFSET 0x048
|
||
|
#define RF_BPFMIX_CTRL_ADDR_OFFSET 0x04c
|
||
|
#define RF_AGC_CTRL0_ADDR_OFFSET 0x050
|
||
|
#define RF_AGC_CTRL1_ADDR_OFFSET 0x054
|
||
|
#define RF_AGC_CTRL2_ADDR_OFFSET 0x058
|
||
|
#define RF_ANA_TRIM_ADDR_OFFSET 0x05c
|
||
|
#define RF_ANAMISC_CTRL1_ADDR_OFFSET 0x060
|
||
|
#define RF_ANA_PWR_CTRL_ADDR_OFFSET 0x064
|
||
|
#define RF_ANA_EN_CTRL_ADDR_OFFSET 0x068
|
||
|
#define RF_PLL_ANA_CTRL_ADDR_OFFSET 0x06c
|
||
|
#define RF_RF_RSV_ADDR_OFFSET 0x070
|
||
|
#define RF_RF_ANA_ST0_ADDR_OFFSET 0x074
|
||
|
|
||
|
//================================
|
||
|
//BLOCK RF reg struct define
|
||
|
typedef union //0x000
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t ANA_TEST_EN: 1; // bit0 ---
|
||
|
// 0: RF ANALOG digital input is controlled by rfdig_gsm
|
||
|
// 1: RF ANALOG digital input is controlled by reg
|
||
|
uint32_t LDO_TEST_EN: 1; // bit1 ---
|
||
|
// 0: analog block power is controlled by RF Dig FSM
|
||
|
// 1: analog block power is controlled by reg
|
||
|
uint32_t PLL_CAL_TEST_EN: 1; // bit2 ---
|
||
|
// 0: PLL AFC & GAIN CAL controlled by rf_pll_cal module
|
||
|
// 1: PLL AFC & GAIN CAL directed controlled by reg
|
||
|
uint32_t FSM_CTRL_SEL: 1; // bit3 ---
|
||
|
// 0: RF Dig FSM input signal is from BB
|
||
|
// 1: RF Dig FSM input signal is from rf_reg
|
||
|
// : channel number
|
||
|
// : rate
|
||
|
// : tx_en
|
||
|
// : rx_en
|
||
|
uint32_t PA_GAIN_TARGET_SEL: 1; // bit4 ---
|
||
|
// 0: the pa_gain_target is from BB
|
||
|
// 1: the pa_gain_target is from sw_pa_gain_target
|
||
|
uint32_t PLL_AFC_BY: 1; // bit5 ---
|
||
|
// 0: rfdig FSM start AFC calib
|
||
|
// 1: rfdig FSM bypass AFC calib,
|
||
|
uint32_t PLL_BPF_CAL_BY: 1; // bit6 ---
|
||
|
// 0: rfdig FSM start BPF calib
|
||
|
// 1: rfdig FSM bypass BPF calib,
|
||
|
uint32_t PLL_FREQ_SEL: 1; // bit7 ---
|
||
|
// 0: PLL frequency is controlled by channel number
|
||
|
// PLL_RTX_SEL is controlled by PLL_RTX_SEL_REG
|
||
|
// 1: PLL frequency is controlled by reg sw_di_s & sw_frac
|
||
|
// PLL_RTX_SEL is controlled by fsm_pll_rtx_sel
|
||
|
uint32_t PLL_FREQ_EXT_EN: 1; // bit8 ---
|
||
|
// 0: PLL_FREQ_ADJ[4:0] is driven by AFC Calib logic
|
||
|
// 1: PLL_FREQ_ADJ[4:0] is driven by PLL_FREQ_EXT
|
||
|
uint32_t PLL_GAIN_CAL_BY: 1; // bit9 ---
|
||
|
// 0: rfdig FSM start PLL GAIN calib
|
||
|
// 1: rfdig FSM bypass PLL GAIN calib
|
||
|
uint32_t PLL_VTXD_EXT_EN: 1; // bit10 ---
|
||
|
// 0: PLL_DAC_ADJ[4:0] is driven by GAIN Calib logic
|
||
|
// 1: PLL_DAC_ADJ[4:0] is driven by PLL_VTXD_EXT
|
||
|
uint32_t PLL_GAIN_CAL_STEP: 1; // bit11 ---
|
||
|
// 1: MCU step by step debug PLL GAIN CAL
|
||
|
// note: only effect when pll_gain_cal_by is 1
|
||
|
uint32_t PLL_GAIN_CAL_TAB: 1; // bit12 ---
|
||
|
// active when pll_gain_cal_by is 1 and pll_vtxd_ext_en is 0 & pll_gain_cal_step is 0
|
||
|
// 1: PLL_DAC_ADJ[4:0] is driven by lookup table
|
||
|
uint32_t PLL_GAIN_CAL_MODE: 2; // bit[14:13] ---
|
||
|
// 0,1 : dividor 2 , calib start from 5'h10
|
||
|
// 2: use the lookup table out, and detect the df1 error
|
||
|
// with pll_gain_cal_th, when df1 error is too larger than pll_gain_cal_dac_step
|
||
|
// just report pll_gain_cal_err state;
|
||
|
// the pll_gain_cal_err state is cleared when next time of tx_en is 1, or
|
||
|
// 3: use the lookup table out as gain cal start value, and then detect the df1 err
|
||
|
// the final calib out = table_out + df1 err / pll_gain_cal_dac_step
|
||
|
uint32_t PLL_AFC_ROUND: 1; // bit15 ---
|
||
|
// 0: floor result
|
||
|
uint32_t PLL_AFC_STEP: 1; // bit16 ---
|
||
|
// 1: MCU step by step debug PLL AFC
|
||
|
// note: only effect when pll_afc_by is 1
|
||
|
uint32_t PLL_FREQ_DC: 3; // bit[19:17] ---
|
||
|
// DC offset used for AFC calib done
|
||
|
// signed data: -4 ~ 3
|
||
|
// 1: round result
|
||
|
uint32_t PLL_AFC_MODE: 1; // bit20 ---
|
||
|
// 0: set hbw_en as 1 when AFC is done
|
||
|
// 1: don't set hbw_en as 1 when AFC is done
|
||
|
// note: set as 1 before makesure pll_gain_cal_by is 0
|
||
|
uint32_t PLL_AFC_FRAC_EN: 1; // bit21 ---
|
||
|
// 1: use PLL_FRAC[23]
|
||
|
uint32_t SW_PLL_CAL_CLKEN: 1; // bit22 ---
|
||
|
// enable PLL AFC & GAIN CAL clock by MCU
|
||
|
// set as 1 when pll_afc_by or pll_gain_cal_by is 1
|
||
|
uint32_t SW_AFC_EN: 1; // bit23 ---
|
||
|
// 1: PLL AFC Calibration start work
|
||
|
// note: only effect when pll_afc_by is 1
|
||
|
uint32_t SW_GAIN_CAL_EN: 1; // bit24 ---
|
||
|
// 1: PLL GAIN Calibration start work
|
||
|
// note: only effect when pll_gain_cal_by is 1
|
||
|
uint32_t SW_PLL_VREF_SEL: 1; // bit25 ---
|
||
|
// use to control DAC_VREF_SEL when pll_gain_cal_step is 1
|
||
|
// or used when pll_cal_test_en is 1
|
||
|
uint32_t SW_PLL_HBW_EN: 1; // bit26 ---
|
||
|
// 0: HBW_EN is driven by pll_cal logic
|
||
|
// 1: software set PLL is in HBW_EN as 1
|
||
|
uint32_t SDM_FRAC_INT_MODE: 1; // bit27 ---
|
||
|
uint32_t PLL_CAL_ERR_CLR: 1; // bit28 ---
|
||
|
uint32_t CAL_ERR_INT_EN: 1; // bit29 ---
|
||
|
// rf_int = cal_err_int_en & pll_gain_cal_err
|
||
|
uint32_t RF_DBG_SEL: 2; // bit[31:30] ---
|
||
|
// 2'b01: tx debug port
|
||
|
// 2'b10: rx debug port
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_DIG_CTRL_TypeDef; //0x000
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_ANA_TEST_EN_POS 0
|
||
|
#define RF_LDO_TEST_EN_POS 1
|
||
|
#define RF_PLL_CAL_TEST_EN_POS 2
|
||
|
#define RF_FSM_CTRL_SEL_POS 3
|
||
|
#define RF_PA_GAIN_TARGET_SEL_POS 4
|
||
|
#define RF_PLL_AFC_BY_POS 5
|
||
|
#define RF_PLL_BPF_CAL_BY_POS 6
|
||
|
#define RF_PLL_FREQ_SEL_POS 7
|
||
|
#define RF_PLL_FREQ_EXT_EN_POS 8
|
||
|
#define RF_PLL_GAIN_CAL_BY_POS 9
|
||
|
#define RF_PLL_VTXD_EXT_EN_POS 10
|
||
|
#define RF_PLL_GAIN_CAL_STEP_POS 11
|
||
|
#define RF_PLL_GAIN_CAL_TAB_POS 12
|
||
|
#define RF_PLL_GAIN_CAL_MODE_LSB 13
|
||
|
#define RF_PLL_GAIN_CAL_MODE_WIDTH 2
|
||
|
#define RF_PLL_AFC_ROUND_POS 15
|
||
|
#define RF_PLL_AFC_STEP_POS 16
|
||
|
#define RF_PLL_FREQ_DC_LSB 17
|
||
|
#define RF_PLL_FREQ_DC_WIDTH 3
|
||
|
#define RF_PLL_AFC_MODE_POS 20
|
||
|
#define RF_PLL_AFC_FRAC_EN_POS 21
|
||
|
#define RF_SW_PLL_CAL_CLKEN_POS 22
|
||
|
#define RF_SW_AFC_EN_POS 23
|
||
|
#define RF_SW_GAIN_CAL_EN_POS 24
|
||
|
#define RF_SW_PLL_VREF_SEL_POS 25
|
||
|
#define RF_SW_PLL_HBW_EN_POS 26
|
||
|
#define RF_SDM_FRAC_INT_MODE_POS 27
|
||
|
#define RF_PLL_CAL_ERR_CLR_POS 28
|
||
|
#define RF_CAL_ERR_INT_EN_POS 29
|
||
|
#define RF_RF_DBG_SEL_LSB 30
|
||
|
#define RF_RF_DBG_SEL_WIDTH 2
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x004
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t TX_FRAC_OFFSET: 10; // bit[9:0] ---
|
||
|
// signed data, unit : 1MHz/1024, near as 1KHz
|
||
|
// arrange: -512KHz ~ 511 KHz
|
||
|
uint32_t RX_FRAC_OFFSET: 10; // bit[19:10] ---
|
||
|
// signed data, unit : 1MHz/1024, near as 1KHz
|
||
|
// arrange: -512KHz ~ 511 KHz
|
||
|
uint32_t PLL_FREQ_EXT: 6; // bit[25:20] ---
|
||
|
// used when pll_freq_ext_en or pll_afc_step is 1
|
||
|
uint32_t RSV_END: 6; // bit[31:26]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_TAB_OFFSET_TypeDef; //0x004
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_TX_FRAC_OFFSET_LSB 0
|
||
|
#define RF_TX_FRAC_OFFSET_WIDTH 10
|
||
|
#define RF_RX_FRAC_OFFSET_LSB 10
|
||
|
#define RF_RX_FRAC_OFFSET_WIDTH 10
|
||
|
#define RF_PLL_FREQ_EXT_LSB 20
|
||
|
#define RF_PLL_FREQ_EXT_WIDTH 6
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x008
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t PLL_VTXD_EXT: 6; // bit[5:0] ---
|
||
|
// used when pll_vtxd_ext_en or pll_gain_cal_step is 1
|
||
|
uint32_t PLL_GAIN_CAL_DC: 3; // bit[8:6] ---
|
||
|
// DC offset used for GAIN CAL calib done
|
||
|
// signed data: -4 ~ 3
|
||
|
uint32_t PLL_GAIN_CAL_WIN: 6; // bit[14:9] ---
|
||
|
// PLL GAIN CAL step window
|
||
|
// step window time : (pll_gain_cal_win + 1) us
|
||
|
uint32_t PLL_GAIN_CAL_TH: 12; // bit[26:15] ---
|
||
|
// gain cal clock : afc_clk = clk_vco/ 4
|
||
|
// df1 target value is 250K, peak to peak is 2 * df1
|
||
|
// K is default 80 :
|
||
|
// 2* df1*K /4: 2* 250K * 80 /4 = 10M
|
||
|
// pll_gain_cal_th : 10 * (GAIN CAL step window)
|
||
|
uint32_t RSV_END: 5; // bit[31:27]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_GAIN_CTRL_TypeDef; //0x008
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_PLL_VTXD_EXT_LSB 0
|
||
|
#define RF_PLL_VTXD_EXT_WIDTH 6
|
||
|
#define RF_PLL_GAIN_CAL_DC_LSB 6
|
||
|
#define RF_PLL_GAIN_CAL_DC_WIDTH 3
|
||
|
#define RF_PLL_GAIN_CAL_WIN_LSB 9
|
||
|
#define RF_PLL_GAIN_CAL_WIN_WIDTH 6
|
||
|
#define RF_PLL_GAIN_CAL_TH_LSB 15
|
||
|
#define RF_PLL_GAIN_CAL_TH_WIDTH 12
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x00c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t RSSI_VAL: 8; // bit[7:0]
|
||
|
uint32_t AGC_LNA_GAIN: 4; // bit[11:9]
|
||
|
uint32_t AGC_BPF_GAIN_ADJ: 2; // bit[13:12]
|
||
|
uint32_t AGC_MIXL_GAIN_CTL: 1; // bit14
|
||
|
uint32_t AGC_MIXH_GAIN_CTL: 1; // bit15
|
||
|
uint32_t SW_RSSI_READY: 1; // bit16
|
||
|
uint32_t SW_RSSI_REQ: 1; // bit17
|
||
|
uint32_t RF_FSM_STATE: 5; // bit[22:18]
|
||
|
uint32_t RSV_END: 9; // bit[31:23]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_RSSI_CTRL_TypeDef; //0x00c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_RSSI_VAL_LSB 0
|
||
|
#define RF_RSSI_VAL_WIDTH 8
|
||
|
#define RF_AGC_LNA_GAIN_LSB 8
|
||
|
#define RF_AGC_LNA_GAIN_WIDTH 4
|
||
|
#define RF_AGC_BPF_GAIN_ADJ_LSB 12
|
||
|
#define RF_AGC_BPF_GAIN_ADJ_WIDTH 2
|
||
|
#define RF_AGC_MIXL_GAIN_CTL_POS 14
|
||
|
#define RF_AGC_MIXH_GAIN_CTL_POS 15
|
||
|
#define RF_SW_RSSI_READY_POS 16
|
||
|
#define RF_SW_RSSI_REQ_POS 17
|
||
|
#define RF_RF_FSM_STATE_LSB 18
|
||
|
#define RF_RF_FSM_STATE_WIDTH 5
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x010
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t PLL_DAC_ADJ00: 6; // bit[5:0] ---
|
||
|
// 2402 ~ 2407
|
||
|
uint32_t PLL_DAC_ADJ01: 6; // bit[11:6] ---
|
||
|
// 2416 ~ 2423
|
||
|
uint32_t PLL_DAC_ADJ02: 6; // bit[17:12] ---
|
||
|
// 2432 ~ 2439
|
||
|
uint32_t PLL_DAC_ADJ03: 6; // bit[23:18] ---
|
||
|
// 2448 ~ 2455
|
||
|
uint32_t PLL_DAC_ADJ04: 6; // bit[29:24] ---
|
||
|
// 2464 ~ 2471
|
||
|
uint32_t RSV_END: 2; // bit[31:30]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_DAC_TAB0_TypeDef; //0x010
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_PLL_DAC_ADJ00_LSB 0
|
||
|
#define RF_PLL_DAC_ADJ00_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ01_LSB 6
|
||
|
#define RF_PLL_DAC_ADJ01_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ02_LSB 12
|
||
|
#define RF_PLL_DAC_ADJ02_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ03_LSB 18
|
||
|
#define RF_PLL_DAC_ADJ03_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ04_LSB 24
|
||
|
#define RF_PLL_DAC_ADJ04_WIDTH 6
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x014
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t AFC_CALIB_DONE: 1; // bit0
|
||
|
uint32_t GAIN_CALIB_DONE: 1; // bit1
|
||
|
uint32_t PLL_FREQ_ADJ_ST: 6; // bit[7:2]
|
||
|
uint32_t PLL_GAIN_CAL_ST: 6; // bit[13:8]
|
||
|
uint32_t CALIB_CNT_RPT: 16; // bit[29:14]
|
||
|
uint32_t PLL_GAIN_CAL_ERR: 1; // bit30 ---
|
||
|
// when pll_gain_cal_mode is 2'b10
|
||
|
// set as 1 when the df1 err is too larger than pll_gain_cal_dac_step
|
||
|
// ceared by next tx_en is 1 or pll_cal_err_clr is 1
|
||
|
uint32_t RSV_END: 1; // bit31
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_CAL_ST_TypeDef; //0x014
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_AFC_CALIB_DONE_POS 0
|
||
|
#define RF_GAIN_CALIB_DONE_POS 1
|
||
|
#define RF_PLL_FREQ_ADJ_ST_LSB 2
|
||
|
#define RF_PLL_FREQ_ADJ_ST_WIDTH 6
|
||
|
#define RF_PLL_GAIN_CAL_ST_LSB 8
|
||
|
#define RF_PLL_GAIN_CAL_ST_WIDTH 6
|
||
|
#define RF_CALIB_CNT_RPT_LSB 14
|
||
|
#define RF_CALIB_CNT_RPT_WIDTH 16
|
||
|
#define RF_PLL_GAIN_CAL_ERR_POS 30
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x018
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t SW_PLL_FRAC: 24; // bit[23:0]
|
||
|
uint32_t SW_PLL_DI_S: 5; // bit[28:24]
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_FREQ_CTRL_TypeDef; //0x018
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_SW_PLL_FRAC_LSB 0
|
||
|
#define RF_SW_PLL_FRAC_WIDTH 24
|
||
|
#define RF_SW_PLL_DI_S_LSB 24
|
||
|
#define RF_SW_PLL_DI_S_WIDTH 5
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x01c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t SW_CH_NUM: 6; // bit[5:0] ---
|
||
|
// only used when FSM_CTRL_SEL is 1
|
||
|
uint32_t SW_RATE: 2; // bit[7:6] ---
|
||
|
// only used when FSM_CTRL_SEL is 1
|
||
|
// 00: 1M
|
||
|
// 01: 2M
|
||
|
// 1x: forbidden
|
||
|
uint32_t SW_TX_EN: 1; // bit8 ---
|
||
|
// only used when FSM_CTRL_SEL is 1
|
||
|
uint32_t SW_RX_EN: 1; // bit9 ---
|
||
|
// only used when FSM_CTRL_SEL is 1
|
||
|
uint32_t SW_PA_GAIN_TARGET: 4; // bit[13:10] ---
|
||
|
// when ana_test is 1
|
||
|
// PA_GAIN is driven by pa_gain_target
|
||
|
// else PA_GAIN is driven by RF Dig FSM, and ramp up to pa_gain_target
|
||
|
uint32_t RSV_END: 18; // bit[31:14]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_DYM_CTRL_TypeDef; //0x01c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_SW_CH_NUM_LSB 0
|
||
|
#define RF_SW_CH_NUM_WIDTH 6
|
||
|
#define RF_SW_RATE_LSB 6
|
||
|
#define RF_SW_RATE_WIDTH 2
|
||
|
#define RF_SW_TX_EN_POS 8
|
||
|
#define RF_SW_RX_EN_POS 9
|
||
|
#define RF_SW_PA_GAIN_TARGET_LSB 10
|
||
|
#define RF_SW_PA_GAIN_TARGET_WIDTH 4
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x020
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t LDO_START_TIME: 4; // bit[3:0] ---
|
||
|
// wait RF LDO stable time (ldo_start_time + 1) us , and then select PLL_RTX_SEL value
|
||
|
// unit is us
|
||
|
// 2~10 us, default is 3us
|
||
|
uint32_t EN_PLL_TIME: 4; // bit[7:4] ---
|
||
|
// after LDO stable, delay (en_pll_time + 1) us, then enable PLL; unit : us
|
||
|
// 2~10 us, default is 3us
|
||
|
uint32_t AFC_START_TIME: 4; // bit[11:8] ---
|
||
|
// delay (afc_start_time +1) us to enable AFC after pll enable,
|
||
|
// 2~10 us, default is 3us
|
||
|
uint32_t BPF_START_TIME: 6; // bit[17:12] ---
|
||
|
// delay (bpf_start_time + 1) us to enable BPF CAL after pll enable
|
||
|
uint32_t TX_END_DLY_TIME: 4; // bit[21:18] ---
|
||
|
// delay (tx_end_dly_time + 1) us from neg of bb_tx_en to neg modem_tx_en
|
||
|
uint32_t RX_END_DLY_TIME: 4; // bit[25:22] ---
|
||
|
// delay (rx_end_dly_time + 1) us from neg of bb_rx_en to neg modem_rx_en
|
||
|
uint32_t TX_PA_RAMPDOWN_TIME: 4; // bit[29:26] ---
|
||
|
// delay (tx_pa_rampdown_time+1) us to start PA RAMPDOWN after neg of modem_tx_en
|
||
|
uint32_t RSV_END: 2; // bit[31:30]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_FSM_DLY_CTRL0_TypeDef; //0x020
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_LDO_START_TIME_LSB 0
|
||
|
#define RF_LDO_START_TIME_WIDTH 4
|
||
|
#define RF_EN_PLL_TIME_LSB 4
|
||
|
#define RF_EN_PLL_TIME_WIDTH 4
|
||
|
#define RF_AFC_START_TIME_LSB 8
|
||
|
#define RF_AFC_START_TIME_WIDTH 4
|
||
|
#define RF_BPF_START_TIME_LSB 12
|
||
|
#define RF_BPF_START_TIME_WIDTH 6
|
||
|
#define RF_TX_END_DLY_TIME_LSB 18
|
||
|
#define RF_TX_END_DLY_TIME_WIDTH 4
|
||
|
#define RF_RX_END_DLY_TIME_LSB 22
|
||
|
#define RF_RX_END_DLY_TIME_WIDTH 4
|
||
|
#define RF_TX_PA_RAMPDOWN_TIME_LSB 26
|
||
|
#define RF_TX_PA_RAMPDOWN_TIME_WIDTH 4
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x024
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t LNA_START_TIME: 8; // bit[7:0] ---
|
||
|
// delay (lna_start_time +1) us to enable
|
||
|
// LNA, MIX, BPF, LMT, RSSI
|
||
|
// after pll enable
|
||
|
uint32_t EN_PA_TIME: 8; // bit[15:8] ---
|
||
|
// delay (enpa_time +1) us to enable PA_GAIN after tx enable
|
||
|
// unit : us
|
||
|
// Note: make sure en_pa_time is larger than afc_start_time
|
||
|
uint32_t AGC_START_TIME: 4; // bit[19:16] ---
|
||
|
// delay (agc_start_time +1) us to enable AGC after enable LNA & MIXER
|
||
|
uint32_t PA_STARTUP_TIME: 4; // bit[23:20] ---
|
||
|
// start PA rampup time after PA GAIN enable
|
||
|
// unit : us
|
||
|
uint32_t PA_STEP_TIME: 4; // bit[27:24] ---
|
||
|
// PA GAIN step time, unit : 0.5us
|
||
|
// step time : 0.5* ( pa_step_time + 1 ) us
|
||
|
// 0.5 ~ 8us
|
||
|
// 0: is forbidden
|
||
|
uint32_t RSV_END: 4; // bit[31:28]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_FSM_DLY_CTRL1_TypeDef; //0x024
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_LNA_START_TIME_LSB 0
|
||
|
#define RF_LNA_START_TIME_WIDTH 8
|
||
|
#define RF_EN_PA_TIME_LSB 8
|
||
|
#define RF_EN_PA_TIME_WIDTH 8
|
||
|
#define RF_AGC_START_TIME_LSB 16
|
||
|
#define RF_AGC_START_TIME_WIDTH 4
|
||
|
#define RF_PA_STARTUP_TIME_LSB 20
|
||
|
#define RF_PA_STARTUP_TIME_WIDTH 4
|
||
|
#define RF_PA_STEP_TIME_LSB 24
|
||
|
#define RF_PA_STEP_TIME_WIDTH 4
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x02c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t PLL_GAIN_CAL_DF0: 12; // bit[11:0]
|
||
|
uint32_t PLL_GAIN_CAL_DF1: 12; // bit[23:12]
|
||
|
uint32_t PLL_CAL_STATE: 5; // bit[28:24]
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_GAIN_CAL_VAL_TypeDef; //0x02c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_PLL_GAIN_CAL_DF0_LSB 0
|
||
|
#define RF_PLL_GAIN_CAL_DF0_WIDTH 12
|
||
|
#define RF_PLL_GAIN_CAL_DF1_LSB 12
|
||
|
#define RF_PLL_GAIN_CAL_DF1_WIDTH 12
|
||
|
#define RF_PLL_CAL_STATE_LSB 24
|
||
|
#define RF_PLL_CAL_STATE_WIDTH 5
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x030
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t PLL_DAC_ADJ10: 6; // bit[5:0] ---
|
||
|
// 2408 ~ 2415
|
||
|
uint32_t PLL_DAC_ADJ11: 6; // bit[11:6] ---
|
||
|
// 2424 ~ 2431
|
||
|
uint32_t PLL_DAC_ADJ12: 6; // bit[17:12] ---
|
||
|
// 2440 ~ 2447
|
||
|
uint32_t PLL_DAC_ADJ13: 6; // bit[23:18] ---
|
||
|
// 2456 ~ 2463
|
||
|
uint32_t PLL_DAC_ADJ14: 6; // bit[29:24] ---
|
||
|
// 2472 ~ 2479
|
||
|
uint32_t RSV_END: 2; // bit[31:30]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_DAC_TAB1_TypeDef; //0x030
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_PLL_DAC_ADJ10_LSB 0
|
||
|
#define RF_PLL_DAC_ADJ10_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ11_LSB 6
|
||
|
#define RF_PLL_DAC_ADJ11_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ12_LSB 12
|
||
|
#define RF_PLL_DAC_ADJ12_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ13_LSB 18
|
||
|
#define RF_PLL_DAC_ADJ13_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ14_LSB 24
|
||
|
#define RF_PLL_DAC_ADJ14_WIDTH 6
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x034
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t PLL_DAC_ADJ05: 6; // bit[5:0] ---
|
||
|
// 2480 ~ 2487
|
||
|
uint32_t PLL_DAC_ADJ15: 6; // bit[11:6] ---
|
||
|
// 2488 ~ 2495
|
||
|
uint32_t RSV_END: 20; // bit[31:12]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_DAC_TAB2_TypeDef; //0x034
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_PLL_DAC_ADJ05_LSB 0
|
||
|
#define RF_PLL_DAC_ADJ05_WIDTH 6
|
||
|
#define RF_PLL_DAC_ADJ15_LSB 6
|
||
|
#define RF_PLL_DAC_ADJ15_WIDTH 6
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x038
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t SDM_DAT_SEL: 1; // bit0 ---
|
||
|
// 0: SDM data from rf_ana
|
||
|
// 1: SDM data from mdm
|
||
|
uint32_t MDM_SDM_DATA_DLY_1M: 3; // bit[3:1]
|
||
|
uint32_t DAC_DATA_DLY_1M: 3; // bit[6:4]
|
||
|
uint32_t MDM_SDM_DATA_DLY_2M: 3; // bit[9:7]
|
||
|
uint32_t DAC_DATA_DLY_2M: 3; // bit[12:10]
|
||
|
uint32_t SDM_CLK_PH: 1; // bit13 ---
|
||
|
// 1: inverter the BAKIN_PFD clock for SDM
|
||
|
uint32_t RSV_END: 18; // bit[31:14]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_DATA_DLY_CTRL_TypeDef; //0x038
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_SDM_DAT_SEL_POS 0
|
||
|
#define RF_MDM_SDM_DATA_DLY_1M_LSB 1
|
||
|
#define RF_MDM_SDM_DATA_DLY_1M_WIDTH 3
|
||
|
#define RF_DAC_DATA_DLY_1M_LSB 4
|
||
|
#define RF_DAC_DATA_DLY_1M_WIDTH 3
|
||
|
#define RF_MDM_SDM_DATA_DLY_2M_LSB 7
|
||
|
#define RF_MDM_SDM_DATA_DLY_2M_WIDTH 3
|
||
|
#define RF_DAC_DATA_DLY_2M_LSB 10
|
||
|
#define RF_DAC_DATA_DLY_2M_WIDTH 3
|
||
|
#define RF_SDM_CLK_PH_POS 13
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x03c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t TX_DI_S_CHIDX37: 5; // bit[4:0]
|
||
|
uint32_t TX_FRAC_CHIDX37: 4; // bit[8:5] ---
|
||
|
// high 4bits of the tx_frac[23:0], low 20bits is 0
|
||
|
uint32_t RSV_NOUSE1: 1; // bit9
|
||
|
uint32_t TX_DI_S_CHIDX38: 5; // bit[14:10]
|
||
|
uint32_t TX_FRAC_CHIDX38: 4; // bit[18:15] ---
|
||
|
// high 4bits of the tx_frac[23:0], low 20bits is 0
|
||
|
uint32_t RSV_NOUSE2: 1; // bit19
|
||
|
uint32_t TX_DI_S_CHIDX39: 5; // bit[24:20]
|
||
|
uint32_t TX_FRAC_CHIDX39: 4; // bit[28:25] ---
|
||
|
// high 4bits of the tx_frac[23:0], low 20bits is 0
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_TX_CH_MAP_TypeDef; //0x03c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_TX_DI_S_CHIDX37_LSB 0
|
||
|
#define RF_TX_DI_S_CHIDX37_WIDTH 5
|
||
|
#define RF_TX_FRAC_CHIDX37_LSB 5
|
||
|
#define RF_TX_FRAC_CHIDX37_WIDTH 4
|
||
|
#define RF_TX_DI_S_CHIDX38_LSB 10
|
||
|
#define RF_TX_DI_S_CHIDX38_WIDTH 5
|
||
|
#define RF_TX_FRAC_CHIDX38_LSB 15
|
||
|
#define RF_TX_FRAC_CHIDX38_WIDTH 4
|
||
|
#define RF_TX_DI_S_CHIDX39_LSB 20
|
||
|
#define RF_TX_DI_S_CHIDX39_WIDTH 5
|
||
|
#define RF_TX_FRAC_CHIDX39_LSB 25
|
||
|
#define RF_TX_FRAC_CHIDX39_WIDTH 4
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x040
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t RX_DI_S_CHIDX37: 5; // bit[4:0]
|
||
|
uint32_t RX_FRAC_CHIDX37: 24; // bit[28:5]
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_RX_CHIDX37_MAP_TypeDef; //0x040
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_RX_DI_S_CHIDX37_LSB 0
|
||
|
#define RF_RX_DI_S_CHIDX37_WIDTH 5
|
||
|
#define RF_RX_FRAC_CHIDX37_LSB 5
|
||
|
#define RF_RX_FRAC_CHIDX37_WIDTH 24
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x044
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t RX_DI_S_CHIDX38: 5; // bit[4:0]
|
||
|
uint32_t RX_FRAC_CHIDX38: 24; // bit[28:5]
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_RX_CHIDX38_MAP_TypeDef; //0x044
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_RX_DI_S_CHIDX38_LSB 0
|
||
|
#define RF_RX_DI_S_CHIDX38_WIDTH 5
|
||
|
#define RF_RX_FRAC_CHIDX38_LSB 5
|
||
|
#define RF_RX_FRAC_CHIDX38_WIDTH 24
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x048
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t RX_DI_S_CHIDX39: 5; // bit[4:0]
|
||
|
uint32_t RX_FRAC_CHIDX39: 24; // bit[28:5]
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_RX_CHIDX39_MAP_TypeDef; //0x048
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_RX_DI_S_CHIDX39_LSB 0
|
||
|
#define RF_RX_DI_S_CHIDX39_WIDTH 5
|
||
|
#define RF_RX_FRAC_CHIDX39_LSB 5
|
||
|
#define RF_RX_FRAC_CHIDX39_WIDTH 24
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x04c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t BPF_BW_ADJ: 2; // bit[1:0]
|
||
|
uint32_t BPF_CAL_CODE_EXT: 6; // bit[7:2]
|
||
|
uint32_t BPF_CAL_CODE_EXT_EN: 1; // bit8
|
||
|
uint32_t BPF_CAL_EN: 1; // bit9 ---
|
||
|
// only used when pll_bpf_cal_by is 1
|
||
|
uint32_t BPF_CENT_ADJ: 2; // bit[11:10]
|
||
|
uint32_t BPF_IADJ: 3; // bit[14:12]
|
||
|
uint32_t BPF_MODE_SEL: 1; // bit15
|
||
|
uint32_t MIXH_BIAS_CTL: 3; // bit[18:16]
|
||
|
uint32_t MIXH_BIAS_SEL: 1; // bit19
|
||
|
uint32_t MIXH_ENB_CAP: 1; // bit20
|
||
|
uint32_t MIXL_BIAS_CTL: 3; // bit[23:21]
|
||
|
uint32_t MIXL_BIAS_SEL: 1; // bit24
|
||
|
uint32_t PA_CAP: 4; // bit[28:25]
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_BPFMIX_CTRL_TypeDef; //0x04c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_BPF_BW_ADJ_LSB 0
|
||
|
#define RF_BPF_BW_ADJ_WIDTH 2
|
||
|
#define RF_BPF_CAL_CODE_EXT_LSB 2
|
||
|
#define RF_BPF_CAL_CODE_EXT_WIDTH 6
|
||
|
#define RF_BPF_CAL_CODE_EXT_EN_POS 8
|
||
|
#define RF_BPF_CAL_EN_POS 9
|
||
|
#define RF_BPF_CENT_ADJ_LSB 10
|
||
|
#define RF_BPF_CENT_ADJ_WIDTH 2
|
||
|
#define RF_BPF_IADJ_LSB 12
|
||
|
#define RF_BPF_IADJ_WIDTH 3
|
||
|
#define RF_BPF_MODE_SEL_POS 15
|
||
|
#define RF_MIXH_BIAS_CTL_LSB 16
|
||
|
#define RF_MIXH_BIAS_CTL_WIDTH 3
|
||
|
#define RF_MIXH_BIAS_SEL_POS 19
|
||
|
#define RF_MIXH_ENB_CAP_POS 20
|
||
|
#define RF_MIXL_BIAS_CTL_LSB 21
|
||
|
#define RF_MIXL_BIAS_CTL_WIDTH 3
|
||
|
#define RF_MIXL_BIAS_SEL_POS 24
|
||
|
#define RF_PA_CAP_LSB 25
|
||
|
#define RF_PA_CAP_WIDTH 4
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x050
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t AGC_S00H: 6; // bit[5:0]
|
||
|
uint32_t AGC_S00L: 6; // bit[11:6]
|
||
|
uint32_t AGC_S00_BPF_ADJ: 2; // bit[13:12]
|
||
|
uint32_t AGC_S00_LNA_ADJ: 2; // bit[15:14]
|
||
|
uint32_t AGC_S00_LNA_BYPS_ADJ: 1; // bit16
|
||
|
uint32_t AGC_S00_LNA_EN_ADJ: 1; // bit17
|
||
|
uint32_t AGC_S00_MIX_ADJ: 2; // bit[19:18]
|
||
|
uint32_t AGC_POWER_DET_EN: 1; // bit20
|
||
|
uint32_t AGC_TEST_EN: 1; // bit21
|
||
|
uint32_t AGC_TEST_S: 2; // bit[23:22]
|
||
|
uint32_t AGC_T_ADJ: 2; // bit[25:24]
|
||
|
uint32_t AGC_VH_ADD_ADJ: 2; // bit[27:26]
|
||
|
uint32_t DISABLE_AGC: 1; // bit28
|
||
|
uint32_t RSV_END: 3; // bit[31:29]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_AGC_CTRL0_TypeDef; //0x050
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_AGC_S00H_LSB 0
|
||
|
#define RF_AGC_S00H_WIDTH 6
|
||
|
#define RF_AGC_S00L_LSB 6
|
||
|
#define RF_AGC_S00L_WIDTH 6
|
||
|
#define RF_AGC_S00_BPF_ADJ_LSB 12
|
||
|
#define RF_AGC_S00_BPF_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S00_LNA_ADJ_LSB 14
|
||
|
#define RF_AGC_S00_LNA_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S00_LNA_BYPS_ADJ_POS 16
|
||
|
#define RF_AGC_S00_LNA_EN_ADJ_POS 17
|
||
|
#define RF_AGC_S00_MIX_ADJ_LSB 18
|
||
|
#define RF_AGC_S00_MIX_ADJ_WIDTH 2
|
||
|
#define RF_AGC_POWER_DET_EN_POS 20
|
||
|
#define RF_AGC_TEST_EN_POS 21
|
||
|
#define RF_AGC_TEST_S_LSB 22
|
||
|
#define RF_AGC_TEST_S_WIDTH 2
|
||
|
#define RF_AGC_T_ADJ_LSB 24
|
||
|
#define RF_AGC_T_ADJ_WIDTH 2
|
||
|
#define RF_AGC_VH_ADD_ADJ_LSB 26
|
||
|
#define RF_AGC_VH_ADD_ADJ_WIDTH 2
|
||
|
#define RF_DISABLE_AGC_POS 28
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x054
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t AGC_S01H: 6; // bit[5:0]
|
||
|
uint32_t AGC_S01L: 6; // bit[11:6]
|
||
|
uint32_t AGC_S01_BPF_ADJ: 2; // bit[13:12]
|
||
|
uint32_t AGC_S01_LNA_ADJ: 2; // bit[15:14]
|
||
|
uint32_t AGC_S01_LNA_BYPS_ADJ: 1; // bit16
|
||
|
uint32_t AGC_S01_LNA_EN_ADJ: 1; // bit17
|
||
|
uint32_t AGC_S01_MIX_ADJ: 2; // bit[19:18]
|
||
|
uint32_t RSV_END: 12; // bit[31:20]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_AGC_CTRL1_TypeDef; //0x054
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_AGC_S01H_LSB 0
|
||
|
#define RF_AGC_S01H_WIDTH 6
|
||
|
#define RF_AGC_S01L_LSB 6
|
||
|
#define RF_AGC_S01L_WIDTH 6
|
||
|
#define RF_AGC_S01_BPF_ADJ_LSB 12
|
||
|
#define RF_AGC_S01_BPF_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S01_LNA_ADJ_LSB 14
|
||
|
#define RF_AGC_S01_LNA_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S01_LNA_BYPS_ADJ_POS 16
|
||
|
#define RF_AGC_S01_LNA_EN_ADJ_POS 17
|
||
|
#define RF_AGC_S01_MIX_ADJ_LSB 18
|
||
|
#define RF_AGC_S01_MIX_ADJ_WIDTH 2
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x058
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t AGC_S10L: 6; // bit[5:0]
|
||
|
uint32_t AGC_S10_BPF_ADJ: 2; // bit[7:6]
|
||
|
uint32_t AGC_S10_LNA_ADJ: 2; // bit[9:8]
|
||
|
uint32_t AGC_S10_LNA_BYPS_ADJ: 1; // bit10
|
||
|
uint32_t AGC_S10_LNA_EN_ADJ: 1; // bit11
|
||
|
uint32_t AGC_S10_MIX_ADJ: 2; // bit[13:12]
|
||
|
uint32_t RSV_NOUSE1: 2; // bit[15:14]
|
||
|
uint32_t AGC_S11_BPF_ADJ: 2; // bit[17:16]
|
||
|
uint32_t AGC_S11_LNA_ADJ: 2; // bit[19:18]
|
||
|
uint32_t AGC_S11_LNA_BYPS_ADJ: 1; // bit20
|
||
|
uint32_t AGC_S11_LNA_EN_ADJ: 1; // bit21
|
||
|
uint32_t AGC_S11_MIX_ADJ: 2; // bit[23:22]
|
||
|
uint32_t RSV_END: 8; // bit[31:24]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_AGC_CTRL2_TypeDef; //0x058
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_AGC_S10L_LSB 0
|
||
|
#define RF_AGC_S10L_WIDTH 6
|
||
|
#define RF_AGC_S10_BPF_ADJ_LSB 6
|
||
|
#define RF_AGC_S10_BPF_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S10_LNA_ADJ_LSB 8
|
||
|
#define RF_AGC_S10_LNA_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S10_LNA_BYPS_ADJ_POS 10
|
||
|
#define RF_AGC_S10_LNA_EN_ADJ_POS 11
|
||
|
#define RF_AGC_S10_MIX_ADJ_LSB 12
|
||
|
#define RF_AGC_S10_MIX_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S11_BPF_ADJ_LSB 16
|
||
|
#define RF_AGC_S11_BPF_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S11_LNA_ADJ_LSB 18
|
||
|
#define RF_AGC_S11_LNA_ADJ_WIDTH 2
|
||
|
#define RF_AGC_S11_LNA_BYPS_ADJ_POS 20
|
||
|
#define RF_AGC_S11_LNA_EN_ADJ_POS 21
|
||
|
#define RF_AGC_S11_MIX_ADJ_LSB 22
|
||
|
#define RF_AGC_S11_MIX_ADJ_WIDTH 2
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x05c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t BG_BIAS_TRIM: 2; // bit[1:0]
|
||
|
uint32_t BG_RES_TRIM: 5; // bit[6:2]
|
||
|
uint32_t BG_VREF_FINE: 3; // bit[9:7]
|
||
|
uint32_t LDO_RX_TRIM: 3; // bit[12:10]
|
||
|
uint32_t LDO_TX_TRIM: 3; // bit[15:13]
|
||
|
uint32_t LNA_RES_TRIM: 3; // bit[18:16]
|
||
|
uint32_t BPF_GAIN_ADJ: 2; // bit[20:19]
|
||
|
uint32_t MIXL_GAIN_CTL: 1; // bit21
|
||
|
uint32_t MIXH_GAIN_CTL: 1; // bit22
|
||
|
uint32_t LNA_GAIN: 4; // bit[26:23]
|
||
|
uint32_t DAC_BLE_DELAY_ADJ_2M: 5; // bit[31:27]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_ANA_TRIM_TypeDef; //0x05c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_BG_BIAS_TRIM_LSB 0
|
||
|
#define RF_BG_BIAS_TRIM_WIDTH 2
|
||
|
#define RF_BG_RES_TRIM_LSB 2
|
||
|
#define RF_BG_RES_TRIM_WIDTH 5
|
||
|
#define RF_BG_VREF_FINE_LSB 7
|
||
|
#define RF_BG_VREF_FINE_WIDTH 3
|
||
|
#define RF_LDO_RX_TRIM_LSB 10
|
||
|
#define RF_LDO_RX_TRIM_WIDTH 3
|
||
|
#define RF_LDO_TX_TRIM_LSB 13
|
||
|
#define RF_LDO_TX_TRIM_WIDTH 3
|
||
|
#define RF_LNA_RES_TRIM_LSB 16
|
||
|
#define RF_LNA_RES_TRIM_WIDTH 3
|
||
|
#define RF_BPF_GAIN_ADJ_LSB 19
|
||
|
#define RF_BPF_GAIN_ADJ_WIDTH 2
|
||
|
#define RF_MIXL_GAIN_CTL_POS 21
|
||
|
#define RF_MIXH_GAIN_CTL_POS 22
|
||
|
#define RF_LNA_GAIN_LSB 23
|
||
|
#define RF_LNA_GAIN_WIDTH 4
|
||
|
#define RF_DAC_BLE_DELAY_ADJ_2M_LSB 27
|
||
|
#define RF_DAC_BLE_DELAY_ADJ_2M_WIDTH 5
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x060
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t DAC_BLE_DELAY_ADJ_1M: 5; // bit[4:0]
|
||
|
uint32_t DAC_REFL_ADJ: 3; // bit[7:5]
|
||
|
uint32_t DAC_CAL_DATA_EXT: 1; // bit8
|
||
|
uint32_t DAC_CAL_EN_EXT: 1; // bit9
|
||
|
uint32_t DAC_EXT_EN: 1; // bit10
|
||
|
uint32_t DAC_REFH_ADDJ: 1; // bit11
|
||
|
uint32_t DAC_REFH_ADJ: 1; // bit12
|
||
|
uint32_t BYP_LDOIF: 1; // bit13
|
||
|
uint32_t BYP_LDOPLL: 1; // bit14
|
||
|
uint32_t BYP_LDOTX: 1; // bit15
|
||
|
uint32_t BYP_LDOVCO: 1; // bit16
|
||
|
uint32_t CF_BW08M_ADJ: 1; // bit17
|
||
|
uint32_t RSV_NOUSE1: 1; // bit18
|
||
|
uint32_t TSTEN_CBPF: 1; // bit19
|
||
|
uint32_t TSTEN_RSSI: 1; // bit20
|
||
|
uint32_t AT0_SEL: 4; // bit[24:21]
|
||
|
uint32_t AT1_SEL: 4; // bit[28:25]
|
||
|
uint32_t VCO_RES: 2; // bit[30:29]
|
||
|
uint32_t VCOAFC_SEL: 1; // bit31
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_ANAMISC_CTRL1_TypeDef; //0x060
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_DAC_BLE_DELAY_ADJ_1M_LSB 0
|
||
|
#define RF_DAC_BLE_DELAY_ADJ_1M_WIDTH 5
|
||
|
#define RF_DAC_REFL_ADJ_LSB 5
|
||
|
#define RF_DAC_REFL_ADJ_WIDTH 3
|
||
|
#define RF_DAC_CAL_DATA_EXT_POS 8
|
||
|
#define RF_DAC_CAL_EN_EXT_POS 9
|
||
|
#define RF_DAC_EXT_EN_POS 10
|
||
|
#define RF_DAC_REFH_ADDJ_POS 11
|
||
|
#define RF_DAC_REFH_ADJ_POS 12
|
||
|
#define RF_BYP_LDOIF_POS 13
|
||
|
#define RF_BYP_LDOPLL_POS 14
|
||
|
#define RF_BYP_LDOTX_POS 15
|
||
|
#define RF_BYP_LDOVCO_POS 16
|
||
|
#define RF_CF_BW08M_ADJ_POS 17
|
||
|
#define RF_TSTEN_CBPF_POS 19
|
||
|
#define RF_TSTEN_RSSI_POS 20
|
||
|
#define RF_AT0_SEL_LSB 21
|
||
|
#define RF_AT0_SEL_WIDTH 4
|
||
|
#define RF_AT1_SEL_LSB 25
|
||
|
#define RF_AT1_SEL_WIDTH 4
|
||
|
#define RF_VCO_RES_LSB 29
|
||
|
#define RF_VCO_RES_WIDTH 2
|
||
|
#define RF_VCOAFC_SEL_POS 31
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x064
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t TEST_EN_LDO_VCO: 1; // bit0 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t TEST_EN_LDO_PA: 1; // bit1 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t TEST_EN_LDO_IF: 1; // bit2 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t TEST_EN_LDO_PLL: 1; // bit3 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t TEST_EN_DAC_DIG_PWR: 1; // bit4 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t TEST_EN_AGC_PWR: 1; // bit5 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t TEST_EN_LDO_TX: 1; // bit6 ---
|
||
|
// used when ldo_test_en is 1
|
||
|
uint32_t RSV_NOUSE1: 1; // bit7 ---
|
||
|
uint32_t TX_EN_LDO_VCO: 1; // bit8 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t TX_EN_LDO_PA: 1; // bit9 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t TX_EN_LDO_IF: 1; // bit10 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t TX_EN_LDO_PLL: 1; // bit11 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t TX_EN_DAC_DIG_PWR: 1; // bit12 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t TX_EN_AGC_PWR: 1; // bit13 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t TX_EN_LDO_TX: 1; // bit14 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in TX mode
|
||
|
uint32_t RSV_NOUSE2: 1; // bit15 ---
|
||
|
uint32_t RX_EN_LDO_VCO: 1; // bit16 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t RX_EN_LDO_PA: 1; // bit17 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t RX_EN_LDO_IF: 1; // bit18 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t RX_EN_LDO_PLL: 1; // bit19 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t RX_EN_DAC_DIG_PWR: 1; // bit20 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t RX_EN_AGC_PWR: 1; // bit21 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t RX_EN_LDO_TX: 1; // bit22 ---
|
||
|
// used when RF is controlled by RF Dig FSM & in RX mode
|
||
|
uint32_t CLK_EN_DAC: 1; // bit23
|
||
|
uint32_t CLK_EN_BPF: 1; // bit24
|
||
|
uint32_t CLK_EN_PLL: 1; // bit25
|
||
|
uint32_t CLK_EN_AGC: 1; // bit26
|
||
|
uint32_t RSV_END: 5; // bit[31:27]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_ANA_PWR_CTRL_TypeDef; //0x064
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_TEST_EN_LDO_VCO_POS 0
|
||
|
#define RF_TEST_EN_LDO_PA_POS 1
|
||
|
#define RF_TEST_EN_LDO_IF_POS 2
|
||
|
#define RF_TEST_EN_LDO_PLL_POS 3
|
||
|
#define RF_TEST_EN_DAC_DIG_PWR_POS 4
|
||
|
#define RF_TEST_EN_AGC_PWR_POS 5
|
||
|
#define RF_TEST_EN_LDO_TX_POS 6
|
||
|
#define RF_TX_EN_LDO_VCO_POS 8
|
||
|
#define RF_TX_EN_LDO_PA_POS 9
|
||
|
#define RF_TX_EN_LDO_IF_POS 10
|
||
|
#define RF_TX_EN_LDO_PLL_POS 11
|
||
|
#define RF_TX_EN_DAC_DIG_PWR_POS 12
|
||
|
#define RF_TX_EN_AGC_PWR_POS 13
|
||
|
#define RF_TX_EN_LDO_TX_POS 14
|
||
|
#define RF_RX_EN_LDO_VCO_POS 16
|
||
|
#define RF_RX_EN_LDO_PA_POS 17
|
||
|
#define RF_RX_EN_LDO_IF_POS 18
|
||
|
#define RF_RX_EN_LDO_PLL_POS 19
|
||
|
#define RF_RX_EN_DAC_DIG_PWR_POS 20
|
||
|
#define RF_RX_EN_AGC_PWR_POS 21
|
||
|
#define RF_RX_EN_LDO_TX_POS 22
|
||
|
#define RF_CLK_EN_DAC_POS 23
|
||
|
#define RF_CLK_EN_BPF_POS 24
|
||
|
#define RF_CLK_EN_PLL_POS 25
|
||
|
#define RF_CLK_EN_AGC_POS 26
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x068
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t EN_AGC_REG: 1; // bit0 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_BPF_REG: 1; // bit1 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_DAC_BLE_REG: 1; // bit2 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_LMT_RSSI_REG: 1; // bit3 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_LNA_REG: 1; // bit4 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_MIXH_REG: 1; // bit5 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_MIXL_REG: 1; // bit6 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_PA_REG: 1; // bit7 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_PLL_REG: 1; // bit8 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_RSSI_I_REG: 1; // bit9 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_RSSI_Q_REG: 1; // bit10 ---
|
||
|
// 0: signal is controlled by RF Dig FSM
|
||
|
// 1: the signal to analog is 1
|
||
|
uint32_t EN_FB_DIV_REG: 1; // bit11 ---
|
||
|
// used when pll_cal_test_en as 1
|
||
|
uint32_t PLL_CALIB_PD_REG: 1; // bit12 ---
|
||
|
// used when pll_cal_test_en as 1
|
||
|
uint32_t TX_OPEN_PD_REG: 1; // bit13 ---
|
||
|
// used when pll_cal_test_en as 1
|
||
|
uint32_t BAND_CAL_DONE_REG: 1; // bit14 ---
|
||
|
// used when pll_cal_test_en as 1
|
||
|
uint32_t GAIN_CAL_DONE_REG: 1; // bit15 ---
|
||
|
// used when pll_cal_test_en as 1
|
||
|
uint32_t EN_BG: 1; // bit16 ---
|
||
|
// direct control RF ANA
|
||
|
uint32_t EN_LMT_OUTI_EXT: 1; // bit17 ---
|
||
|
// direct control RF ANA
|
||
|
uint32_t EN_LMT_OUTQ_EXT: 1; // bit18 ---
|
||
|
// direct control RF ANA
|
||
|
uint32_t EN_LNA_BYPS: 1; // bit19 ---
|
||
|
// direct control RF ANA
|
||
|
uint32_t EN_DAC_ZB: 1; // bit20 ---
|
||
|
// direct control RF ANA
|
||
|
uint32_t CF_BW12M_ADJ_REG: 1; // bit21 ---
|
||
|
// used when ana_test_en is 1
|
||
|
uint32_t DAC_VCTRL_BUF_REG: 1; // bit22
|
||
|
uint32_t DAC_VCTRL_EN_REG: 1; // bit23
|
||
|
uint32_t ANT_CAP_RX: 4; // bit[27:24]
|
||
|
uint32_t ANT_CAP_TX: 4; // bit[31:28]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_ANA_EN_CTRL_TypeDef; //0x068
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_EN_AGC_REG_POS 0
|
||
|
#define RF_EN_BPF_REG_POS 1
|
||
|
#define RF_EN_DAC_BLE_REG_POS 2
|
||
|
#define RF_EN_LMT_RSSI_REG_POS 3
|
||
|
#define RF_EN_LNA_REG_POS 4
|
||
|
#define RF_EN_MIXH_REG_POS 5
|
||
|
#define RF_EN_MIXL_REG_POS 6
|
||
|
#define RF_EN_PA_REG_POS 7
|
||
|
#define RF_EN_PLL_REG_POS 8
|
||
|
#define RF_EN_RSSI_I_REG_POS 9
|
||
|
#define RF_EN_RSSI_Q_REG_POS 10
|
||
|
#define RF_EN_FB_DIV_REG_POS 11
|
||
|
#define RF_PLL_CALIB_PD_REG_POS 12
|
||
|
#define RF_TX_OPEN_PD_REG_POS 13
|
||
|
#define RF_BAND_CAL_DONE_REG_POS 14
|
||
|
#define RF_GAIN_CAL_DONE_REG_POS 15
|
||
|
#define RF_EN_BG_POS 16
|
||
|
#define RF_EN_LMT_OUTI_EXT_POS 17
|
||
|
#define RF_EN_LMT_OUTQ_EXT_POS 18
|
||
|
#define RF_EN_LNA_BYPS_POS 19
|
||
|
#define RF_EN_DAC_ZB_POS 20
|
||
|
#define RF_CF_BW12M_ADJ_REG_POS 21
|
||
|
#define RF_DAC_VCTRL_BUF_REG_POS 22
|
||
|
#define RF_DAC_VCTRL_EN_REG_POS 23
|
||
|
#define RF_ANT_CAP_RX_LSB 24
|
||
|
#define RF_ANT_CAP_RX_WIDTH 4
|
||
|
#define RF_ANT_CAP_TX_LSB 28
|
||
|
#define RF_ANT_CAP_TX_WIDTH 4
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x06c
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t PLL_BW_ADJ: 3; // bit[2:0]
|
||
|
uint32_t PLL_CP_OS_EN: 1; // bit3
|
||
|
uint32_t PLL_CP_OS_ADJ: 4; // bit[7:4]
|
||
|
uint32_t PLL_DIV_ADJ: 2; // bit[9:8]
|
||
|
uint32_t PLL_DI_P: 5; // bit[14:10]
|
||
|
uint32_t PLL_FAST_LOCK_EN: 1; // bit15
|
||
|
uint32_t PLL_FBDIV_RST_EXT: 1; // bit16
|
||
|
uint32_t PLL_FBDIV_RST_SEL: 1; // bit17
|
||
|
uint32_t PLL_LOCK_BYPS: 1; // bit18
|
||
|
uint32_t PLL_PS_CNT_RST_SEL: 1; // bit19
|
||
|
uint32_t PLL_REF_SEL: 1; // bit20
|
||
|
uint32_t PLL_SDM_TEST_EN: 1; // bit21
|
||
|
uint32_t PLL_VCO_ADJ: 3; // bit[24:22]
|
||
|
uint32_t PLL_VCTRL_EXT_EN: 1; // bit25
|
||
|
uint32_t PLL_VREF_ADJ: 3; // bit[28:26]
|
||
|
uint32_t PLL_MIX_SEL: 1; // bit29 ---
|
||
|
// 1: +2M IF for RX
|
||
|
// 0: -2M IF for RX
|
||
|
// to RF Analog block
|
||
|
uint32_t PLL_RTX_SEL_REG: 1; // bit30 ---
|
||
|
// used when ana_test_en is 1
|
||
|
uint32_t PLL_SEL_RTX_BW: 1; // bit31 ---
|
||
|
// direct to RF Analog block
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_PLL_ANA_CTRL_TypeDef; //0x06c
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_PLL_BW_ADJ_LSB 0
|
||
|
#define RF_PLL_BW_ADJ_WIDTH 3
|
||
|
#define RF_PLL_CP_OS_EN_POS 3
|
||
|
#define RF_PLL_CP_OS_ADJ_LSB 4
|
||
|
#define RF_PLL_CP_OS_ADJ_WIDTH 4
|
||
|
#define RF_PLL_DIV_ADJ_LSB 8
|
||
|
#define RF_PLL_DIV_ADJ_WIDTH 2
|
||
|
#define RF_PLL_DI_P_LSB 10
|
||
|
#define RF_PLL_DI_P_WIDTH 5
|
||
|
#define RF_PLL_FAST_LOCK_EN_POS 15
|
||
|
#define RF_PLL_FBDIV_RST_EXT_POS 16
|
||
|
#define RF_PLL_FBDIV_RST_SEL_POS 17
|
||
|
#define RF_PLL_LOCK_BYPS_POS 18
|
||
|
#define RF_PLL_PS_CNT_RST_SEL_POS 19
|
||
|
#define RF_PLL_REF_SEL_POS 20
|
||
|
#define RF_PLL_SDM_TEST_EN_POS 21
|
||
|
#define RF_PLL_VCO_ADJ_LSB 22
|
||
|
#define RF_PLL_VCO_ADJ_WIDTH 3
|
||
|
#define RF_PLL_VCTRL_EXT_EN_POS 25
|
||
|
#define RF_PLL_VREF_ADJ_LSB 26
|
||
|
#define RF_PLL_VREF_ADJ_WIDTH 3
|
||
|
#define RF_PLL_MIX_SEL_POS 29
|
||
|
#define RF_PLL_RTX_SEL_REG_POS 30
|
||
|
#define RF_PLL_SEL_RTX_BW_POS 31
|
||
|
//================================
|
||
|
|
||
|
typedef union //0x074
|
||
|
{
|
||
|
struct
|
||
|
{
|
||
|
uint32_t AGC_STATE0: 1; // bit0
|
||
|
uint32_t AGC_STATE1: 1; // bit1
|
||
|
uint32_t BPF_CAL_CODE: 6; // bit[7:2]
|
||
|
uint32_t BG_VREF_OK12: 1; // bit8
|
||
|
uint32_t BPF_CAL_DONE: 1; // bit9
|
||
|
uint32_t PLL_LOCK: 1; // bit10
|
||
|
uint32_t FAST_LOCK_DONE: 1; // bit11
|
||
|
uint32_t AGC_STATE_TEST: 2; // bit[13:12]
|
||
|
uint32_t RSV_END: 18; // bit[31:14]
|
||
|
};
|
||
|
uint32_t Word;
|
||
|
} RF_RF_ANA_ST0_TypeDef; //0x074
|
||
|
|
||
|
|
||
|
//================================
|
||
|
#define RF_AGC_STATE0_POS 0
|
||
|
#define RF_AGC_STATE1_POS 1
|
||
|
#define RF_BPF_CAL_CODE_LSB 2
|
||
|
#define RF_BPF_CAL_CODE_WIDTH 6
|
||
|
#define RF_BG_VREF_OK12_POS 8
|
||
|
#define RF_BPF_CAL_DONE_POS 9
|
||
|
#define RF_PLL_LOCK_POS 10
|
||
|
#define RF_FAST_LOCK_DONE_POS 11
|
||
|
#define RF_AGC_STATE_TEST_LSB 12
|
||
|
#define RF_AGC_STATE_TEST_WIDTH 2
|
||
|
//================================
|
||
|
|
||
|
//================================
|
||
|
//BLOCK RF top struct define
|
||
|
typedef struct
|
||
|
{
|
||
|
__IO RF_DIG_CTRL_TypeDef DIG_CTRL ; // 0x000,
|
||
|
__IO RF_PLL_TAB_OFFSET_TypeDef PLL_TAB_OFFSET ; // 0x004,
|
||
|
__IO RF_PLL_GAIN_CTRL_TypeDef PLL_GAIN_CTRL ; // 0x008,
|
||
|
__IO RF_RSSI_CTRL_TypeDef RSSI_CTRL ; // 0x00c,
|
||
|
__IO RF_PLL_DAC_TAB0_TypeDef PLL_DAC_TAB0 ; // 0x010,
|
||
|
__I RF_PLL_CAL_ST_TypeDef PLL_CAL_ST ; // 0x014,
|
||
|
__IO RF_PLL_FREQ_CTRL_TypeDef PLL_FREQ_CTRL ; // 0x018,
|
||
|
__IO RF_PLL_DYM_CTRL_TypeDef PLL_DYM_CTRL ; // 0x01c,
|
||
|
__IO RF_FSM_DLY_CTRL0_TypeDef FSM_DLY_CTRL0 ; // 0x020,
|
||
|
__IO RF_FSM_DLY_CTRL1_TypeDef FSM_DLY_CTRL1 ; // 0x024,
|
||
|
__IO uint32_t PLL_CAL_DAC_STEP ; // 0x028,
|
||
|
// when pll_gain_cal_mode is 2'b10 :
|
||
|
// pll_cal_dac_step = N * abs ( pll_gain_cal_df1 - pll_gain_cal_df0 ) / 8,
|
||
|
// N is software define , common value is 2 or 4
|
||
|
// when pll_gain_cal_mode is 2'b11 :
|
||
|
// pll_cal_dac_step = 4* abs ( pll_gain_cal_df1 - pll_gain_cal_df0 ) / 8
|
||
|
// data format : ( 8,2) unsigned data
|
||
|
__I RF_PLL_GAIN_CAL_VAL_TypeDef PLL_GAIN_CAL_VAL ; // 0x02c,
|
||
|
__IO RF_PLL_DAC_TAB1_TypeDef PLL_DAC_TAB1 ; // 0x030,
|
||
|
__IO RF_PLL_DAC_TAB2_TypeDef PLL_DAC_TAB2 ; // 0x034,
|
||
|
__IO RF_DATA_DLY_CTRL_TypeDef DATA_DLY_CTRL ; // 0x038,
|
||
|
__IO RF_TX_CH_MAP_TypeDef TX_CH_MAP ; // 0x03c,
|
||
|
__IO RF_RX_CHIDX37_MAP_TypeDef RX_CHIDX37_MAP ; // 0x040,
|
||
|
__IO RF_RX_CHIDX38_MAP_TypeDef RX_CHIDX38_MAP ; // 0x044,
|
||
|
__IO RF_RX_CHIDX39_MAP_TypeDef RX_CHIDX39_MAP ; // 0x048,
|
||
|
__IO RF_BPFMIX_CTRL_TypeDef BPFMIX_CTRL ; // 0x04c,
|
||
|
__IO RF_AGC_CTRL0_TypeDef AGC_CTRL0 ; // 0x050,
|
||
|
__IO RF_AGC_CTRL1_TypeDef AGC_CTRL1 ; // 0x054,
|
||
|
__IO RF_AGC_CTRL2_TypeDef AGC_CTRL2 ; // 0x058,
|
||
|
__IO RF_ANA_TRIM_TypeDef ANA_TRIM ; // 0x05c,
|
||
|
__IO RF_ANAMISC_CTRL1_TypeDef ANAMISC_CTRL1 ; // 0x060,
|
||
|
__IO RF_ANA_PWR_CTRL_TypeDef ANA_PWR_CTRL ; // 0x064,
|
||
|
__IO RF_ANA_EN_CTRL_TypeDef ANA_EN_CTRL ; // 0x068,
|
||
|
__IO RF_PLL_ANA_CTRL_TypeDef PLL_ANA_CTRL ; // 0x06c,
|
||
|
__IO uint32_t RF_RSV ; // 0x070,
|
||
|
// [0] : RF TEMP connect to ADC_VIN[15]
|
||
|
// [1] : RF BANDGAP connect to ADC_VIN[15]
|
||
|
// [2] : RF RSSI connect to ADC_VIN[15]
|
||
|
// [3] : RF VDD_IF connect to ADC_VIN[15]
|
||
|
// [15]: CLK_128M_DAC enable signal
|
||
|
__I RF_RF_ANA_ST0_TypeDef RF_ANA_ST0 ; // 0x074,
|
||
|
} RF_TypeDef;
|
||
|
|
||
|
|
||
|
#define RF (( RF_TypeDef *) RF_BASE)
|
||
|
|
||
|
#endif
|