source: ResearchApps/PHY/WARPLAB/WARPLab7/Sysgen_Reference/w2/warplab_agc_v3/w2_warplab_agc_init.m

Last change on this file was 4443, checked in by welsh, 9 years ago

Updates for WARPLab 7.5.0. Version 3.00.b.

File size: 3.1 KB
Line 
1
2
3%xlLoadChipScopeData('../wlan_phy_rx/cs_capt/wlan_cs_capt_5.prn'); cs_interp = 1; cs_start = 1;
4%payload_vec = [zeros(25,1); complex(ADC_I(cs_start:cs_interp:end), ADC_Q(cs_start:cs_interp:end));];
5payload_vec = 0;
6raw_rx_I.time = [];
7raw_rx_Q.time = [];
8
9DCO_I = 0.05;
10DCO_Q = 0;
11G_I = 2;
12G_Q = 2;
13
14raw_rx_I.signals.values = DCO_I + G_I*real(payload_vec);
15raw_rx_Q.signals.values = DCO_Q + G_Q*imag(payload_vec);
16
17
18PHY_CONFIG_PKT_DET_CORR_THRESH   = 90;
19PHY_CONFIG_PKT_DET_ENERGY_THRESH = 14;
20PHY_CONFIG_PKT_DET_MIN_DURR      = 4;
21
22%% Register Init
23ACG_OVERRIDE                 = 0;
24
25
26% Timing registers
27AGC_TIMING_CAPT_RSSI_1       = 8;
28AGC_TIMING_CAPT_RSSI_2       = 24;
29AGC_TIMING_CAPT_V_DB         = 48;
30AGC_TIMING_START_DCO         = 60;
31
32AGC_TIMING_EN_IIR_FILT       = 93;
33AGC_TIMING_DONE              = 95;
34
35AGC_TIMING_RESET_RXHP        = 0;
36AGC_TIMING_RESET_G_RF        = 30;
37AGC_TIMING_RESET_G_BB        = 25;
38
39% Config register
40AGC_G_RF_THRESH_32           = 256-52;           % Reinterpret Fix8_0 to UFix8_0
41AGC_G_RF_THRESH_21           = 256-40;           % Reinterpret Fix8_0 to UFix8_0
42AGC_RSSI_AVG_LEN_SEL         = 0;
43AGC_V_DB_ADJ                 = 64-13;            % Reinterpret Fix6_0 to UFix6_0
44AGC_INIT_G_BB                = 24;
45
46% Reset registers
47AGC_RESET_TIMEOUT_INIT       = hex2dec('7FFFFFFF');
48
49% Target register
50AGC_TARGET_PWR               = 64-15;            % Reinterpret Fix6_0 to UFix6_0
51
52% IIR filt coefficients
53DCO_IIR_Coef_A1              = -0.98751192990731429;
54DCO_IIR_Coef_B0              =  0.99375596495365714;
55
56% Rx Power - RSSI calib register (-power values in dBm)
57RSSI_MIN_PWR_G_RF_3          = 100;
58RSSI_MIN_PWR_G_RF_2          = 85;
59RSSI_MIN_PWR_G_RF_1          = 70;
60
61REG_AGC_Timing_AGC = ...
62    2^0  * AGC_TIMING_CAPT_RSSI_1 + ...          % UFix8_0
63    2^8  * AGC_TIMING_CAPT_RSSI_2 + ...          % UFix8_0
64    2^16 * AGC_TIMING_CAPT_V_DB   + ...          % UFix8_0
65    2^24 * AGC_TIMING_DONE;                      % UFix8_0
66
67REG_AGC_Timing_DCO = ...
68    2^0 * AGC_TIMING_START_DCO   + ...           % UFix8_0
69    2^8 * AGC_TIMING_EN_IIR_FILT + ...           % UFix8_0
70    0;
71
72REG_AGC_Timing_Reset = ...
73    2^0  * AGC_TIMING_RESET_RXHP + ...           % UFix8_0
74    2^8  * AGC_TIMING_RESET_G_RF + ...           % UFix8_0
75    2^16 * AGC_TIMING_RESET_G_BB + ...           % UFix8_0
76    0;
77
78REG_AGC_Config = ...
79    2^0  * AGC_G_RF_THRESH_32   + ...            % Fix8_0
80    2^8  * AGC_G_RF_THRESH_21   + ...            % Fix8_0
81    2^16 * AGC_RSSI_AVG_LEN_SEL + ...            % UFix2_0
82    2^18 * AGC_V_DB_ADJ         + ...            % Fix6_0
83    2^24 * AGC_INIT_G_BB        + ...            % UFix5_0
84    0;
85
86REG_AGC_Target               = AGC_TARGET_PWR;
87
88REG_AGC_IIR_Coef_A1          = DCO_IIR_Coef_A1;
89REG_AGC_IIR_Coef_B0          = DCO_IIR_Coef_B0;
90
91REG_AGC_RSSI_RX_PWR_CALIB = ...
92    2^0  * RSSI_MIN_PWR_G_RF_3 + ...             % UFix8_0
93    2^8  * RSSI_MIN_PWR_G_RF_2 + ...             % UFix8_0
94    2^16 * RSSI_MIN_PWR_G_RF_1 + ...             % UFix8_0
95    0;
96
97   
Note: See TracBrowser for help on using the repository browser.