Tektronix FCA3000 Programmer's Manual

Tektronix FCA3000 Programmer's Manual

Fca3000 series; fca3100 series; mca3000 series
Hide thumbs Also See for FCA3000:

Advertisement

xx
FCA3000, FCA3100, MCA3000 Series
Timer/Counter/Analyzers
ZZZ
Programmer Manual
*P077049400*
077-0494-00

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the FCA3000 and is the answer not in the manual?

Questions and answers

Summary of Contents for Tektronix FCA3000

  • Page 1 FCA3000, FCA3100, MCA3000 Series Timer/Counter/Analyzers Programmer Manual *P077049400* 077-0494-00...
  • Page 3 FCA3000, FCA3100, MCA3000 Series Timer/Counter/Analyzers Programmer Manual Revision A www.tektronix.com 077-0494-00...
  • Page 4 Copyright © Tektronix. All rights reserved. Licensed software products are owned by Tektronix or its subsidiaries or suppliers, and are protected by national copyright laws and international treaty provisions. Tektronix products are covered by U.S. and foreign patents, issued and pending. Information in this publication supersedes that in all previously published material.
  • Page 5: Table Of Contents

    Memory Subsystem ..................2-19 Output Subsystem ..................2-20 Read Function ....................2-20 Sense Command Subsystem ................2-20 Status Subsystem ..................2-21 System Subsystem ..................2-22 Test Subsystem..................... 2-23 Trigger Subsystem ..................2-23 Common Commands ..................2-27 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 6 Fast Measurements (Example #3)................USB Communication (Example #4) ............... Continuous Measurements (Example #5) ............... 4-11 Appendices Appendix A: Character Set ..................Appendix B: Default Command Settings ..............Appendix C: Instrument Settings After *RST..............Appendix D: Reserved Words.................. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 7: Preface

    Preface This programmer manual covers the Tektronix FCA3000, FCA3100, and MCA3000 Series Timer/Counter/Analyzer instruments. It provides information on operating your instrument using the General Purpose Interface Bus (GPIB) or USB interface. The programmer manual contains the following sections: Getting Started. This section introduces you to the programming information and provides basic information about setting up your instrument for remote control.
  • Page 8 Preface FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 9: Getting Started

    Getting Started...
  • Page 11: Setting Up The Instrument

    Power button. Testing the Bus To test that the instrument is operational over the bus, send the *IDN? command to identify the instrument and the *OPT? command to identify which features are available. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 12: Interface Functions

    DCL (Device clear) or SDC (Selective Device Clear). Device trigger function: You can start a new measurement from the controller by sending the interface message GET (Group Execute Trigger). Bus drivers: The GPIB interface has tri-state bus drivers. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 13: Using The Usb Interface

    The structure of the instrument identifier string is: “USB0::0x0699::0x3003::######::INSTR” Where: is the vendor identifier code for Tektronix instruments 0x0699 is the instrument model (based on the last four digits of the model 0x3003...
  • Page 14 Using the USB Interface FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 15: Syntax And Commands

    Syntax and Commands...
  • Page 17: Command Syntax

    A command message is a command or query name followed by any information the instrument needs to execute the command or query. Command messages may contain five element types, defined in the following table. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 18: Clearing The Instrument

    Clearing the Instrument You can clear the Output Queue and reset the instrument to accept a new command or query by using the selected Device Clear (DCL) function. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 19: Command Entry

    Thus, for the most robust code, use the full spelling. Concatenating You can concatenate any combination of set commands and queries using a semicolon (;). The instrument executes concatenated commands in the order received. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 20: Argument Types

    Enter these arguments as unquoted text words. Like key words, enumeration arguments follow the same convention where the portion indicated in uppercase is required and that in lowercase is optional. For example: INPUT:COUPLING DC FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 21 7. The maximum length of a quoted string returned from a query is 1000 characters. Here are some invalid strings: (quotes are not of the same type) "Invalid string argument' (termination character is embedded in the string) "test<EOI>" FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 22: Macros

    However, there are some things you must keep in mind: Both double quote (“) and single quote (‘) can be used to identify the string data. If you use a controller language that uses double quotation marks to define strings FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 23 This example defines a macro called AUTOFILT that takes one Boolean argument such as ON or OFF for ($1). AUTOFILT OFF Turns off both the auto function and the analog lowpass filter on both input channels. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 24 GMC? Get Macro Contents query. This query sets a response containing the definition of the macro you specified when sending the query. Example using the above defined macro: *GMC? ‘LIMITMON’ #292:CALC:STAT ON;:CALC:LIM:STAT ON; :CALC:LIM:LOW:DATA $1;STAT ON; :CALC:LIM:UPP:DATA $2;STAT ON’ FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 25 LMC? Learn Macro query. This query returns a response containing the labels of all the macros stored in the Timer/instrument. Example: *LMC? might return "MYINPSETTING","LIMITMON" Now there are two macros in memory, and they have the following labels: “MYINPSETTING” and “LIMITMON”. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 26 Command Syntax 2-10 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 27: Command Groups

    Note that the calculate subsystem is automatically enabled when limit FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-11...
  • Page 28 CALCulate:LIMit:UPPer Sets or returns the value of the upper limit. CALCulate:LIMit:UPPer:STATe Sets whether the measured value should be checked against the upper limit. CALCulate:MATH Defines the mathematical expression used for mathematical operations. 2-12 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 29: Calibration Subsystem

    Then send READ? to start the measurement and returns the result. CONFigure;INITiate;FETCh? The READ? command can be divided into the INITiate command, which starts the measurement, and the FETCh? command, which requests the instrument to return the measuring results to the controller. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-13...
  • Page 30: Display Subsystem

    Table 2-10: Display command Command Description DISPlay:ENABle Turns On/Off the updating of the screen. Fetch Function Table 2-11: Fetch commands Command Description FETCh:ARRay? Fetches multiple measurements. FETCh[:SCALar]? Fetches a single measurement. 2-14 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 31: Format Subsystem

    Sets or queries the upper limit for FETCh:ARRay? FORMat:TINFormation Turns on/off the time stamping of measurements. Hard Copy Table 2-13: Hard copy command Command Description HCOPy:SDUMp:DATA? Returns block data containing a screen image in Windows BMP format. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-15...
  • Page 32: Initiate Subsystem

    Input Subsystem The Input subsystem performs all the signal conditioning of the input signal before it is converted into data by the Sense subsystem. The Input subsystem includes coupling, impedance, filtering, and so forth. 2-16 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 33: Measurement Subsystem

    Send the query MEASure:FREQ? 20 MHz,1, where: 20 MHz is the expected value, which can, of course, also be sent as 20E6, and 1 is the required resolution. (1Hz) Also the channel numbers can be specified, for example: MEASure:FREQ? (@3) or MEASure:FREQ? 20E6, 1,(@1) FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-17...
  • Page 34 Takes a negative duty cycle measurement. MEASure:NDUTycycle? Takes a negative pulse width measurement. MEASure:NWIDth? MEASure{:PDUTycycle|:DCYCle}? Takes a positive duty cycle measurement. MEASure:PERiod? Takes a period measurement. MEASure:PERiod:AVERage? Returns an average of multiple period measurements. 2-18 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 35: Memory Subsystem

    MEMory:DATA:RECord:SETTings? specified <Dataset> was saved. Deletes an individual macro. MEMory:DELete:MACRo MEMory:FREE:MACRo? Returns the bytes used and available for macros. MEMory:NSTates? Returns (one greater than) the number of available memory locations for instrument settings. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-19...
  • Page 36: Output Subsystem

    Switchbox. In automatic test systems, it is difficult to swap BNC cables when you need to measure on several measuring points. The FCA3000 series lets you switch between input A and B to take measurements directly without the need for external switching devices.
  • Page 37: Status Subsystem

    Table 2-22: Status commands Command Description STATus:DREGister0? Returns the contents of the Device Event Register. STATus:DREGister0:ENABle Sets the enable bit of the Device Register 0. STATus:OPERation? Returns the contents of the operation event status register. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-21...
  • Page 38: System Subsystem

    Switches the time-out on or off. SYSTem:TOUT:AUTO Sets an automatic time out after the first start trigger. SYSTem:TOUT:TIME Sets or returns the time-out time. SYSTem:UNPRotect Unprotects the user data set or read by the *PUD command. 2-22 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 39: Test Subsystem

    Sourcing output signal Switching system ready The ARM-TRIG Trigger Configuration gives a typical trigger configuration, the ARM-TRIG model. The configuration contains two event-detection layers: the ‘Wait for ARM’ and ‘Wait for TRIG’ states. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-23...
  • Page 40 Command Groups This trigger configuration is sufficient for most instruments. More complex instruments, such as the FCA3000 and MCA3000 Series, have more ARM layers. The ‘Wait for TRIG’ event-detection layer is always the last to be crossed before instrument actions can take place.
  • Page 41 The *TRGand the GET commands have the same effect on the instrument. If the instrument is in idle (not parsing or executing any commands), GET will execute much faster than *TRG since the instrument must always parse *TRG. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-25...
  • Page 42 Sets or returns how many measurements the instrument should make for each arm condition. TRIGger:SOURce Enables or disables the sample rate control. TRIGger:TIMer Sets the sample rate fur use with the statistics functions. 2-26 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 43: Common Commands

    Saves the settings of the instrument in an internal nonvolatile memory. *SRE Sets or returns the service request enable register bits. *STB? Returns the value of the Status Byte. *TRG Starts the measurement and places the result in the output queue. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-27...
  • Page 44 *WAI Prevents the instrument from executing any further commands or queries until execution of all previous commands or queries is completed. 2-28 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 45: Command Descriptions

    20 ns and sets 1000 s. <DECIMAL VALUE> Returns <Decimal value > 200 ms after SYST:PRES 10 ms after *RST ACQuisition:HOFF Sets the Hold Off function On or Off. Group Sense Syntax ACQuisition:HOFF <boolean> ACQuisition:HOFF? FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-29...
  • Page 46 Syntax ARM:COUNt <Numeric value>| MIN | MAX | INFinity ARM:COUNt? Arguments is an integer between 1 and 2,147,483,647 (2 -1). The <Numeric value> integer 1 switches the function OFF. sets 1. sets 2147483647. 2-30 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 47 The instrument generates an error if it receives this command when the trigger subsystem is not in the wait-for-bus-arm state. If the Arming source is set to Immediate, this command is ignored. Group Arming Syntax ARM:LAYer2 Examples ARM:LAYER2 FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-31...
  • Page 48 Sets the slope for the start arming condition. Group Arming Syntax ARM:SLOPe {POSitive | NEGative} ARM:SLOPe? Arguments Examples ARM:SLOPE NEG ARM:SOURce Selects START arming input or switches off the start arming function. When switched off the DELay is inactive. 2-32 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 49 ARM:STOP:SLOPe {POSitive | NEGative} ARM:STOP:SLOPe? Returns POS|NEG Examples ARM:STOP:SLOPE NEG ARM:STOP:SOURce Selects STOP arming input or switches off the STOP arming function. The FCA3100 Series has also a programmable timer that is accessible in Totalize mode. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-33...
  • Page 50 ARM:STOP:TIMer <Numeric value> | MIN | MAX ARM:STOP:TIMer? Arguments is a number between 20 * 10 and 2 s. <Numeric value> sets 20 * 10 sets 2 s. Returns <Numeric value> Examples ARM:STOP:TIMER 0.1 2-34 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 51 Sets the number of samples to use in statistics sampling. Group Calculate Syntax CALCulate:AVERage:COUNt <number of samples> CALCulate:AVERage:COUNt? Arguments is an integer in the range 2 to 2*10 <number of samples> Returns < number of samples> FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-35...
  • Page 52 <BOOLEAN> = ( 1| ON | 0 | OFF ) Returns NOTE. Statistics with array readouts cannot be combined. To store and fetch individual values in a block measurement, use the default command is OFF. CALCulate:AVERage:STATe 2-36 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 53 MAX | MIN | MEAN | SDEV | ADEV CALCulate:DATA? (Query Only) Returns data calculated in the post processing block. NOTE. Use this command to return the calculated result without making a new measurement. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-37...
  • Page 54 Calculate Syntax CALCulate:IMMediate CALCulate:IMMediate? Returns <Decimal data> Where: <Decimal data> is the recalculated data. Examples CALC:AVER:STAT ON;TYPES DEV;:INIT;*OPC CALCULATE:IMMEDIATE Wait for operation complete CALC:DATA? <VALUE OF STANDARD DEVIATION> CALC:AVER:TYPE MEAN CALC:IMM? <MEAN VALUE> 2-38 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 55 = ( 1 | ON | 0 | OFF ) <BOOLEAN> Returns 1 | 0 CALCulate:LIMit:CLEar (No Query Form) The command resets the instrument that reports its result using the CALCulate:LIMit:FCOunt? query. Group Calculate Syntax CALCulate:LIMit:CLEar FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-39...
  • Page 56 The command returns the total number of times the set lower and upper limits have been passed since the instrument was last reset by CALCulate:LIMit:CLEar or automatically by INITiate CALCulate:LIMit:CLEar:AUTO is set to ON. 2-40 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 57 The command returns the number of times the set upper limit was passed since the instrument was last reset by CALCulate:LIMit:CLEar or automatically by INITiate CALCulate:LIMit:CLEar:AUTO is set to ON. Group Calculate Syntax CALCulate:LIMit:FCOunt:UPPer? Returns <Number of counts> FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-41...
  • Page 58 The command returns the number of measurement results between the set lower and upper limits since the instrument was last reset by CALCulate:LIMit:CLEar or automatically by INITiate CALCulate:LIMit:CLEar:AUTO is set to ON. Group Calculate Syntax CALCulate:LIMit:PCOunt? 2-42 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 59 Arguments = ( 1/ON | 0/OFF ) <BOOLEAN> Returns 1| 0 CALCulate:MATH Defines the mathematical expression used for mathematical operations. NOTE. The data type <expression data> must be enclosed within parentheses. Group Calculate FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-43...
  • Page 60 Switching off mathematics, however, does not switch off the CALCulate subsystem. Group Calculate Syntax CALCulate:MATH:STATe <Boolean> CALCulate:MATH:STATe? Arguments = ( 1/ON | 0/OFF ) <BOOLEAN> Returns Examples CALCULATE:MATH:STATE This example switches on mathematics. 2-44 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 61 A - B to subtract the value in register B from AMINUSB the value in register A. selects the expression A / B to calculate the ratio of the contents in ADIVB registers A and B. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-45...
  • Page 62 A / B. CALCULATE:TOTALIZE:TYPE ADIVB CALibration:INTerpolator:AUTO The FCA3000, FCA3100, and MCA3000 Series are reciprocal instruments that use an interpolating technique to increase the measurement resolution. In time measurements, for example, interpolation increases the resolution from 10 ns to 0.1 ns.
  • Page 63 [<reference>],[(@1|@2)] PERiod [<expected value>[,<resolution>],][(@1|@2|@3)] PERiod:AVERage [<expected value>[,<resolution>],][(@1|@2|@3)] PHASe [<expected value>[,<resolution>],][(@1|@2),(@1|@2)] PSLEwrate (@1|@2) NSLEwrate (@1|@2) RISE:TIME|RTIM [<lo threshold>[,<hi threshold>[,<expected value[,<resolution>]]],][(@1|@2)] FALL:TIME|FTIM [<lo threshold>[,<hi threshold>[,<expected value[,<resolution>]]],][(@1|@2)] PWIDth [<reference>],[(@1|@2)] NWIDth [<reference>],[(@1|@2)] TINTerval [<expected value>[,<resolution>],][(@1|@2),(@1|@2)] TSTAmp (@1|@2) FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-47...
  • Page 64 The CONFigure command controls the settings of the Input, Sense and Trigger subsystems in the instrument in order to make the best possible measurement. It also switches off any calculations with CALC:STATE OFF. 2-48 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 65 [<expected value>[,<resolution>],][(@1|@2),(@1|@2)] PSLEwrate (@1|@2) NSLEwrate (@1|@2) RISE:TIME|RTIM [<lo threshold>[,<hi threshold>[,<expected value[,<resolution>]]],][(@1|@2)] FALL:TIME|FTIM [<lo threshold>[,<hi threshold>[,<expected value[,<resolution>]]],][(@1|@2)] PWIDth [<reference>],[(@1|@2)] NWIDth [<reference>],[(@1|@2)] TINTerval [<expected value>[,<resolution>],][(@1|@2),(@1|@2)] TSTAmp (@1|@2) [VOLTage:]MAXimum (@1|@2) [VOLTage:]MINimum (@1|@2) [VOLTage:]PTPeak (@1|@2) [VOLTage:]RATIO (@1|@2),(@1|@2) FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-49...
  • Page 66 Set up the instrument for totalize on A, reset CONFIGURE:TOTALIZE[: CONTINUOUS] (@1) registers INIT:CONT ON Initiate the instrument continuously TOT:GATE ON Start totalizing FETC:ARR? -1 Read the most recent intermediate result without stopping the totalizing 2-50 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 67 Turns On/Off the updating of the screen. This can be used for security reasons or to improve the GPIB speed when the screen does not need to be updated. Group Display Syntax DISPlay:ENABle < Boolean > DISPlay:ENABle? FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-51...
  • Page 68 This command enables and disables expansion and execution of macros. If macros are disabled, the instrument will not recognize a macro although it is defined in the instrument. (The Enable Macro command takes a long time to execute.) Group Common 2-52 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 69 = the sum (between 0 and 255) of all bits that are true. <DEC.DATA> Table 2-29: Event status enable register (1 = enable) Weight Enables PON, Power-on occurred URQ, User Request CME, Command Error EXE, Execution Error FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-53...
  • Page 70 An array of measurements must first be made by the commands: INITiate, MEASure:ARRay:<MeasuringFunction>? CONFigure:ARRay: <MeasuringFunction>; READ:ARRay?. If the array size is set to a positive value, the first measurement made is the first result to be fetched. 2-54 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 71 If no new measurement was started, an error is returned. The optional SCALar means that one result is retrieved. Group Fetch FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-55...
  • Page 72 Arguments : Response data is sent with the MSB first and the LSB last (big-endian NORMAL order) : Response data is sent with the LSB first and the MSB last (little-endian SWAPPED order) 2-56 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 73 floating-point measured value followed by an eight-byte block containing the timestamp value expressed as a 64-bit integer (int64), the implicit unit being ps. When doing readouts in array form, with FETCh:ARRay?, READ:ARRay?, or MEASure:ARRay?, the response will consist of alternating measurement values. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-57...
  • Page 74 Sets the burst start delay (the time length between the burst start and the actual start of the burst measuring time). This parameter controls the point of time when a measurement sample is taken. 2-58 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 75 DBM | W The reference level 0 dBm is 1 mW in 50 Ω. Increasing the level by 3 dB means doubling the power. Decreasing the level by 3 dB means halving the power. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-59...
  • Page 76 Measurement time < 16 us: On is changed to Auto(Off) Measurement time > 2.5 s: Off is changed to Auto(On) External arming: On is changed to Auto(Off) An info box pops up explaining this. 2-60 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 77 The measuring function and the channels together form one <String> that must be placed within quotation marks. Table 2-31: Measuring functions and channels Measuring functions Available channels FREQuency 1|2|3|4|6 FREQuency:RATio 1|2|3,1|2|3 FREQuency:BURSt 1|2|3 FREQuency:PRF 1|2|3 NCYCles 1|2|3 FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-61...
  • Page 78 <Macro label> = the label of the macro for which you want to see the definition. (String data must be surrounded by or “ ”or ' ' as in the example below.) Returns <Block data> 2-62 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 79 Automatic Acquisition mode is entered, irrespective of the previous remote setting. Group Sense Syntax HF:ACQuisition[:STATe] <Boolean> HF:ACQuisition[:STATe]? Arguments <BOOLEAN> = {1 | ON} | {0 | OFF} Returns 1 | 0 FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-63...
  • Page 80 The trigger subsystem will continue to the other states, depending on programming. With the *RST setting, the trigger subsystem will bypass all its states and make a measurement, then return to idle state. (See page 2-23, Trigger Subsystem.) Group Initiate 2-64 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 81 1. Numeric values ≥5 or set the attenuation to 10. Returns 1.00000000000E+000|1.00000000000E+001 Examples sets the Input A attenuation to x10. INPUT:ATTENUATION 10 sets the Input B attenuation to x1. INPUT2:ATTENUATION MIN FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-65...
  • Page 82 = {1 | ON} | {0 | OFF} <BOOLEAN> Returns INPut{[1]|2}:FILTer:DIGital Switches on or off the digital low pass filter on input 1 (A) and/or input 2 (B). The cutoff frequency is set by the command: INPut{[1]|2}:FILTer:DIGital:FREQuency Group Input 2-66 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 83 filter to 1 Hz. sets the filter to 50 MHz. Returns <Numeric value> INPut{[1]|2}:IMPedance The impedance can be set to 50 Ω or 1 MΩ. Input Group Syntax INPut{[1]|2}:IMPedance {<Decimal data>| MAX | MIN } INPut{[1]|2}:IMPedance? FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-67...
  • Page 84 -50V and +50V if att = 10X. sets +5 V or +50 V and sets -5 V or -50 V, depending on the attenuator setting. Returns <Decimal data> Examples INPUT:LEVEL 0.01 INPUT2:LEVEL 2.0 2-68 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 85 The command itself does not switch on autotrigger, so if you want to set relative levels after having used absolute levels, you must also send the command INPut{[1]|2}:LEVel:AUTO, unless you have changed measurement function. Input Group FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-69...
  • Page 86 Input A. sets the instrument to trigger on a positive signal transition. sets the instrument to trigger on a negative signal transition. Returns POS | NEG Examples INPUT:SLOPE POS INPUT2:SLOPE NEG 2-70 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 87 The pacing parameter is not used in this case. Thus a series of consecutive frequency average measurements without dead time can be made in order to fulfil the requirements for correct calculation of Allan variance or deviation. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-71...
  • Page 88 FETCH:ARR? and READ:ARR? are defined for <MEASURING FUNCTION>, <PARAMETERS> <CHANNELS> each measuring function in the following table. Table 2-32: Measuring functions and parameters Measuring functions Parameters FREQuency [<expected value>[,<resolution>],][(@1|@2|@3|@4|@6)] FREQuency:BURSt [<expected value>[,<resolution>],][(@1|@2|@3)] FREQuency:POWer (@3) 2-72 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 89 For higher frequencies the average period time during the 4 μs or 8 μs observation time is stored. So, for higher frequencies the actual function is rather Period Average Back-to-Back. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-73...
  • Page 90 Therefore the TS values can only be used for relative time measurements. Measurement Group Syntax MEASure:ARRay:STSTamp? (<array size>)[,(@1)|(@2)] Arguments Array size is the number of TS. One TS can contain 1 or 2 numeric values depending on the state of the FORMat:TINFormation command. 2-74 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 91 TS is the time stamp value in seconds since a certain start event that is not available for external control. So the TS values can only be used for relative time measurements. Group Measurement Syntax MEASure:ARRay:TSTAmp? (<array size>)[,(@1)|(@2)] FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-75...
  • Page 92 <expected value> is the expected frequency, <resolution> is the required resolution. <(@{1|2|3|4|6})> is the channel to measure on, where: means input A (@1) means input B (@2) means input C (RF input option), (@3) 2-76 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 93 E (Rear panel arming input) (@4) If you omit the channel, the instrument measures on input A (@1) The prescaling factor for these channels can be set to 1 or 2 with the command FREQuency:BURSt:PREScaler[:STATe]. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-77...
  • Page 94 A (@1) means input B (@2) means input C (RF-input option) (@3) means input E (Rear panel arming input) (@4) If you omit the channel, the instrument measures on input A (@1) 2-78 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 95 *RST settings, except those specified as <parameters> and <channels> in the CONFigure command or query. MEASure:<MeasuringFunction>? You cannot use the query with MEASure:<MeasuringFunction>? CONFigure:TOTalize[:CONTinuous], since this function measures without stopping (continuously forever). FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-79...
  • Page 96 [<expected value>[,<resolution>],][(@1|@2),(@1|@2)] PSLEwrate (@1|@2) NSLEwrate (@1|@2) RISE:TIME|RTIM [<lo threshold>[,<hi threshold>[,<expected value[,<resolution>]]],][(@1|@2)] FALL:TIME|FTIM [<lo threshold>[,<hi threshold>[,<expected value[,<resolution>]]],][(@1|@2)] PWIDth [<reference>],[(@1|@2)] NWIDth [<reference>],[(@1|@2)] TINTerval [<expected value>[,<resolution>],][(@1|@2),(@1|@2)] TSTAmp (@1|@2) [VOLTage:]MAXimum (@1|@2) [VOLTage:]MINimum (@1|@2) [VOLTage:]PTPeak (@1|@2) [VOLTage:]RATIO (@1|@2),(@1|@2) 2-80 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 97 The equivalent command sequence is *RCL 1; READ?. The allowed range for <N> is 1 to 9. Use the somewhat slower MEASure:MEMory? command if you use memories 10 to 19. Group Measurement Syntax MEASure:MEMory<N>? Returns <measurement result> FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-81...
  • Page 98 50 percent of the signal. is the measurement channel: <(@{1|2})> means input A (@1) means input B. (@2) If you omit the channel, the instrument measures on input A. 2-82 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 99 [,<resolution>]][,<(@{1|2|3})>]] Arguments is the expected Period, <EXPECTED VALUE> is the required resolution, <RESOLUTION> is the measurement channel: <(@{1|2|3})> means input A (@1) means input B (@2) means input C (RF input option). (@3) FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-83...
  • Page 100 (@{1|2}) (@{1|2}) channel, means input A, means input B. (@1) (@2) If you omit the channel, the instrument measures between input A and input B. 2-84 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 101 Syntax MEASure{:RISE:TIME|:RTIM}?[ [<lower threshold> [,<upper threshold>[,<expected value>[,<resolution>]]]] [,(@1|@2)] Arguments <LOWER THRESHOLD> <UPPER THRESHOLD> <EXPECTED VALUE> are all ignored by the instrument. <RESOLUTION> is the measurement channel (input A or input B). <(@1)> <(@2) FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-85...
  • Page 102 MEASure[:VOLT]:MINimum? (Query Only) This command measures the negative peak voltage with the input DC coupled. Group Measurement Syntax MEASure[:VOLT]:MINimum?[ ({@1|@2})] Arguments is the measurement channel. means input A, means ({@1|@2}) (@1) (@2) input B. 2-86 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 103 A, means input (@{1|2}) (@1) (@2) MEASure[:VOLT]:PSLEwrate? (Query Only) This command measures the positive slew rate in V/s on either main input channel. Group Measurement Syntax MEASure[:VOLT]:PSLEwrate?[ (@1|@2)] FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-87...
  • Page 104 FLASH memory position 0-7. If no parameter is specified, a comma-separated list is returned, containing the number of samples in each of the eight FLASH memory positions 0-7. Group Memory Syntax MEMory:DATA:RECord:COUNt?[<Dataset Number>] 2-88 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 105 <Dataset Number>,<Number of Samples>|MAXimum MEMory:DATA:RECord:FETCh:STARt (No Query Form) The data pointer is set to the first sample in the Dataset entered as a number (0-7) in the command parameter <Dataset Number>. Group Memory FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-89...
  • Page 106 Group Memory Syntax MEMory:DATA:RECord:SAVE <Dataset Number>[,<Label>] MEMory:DATA:RECord:SETTings? (Query Only) The command returns the instrument settings used when the specified <Dataset> was saved. The format is the same as for SYSTem:SET. 2-90 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 107 The instrument responds with a value that is one greater than the maximum that can be sent as a parameter to the *SAV and *RCL commands. (States are numbered from 0 to max –1.) FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-91...
  • Page 108 ? might return 1 to indicate that all pending OPC operations are finished. *OPC *OPT? (Query Only) Returns a list of all detectable options present in the instrument, with absent options represented by an ASCII '0'. Group Common Syntax *OPT? 2-92 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 109 The output amplitude is fixed at TTL levels into 50 Ω. OUTPut:TYPE The command controls the rear panel pulse output configuration. Group Output Syntax OUTPut:TYPE PULSe | GATE | ALARm | OFF OUTPut:TYPE? FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-93...
  • Page 110 Service request enable register (*SRE) Event status enable register (*ESE) Operation status enable register (:STAT:OPER:ENAB) Questionable data/signal enable register (:STAT:QUES:ENAB) Device enable registers (:STAT:DREG0:ENAB) NOTE. *RST does not affect this power-on status clear flag. 2-94 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 111 # means that <arbitrary block program data> will follow. 2 means that the two following digits will specify the length of the data block. 40 is the number of characters in this example. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-95...
  • Page 112 CONF:FREQ; INP:FILT ON; READ? standard frequency measurement with the 100kHz filter on. The instrument is triggered, and data from the measurement are read out with the query. READ? 2-96 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 113 10 standard measurements. The instrument is triggered and data from the first five measurements are read out with the READ? query. *RMC (No Query Form) This command removes an individual macro. Group Common FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-97...
  • Page 114 IEEE 488 bus. (See page C-1, Instrument Settings After *RST.) All previous commands are discarded, macros are disabled, and the instrument is prepared to start new operations. Group Common Syntax *RST Examples *RST 2-98 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 115 = a number between 2E-8 (20 ns) and 2 s, in 10 ns increments. <NUMERIC VALUE> SOURce:PULSe:WIDTh The pulse generator time parameters are activated when the output type is configured to pulse using the OUTPut:TYPE PULSe command. Group Output FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-99...
  • Page 116 EAV, Error Available Not used Device Status Returns , the sum of all bits that are sent. <Integer> Examples ? might return 16 to indicate that a message is available in the output queue. *SRE 2-100 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 117 <Decimal data> = the sum (between 0 and 6) of all bits that are true. See the following table. Bit number Weight Condition Enable monitoring of low limit Enable monitoring of high limit Returns <bit mask> FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-101...
  • Page 118 <Decimal data> = the sum (between 0 and 3953) of all bits that are true. See the following table. Bit number Weight Condition 2048 Computing statistics 1024 In limit Using internal reference Meas. stopped / Computing statistics (in compatibility mode) Waiting for bus arming 2-102 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 119 Register if the enabled event occurs. (See page 3-2, The Status Byte Register (SBR).) Power-on will clear this register if power-on clearing is enabled via *PSC. Group Status Syntax STATus:OPERation:ENABle <Decimal data> STATus:OPERation:ENABle? FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-103...
  • Page 120 All bits in the positive transition filters of Questionable Data and Operation status registers are 1. All bits in the negative transition filters of Questionable Data and Operation status registers are 0. Group Status Syntax STATus:PRESet 2-104 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 121 Reads out the contents of the status questionable condition register. Group Status Syntax STATus:QUEStionable:CONDition? Returns <Decimal data> = the sum (between 0 and 20324) of all bits that are true. See the following table. FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-105...
  • Page 122 <Decimal data> = the sum (between 0 and 20324) of all bits that are true. See the following table. Bit number Weight Condition 16384 Unexpected parameter 2048 Out of limit 1024 Measurement timeout / Out of limit (in compatibility mode) Overflow 2-106 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 123 <Integer> = the sum (between 0 and 255) of all bits that are true. See the following table. Table 2-35: Status Byte register (1 = true) Weight Name Condition Enabled operation status has occurred. Reason for requesting service FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-107...
  • Page 124 0 and 30. <NUMERIC VALUE> sets address 0. sets address 30. [,<Numeric value> | MAX | MIN ] sets a secondary address. This is accepted but not used in the FCA3000 Series. Returns <Numeric value> Examples SYSTEM:COMMUNICATE:GPIB:ADDRESS 12 This example sets the bus address to 12.
  • Page 125 This command recalls the same default settings that are entered when you push USER OPT > Save/Recall > Recall Setup > Default. Table 2-36: Differences between SYSTem:PRESet and *RST *RST SYSTem:PRESet Measurement time 200 ms 10 ms INITiate:CONTinuous state Group System FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-109...
  • Page 126 A pause during the reading will cause the first value read after the pause to be the first measurement finished after the latest pre-pause value was read. The second 2-110 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 127 Depending on GPIB mode and output format, a special response message is sent to the controller instead of a measurement result, and the time-out bit in the STATus:QUEStionable? register is set. Group System FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-111...
  • Page 128 See also SYSTem:TOUT:AUTO if you need a command dealing with unnecessarily long timeouts due to absence of input signal. Note that you must enable time-out using SYSTem:TOUT ON for this setting to take effect. 2-112 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 129 TEST:SELect Selects which internal self-tests shall be used when self-test is requested by the *TST? command. Group Test Syntax TEST:SELect {RAM | ROM | LOGic | DISPlay | ALL} TEST:SELect? FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-113...
  • Page 130 Subsequent TIE measurements will use this value until it is changed by sending this command once more or by sending the setting command TIError:FREQuency <Numeric value>, which will deliberately fix the frequency. Group Sense Syntax TIError:FREQuency:AUTO {ON|OFF} TIError:FREQuency:AUTO? Returns 1 | 0 2-114 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 131 <BOOLEAN> = (1 | ON | 0 | OFF) Returns <Boolean> Examples Example command sequence: - Select totalizing on inputs A & B and CONFIGURE:TOTALIZE (@1),(@2) reset registers INITIATE:CONTINUOUS ON - Initiate totalizing TOTALIZE:GATE ON FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-115...
  • Page 132 This also means that stop arming is disabled for the measurements inside a block. NOTE. The actual number of measurements made on each INIT equals to: (ARM:COUNT)*(TRIGGER:START:COUNT) Group Trigger Syntax TRIGger:COUNt {<Numeric value> | MIN | MAX} TRIGger:COUNt? 2-116 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 133 TRIGger:TIMer <Numeric value> | MIN | MAX TRIGger:TIMer? Arguments is a time length between 2 ms and 500 s, entered in seconds. <NUMERIC VALUE> means 2 ms. means 500 s. Returns <Numeric value> FCA3000, FCA3100, MCA3000 Series Programmer Manual 2-117...
  • Page 134 In this example, *WAI makes the instrument perform both the frequency and the Duty Cycle measurement. Without *WAI, only the Duty Cycle measurement would be performed. This command sequence might return +5.1204004E+002; +1.250030E-001 2-118 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 135: Status And Events

    Status and Events...
  • Page 137: Registers

    Use the *ESR? query to read the SESR register. Reading the register clears the bits of the register so that the register can accumulate information about new events. Figure 3-1: The Standard Event Status Register (SESR) FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 138 GPIB controller. Master Status Summary. Obtained from *STB? query. (*STB? query) Summarizes the ESB and MAV bits in the SBR. Event Status Bit. Shows that status is enabled and present in the SESR. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 139 The RQS bit remains set to one until either the Status Byte Register is read with a Serial Poll or the MSS bit changes back to a zero. Figure 3-4: The Service Request Enable Register (SRER) FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 140: Queues

    *ESR? reads but not read from the Event Queue. Events that follow an *ESR? read are put in the Event Queue but are not available until *ESR? is used again. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 141: Event Handling Sequence

    Queue (2). If the corresponding bit in the ESER is also enabled (3), then the ESB bit in the SBR is set to one (4). When output is sent to the Output Queue, the MAV bit in the SBR is set to one (5). FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 142: Synchronization Methods

    For example, you could use the following command sequence to take a series of fast period measurements on a signal: /** Set up for period measurement **/ FUNCTION “PERIOD 1” INPUT:LEVEL 0; :AUTO OFF; :COUPLING DC FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 143 If the corresponding status registers are enabled, the *OPC command sets the OPC bit in the Standard Event Status Register (SESR) when an operation is complete. You achieve synchronization by using this command with either a serial poll or service request handler. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 144 FUNCTION “PERIOD 1” INPUT:LEVEL 0; :AUTO OFF; :COUPLING DC TRIGGER:COUNT 1000; :ARM COUNT 1 DISPLAY:ENABLE ON FORMAT ASCII; :TINFORMATION OFF /* Enable the status registers */ *ESE 1 *SRE 32 /** Start measurement**/ INITIATE FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 145 SESR and is controlled by the equivalent bit in the DESER. Thus, each message is associated with a specific SESR bit. In the message tables, the associated SESR bit is specified in the table title, with exceptions noted with the error message text. FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 146: Error Messages

    A syntactic element contains a character which is invalid for that type; for example, a header containing an ampersand, SETUP&. This error might be used in place of errors –114, –121, –141, and perhaps some others. 3-10 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 147 255 digits excluding leading zeros (see IEEE-488.2, 7.7.2.4.1). –128 Numeric data not allowed A legal numeric data element was received, but the instrument does not accept it in this position for the header. FCA3000, FCA3100, MCA3000 Series Programmer Manual 3-11...
  • Page 148 IEEE-488.2, 7.7.6.2); for example, an END message was received before the length was satisfied. –168 Block data not allowed A legal block data element was detected but was not allowed by the instrument at this point in parsing. 3-12 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 149 The ’$’ sign was not followed by a single digit between 1 and 9. formed placeholder Macro parameter error; The macro was invoked with a different number of parameters than used parameter count mismatch in the definition. FCA3000, FCA3100, MCA3000 Series Programmer Manual 3-13...
  • Page 150 Data out of range; above Data above maximum for this function/ parameter. maximum Data out of range; (Save/recall A number outside 0 to 19 was specified for the save/recall memory. memory number) 3-14 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 151 –271 Macro syntax error Indicates that a syntactically correct macro program data sequence, according to IEEE-488.2 10.7.2, could not be executed due to a syntax error within the macro definition (see IEEE-488.2, 10.7.6.3) FCA3000, FCA3100, MCA3000 Series Programmer Manual 3-15...
  • Page 152 This code indicates that there is no room in the queue and an error occurred but was not recorded. System Query Errors The following table lists the system event messages. These messages are generated whenever certain system conditions occur. 3-16 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 153 A floating-point error occurred during a instrument operation. number’ (1)110 Invalid measurement function The instrument was requested to set a measurement function it could not make. An attempt was made to write in a protected memory. (1)120 Save/recall memory protected FCA3000, FCA3100, MCA3000 Series Programmer Manual 3-17...
  • Page 154 PC controller cards are known to do) (1)210 Mnemonic table error An abnormal condition occurred in connection with the mnemonics tables (generic error). 3-18 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 155 The response formatter was called with bad data for the response data. formatter (1)240 Unrecognized error number An error number was found in the error queue for which no matching error in error queue information was found. FCA3000, FCA3100, MCA3000 Series Programmer Manual 3-19...
  • Page 156 Status and Events 3-20 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 157: Programming Examples

    Programming Examples...
  • Page 159: Introduction

    To be able to run these programs without modification, the address of your instrument must be set to 10. Five examples are included: Example 1: Individual Measurements Example 2: Block Measurements Example 3: Fast Measurements Example 4: USB Communication Example 5: Continuous Measurements FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 160: Individual Measurements (Example #1)

    “CONF:PWID (@1)”); // Some settings... ibwrite(instrument, “AVER:STAT OFF;:ACQ:APER MIN”); ibwrite(instrument, “INP:LEV:AUTO OFF; :INP:LEV 0"); ibwrite(instrument, ”FORMAT:TINF ON;:FORMAT ASCII"); // Check that setup was OK, all commands correctly spelled etc ibwrite(instrument, “syst:err?”); ibrd(instrument, buf, 100L); buf[ibcnt]=0; FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 161 /******************** * Support functions * ********************/ void ibwrite(int instrument, const char *string) { ibwrt(instrument, (char*) string, strlen(string)); void sleep (long mswait) { time_t EndWait = clock() + mswait * (CLOCKS_PER_SEC/1000); while (clock() < EndWait); FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 162: Block Measurements (Example #2)

    // Reset instrument to known state ibwrite(instrument, “*rst;*cls”); // Setup for period measurement ibwrite(instrument, “FUNC ‘PER 1’”); // Some settings... ibwrite(instrument, “INP:LEV:AUTO OFF;:INP:LEV 0;COUP DC”); ibwrite(instrument, “TRIG:COUNT 1000;:ARM:COUNT 1"); ibwrite(instrument, ”DISP:ENAB ON"); ibwrite(instrument, “FORMAT ASCII;:FORMAT:TINF OFF”); FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 163 /******************** * Support functions * ********************/ void ibwrite(int instrument, const char *string) { ibwrt(instrument, (char*) string, strlen(string)); void sleep (long mswait) { time_t EndWait = clock() + mswait * (CLOCKS_PER_SEC/1000); while (clock() < EndWait); FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 164: Fast Measurements (Example #3)

    100L); buf[ibcnt]=0; printf(“instrument identification string: %s\n”, buf); printf(“Setup\n”); if ((instrument = ibdev(0, address, 0, T3s, 1, 0)) < 0) { printf(“Could not connect to instrument”); exit(1); // Reset instrument to known state ibwrite(instrument, “*rst;*cls”); FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 165 (“Total time %d ms (%f samples /s)\n”, Stop- Start, (double)1000.0/(Stop-Start)*1000); ibwrite(instrument, “DISP:ENAB ON”); do { ibwrite(instrument, “syst:err?”); ibrd(instrument, buf, 100L); buf[ibcnt]=0; printf(“End error: %s\n”, buf); } while (atoi(buf)!=0); ibonl(instrument, 0); /******************** * Support functions * FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 166 Programming Examples ********************/ void ibwrite(int instrument, const char *string) { ibwrt(instrument, string, strlen(string)); void sleep (long mswait) { time_t EndWait = clock() + mswait * (CLOCKS_PER_SEC/1000); while (clock() < EndWait); FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 167: Usb Communication (Example #4)

    Status = viWrite(Instr, “*IDN?\n”, 6, &RetCount); Status = viRead(Instr, Buffer, MAX_CNT, &RetCount); Buffer[RetCount]=0; printf(“%s\n”,Buffer); Status = viWrite(Instr, “INIT:CONT OFF;:func ‘per’\n”, 25, &RetCount); while( i++<10){ Status = viWrite(Instr, “init;fetc?\n”, 11, &RetCount); if (Status != VI_SUCCESS) { FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 168 /* Close down the system */ Status = viClose(Instr); Status = viClose(defaultRM); return 0; void Sleep( clock_t Wait ) { clock_t Goal; Goal = Wait + clock(); while( Goal > clock() ); 4-10 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 169: Continuous Measurements (Example #5)

    "Read error: %x at line %d\n", (unsigned)Status, Line); return((unsigned)Status); #define WriteDev(Str) WriteDevice(Instr, Str, __LINE__) #define ReadDev(Buf, BufLength, pActualLength) ReadDevice(Instr, Buf, BufLength, pActualLength, __LINE__) ViSession defaultRM, Instr; void Quit() { (void)viClose(Instr); (void)viClose(defaultRM); _exit(0); FCA3000, FCA3100, MCA3000 Series Programmer Manual 4-11...
  • Page 170 // check if string is one of the given set. returns // the number of matched string or -1 if no matches are found inline int CheckStr(char const *s, int nSLen, char const *Set[], int nSetSize) { 4-12 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 171 ( j = 0; 0 != s[j] && ':' != s[j]; j++ ); // check interface and read address (if any) int const nInterface = CheckStr(s, j, StrInterfaces, 2); if ( nInterface < 0 ) { bError = true; break; } FCA3000, FCA3100, MCA3000 Series Programmer Manual 4-13...
  • Page 172 ( 1 != sscanf(s, "%lf", &(pArgs->RefFreq)) ) { bError = true; break; case 5: { // Delta if ( 1 != sscanf(s, "%lf", &(pArgs->Delta)) ) { bError = true; break; default: { 4-14 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 173 CheckMeas(double Val, CmdArgs const &Args) { return (_isnan(Val) || Val < Args.RefVal - Args.Delta || Val > Args.RefVal + Args.Delta); // check for buttonpress and exit if any inline void CheckUserCancel() { FCA3000, FCA3100, MCA3000 Series Programmer Manual 4-15...
  • Page 174 // For this sample program we'll just pick the first // found, if any. sprintf(Command, "USB?*INSTR{VI_ATTR_MANF_ID==0x0699 && VI_ATTR_MODEL_CODE==0x3020}"); else { // GPIB sprintf(Command, "GPIB::%d::INSTR", Args.nAddr); Status = viFindRsrc(defaultRM, Command, &fList, &numInstrs, Desc); if (Status != VI_SUCCESS) { fprintf(stderr, "Did not find instrument\n"); 4-16 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 175 ( CheckMeas(Val, Args) ) { fprintf(stderr, "Bad result: %s = %g %s\n", Args.Func, Val, (Args.bPeriod ? "s" : "Hz")); sprintf(Command, "Connect a %lg Hz signal to A and try again\n", Args.RefFreq); QuitMsg(Command); FCA3000, FCA3100, MCA3000 Series Programmer Manual 4-17...
  • Page 176 // There is no data available at the moment. Wait a // bit with the next fetch attempt in order to avoid // swamping the instrument with useless operations // which could actually starve the measurement // handling in the instrument. Sleep(20); continue; 4-18 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 177 // the test run. if (TSVal <= PrevTSVal) { printf("Invalid timestamp, sample %lf, prev = %lf, Cur = %lf\n", (double)Count, (double)PrevTSVal * 1e-12, (double)TSVal * 1e-12); // Check for gaps in the measurement data. This will FCA3000, FCA3100, MCA3000 Series Programmer Manual 4-19...
  • Page 178 (double)TSVal * 1e-12); PrevTSVal = TSVal; Count++; // Display some progress. if (Count % 10000 == 0) { printf("Sample %.0lf, value %.8le, timestamp %lf\n", (double)Count, Val, (double)TSVal * 1e-12); if (Failed) { break; ReportAndQuit(); return(0); 4-20 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 179: Appendices

    Appendices...
  • Page 181: Appendix A: Character Set

    Appendix A: Character Set FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 182 Appendix A: Character Set FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 183: Appendix B: Default Command Settings

    #14INIT in compatible mode ARM:DELay ARM:STOP:SLOPe ARM:STOP:SOURce ARM:STOP:TIMer CALCulate:AVERage:COUNt CALCulate:AVERage:STATe CALCulate:AVERage:TYPE MEAN CALCulate:DATA? Event, no * RSTcondition. CALCulate:IMMediate Event, no * RSTcondition. CALCulate:LIMit CALCulate:LIMit:CLEar:AUTO CALCulate:LIMit:LOWer CALCulate:LIMit:LOWer:STATe CALCulate:LIMit:UPPer CALCulate:LIMit:UPPer:STATe CALCulate:MATH K=1, L=0, M=1 (No calculation) CALCulate:MATH:STATe CONFigure:TOTalize[:CONTinuous] (@1),(@2) FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 184 0 (but controlled by Autotrigger since AUTO is on after * RST) INPut{[1]|2}:SLOPe ACQuisition:APERture 10 ms after *RST ACQuisition:HOFF ACQuisition:HOFF:TIME 200 μs FREQuency:POWer:UNIT FREQuency:RANGe:LOWer 100 (Hz) FUNCtion FREQuency_1 FREQuency:REGRession AUTO ROSCillator:SOURce AUTO TOTalize:GATE SYSTem:TOUT 0.1 s SYSTem:TOUT:TIME TEST:SELect TRIGger:COUNt FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 185: Appendix C: Instrument Settings After *Rst

    Statistics State number of Samples number of Bins Pacing State Pacing Time 20 ms Mathematics Mathematics State Constants K=M=1, L=0 Limits Limit State Limit Mode RANGE Lower Limit Upper Limit Burst Sync Delay 400 μs FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 186 Smart Time Interval Meas. Time 10 ms Memory Protection (Memory 1 to 10) Not changed by *RST Auto Trig Low Freq Lim 100 Hz Timebase Reference AUTO Arm-Trig State IDLE (equivalent to sending :INIT:CONT OFF) FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 187: Appendix D: Reserved Words

    TRIGger AVERage IMPedance PREScaler TSTAmp BORDer INFinity PRESet TYPE BTBack INITiate UNIT BURSt INPut PSLEwrate UNPRotect INSTRument PTPeak UPPer Blockdata PULSe VOLT Boolean INTerpolator PWIDth CALCulate INVerted QUEStionable WIDTh CALibration LANGuage CENTer LAYer2 RANGe FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 188 Appendix D: Reserved Words FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 189 CALCulate:LIMit:FCOunt?, 2-40 CALCulate:LIMit:LOWer, 2-42 CALCulate:LIMit:LOWer:STATe, 2-42 *GMC?, 2-62 CALCulate:LIMit:PCOunt?, 2-42 CALCulate:LIMit:UPPer, 2-43 CALCulate:LIMit:UPPer:STATe, 2-43 HCOPy:SDUMp:DATA?, 2-63 CALCulate:MATH, 2-43 CALCulate:MATH:STATe, 2-44 HF:ACQuisition[:STATe], 2-63 HF:FREQuency:CENTer, 2-64 CALCulate:STATe, 2-45 CALCulate:TOTalize:TYPE, 2-45 CALibration:INTerpolator:AUTO, 2-46 *CLS, 2-46 *IDN?, 1-1 FCA3000, FCA3100, MCA3000 Series Programmer Manual Index-1...
  • Page 190 MEASure:PWIDth?, 2-85 MEASure:TINTerval?, 2-86 *SAV, 2-99 MEASure{:FALL:TIME|:FTIM}?, 2-76 SOURce:PULSe:PERiod, 2-99 MEASure{:PDUTycycle|:DCYCle}?, 2-83 SOURce:PULSe:WIDTh, 2-99 MEASure{:RISE:TIME|:RTIM}?, 2-85 *SRE, 2-100 MEASure[:VOLT]:MAXimum?, 2-86 STATus:DREGister0:ENABle, 2-101 MEASure[:VOLT]:MINimum?, 2-86 STATus:DREGister0?, 2-101 MEASure[:VOLT]:NCYCles?, 2-87 STATus:OPERation:CONDition?, 2-102 MEASure[:VOLT]:NSLEwrate?, 2-87 STATus:OPERation:ENABle, 2-103 Index-2 FCA3000, FCA3100, MCA3000 Series Programmer Manual...
  • Page 191 SYSTem:ERRor?, 2-109 TRIGger:COUNt, 2-116 SYSTem:LANGuage, 2-109 TRIGger:SOURce, 2-117 SYSTem:PRESet, 2-109 TRIGger:TIMer, 2-117 SYSTem:SET, 2-110 Truncating commands, 2-3 SYSTem:TALKonly, 2-110 *TST?, 2-118 SYSTem:TEMPerature?, 2-111 SYSTem:TOUT, 2-111 SYSTem:TOUT:AUTO, 2-112 *WAI, 2-118 SYSTem:TOUT:TIME, 2-112 SYSTem:UNPRotect, 2-113 FCA3000, FCA3100, MCA3000 Series Programmer Manual Index-3...

This manual is also suitable for:

Fca3003Fca3103Fca3120Mca3027Fca3020Fca3100 ... Show all

Table of Contents