Keithley4200AtvSmu
adelay(int,double[])#
This command specifies an array of delay points to use with asweepX command calls
Name | Description |
---|---|
numberOfPoints: | The number of separate delay points defined in the array |
delays: | The array defining the delay points; this is a single-dimension floating-point array that is delaypoints long and contains the individual dela times; units of the delays are seconds |
The delay is specified in units of seconds, with a resolution of 1 ms. The minimum delay is 0 s.
bsweepi(int,double,double,int,double,double@)#
This command supplies a series of ascending or descending currents and shuts down the source when a trigger condition is encountered.
Name | Description |
---|---|
instrId: | The instrument identification code of the sourcing instrument |
startVal: | The initial current level applied as the first step in the sweep; this value can be positive or negative |
endVal: | The final current level applied as the last step in the sweep; this value can be positive or negative |
numPoints: | The number of separate current force points between the startval and endval parameters(1 to 32,767) |
delayTime: | The delay in seconds between each step and the measurements defined by the active measure list |
result: | Assigned to the result of the trigger; this value represents the source value applied at the time of the trigger or breakdown |
Returns: | |
double |
Assigned to the result of the trigger; this value represents the source value applied at the time of the trigger or breakdown |
The bsweepX command is used with the trigXg, trigXl, or trigcomp command. These trigger commands provide the termination point for the sweep. At the time of trigger or breakdown, all sources are shut down to prevent damage to the device under test. Typically, this termination point is the test current required for a given breakdown voltage.
Once triggered, the bsweepX command terminates the sweep and clears all sources by executing a devclr command internally. The standard sweepX command continues to force the last value. This is useful for device characterization curves but can cause problems when used in device breakdown conditions.
The bsweepX command can also be used with the smeasX, sintgX, savgX, or rtfary command. Measurements are stored in a one-dimensional array in the order in which they were made. The system maintains a measurement scan table consisting of devices to test. This table is maintained using calls to the smeasX, sintgX, savgX, or clrscn command. As multiple calls to sweepX commands are made, these commands are appended to the measurement scan table. Measurements are made after the time programmed by the delay_time parameter has elapsed at the beginning of each bsweepX command step.
When multiple calls to the bsweepX command are executed in the same test sequence, the arrays defined by calls to the smeasX, sintgX, or savgX command are all loaded sequentially. The results from the second call to the bsweepX command are appended to the results of the previous bsweepX command call. This can cause access violation errors if the arrays were not dimensioned for the absolute total. The measurement scan table remains intact until a devint, execut, or clrscn command completes.
Defining new test sequences using the smeasX, sintgX, or savgX command adds the command to the active measure list. The previous measurements are still defined and used; however, previous measurements for the second sweep can be eliminated by calling the clrscn command. New measurements are defined and used by calling the smeasX, sintgX, or savgX command after a clrscn command.
Note that changing the source mode of the SMU can modify the measure range. If the sourcing mode is changed from voltage to current sourcing (or from current to voltage sourcing), the measure range may be changed to minimize variations in the SMU output level. See rangeX for recommended command order.
bsweepv(int,double,double,int,double,double@)#
This command supplies a series of ascending or descending voltages or currents and shuts down the source when a trigger condition is encountered.
Name | Description |
---|---|
instrId: | The instrument identification code of the sourcing instrument |
startVal: | The initial voltage level applied as the first step in the sweep; this value can be positive or negative |
endVal: | The final voltage level applied as the last step in the sweep; this value can be positive or negative |
numPoints: | The number of separate voltage force points between the startval and endval parameters(1 to 32,767) |
delayTime: | The delay in seconds between each step and the measurements defined by the active measure list |
result: | Assigned to the result of the trigger; this value represents the source value applied at the time of the trigger or breakdown |
Returns | |
double |
Assigned to the result of the trigger; this value represents the source value applied at the time of the trigger or breakdown |
devclr()#
This command sets all sources to a zero state
This command clears all sources sequentially in the reverse order from which they were originally forced.
devint#
This command resets all active instruments in the system to their default states.
Resets all active instruments, including the 4200A-CVIV, in the system to their default states. It clears the system by opening all relays and disconnecting the pathways. Meters and sources are reset to their default states. Refer to the hardware manuals for the instruments in your system for listings of available ranges and the default conditions and ranges. The devint command is implicitly called by the execut and tstdsl commands.
forcei(int,double)#
This command programs a sourcing instrument to generate a current at a specific level
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The level of the bipolar voltage or current forced in volts or amperes |
The forcev and forcei commands generate either a positive or negative voltage, as directed by the sign of the value argument. With both forcev and forcei commands:
• Positive values generate positive voltage or current from the high terminal of the source relative to the low terminal.
• Negative values generate negative voltage or current from the high terminal of the source relative to the low terminal.The forcev command accepts both CMTR1H and CMTR1L for the instr_id parameter to support differential CVU biasing. By forcing one polarity on CMTR1H and an opposite polarity on CMTR1L, total bias can be up to 60 V, centered in relationship to ground. Note that it is not possible to exceed ± 30 V in relationship to ground.
When using the limitX, rangeX, and forceX commands on the same source at the same time in a test sequence, call the limitX and rangeX commands before the forceX command.
See “Compliance limits” in the Model 4200A-SCS Source-Measure Unit (SMU) User's Manual for details. The ranges of currents and voltages available from a voltage or current source vary with the instrument type. For more detailed information, refer to the hardware manual for each instrument. To force zero current with a higher voltage limit than the 20 V default, include one of the following calls ahead of the forcei call:
• A measv call, which causes the 4200A-SCS to autorange to a higher voltage limit.
• A rangev call to an appropriate fixed voltage, which results in a fixed voltage limit.To force zero volts with a higher current limit than the 10 mA default, include one of the following calls ahead of the forcev call:
• A measi call, which causes the 4200A-SCS to autorange to a higher current limit.
• A rangei call to an appropriate fixed current, which results in a fixed current limit.Note that changing the source mode of the source-measure unit (SMU) can modify the measure range. If the sourcing mode is changed from voltage to current sourcing (or from current to voltage sourcing), the measure range may be changed to minimize variations in the SMU output level.
forcev(int,double)#
This command programs a sourcing instrument to generate a voltage at a specific level
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The level of the bipolar voltage or current forced in volts or amperes |
intgi(int,double@)#
This command performs current measurements averaged over a user-defined period (usually one ac line cycle).
Name | Description |
---|---|
instrId: | The instrument identification code of the measuring instrument, such as SMU1 |
val: | The variable assigned to the result of the measurement |
Returns | |
double |
The variable assigned to the result of the measurement |
The averaging is done in hardware by integration of the analog measurement signal over a specified period of time. The integration is automatically corrected for 50 Hz or 60 Hz power mains.
For a measurement conversion, the signal is sampled for a specific period of time. This sampling time for measurement is called the integration time. For the intgX command, the default integration time is set to 1 PLC. For 60 Hz line power, 1 PLC = 16.67 ms (1 PLC/60 Hz). For 50 Hz line power, 1 PLC = 20 ms (1 PLC/50 Hz).
The default integration time is one ac line cycle (1 PLC). This default time can be overridden with the KI_INTGPLC option of setmode. The integration time can be set from 0.01 PLC to 10.0 PLC. The devint command resets the integration time to the one ac line cycle default value.
The only difference between measX and intgX is the integration time. For measX, the integration time is fixed at 0.01 PLC. For intgX, the default integration time is 1 PLC but can set to any PLC value between 0.01 and 10.0 by using the setmode command.
intgv(int,double@)#
This command performs voltage measurements averaged over a user-defined period (usually one ac line cycle).
Name | Description |
---|---|
instrId: | The instrument identification code of the measuring instrument, such as SMU1 |
val: | The variable assigned to the result of the measurement |
Returns | |
double |
The variable assigned to the result of the measurement |
limiti(int,double)#
This command allows the programmer to specify a current limit other than the default limit of the instrument.
Name | Description |
---|---|
instrId: | The instrument identification code of the instrument on which to impose a source value limit |
val: | The maximum level of the current |
The parameter limit_val is bidirectional. For example, the command limitv(SMU1, 10.0) limits the voltage of the current source SMU1 to ±10.0 V. The command limiti(SMU1, 1.5E-3) limits the current of the voltage source SMU1 to ±1.5 mA. Use the limiti command to limit the current of a voltage source. Use the limitv command to limit the voltage of a current source.
If the instrument is ranged below the programmed limit value, the instrument temporarily limits to full scale of range.
This command must be called in the test sequence before the associated forceX, pulseX, bsweepX, sweepX, or searchX command is used to generate the voltage or current. The limitX command also sets the top measurement range of an autoranged measurement. The limits set within a particular test sequence are cleared when the devint or execut command is called.
If you need a voltage limit greater than 20 V at a source-measure unit (SMU) that has been set to force zero current, call the measv command to set the SMU to autorange to a higher range, or use the rangev command to set a higher voltage range. Similarly, if you need a current limit of greater than 10 mA at a SMU that has been set to force zero volts, call the measi command to set the SMU to autorange to a higher range or use the rangev command to set a higher current range.
limitv(int,double)#
This command allows the programmer to specify a voltage limit other than the default limit of the instrument.
Name | Description |
---|---|
instrId: | The instrument identification code of the instrument on which to impose a source value limit |
val: | The maximum level of the voltage |
lorangei(int,double)#
This command defines the bottom autorange limit.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The value of the instrument range in amperes |
The lorangeX command is used with autoranging to limit the number of range changes, which saves test time.
If the instrument is on a range lower than the one specified by the lorangeX command, the range is changed. The 4200A-SCS automatically provides any settling delay for the range change that may be necessary due to this potential range change.
Once defined, the lorangeX command is in effect until a devclr, devint, execut, or another lorangeX command executes.
lorangev(int,double)#
This command defines the bottom autorange limit.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The value of the instrument range in volts |
measi(int,double@)#
This command allows the measurement of current.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The variable assigned to the result of the measurement |
Returns | |
double |
The variable assigned to the result of the measurement |
For a measurement conversion, the signal is sampled for a specific period of time. This sampling time for measurement is called the integration time. For the measX command, the integration time is fixed at 0.01 PLC. For 60 Hz line power, 0.01 PLC = 166.67 μs (0.01 PLC/60 Hz). For 50 Hz line power, 0.01 PLC = 200 μs (0.01 PLC/50 Hz).
The only difference between measX and intgX is the integration time. For measX, the integration time is fixed at 0.01 PLC. For intgX, the default integration time is 1 PLC, but can set to any PLC value between 0.01 and 10.0.
After the command is called, all relay matrix connections remain closed, and the sources continue to generate voltage or current. For this reason, two or more measurements can be made in sequence. The rangeX command directly affects the operation of the measX command. The use of the rangeX command prevents the instrument addressed from automatically changing ranges when the measX command is called. This can result in an overrange condition such that would occur when measuring 10 V on a 4.0 V range. An overrange condition returns the value 1.0E+22 as the result of the measurement.
If used, the rangeX command must be in the test sequence before the associated measX command. All measurements except the meast command invoke a timer snapshot measurement to be made by all enabled timers. This timer snapshot can then be read with the meast command. In general, measurement commands that return multiple results are more efficient than performing multiple measurement commands.
A compliance limit setting goes into effect when the SMU is on a measure range that can accommodate the limit value. For manual ranging, the rangeX command is used to select the range. For autoranging, the measi or measv command will trigger a needed range change before the measurement is performed. See “Compliance limits” in the Model 4200A-SCS Source-Measure Unit (SMU) User's Manual for details.
meast(int,double@)#
This command allows the measurement of time.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The variable assigned to the result of the measurement |
Returns | |
double |
The variable assigned to the result of the measurement |
measv(int,double@)#
This command allows the measurement of voltage.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The variable assigned to the result of the measurement |
Returns | |
double |
The variable assigned to the result of the measurement |
rangei(int,double)#
This command selects a range and prevents the selected instrument from autorangin
Name | Description |
---|---|
instrId: | The instrument identification code1 |
val: | The value of the highest measurement to be made (the most appropriate range for this measurement is selected); if range is set to 0, the instrument selects a range automatically |
Use the rangeX command to eliminate the time required by automatic range selection on a measuring instrument. Because the rangeX command prevents autoranging, an overrange condition can occur (for example, when measuring 10 V on a 2 V range). The value 1.0e+22 is returned when this occurs.
The rangeX command can also reference a source, because a source-measure unit (SMU) can be either of the following:
• Simultaneously a voltage source, voltmeter, and ammeter.
• Simultaneously a current source, ammeter, and voltmeter.The range of a SMU is the same for the source and the measure commands. When selecting a range below the limit value, whether it is explicitly programmed or the default value, an instrument temporarily uses the full-scale value of the range as the limit. This does not change the programmed limit value, and if the instrument range is restored to a value higher than the programmed limit value, the instrument again uses the programmed limit value. See “Compliance limits” in the Model 4200A-SCS Source-Measure Unit (SMU) User's Manual for details.
When changing the instrument range, be careful not to overrange the instrument. For example, a test initially performed on the 10 mA range with a 5 mA limit is changed to test in the 1 mA range with a 1 mA limit. Notice that the limit is lowered from 5 mA to 1 mA to avoid overranging the 1 mA setting. When source mode of the SMU changes, the measure range may change. This change minimizes variations in the SMU output level. The source mode of the SMU refers to its voltage sourcing or current sourcing capability. Changing the source mode means using a command (such as forceX) to change the SMU mode from forcing voltage to forcing current (or from forcing current to forcing voltage). For example, if the SMU is programmed to force voltage (forcev), and then is programmed with to force current (forcei), to ensure a consistent output signal, the previously programmed current measure range may change. Make sure the correct measure range is set by sending the rangeX command after switching the source mode. The commands that can change the source mode are asweepX, bsweepX, forceX, pulseX, searchX, and sweepX.
rangev(int,double)#
This command selects a range and prevents the selected instrument from autoranging.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | The value of the highest measurement to be made (the most appropriate range for this measurement is selected); if range is set to 0, the instrument selects a range automatically |
rtfary(double[]@)#
This command returns the array of force values used during the subsequent voltage or frequency sweep.
Name | Description |
---|---|
arr: | Array of force values for voltage or frequency |
Returns | |
double[] |
Array of force values for voltage or frequency |
This command is used to return an array of voltage or frequency force values for a sweep. Send this command before calling any sweep command.
setauto(int)#
This command re-enables autoranging and cancels any previous rangeX command for the specified instrument.
Name | Description |
---|---|
instrId: | The instrument identification code |
When an instrument is returned to the autorange mode, it will remain in its present range for measurement purposes. The source range will change immediately. Due to the dual mode operation of the SMU (voltage versus current), setauto places both voltage and current ranges in autorange mode.
sweepi(int,double,double,int,double)#
This command generates a ramp consisting of ascending or descending voltages or currents. The sweep consists of a sequence of steps, each with a user-specified duratio
Name | Description |
---|---|
instrId: | The instrument identification code of the sourcing instrument |
startval: | The initial voltage or current level output from the sourcing instrument, which is applied for the first sweep measurement; this value can be positive or negative |
endval: | The final voltage or current level applied in the last step of the sweep; this value can be positive or negative |
stepno: | The number of current or voltage changes in the sweep; the actual number of forced points is one greater than the number of steps specified |
stepdelay: | The delay in seconds between each step and the measurements defined by the active measure list |
sweepv(int,double,double,int,double)#
This command performs a linear staircase dc voltage sweep.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
startval: | Initial force value for the sweep (−30 V to 30 V) |
endval: | Final force value for the sweep (−30 V to 30 V) |
stepno: | Number of steps in the sweep (1 to 4096) |
stepdelay: | Delay before each measurement (0 to 999 s) |