10 !***************************************************************
20 !
30 ! Comprehensive Example Program
40 ! 8960 W-CDMA FDD Test Mode (E1963A)
50 ! (Rev. 09/13/01)
60 !
70 ! This is a program to demonstrate the use of the 8960
80 ! with E1963A W-CDMA TA testing a FDD W-CDMA UE in FDD test mode
90 !
100 !***************************************************************
110 !
120 COM /Address/ INTEGER Testset
130 Testset=714
140 ON TIMEOUT 7,20 GOSUB Timeout
150 Rf_level=-106.7
160 CLEAR SCREEN
170 !
180 !***************************************************************
190 ! Step 1: Set Up the Test Set
200 !***************************************************************
210 !
220 !***************************************************************
230 ! Initialize the Test Set
240 !***************************************************************
250 ! Fully preset the test set
260 OUTPUT Testset;"*RST"
270 ! Clear the error queue
280 OUTPUT Testset;"*CLS"
290 !***************************************************************
300 ! Set Up General Operating Conditions
310 !***************************************************************
320 ! Turn debugger on
330 OUTPUT Testset;"SYST:COMM:GPIB:DEB ON"
340 ! Set operating mode to FDD Test Mode
350 OUTPUT Testset;"CALL:OPER:MODE FDDT"
360 ! Set amplitude offsets
370 OUTPUT Testset;"SYST:CORR:FREQ 800MHZ,900MHZ,1900MHZ,2000MHZ"
380 OUTPUT Testset;"SYST:CORR:SGA -0.7,-0.8,-1.0,-1.1"
390 !
400 !***************************************************************
410 ! Step 2: Configure Test Set and Mobile Station Parameters
420 !***************************************************************
430 !
440 !***************************************************************
450 ! Set Up the Downlink
460 !***************************************************************
470 ! Set downlink power
480 OUTPUT Testset;"CALL:POW ";Rf_level
490 ! Set downlink frequency
500 OUTPUT Testset;"CALL:CONT:DOWN:FREQ:AUTO OFF"
510 OUTPUT Testset;"CALL:RFG:FREQ 2.0 GHZ"
520 ! Set downlink primary scrambling code
530 OUTPUT Testset;"CALL:SCOD:PRIM 1"
540 ! Set up DPCH
550 OUTPUT Testset;"CALL:DPCH:TYP RMC12"
560 OUTPUT Testset;"CALL:DPCH:RMC12:CCOD CODE9"
570 OUTPUT Testset;"CALL:FDDT:DPCH -10.3"
580 OUTPUT Testset;"CALL:DTCH:DATA PRBS15"
590 ! Set up CPICH
600 OUTPUT Testset;"CALL:FDDT:CPIC -3.3"
610 ! Set up P-CCPCH
620 OUTPUT Testset;"CALL:FDDT:CCPC:PRIM -5.35"
630 ! Set up PICH
640 OUTPUT Testset;"CALL:PICH:CCOD CODE16"
650 OUTPUT Testset;"CALL:FDDT:PICH -8.35"
660 ! Set up AWGN
670 OUTPUT Testset;"CALL:AWGN:POW:STAT OFF"
680 !***************************************************************
690 ! Set Up the Uplink
700 !***************************************************************
710 ! Set power control bits to all up to force UE to max power
720 OUTPUT Testset;"CALL:FDDT:CLPC:UPL:MODE UP"
730 ! Set expected uplink power
740 OUTPUT Testset;"RFAN:CONT:POW:AUTO OFF"
750 OUTPUT Testset;"RFAN:MAN:POW:FDD 0"
760 ! Set expected uplink frequency and measurement frequency
770 OUTPUT Testset;"RFAN:CONT:UPL:FREQ:AUTO OFF"
780 OUTPUT Testset;"RFAN:MAN:UPL:FREQ 1.9 GHZ"
790 OUTPUT Testset;"RFAN:CONT:MEAS:FREQ:AUTO OFF"
800 OUTPUT Testset;"RFAN:MAN:MEAS:FREQ 1.9 GHZ"
810 ! Set expected uplink primary scrambling code
820 OUTPUT Testset;"CALL:UPL:DPCH:SCOD 0"
830 !
840 !***************************************************************
850 ! Step 3: Set Measurement Parameters
860 !***************************************************************
870 !
880 ! Set all measurement triggers to single
890 OUTPUT Testset;"SET:CONT:OFF"
900 ! Set up thermal power
910 OUTPUT Testset;"SET:WTP:TIM 3;COUN 1"
920 ! Set up channel power
930 OUTPUT Testset;"SET:WCP:TIM 3;COUN 1;TRIG:SOUR IMM"
940 OUTPUT Testset;"SET:WCP:INT:TIME 10 MS"
950 ! Set up waveform quality
960 OUTPUT Testset;"SET:WWQ:TIM 3;COUN 1;TSL 1"
970 ! Set up ACLR
980 OUTPUT Testset;"SET:WACL:TIM 3;COUN 1;TRIG:SOUR IMM"
990 ! Set up Loopback BER
1000 OUTPUT Testset;"SET:WBER:TIM 10;COUN 15000"
1010 !
1020 !***************************************************************
1030 ! Step 4: Make Connection
1040 !***************************************************************
1050 !
1060 PRINT "Configure UE for 12.2k RMC Now."
1070 PRINT
1080 PRINT "UE Synchronization required for Waveform Quality."
1090 PRINT "UE loopback Mode 1 required for loopback BER."
1100 PRINT
1110 PRINT "8960 DL is 2.0 GHz"
1120 PRINT "8960 UL Expected Frequency: 1.9 GHz"
1130 PRINT "8960 UL Expected Power: 0 dBm"
1140 PRINT "8960 UL Expected Primary Scrambling Code: 0"
1150 PRINT
1160 PRINT "When UE is configured and transmitting, press 'F2'."
1170 PAUSE
1180 !
1190 !***************************************************************
1200 ! Step 5: INITiate and FETCh Measurements
1210 !***************************************************************
1220 !
1230 CLEAR SCREEN
1240 PRINT "Test Results for UL Frequency 1.9 GHz:"
1250 PRINT
1260 !
1270 FOR I=1 TO 2
1280 ! INITiate a set of concurrent measurements
1290 OUTPUT Testset;"INIT:WTP;WWQ;WACL;WBER"
1300 ! FETCh the measurement results (using a subroutine)
1310 Fetch_results
1320 IF I=1 THEN
1330 PRINT
1340 PRINT "1.9 GHz Testing Complete."
1350 !
1360 !***************************************************************
1370 ! Step 6: Reconfigure Test Set and Mobile Station Connection
1380 !***************************************************************
1390 !
1400 PRINT
1410 PRINT "Change UE UL Frequency to 1.850 GHz."
1420 PRINT
1430 PRINT "UE Synchronization required for Waveform Quality."
1440 PRINT "UE loopback Mode 1 required for loopback BER."
1450 PRINT
1460 PRINT "When UE is configured and transmitting, press 'F2'."
1470 PAUSE
1480 ! Change expected uplink frequency
1490 OUTPUT Testset;"RFAN:MAN:MEAS:FREQ 1.85 GHZ"
1500 OUTPUT Testset;"RFAN:MAN:UPL:FREQ 1.85 GHZ"
1510 PRINT
1520 PRINT "Test Results for UL Frequency 1.85 GHz:"
1530 ELSE
1540 PRINT
1550 PRINT "1.85 GHz Testing Complete."
1560 END IF
1570 NEXT I
1580 !
1590 !****************************************************************
1600 ! Step 7: End the Connection
1610 !****************************************************************
1620 !
1630 PRINT "Testing complete, end UE transmission."
1640 ! Partially preset the test set
1650 OUTPUT Testset;"SYST:PRES3"
1660 !
1670 !****************************************************************
1680 !
1690 STOP
1700 Timeout: !Program only comes here on 20 second timeout
1710 PRINT "Program timeout."
1720 END
1730 !
1740 !*****************************************************************
1750 ! Subroutine Section
1760 !*****************************************************************
1770 !
1780 SUB Fetch_results
1790 REPEAT
1800 ! Determine if any measurements are done
1810 OUTPUT 714;"INIT:DONE?"
1820 ENTER 714;Measdone$
1830 SELECT Measdone$
1840 CASE "WTP"
1850 ! FETCh measurement result
1860 OUTPUT 714;"FETC:WTP:INT?;POW?"
1870 ENTER 714;Integrity,Power
1880 ! Verify measurement result is valid
1890 IF Integrity=0 THEN
1900 ! For valid result, print result to screen (using a subroutine)
1910 Print_results(Measdone$,Power)
1920 ELSE
1930 ! For invalid result, invoke error handler (using a subroutine)
1940 Meas_error(Measdone$,Integrity)
1950 END IF
1960 CASE "WCP"
1970 OUTPUT 714;"FETC:WCP:INT?;POW?"
1980 ENTER 714;Integrity,Power
1990 IF Integrity=0 THEN
2000 Print_results(Measdone$,Power)
2010 ELSE
2020 Meas_error(Measdone$,Integrity)
2030 END IF
2040 CASE "WWQ"
2050 OUTPUT 714;"FETC:WWQ?"
2060 ENTER 714;Integrity,Evm,Ferr,Ooff,Perr,Merr
2070 IF Integrity=0 THEN
2080 Print_results(Measdone$,Evm,Ferr,Ooff,Perr,Merr)
2090 ELSE
2100 Meas_error(Measdone$,Integrity)
2110 END IF
2120 CASE "WACL"
2130 OUTPUT 714;"FETC:WACL:INT?;AVER?"
2140 ENTER 714;Integrity,Negfive,Posfive,Negten,Posten
2150 IF Integrity=0 THEN
2160 Print_results(Measdone$,Negfive,Posfive,Negten,Posten)
2170 ELSE
2180 Meas_error(Measdone$,Integrity)
2190 END IF
2200 CASE "WBER"
2210 OUTPUT 714;"FETC:WBER?;WBER:INT?"
2220 ENTER 714;Ber,Integrity
2230 IF Integrity=0 THEN
2240 Print_results(Measdone$,Ber)
2250 ELSE
2260 Meas_error(Measdone$,Integrity)
2270 END IF
2280 END SELECT
2290 ! Exit loop when all measurements are complete
2300 UNTIL Measdone$="NONE"
2310 SUBEND
2320 !
2330 SUB Print_results(Meas_name$,Res1,OPTIONAL Res2,Res3,Res4,Res5,Res6)
2340 SELECT Meas_name$
2350 CASE "WTP"
2360 PRINT USING "5X,""Thermal Power:"",9X,M2D.2D,"" dBm""";Res1
2370 CASE "WWQ"
2380 PRINT USING "5X,""Max EVM:"",15X,M2D.2D,"" %""";Res1
2390 PRINT USING "5X,""Worst Freq Error:"",5X,M3D.2D,"" Hz""";Res2
2400 PRINT USING "5X,""Max Origin Offset:"",5X,M2D.2D,"" dB""";Res3
2410 PRINT USING "5X,""Max Phase Error:"",7X,M2D.2D,"" Deg""";Res4
2420 PRINT USING "5X,""Max Mag. Error:"",8X,M2D.2D,"" %""";Res5
2430 CASE "WACL"
2440 PRINT USING "5X,""ACLR -5 MHz Offset:"",4X,M2D.2D,"" dBc""";Res1
2450 PRINT USING "5X,""ACLR +5 MHz Offset:"",4X,M2D.2D,"" dBc""";Res2
2460 PRINT USING "5X,""ACLR -10 MHz Offset:"",3X,M2D.2D,"" dBc""";Res3
2470 PRINT USING "5X,""ACLR +10 MHz Offset:"",3X,M2D.2D,"" dBc""";Res4
2480 CASE "WCP"
2490 PRINT USING "5X,""Channel Power:"",9X,M2D.2D,"" dBm""";Res1
2500 CASE "WBER"
2510 PRINT USING "5X,""Loopback BER:"",5X,M3D.2D,"" %""";Res1
2520 END SELECT
2530 SUBEND
2540 !
2550 SUB Meas_error(Measdone$,Integrity)
2560 SELECT Integrity
2570 CASE 2
2580 Err$=" Meas Timeout"
2590 CASE 5
2600 Err$=" Over Range"
2610 CASE 6
2620 Err$=" Under Range"
2630 CASE 17
2640 Err$=" Cannot Correlate"
2650 CASE 19
2660 Err$=" Temp Drift"
2670 CASE ELSE
2680 Err$=""
2690 END SELECT
2700 PRINT Measdone$;" Integrity is";Integrity;Err$
2710 SUBEND