ARM mbed Nanostack RF driver for NXP KW41Z 802.15.4 wireless MCU
Embed:
(wiki syntax)
Show/hide line numbers
fsl_xcvr_gfsk_bt_0p3_h_0p5_config.c
00001 /* 00002 * Copyright 2016-2017 NXP 00003 * 00004 * Redistribution and use in source and binary forms, with or without modification, 00005 * are permitted provided that the following conditions are met: 00006 * 00007 * o Redistributions of source code must retain the above copyright notice, this list 00008 * of conditions and the following disclaimer. 00009 * 00010 * o Redistributions in binary form must reproduce the above copyright notice, this 00011 * list of conditions and the following disclaimer in the documentation and/or 00012 * other materials provided with the distribution. 00013 * 00014 * o Neither the name of Freescale Semiconductor, Inc. nor the names of its 00015 * contributors may be used to endorse or promote products derived from this 00016 * software without specific prior written permission. 00017 * 00018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 00019 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00020 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00021 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 00022 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00023 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00024 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 00025 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00026 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00027 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00028 */ 00029 00030 #include "fsl_xcvr.h " 00031 00032 /******************************************************************************* 00033 * Definitions 00034 ******************************************************************************/ 00035 00036 /******************************************************************************* 00037 * Prototypes 00038 ******************************************************************************/ 00039 00040 /******************************************************************************* 00041 * Variables 00042 ******************************************************************************/ 00043 00044 /******************************************************************************* 00045 * Code 00046 ******************************************************************************/ 00047 /* MODE only configuration */ 00048 const xcvr_mode_config_t gfsk_bt_0p3_h_0p5_mode_config = 00049 { 00050 .radio_mode = GFSK_BT_0p3_h_0p5, 00051 .scgc5_clock_ena_bits = SIM_SCGC5_PHYDIG_MASK | SIM_SCGC5_GEN_FSK_MASK, 00052 00053 /* XCVR_MISC configs */ 00054 .xcvr_ctrl.mask = XCVR_CTRL_XCVR_CTRL_PROTOCOL_MASK | 00055 XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC_MASK | 00056 XCVR_CTRL_XCVR_CTRL_DEMOD_SEL_MASK, 00057 .xcvr_ctrl.init = XCVR_CTRL_XCVR_CTRL_PROTOCOL(8) | 00058 XCVR_CTRL_XCVR_CTRL_TGT_PWR_SRC(7) | 00059 XCVR_CTRL_XCVR_CTRL_DEMOD_SEL(1), 00060 00061 /* XCVR_PHY configs */ 00062 .phy_pre_ref0_init = 0x7BCDEB39, 00063 .phy_pre_ref1_init = 0xCEF7DEF7, 00064 .phy_pre_ref2_init = 0x0000CEB7, 00065 00066 .phy_cfg1_init = XCVR_PHY_CFG1_AA_PLAYBACK(1) | 00067 XCVR_PHY_CFG1_AA_OUTPUT_SEL(1) | 00068 XCVR_PHY_CFG1_FSK_BIT_INVERT(0) | 00069 XCVR_PHY_CFG1_BSM_EN_BLE(0) | 00070 XCVR_PHY_CFG1_DEMOD_CLK_MODE(0) | 00071 XCVR_PHY_CFG1_CTS_THRESH(0xda) | 00072 XCVR_PHY_CFG1_FSK_FTS_TIMEOUT(2), 00073 00074 .phy_el_cfg_init = XCVR_PHY_EL_CFG_EL_ENABLE(1) 00075 #if !RADIO_IS_GEN_2P1 00076 | XCVR_PHY_EL_CFG_EL_ZB_ENABLE(0) 00077 #endif /* !RADIO_IS_GEN_2P1 */ 00078 , 00079 00080 /* XCVR_RX_DIG configs */ 00081 .rx_dig_ctrl_init_26mhz = XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL(0) | /* Depends on protocol */ 00082 XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN(1) | /* Depends on protocol */ 00083 XCVR_RX_DIG_RX_DIG_CTRL_RX_SRC_RATE(0), 00084 00085 .rx_dig_ctrl_init_32mhz = XCVR_RX_DIG_RX_DIG_CTRL_RX_FSK_ZB_SEL(0) | /* Depends on protocol */ 00086 XCVR_RX_DIG_RX_DIG_CTRL_RX_DC_RESID_EN(1), /* Depends on protocol */ 00087 00088 .agc_ctrl_0_init = XCVR_RX_DIG_AGC_CTRL_0_AGC_DOWN_RSSI_THRESH(0xFF), 00089 00090 /* XCVR_TSM configs */ 00091 #if (DATA_PADDING_EN) 00092 .tsm_timing_35_init = B0(TX_DIG_EN_ASSERT+TX_DIG_EN_TX_HI_ADJ), 00093 #else 00094 .tsm_timing_35_init = B0(TX_DIG_EN_ASSERT), 00095 #endif /* (DATA_PADDING_EN) */ 00096 00097 /* XCVR_TX_DIG configs */ 00098 .tx_gfsk_ctrl = XCVR_TX_DIG_GFSK_CTRL_GFSK_MULTIPLY_TABLE_MANUAL(0x4000) | 00099 XCVR_TX_DIG_GFSK_CTRL_GFSK_MI(1) | 00100 XCVR_TX_DIG_GFSK_CTRL_GFSK_MLD(0) | 00101 XCVR_TX_DIG_GFSK_CTRL_GFSK_FLD(1) | /* Use GFSK Manual Filter Coeffs */ 00102 XCVR_TX_DIG_GFSK_CTRL_GFSK_MOD_INDEX_SCALING(0) | 00103 XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_OVRD_EN(0) | 00104 XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_0_OVRD(0) | 00105 XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_1_OVRD(0) | 00106 XCVR_TX_DIG_GFSK_CTRL_TX_IMAGE_FILTER_2_OVRD(0), 00107 .tx_gfsk_coeff1_26mhz = (107U) << 0 | /* coeff 2/13 */ 00108 (164U) << 7 | /* coeff 6/9 */ 00109 (125U) << 16 | /* coef 3/12 */ 00110 (169U) << 23, /* coeff 7/8 */ 00111 .tx_gfsk_coeff2_26mhz = (72U) << 0 | /* coeff 0/15 */ 00112 (90U) << 8 | /* coeff 1/14 */ 00113 (141U) << 16 | /* coeff 4/11 */ 00114 (155U) << 24, /* coeff 5/10 */ 00115 .tx_gfsk_coeff1_32mhz = (70U) << 0 | /* coeff 2/13 */ 00116 (216U) << 7 | /* coeff 6/9 */ 00117 (105U) << 16 | /* coef 3/12 */ 00118 (233U) << 23, /* coeff 7/8 */ 00119 .tx_gfsk_coeff2_32mhz = (25U) << 0 | /* coeff 0/15 */ 00120 (44U) << 8 | /* coeff 1/14 */ 00121 (145U) << 16 | /* coeff 4/11 */ 00122 (184U) << 24, /* coeff 5/10 */ 00123 }; 00124 00125 /* MODE & DATA RATE combined configuration */ 00126 const xcvr_mode_datarate_config_t xcvr_GFSK_BT_0p3_h_0p5_1mbps_config = 00127 { 00128 .radio_mode = GFSK_BT_0p3_h_0p5, 00129 .data_rate = DR_1MBPS, 00130 00131 .ana_sy_ctrl2.mask = XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_MASK, 00132 .ana_sy_ctrl2.init = XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM(0), /* VCO KVM */ 00133 .ana_rx_bba.mask = XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_MASK | XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_MASK, 00134 .ana_rx_bba.init = XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL(4) | XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL(4), /* BBA_BW_SEL and BBA2_BW_SEL */ 00135 .ana_rx_tza.mask = XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_MASK, 00136 .ana_rx_tza.init = XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL(4), /*TZA_BW_SEL */ 00137 00138 .phy_cfg2_init = XCVR_PHY_CFG2_PHY_FIFO_PRECHG(8) | 00139 XCVR_PHY_CFG2_X2_DEMOD_GAIN(0xA) , 00140 00141 /* AGC configs */ 00142 .agc_ctrl_2_init_26mhz = XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(11) | 00143 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(5) | 00144 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(6) | 00145 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(3) | 00146 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(7) | 00147 XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(5), 00148 .agc_ctrl_2_init_32mhz = XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(12) | 00149 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(5) | 00150 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(6) | 00151 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(3) | 00152 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(7) | 00153 XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(5), 00154 00155 /* All constant values are represented as 16 bits, register writes will remove unused bits */ 00156 .rx_chf_coeffs_26mhz.rx_chf_coef_0 = 0xFFFF, 00157 .rx_chf_coeffs_26mhz.rx_chf_coef_1 = 0xFFFD, 00158 .rx_chf_coeffs_26mhz.rx_chf_coef_2 = 0xFFF9, 00159 .rx_chf_coeffs_26mhz.rx_chf_coef_3 = 0xFFF4, 00160 .rx_chf_coeffs_26mhz.rx_chf_coef_4 = 0xFFF2, 00161 .rx_chf_coeffs_26mhz.rx_chf_coef_5 = 0xFFF5, 00162 .rx_chf_coeffs_26mhz.rx_chf_coef_6 = 0x0000, 00163 .rx_chf_coeffs_26mhz.rx_chf_coef_7 = 0x0011, 00164 .rx_chf_coeffs_26mhz.rx_chf_coef_8 = 0x0028, 00165 .rx_chf_coeffs_26mhz.rx_chf_coef_9 = 0x0041, 00166 .rx_chf_coeffs_26mhz.rx_chf_coef_10 = 0x0055, 00167 .rx_chf_coeffs_26mhz.rx_chf_coef_11 = 0x0061, 00168 00169 /* 32MHz Channel Filter */ 00170 .rx_chf_coeffs_32mhz.rx_chf_coef_0 = 0x0001, 00171 .rx_chf_coeffs_32mhz.rx_chf_coef_1 = 0xFFFF, 00172 .rx_chf_coeffs_32mhz.rx_chf_coef_2 = 0xFFFA, 00173 .rx_chf_coeffs_32mhz.rx_chf_coef_3 = 0xFFF4, 00174 .rx_chf_coeffs_32mhz.rx_chf_coef_4 = 0xFFF0, 00175 .rx_chf_coeffs_32mhz.rx_chf_coef_5 = 0xFFF0, 00176 .rx_chf_coeffs_32mhz.rx_chf_coef_6 = 0xFFF9, 00177 .rx_chf_coeffs_32mhz.rx_chf_coef_7 = 0x000B, 00178 .rx_chf_coeffs_32mhz.rx_chf_coef_8 = 0x0025, 00179 .rx_chf_coeffs_32mhz.rx_chf_coef_9 = 0x0043, 00180 .rx_chf_coeffs_32mhz.rx_chf_coef_10 = 0x005C, 00181 .rx_chf_coeffs_32mhz.rx_chf_coef_11 = 0x006A, 00182 00183 .rx_rccal_ctrl_0 = XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET(0) | 00184 XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL(0) | 00185 XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS(0) | 00186 XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY(0) | 00187 XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV(0) | 00188 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET(0) | 00189 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL(0) | 00190 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS(0) , 00191 .rx_rccal_ctrl_1 = XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET(0) | 00192 XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL(0) | 00193 XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS(0) | 00194 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET(0) | 00195 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL(0) | 00196 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS(0) , 00197 00198 .tx_fsk_scale_26mhz = XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(0x1627) | XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(0x09d9), 00199 .tx_fsk_scale_32mhz = XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(0x1800) | XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(0x0800), 00200 }; 00201 00202 const xcvr_mode_datarate_config_t xcvr_GFSK_BT_0p3_h_0p5_500kbps_config = 00203 { 00204 .radio_mode = GFSK_BT_0p3_h_0p5, 00205 .data_rate = DR_500KBPS, 00206 00207 .ana_sy_ctrl2.mask = XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_MASK, 00208 .ana_sy_ctrl2.init = XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM(0), /* VCO KVM */ 00209 .ana_rx_bba.mask = XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_MASK | XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_MASK, 00210 .ana_rx_bba.init = XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL(5) | XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL(5), /* BBA_BW_SEL and BBA2_BW_SEL */ 00211 .ana_rx_tza.mask = XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_MASK, 00212 .ana_rx_tza.init = XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL(5), /* TZA_BW_SEL */ 00213 00214 .phy_cfg2_init = XCVR_PHY_CFG2_PHY_FIFO_PRECHG(8) | 00215 XCVR_PHY_CFG2_X2_DEMOD_GAIN(0x8) , 00216 00217 /* AGC configs */ 00218 .agc_ctrl_2_init_26mhz = XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(15) | 00219 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(5) | 00220 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(6) | 00221 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(3) | 00222 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(7) | 00223 XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(5), 00224 .agc_ctrl_2_init_32mhz = XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(18) | 00225 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(5) | 00226 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(6) | 00227 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(3) | 00228 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(7) | 00229 XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(5), 00230 00231 /* All constant values are represented as 16 bits, register writes will remove unused bits */ 00232 .rx_chf_coeffs_26mhz.rx_chf_coef_0 = 0x0001, 00233 .rx_chf_coeffs_26mhz.rx_chf_coef_1 = 0x0000, 00234 .rx_chf_coeffs_26mhz.rx_chf_coef_2 = 0xFFFC, 00235 .rx_chf_coeffs_26mhz.rx_chf_coef_3 = 0xFFF7, 00236 .rx_chf_coeffs_26mhz.rx_chf_coef_4 = 0xFFF3, 00237 .rx_chf_coeffs_26mhz.rx_chf_coef_5 = 0xFFF2, 00238 .rx_chf_coeffs_26mhz.rx_chf_coef_6 = 0xFFF9, 00239 .rx_chf_coeffs_26mhz.rx_chf_coef_7 = 0x000A, 00240 .rx_chf_coeffs_26mhz.rx_chf_coef_8 = 0x0023, 00241 .rx_chf_coeffs_26mhz.rx_chf_coef_9 = 0x0040, 00242 .rx_chf_coeffs_26mhz.rx_chf_coef_10 = 0x0059, 00243 .rx_chf_coeffs_26mhz.rx_chf_coef_11 = 0x0068, 00244 00245 /* 32MHz Channel Filter */ 00246 .rx_chf_coeffs_32mhz.rx_chf_coef_0 = 0x0001, 00247 .rx_chf_coeffs_32mhz.rx_chf_coef_1 = 0x0001, 00248 .rx_chf_coeffs_32mhz.rx_chf_coef_2 = 0xFFFF, 00249 .rx_chf_coeffs_32mhz.rx_chf_coef_3 = 0xFFFA, 00250 .rx_chf_coeffs_32mhz.rx_chf_coef_4 = 0xFFF3, 00251 .rx_chf_coeffs_32mhz.rx_chf_coef_5 = 0xFFEF, 00252 .rx_chf_coeffs_32mhz.rx_chf_coef_6 = 0xFFF3, 00253 .rx_chf_coeffs_32mhz.rx_chf_coef_7 = 0x0001, 00254 .rx_chf_coeffs_32mhz.rx_chf_coef_8 = 0x001D, 00255 .rx_chf_coeffs_32mhz.rx_chf_coef_9 = 0x003F, 00256 .rx_chf_coeffs_32mhz.rx_chf_coef_10 = 0x005F, 00257 .rx_chf_coeffs_32mhz.rx_chf_coef_11 = 0x0072, 00258 00259 .rx_rccal_ctrl_0 = XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET(0) | 00260 XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL(31) | 00261 XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS(1) | 00262 XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY(0) | 00263 XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV(0) | 00264 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET(0) | 00265 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL(31) | 00266 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS(1) , 00267 .rx_rccal_ctrl_1 = XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET(0) | 00268 XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL(0) | 00269 XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS(0) | 00270 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET(0) | 00271 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL(31) | 00272 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS(1) , 00273 00274 .tx_fsk_scale_26mhz = XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(0x1627) | XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(0x09d9), 00275 .tx_fsk_scale_32mhz = XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(0x1800) | XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(0x0800), 00276 }; 00277 00278 const xcvr_mode_datarate_config_t xcvr_GFSK_BT_0p3_h_0p5_250kbps_config = 00279 { 00280 .radio_mode = GFSK_BT_0p3_h_0p5, 00281 .data_rate = DR_250KBPS, 00282 00283 .ana_sy_ctrl2.mask = XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM_MASK, 00284 .ana_sy_ctrl2.init = XCVR_ANALOG_SY_CTRL_2_SY_VCO_KVM(0), /* VCO KVM */ 00285 .ana_rx_bba.mask = XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL_MASK | XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL_MASK, 00286 .ana_rx_bba.init = XCVR_ANALOG_RX_BBA_RX_BBA_BW_SEL(5) | XCVR_ANALOG_RX_BBA_RX_BBA2_BW_SEL(5), /* BBA_BW_SEL and BBA2_BW_SEL */ 00287 .ana_rx_tza.mask = XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL_MASK, 00288 .ana_rx_tza.init = XCVR_ANALOG_RX_TZA_RX_TZA_BW_SEL(5), /* TZA_BW_SEL */ 00289 00290 .phy_cfg2_init = XCVR_PHY_CFG2_PHY_FIFO_PRECHG(8) | 00291 XCVR_PHY_CFG2_X2_DEMOD_GAIN(0x6) , 00292 00293 /* AGC configs */ 00294 .agc_ctrl_2_init_26mhz = XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(18) | 00295 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(5) | 00296 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(2) | 00297 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(3) | 00298 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(7) | 00299 XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(5), 00300 .agc_ctrl_2_init_32mhz = XCVR_RX_DIG_AGC_CTRL_2_BBA_GAIN_SETTLE_TIME(22) | 00301 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_LO(5) | 00302 XCVR_RX_DIG_AGC_CTRL_2_BBA_PDET_SEL_HI(6) | 00303 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_LO(3) | 00304 XCVR_RX_DIG_AGC_CTRL_2_TZA_PDET_SEL_HI(7) | 00305 XCVR_RX_DIG_AGC_CTRL_2_AGC_FAST_EXPIRE(5), 00306 00307 /* All constant values are represented as 16 bits, register writes will remove unused bits */ 00308 .rx_chf_coeffs_26mhz.rx_chf_coef_0 = 0x0001, 00309 .rx_chf_coeffs_26mhz.rx_chf_coef_1 = 0x0003, 00310 .rx_chf_coeffs_26mhz.rx_chf_coef_2 = 0x0003, 00311 .rx_chf_coeffs_26mhz.rx_chf_coef_3 = 0xFFFF, 00312 .rx_chf_coeffs_26mhz.rx_chf_coef_4 = 0xFFF7, 00313 .rx_chf_coeffs_26mhz.rx_chf_coef_5 = 0xFFEE, 00314 .rx_chf_coeffs_26mhz.rx_chf_coef_6 = 0xFFEC, 00315 .rx_chf_coeffs_26mhz.rx_chf_coef_7 = 0xFFF7, 00316 .rx_chf_coeffs_26mhz.rx_chf_coef_8 = 0x0014, 00317 .rx_chf_coeffs_26mhz.rx_chf_coef_9 = 0x003C, 00318 .rx_chf_coeffs_26mhz.rx_chf_coef_10 = 0x0064, 00319 .rx_chf_coeffs_26mhz.rx_chf_coef_11 = 0x007D, 00320 00321 /* 32MHz Channel Filter */ 00322 .rx_chf_coeffs_32mhz.rx_chf_coef_0 = 0x0001, 00323 .rx_chf_coeffs_32mhz.rx_chf_coef_1 = 0x0003, 00324 .rx_chf_coeffs_32mhz.rx_chf_coef_2 = 0x0005, 00325 .rx_chf_coeffs_32mhz.rx_chf_coef_3 = 0x0003, 00326 .rx_chf_coeffs_32mhz.rx_chf_coef_4 = 0xFFFC, 00327 .rx_chf_coeffs_32mhz.rx_chf_coef_5 = 0xFFF0, 00328 .rx_chf_coeffs_32mhz.rx_chf_coef_6 = 0xFFE8, 00329 .rx_chf_coeffs_32mhz.rx_chf_coef_7 = 0xFFEF, 00330 .rx_chf_coeffs_32mhz.rx_chf_coef_8 = 0x000B, 00331 .rx_chf_coeffs_32mhz.rx_chf_coef_9 = 0x0038, 00332 .rx_chf_coeffs_32mhz.rx_chf_coef_10 = 0x0068, 00333 .rx_chf_coeffs_32mhz.rx_chf_coef_11 = 0x0086, 00334 00335 .rx_rccal_ctrl_0 = XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_OFFSET(0) | 00336 XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_MANUAL(31) | 00337 XCVR_RX_DIG_RX_RCCAL_CTRL0_BBA_RCCAL_DIS(1) | 00338 XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_SMP_DLY(0) | 00339 XCVR_RX_DIG_RX_RCCAL_CTRL0_RCCAL_COMP_INV(0) | 00340 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_OFFSET(0) | 00341 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_MANUAL(31) | 00342 XCVR_RX_DIG_RX_RCCAL_CTRL0_TZA_RCCAL_DIS(1) , 00343 .rx_rccal_ctrl_1 = XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_OFFSET(0) | 00344 XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_MANUAL(0) | 00345 XCVR_RX_DIG_RX_RCCAL_CTRL1_ADC_RCCAL_DIS(0) | 00346 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_OFFSET(0) | 00347 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_MANUAL(31) | 00348 XCVR_RX_DIG_RX_RCCAL_CTRL1_BBA2_RCCAL_DIS(1), 00349 00350 .tx_fsk_scale_26mhz = XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(0x1627) | XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(0x09d9), 00351 .tx_fsk_scale_32mhz = XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_0(0x1800) | XCVR_TX_DIG_FSK_SCALE_FSK_MODULATION_SCALE_1(0x0800), 00352 }; 00353
Generated on Wed Jul 13 2022 07:46:57 by 1.7.2