Last updated: January 16, 2009
This section is only applicable to the lab application or feature-licensed test application.
The basic procedure to make a Fast Device Tune measurement is as follows:
Set_init_cond
subroutine): set operating mode to FDD test, measurement frequency to manual mode, power control to manual mode, and RF generator frequency control to manual mode.
Set_msrx_series
subroutine). See
SETup:CFDTune
for details on the commands.
Set_mstx_series
subroutine). See
SETup:CFDTune
for details on the commands.10 ! ==================================================================== 20 ! 30 ! Fast Device Tune Programming Example for W-CDMA/HSDPA 40 ! 50 ! ==================================================================== 60 ! 70 ! *** Initialize Program Variables *** 80 ! 90 OPTION BASE 0 100 Testset=714 110 CLEAR SCREEN 120 CLEAR 7 130 CLEAR Testset 140 PRINT "*** Fast Device Tune Programming Example for W-CDMA/HSDPA***" 150 PRINT 160 ! 170 ! 180 !***Set up GPIB timeout*** 190 ON TIMEOUT 7,32 CALL Timeout 200 ! Call "Timeout" routine after 32 seconds of GP-IB hang-up 210 ! 220 ! 230 ! *** Variable declarations *** 240 DIM Mstx_pow$[8000] 250 ALLOCATE REAL Mstx_pow_res(0:399) 260 Sz=16*(20+19) !ASCII Arrays = 16*(20+19) elements 270 ALLOCATE Freq_rx$[Sz],Pow_rx$[Sz],Freq_tx$[Sz],Pow_tx$[Sz] 280 ! 290 Op_mode$="FDDTest" !Operating mode. 300 Meas_timeout=15 !Measurement timeout. 310 ! 320 Num_freq_steps=4 !Number of Rx and Tx Frequency Steps 330 Num_pow_steps=10 !Number of Rx and Tx Power Steps 340 ! 350 Str_ind_freq_rx=0 !Start Index of Rx Frequency 360 Str_ind_pow_rx=0 !Start Index of Rx Power 370 ! 380 Freq_rx$="1932.4E6, 1950.4E6, 1966.4E6, 1982.4E6" 390 ! MS RX Frequencies 400 Pow_rx$="-80, -60, -40, -60, -60, -60, -60, -60, -60, -60" 410 ! MS RX Powers (last 7 values are "dummy" values) 420 ! 430 Str_ind_freq_tx=0 !Start Index of Tx Frequency 440 Str_ind_pow_tx=0 !Start Index of Tx Power 450 ! 460 Freq_tx$="1852.4E6, 1870.4E6, 1886.4E6, 1902.4E6" 470 ! MS TX Frequencies 480 Pow_tx$="16, 12, 8, 4, 0, -4, -8, -12, -16, -20" 490 ! MS TX Powers 500 ! 510 Loss_frequency$="800E6"!Set frequencies for path loss 520 Expected_loss$="-1.5"!Set path loss at frequencies specified 530 ! 540 !************************************ 550 !***Simple Test Executive 560 !************************************ 570 ! 580 GOSUB Preset_test_set 590 !End any current connection and preset test set 600 GOSUB Set_path_loss 610 !Set the pass loss required for your test. 620 GOSUB Set_init_cond 630 !Set initial conditions required for the FDT test 640 GOSUB Set_msrx_series 650 !Set up the MS Rx Freq/Power Series 660 GOSUB Set_mstx_series 670 !Set up the MS Tx Freq/Power Series 680 GOSUB Check_ms_config 690 !Check UE settings match what you've set on the test set 700 GOSUB Fdt_meas 710 !Make the Fast Device Tune measurement. 720 GOTO End_program 730 ! 740 ! 750 !************************************************************************** 760 ! BEGINNING OF SUBROUTINES 770 !************************************************************************** 780 ! 790 ! 800 Preset_test_set: ! 810 !******************************************************************* 820 ! Subroutine: Preset the test set (Step 1: Set Up the Test Set) 830 !******************************************************************* 840 ! 850 OUTPUT Testset;"*RST" 860 ! Full preset test set 870 RETURN 880 ! 890 Set_path_loss: ! 900 !******************************************************************* 910 ! Subroutine: Set path loss values 920 !******************************************************************* 930 ! 940 OUTPUT Testset;"SYST:CORR:FREQ ";Loss_frequency$ 950 ! Set the frequencies for amplitude offset 960 OUTPUT Testset;"SYST:CORR ";Expected_loss$ 970 ! Set the amplitude offsets for above frequencies 980 RETURN 990 ! 1000 Set_init_cond: ! 1010 !******************************************************************* 1020 ! Subroutine: Set initial conditions required for the FDT Test 1030 !******************************************************************* 1040 ! 1050 OUTPUT Testset;"CALL:OPER:MODE ";Op_mode$ 1060 !Set Operating Mode 1070 OUTPUT Testset;"SET:CFDT:TIM "&VAL$(Meas_timeout) 1080 !Set measurement timeout. 1090 OUTPUT Testset;"CALL:CONT:DOWN:FREQ:AUTO OFF" 1100 !Set RF generator frequency control to manual mode. 1110 OUTPUT Testset;"RFAN:CONT:MEAS:FREQ:AUTO OFF" 1120 !Set receiver measurement frequency control to manual mode. 1130 OUTPUT Testset;"RFAN:CONT:POW:AUTO OFF" 1140 !Set receiver power control to manual mode. 1150 RETURN 1160 ! 1170 Set_msrx_series: ! 1180 !******************************************************************* 1190 ! Subroutine: Set up the MS Rx Freq/Power Series 1200 !******************************************************************* 1210 ! 1220 PRINT "*** Set the number of Tx/Rx Frequency and Power Steps ***" 1230 OUTPUT Testset;"SET:CFDT:FREQ:STEP:COUN ";Num_freq_steps 1240 OUTPUT Testset;"SET:CFDT:POW:STEP:COUN ";Num_pow_steps 1250 PRINT "Number of Tx/Rx Frequency Steps = ";Num_freq_steps 1260 PRINT "Number of Tx/Rx Power Steps = ";Num_pow_steps 1270 PRINT 1280 PRINT "*** Set MS Rx Freq/Power Series ***" 1290 Stp_ind_freq_rx=Str_ind_freq_rx+Num_freq_steps 1300 ! Compute Stop Index of Frequency steps 1310 Stp_ind_pow_rx=Str_ind_pow_rx+Num_pow_steps 1320 ! Compute Stop Index of Power steps 1330 ! 1340 ! Check for Mx Rx Test Freq/Power Indicies Out of Range 1350 IF (Stp_ind_freq_rx<40 AND Stp_ind_pow_rx<40) THEN 1360 ! Set MS Rx Frequency and Power Start Indicies 1370 OUTPUT Testset;"SET:CFDT:MS:RX:FREQ:STEP:STAR:IND ";Str_ind_freq_rx 1380 OUTPUT Testset;"SET:CFDT:MS:RX:POW:STEP:STAR:IND ";Str_ind_pow_rx 1390 PRINT "MS Rx Test Start Freq Index = ";Str_ind_freq_rx 1400 PRINT "MS Rx Test Start Power Index = ";Str_ind_pow_rx 1410 ELSE 1420 PRINT 1430 PRINT "Error-The number of freq steps or power steps Out of Range (>40)" 1440 PRINT 1450 PRINT "Program Stopped" 1460 STOP 1470 END IF 1480 ! 1490 !*** Set MS Rx Freq/Power Values *** 1500 OUTPUT Testset;"SET:CFDT:MS:RX:FREQ:STEP ";Freq_rx$ 1510 PRINT "MS Rx Test Freq Series = ";Freq_rx$ 1520 OUTPUT Testset;"SET:CFDT:MS:RX:POW:STEP ";Pow_rx$ 1530 PRINT "MS Rx Test Power Series = ";Pow_rx$ 1540 PRINT 1550 ! 1560 RETURN 1570 ! 1580 Set_mstx_series: ! 1590 !******************************************************************* 1600 ! Subroutine: Set up the MS Tx Freq/Power Series 1610 !******************************************************************* 1620 PRINT "*** Set MS Tx Freq/Power Series ***" 1630 Stp_ind_freq_tx=Str_ind_freq_tx+Num_freq_steps 1640 ! Compute Stop Index of Frequency steps 1650 Stp_ind_pow_tx=Str_ind_pow_tx+Num_pow_steps 1660 ! Compute Stop Index of Power steps 1670 ! 1680 ! Check for MS Tx Test Freq/Power Indicies Out of Range 1690 IF (Stp_ind_freq_tx<40 AND Stp_ind_pow_tx<40) THEN 1700 ! Set MS Tx Frequency and Power Start Indicies 1710 OUTPUT Testset;"SET:CFDT:MS:TX:FREQ:STEP:STAR:IND ";Str_ind_freq_tx 1720 OUTPUT Testset;"SET:CFDT:MS:TX:POW:STEP:STAR:IND ";Str_ind_pow_tx 1730 PRINT "MS Tx Test Start Freq Index =";Str_ind_freq_tx 1740 PRINT "MS Tx Test Start Power Index =";Str_ind_pow_tx 1750 ELSE 1760 PRINT 1770 PRINT "Error-The number of freq steps or power steps Out of Range (>40)" 1780 PRINT 1790 PRINT "Program Stopped" 1800 STOP 1810 END IF 1820 ! 1830 !*** Set MS Tx Freq/Power Values *** 1840 ! 1850 OUTPUT Testset;"SET:CFDT:MS:TX:FREQ:STEP ";Freq_tx$ 1860 PRINT "MS Tx Test Freq Series = ";Freq_tx$ 1870 OUTPUT Testset;"SET:CFDT:MS:TX:POW:STEP ";Pow_tx$ 1880 PRINT "MS Tx Test Power Series = ";Pow_tx$ 1890 PRINT 1900 ! 1910 RETURN 1920 ! 1930 Check_ms_config: ! 1940 !******************************************************************* 1950 ! Subroutine: Check UE's Configuration Matches Test Set's 1960 !******************************************************************* 1970 PRINT "************** NOTE *****************************************" 1980 PRINT "Make sure that your UE is placed into a test mode, and is properly" 1990 PRINT "configured to measure the MS RX Freq/Power series and transmit" 2000 PRINT "the MS TX Freq/Power series you've set in the test set." 2010 PRINT 2020 PRINT "Order your UE to transmit continuously at >20 dB below the power level" 2030 PRINT "of the first step in MS Tx Power Series" 2040 PRINT "*************************************************************" 2050 PRINT 2060 LINPUT "Press ENTER when finished",Keyboard$ 2070 RETURN 2080 ! 2090 Fdt_meas: ! 2100 !******************************************************************* 2110 ! Subroutine: Perform FDT Measurement 2120 !******************************************************************* 2130 ! 2140 OUTPUT Testset;"INIT:CFDT" 2150 !Arm the FDT measurement and start to build the MS Tx and Rx Freq/Power Series. 2160 OUTPUT Testset;"INIT:CFDT:ARMed?" 2170 !Queries that the MS Tx and Rx Freq/Power Series is successfully built 2180 !and the test set is ready for test. 2190 ENTER Testset;Meas_arm 2200 IF Meas_arm THEN 2210 PRINT "Command the UE to trigger the measurement (20 dB RF rise)..." 2220 PRINT 2230 ! 2240 !***Obtain measurement results*** 2250 OUTPUT Testset;"FETC:CFDT?" 2260 ENTER Testset;Integrity,Freq_step_cnt,Pow_step_cnt,Num_meas,Mstx_pow$ 2270 ! 2280 ELSE 2290 PRINT "The test set is not properly armed. Please check the MS Tx and" 2300 PRINT "Rx Freq/Power Series Setups." 2310 GOTO End_program 2320 END IF 2330 ! 2340 PRINT "*** Print MS Tx Measurement Results ***" 2350 PRINT 2360 PRINT "Integrity = ";Integrity 2370 PRINT "Number of Freq Steps = ";Freq_step_cnt 2380 PRINT "Number of Power Steps = ";Pow_step_cnt 2390 PRINT "Total Number of Meas Results = ";Num_meas 2400 PRINT 2410 ! 2420 !Convert ASCII Array to Real Array 2430 FOR N=1 TO Num_meas 2440 Dynamic_mkr=((N-1)*17) 2450 !Set up a marker that will jump to each comma in the ascii string 2460 Mstx_pow_res(N)=VAL(Mstx_pow$[Dynamic_mkr+1,Dynamic_mkr+16]) 2470 !Convert ascii to a numeric value 2480 NEXT N 2490 ! 2500 ! PRINT "MS Tx Power Results:" 2510 PRINT "Freq Step # Power Step # Meas Power[dBm/5 MHz]" 2520 PRINT 2530 FOR N_freq=0 TO Freq_step_cnt-1 2540 FOR N_pow=0 TO Pow_step_cnt-1 2550 PRINT N_freq+1," ",N_pow+1," ",Mstx_pow_res(N_freq*Pow_step_cnt+N_pow+1) 2560 NEXT N_pow 2570 PRINT 2580 NEXT N_freq 2590 ! 2600 RETURN 2610 ! 2620 End_program: ! 2630 !******************************************************************* 2640 ! Subroutine: End of all testing clean up 2650 !******************************************************************* 2660 ! 2670 OUTPUT Testset;"*RST" 2680 !Full preset test set 2690 DEALLOCATE Mstx_pow_res(*),Freq_rx$,Pow_rx$,Freq_tx$,Pow_tx$ 2700 PRINT 2710 PRINT "End of Program" 2720 END 2730 ! 2740 !************************************************************************** 2750 ! SUB-PROGRAM SECTION 2760 !************************************************************************** 2770 ! 2780 Timeout: SUB Timeout ! Global timeout handler 2790 PRINT 2800 PRINT "Program timed out, check setup" 2810 CLEAR 7 2820 CLEAR Testset 2830 STOP 2840 SUBEND 2850 ! 2860 !
The measurement results include an integrity indicator, the number of frequency steps (Freq_step_cnt), the number of power steps at each frequency (Pow_step_cnt), number of MS TX power steps measured (Num_meas should equal Freq_step_cnt * Pow_step_cnt), followed by Num_meas power results.
A sample output from this program example is shown below: