Question:
What does it mean that the E1332 is a reciprocal counter for (Freq/Per)?
Answer:
The E1332A counter is a reciprocal counter which means that if you ask for
a frequency measurement it may actually do a period measurement and then
convert period to frequency using math.
When the E1332A counter is programmed using:
CONFn:FREQ <range>,<resolution>
CONFn:PER <range>,<resolution>
or
MEASn:FREQ <range>,<resolution>
MEASn:PER <range>,<resolution>
the counter will choose the best method to use based on the range, and
resolution parameters. If no resolution is specified a five digit
(range/1e5) resolution is assumed. If no range or resolution is specified
then the counter auto ranges until it can deliver a five digit resolution
answer.
TABLE 1 below which was generated by the below program shows that for
frequencies below one mega hertz the period function is actually used.
When the "PER" function is used the parameter NPER is the number of periods
used in the measurement.
When the "FREQ" function is used the parameter APER is the aperature or the
time period over which the input frequency is counted.
This automatic reciprocal function switching generally gives the best
possible result. The easiest programming is to not specify a range or
resolution and just let the counter auto range. The one exception is when
the frequency is zero, which means that it takes infinite time to make
the measurement because it's looking for two time periods.
To force a old fashion frequency measurement that only lasts for one
aperature time, use the following sequence:
OUTPUT @CNTR;"SENS1:FUNC:FREQ;:SENS1:FREQ:APER <aperature>;READ?"
The "Data Questionable" messages in the table means that the specified
resolution is not possible to be delivered on the specified range.
============================ TABLE 1 ====================================
programmed function actual # of periods aperature time
, function
CHARACTERIZING THE FREQUENCY FUNCTION
CONF1:FREQ 10 ,1 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10 ,.1 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10 ,.01 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10 ,1.E-6 FUNC="PER" NPER=3.2000E+01
CONF1:FREQ 10 ,1.E-7 FUNC="PER" NPER=2.5600E+02
CONF1:FREQ 100 ,10 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100 ,1 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100 ,.1 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100 ,.01 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100 ,.0001 FUNC="PER" NPER=3.2000E+01
CONF1:FREQ 100 ,1.E-5 FUNC="PER" NPER=2.5600E+02
CONF1:FREQ 100 ,1.E-6 FUNC="PER" NPER=2.0480E+03
CONF1:FREQ 1000 ,100 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 1000 ,10 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 1000 ,1 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 1000 ,.1 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 1000 ,.01 FUNC="PER" NPER=3.2000E+01
CONF1:FREQ 1000 ,.001 FUNC="PER" NPER=2.5600E+02
CONF1:FREQ 1000 ,.0001 FUNC="PER" NPER=2.0480E+03
CONF1:FREQ 1000 ,1.E-5 FUNC="PER" NPER=3.2768E+04
CONF1:FREQ 10000 ,1000 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10000 ,100 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10000 ,10 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 10000 ,1 FUNC="PER" NPER=3.2000E+01
CONF1:FREQ 10000 ,.1 FUNC="PER" NPER=2.5600E+02
CONF1:FREQ 10000 ,.01 FUNC="PER" NPER=2.0480E+03
CONF1:FREQ 10000 ,.001 FUNC="PER" NPER=3.2768E+04
CONF1:FREQ 10000 ,.0001 FUNC="PER" NPER=6.5536E+04 "Data questionable"
CONF1:FREQ 100000 ,10000 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100000 ,1000 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 100000 ,100 FUNC="PER" NPER=3.2000E+01
CONF1:FREQ 100000 ,10 FUNC="PER" NPER=2.5600E+02
CONF1:FREQ 100000 ,1 FUNC="PER" NPER=2.0480E+03
CONF1:FREQ 100000 ,.1 FUNC="PER" NPER=3.2768E+04
CONF1:FREQ 100000 ,.01 FUNC="FREQ" APER=6.5536E+01 "Data questionable"
CONF1:FREQ 100000 ,.001 FUNC="FREQ" APER=6.5536E+01 "Data questionable"
CONF1:FREQ 1.E+6 ,100000 FUNC="PER" NPER=2.0000E+00
CONF1:FREQ 1.E+6 ,10000 FUNC="PER" NPER=3.2000E+01
CONF1:FREQ 1.E+6 ,1000 FUNC="PER" NPER=2.5600E+02
CONF1:FREQ 1.E+6 ,100 FUNC="PER" NPER=2.0480E+03
CONF1:FREQ 1.E+6 ,10 FUNC="PER" NPER=3.2768E+04
CONF1:FREQ 1.E+6 ,1 FUNC="FREQ" APER=1.0240E+00
CONF1:FREQ 1.E+6 ,.1 FUNC="FREQ" APER=1.6384E+01
CONF1:FREQ 1.E+6 ,.01 FUNC="FREQ" APER=6.5536E+01 "Data questionable"
CHARATERIZING THE PERIOD FUNCTION
CONF1:PER 1.E-6 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1.E-6 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER 1.E-6 ,1.E-9 FUNC="PER" NPER=2.5600E+02
CONF1:PER 1.E-6 ,1.E-10 FUNC="PER" NPER=2.0480E+03
CONF1:PER 1.E-6 ,1.E-11 FUNC="PER" NPER=3.2768E+04
CONF1:PER 1.E-6 ,1.E-12 FUNC="FREQ" APER=1.0240E+00
CONF1:PER 1.E-6 ,1.E-13 FUNC="FREQ" APER=1.6384E+01
CONF1:PER 1.E-6 ,1.E-14 FUNC="FREQ" APER=6.5536E+01 "Data questionable"
CONF1:PER 1.E-5 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1.E-5 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1.E-5 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER 1.E-5 ,1.E-9 FUNC="PER" NPER=2.5600E+02
CONF1:PER 1.E-5 ,1.E-10 FUNC="PER" NPER=2.0480E+03
CONF1:PER 1.E-5 ,1.E-11 FUNC="PER" NPER=3.2768E+04
CONF1:PER 1.E-5 ,1.E-12 FUNC="FREQ" APER=6.5536E+01 "Data questionable"
CONF1:PER 1.E-5 ,1.E-13 FUNC="FREQ" APER=6.5536E+01 "Data questionable"
CONF1:PER .0001 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER .0001 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER .0001 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER .0001 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER .0001 ,1.E-9 FUNC="PER" NPER=2.5600E+02
CONF1:PER .0001 ,1.E-10 FUNC="PER" NPER=2.0480E+03
CONF1:PER .0001 ,1.E-11 FUNC="PER" NPER=3.2768E+04
CONF1:PER .0001 ,1.E-12 FUNC="PER" NPER=6.5536E+04 "Data questionable"
CONF1:PER .001 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:PER .001 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER .001 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER .001 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER .001 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER .001 ,1.E-9 FUNC="PER" NPER=2.5600E+02
CONF1:PER .001 ,1.E-10 FUNC="PER" NPER=2.0480E+03
CONF1:PER .001 ,1.E-11 FUNC="PER" NPER=3.2768E+04
CONF1:PER .01 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:PER .01 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:PER .01 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER .01 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER .01 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER .01 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER .01 ,1.E-9 FUNC="PER" NPER=2.5600E+02
CONF1:PER .01 ,1.E-10 FUNC="PER" NPER=2.0480E+03
CONF1:PER .1 ,.01 FUNC="PER" NPER=2.0000E+00
CONF1:PER .1 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:PER .1 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:PER .1 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER .1 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER .1 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER .1 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER .1 ,1.E-9 FUNC="PER" NPER=2.5600E+02
CONF1:PER 1 ,.1 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,.01 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER 1 ,1.E-8 FUNC="PER" NPER=3.2000E+01
CONF1:PER 10 ,1 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,.1 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,.01 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,1.E-6 FUNC="PER" NPER=2.0000E+00
CONF1:PER 10 ,1.E-7 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,10 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,1 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,.1 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,.01 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,.001 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,.0001 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,1.E-5 FUNC="PER" NPER=2.0000E+00
CONF1:PER 100 ,1.E-6 FUNC="PER" NPER=2.0000E+00
Here is the program which generated the data in TABLE 1:
10 ! re-save "freq_r&r"
20 ! This main line code is reserved as a error handling shell
30 ! All application code must be at lower level context in SUB Main
40 ASSIGN @Sys TO 70900 ! define I/O paths
50 ASSIGN @Cntr TO 70907
60 COM /Instr/ @Sys,@Cntr ! Use COM so command line I/O always works
70 ON TIMEOUT 7,3 GOTO End ! Turn TIMEOUTS to errors--this branch never taken
80 ON ERROR RECOVER Kaboom !This handles timeouts and errors not handled
90 ! at lower level contexts
100 ON KEY 1 LABEL "QUIT& ?" RECOVER Quit !KEY to quit & check for errors
110 ON KEY 2 LABEL "END!",15 RECOVER End !KEY to END now, no error check
120 Main ! Put application code in this sub
130 Quit:PRINT "Checking for E13xx Errors at the end of the program"
140 E13xx_errors
150 GOTO End
160 Kaboom:PRINT ""
170 PRINT ERRM$
180 PRINT "Checking for E13xx Errors as a BASIC Error has occurred"
190 E13xx_errors
200 End:END
210 !
220 E13xx_errors:SUB E13xx_errors !This sub reads all errors from E13xx
instruments
230 COM /Instr/ @Sys,@Cntr
240 DIM A$[128]
250 ABORT 7 ! Free bus handshaking
260 ! Add a error loop for each instrument
270 !
280 CLEAR @Sys !Terminate instrument activity & clear input/output buffers
290 REPEAT !Read the entire instrument error que
300 OUTPUT @Sys;"SYST:ERR?"
310 ENTER @Sys;A,A$
320 PRINT "SYSTEM ERROR ";A$
330 UNTIL A=0
340 !
350 CLEAR @Cntr
360 REPEAT
370 OUTPUT @Cntr;"SYST:ERR?"
380 ENTER @Cntr;A,A$
390 PRINT "COUNTER ERROR ";A$
400 UNTIL A=0
410 !
420 E13xx_errors_:SUBEND
430 !
440 Main:SUB Main !This subroutine is treated as the main line
450 COM /Instr/ @Sys,@Cntr
460 !Put application code here
470 DIM Error$[128]
480 CLEAR @Cntr
490 OUTPUT @Cntr;"*RST;*CLS;*OPC?"
500 ENTER @Cntr;A
510 ! Characterize the frequency function
520 PRINT ""
530 PRINT "CHARACTERIZING THE FREQUENCY FUNCTION"
540 FOR F=1 TO 6
550 FOR R=1 TO 8
560 OUTPUT @Cntr;"CONF1:FREQ 1E"&VAL$(F)&" ,"&VAL$(10^F/10^R)&";*OPC?"
570 ENTER @Cntr;A
580 OUTPUT @Cntr;"SENS1:FUNC?"
590 ENTER @Cntr;Func$
600 OUTPUT @Cntr;"SENS1:FREQ:APER?"
610 ENTER @Cntr;Aper$
620 OUTPUT @Cntr;"SENS1:PER:NPER?"
630 ENTER @Cntr;Nper$
640 OUTPUT @Cntr;"SYST:ERR?"
650 ENTER @Cntr;A,Error$
660 IF A=0 THEN Error$=""
670 IF Func$="""PER""" THEN
680 PRINT USING "26A,6A,7A,6A,D.DDDDE,19A";"CONF1:FREQ "&VAL$(10^F)&
" ,"&VAL$(10^F/10^R);" FUNC=";Func$;" NPER=";VAL(Nper$);Error$
690 ELSE
700 PRINT USING "26A,6A,7A,6X,6A,D.DDDDE,19A";"CONF1:FREQ
"&VAL$(10^F)&
" ,"&VAL$(10^F/10^R);" FUNC=";Func$;" APER=";VAL(Aper$);Error$
710 END IF
720 NEXT R
730 PRINT ""
740 NEXT F
750 ! Characterize the period function
760 PRINT ""
770 PRINT "CHARATERIZING THE PERIOD FUNCTION"
780 FOR F=-6 TO 2
790 FOR R=1 TO 8
800 OUTPUT @Cntr;"CONF1:PER 1E"&VAL$(F)&" ,"&VAL$(10^F/10^R)&";*OPC?"
810 ENTER @Cntr;A
820 OUTPUT @Cntr;"SENS1:FUNC?"
830 ENTER @Cntr;Func$
840 OUTPUT @Cntr;"SENS1:FREQ:APER?"
850 ENTER @Cntr;Aper$
860 OUTPUT @Cntr;"SENS1:PER:NPER?"
870 ENTER @Cntr;Nper$
880 OUTPUT @Cntr;"SYST:ERR?"
890 ENTER @Cntr;A,Error$
900 IF A=0 THEN Error$=""
910 IF Func$="""PER""" THEN
920 PRINT USING "26A,6A,7A,6A,D.DDDDE,19A";"CONF1:PER "&VAL$(10^F)&
" ,"&VAL$(10^F/10^R);" FUNC=";Func$;" NPER=";VAL(Nper$);Error$
930 ELSE
940 PRINT USING "26A,6A,7A,6X,6A,D.DDDDE,19A";"CONF1:PER "&VAL$(10^F)&
" ,"&VAL$(10^F/10^R);" FUNC=";Func$;" APER=";VAL(Aper$);Error$
950 END IF
960 NEXT R
970 PRINT ""
980 NEXT F
990 Main_:SUBEND
1000 !
|