Keithley4200AtvCvu
The LPT commands for the 4210-CVU or 4215-CVU
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 |
This command is used to define an array of delay values for the points in a voltage array sweep (asweepv). Each delay in the array is added to the delay time specified in asweepv. For example, if the array contained four delays (0.04 s, 0.05 s, 0.06 s, and 0.07 s) and the delay time specified in asweepv is 0.1 s, then the resulting delays are (0.14 s, 0.15 s, 0.16 s, and 0.17 s). The number of delay values must match the number of points in the voltage array sweep.
asweepv(int,int,double,double[])#
This command does a dc voltage sweep using an array of voltage values.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
numberOfPoints: | Total number of sweep points (1 to 4096) |
delay: | Delay time before each measurement (0 to 999 s) |
forceArray: | Array of dc voltage values |
The delayTime parameter sets the user-programmed delay before each measurement. Note that there is an additional inherent system delay that occurs at the start of each step. If different delay times are needed in the sweep, an array of delay time values can be set to adjust the delay times at each step (see adelay for details). Use the setfreq and setlevel commands to set the ac drive frequency and voltage for the sweep.
bsweepv(int,double,double,int,double,double@)#
This command supplies a series of ascending or descending voltages 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.
dsweepf(int,double,double,int@,double)#
This command performs a dual frequency sweep.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
startf: | Initial frequency for the sweep |
stopf: | Final frequency for the first sweep |
numPts: | Variable to receive the number of points sourced during the sweep |
delaytime: | Delay before each measurement (0 to 999 s) |
Returns | |
int |
Variable to receive the number of points sourced during the sweep |
This command is used to perform a dual frequency sweep (see Example). The CVU provides test frequencies from 1 kHz to 10 MHz in the following steps:
• 1 kHz through 10 kHz in 1 kHz steps
• 10 kHz to 100 kHz in 10 kHz steps
• 100 kHz to 1 MHz in 100 kHz steps
• 1 MHz to 10 MHz in 1 MHz steps
The frequency points to sweep are set using the startf and stopf parameters. If an entered value is not a supported frequency, the closest supported frequency is selected (for example, 15 kHz input selects 20 kHz). If a specified frequency is equidistant from two adjacent frequencies, it is rounded up to the higher frequency. The sweep can step forward (low frequency to high frequency) or it can step in reverse (high frequency to low frequency).
When the sweep is started, the CVU will step through all the supported frequency points from start to stop for the first sweep, and then repeat (in the reverse direction) from stop to start for the second sweep. For example, if the start frequency is 800 kHz and the stop frequency is 3 MHz, the CVU steps through the frequency points 800 kHz, 900 kHz, 1 MHz, 2 MHz, 3 MHz, 3 MHz, 2 MHz, 1 MHz, 900 kHz, 800 kHz.
If you are using a 4215-CVU, you can apply a resolution of 1 kHz to frequency values within the 1 kHz to 10 MHz limits. To set a frequency step size, set the setmode KI_CVU_FREQ_STEPSIZE modifier before calling sweepf(). If KI_CVU_FREQ_STEPSIZE, is set to 0, sweepf() uses the discrete frequencies.
The total number of sweep points is returned in the NumPts parameter. For the above example, NumPts is assigned a value of 10.
The delayTime parameter sets the delay that occurs before each measurement. Note that there is an inherent system overhead delay on each frequency step of the sweep. Use the forcev command to set the dc bias level and setlevel command to set the ac drive voltage.
dsweepv(int,double,double,int,double)#
This command performs a dual linear staircase 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 first sweep (−30 V to 30 V) |
stepno: | Sets the number of points in the sweep (1 to 4096); |
stepdelay: | Delay before each measurement (0 to 999 s) |
This command is used to perform a dual staircase sweep (see the figure below). The linear step size to sweep is set using the startv, stopv, and NumSteps parameters. The linear step size for the sweep is then calculated as follows:
StepSize (in volts) = (stopv – startv) / (numSteps)
numSteps describes the first half of the sweep. For example, to do a dual sweep from 1 V to 10 V and back down in 1 V steps, set numSteps to 10. The result is a 20-point sweep (10 up and 10 down).The first sweep can step forward (low voltage to high voltage) or it can step in reverse (high voltage to low voltage). After performing the first sweep, the second sweep will repeat in the reverse direction. For example, if configured to sweep from 1 V to 10 V, the second sweep will start at 10 V and step down to 1 V.
The delayTime parameter sets the delay that occurs before each measurement. Note that there is an inherent system overhead delay on each step of the sweep. Use the setfreq and setlevel commands to set the ac drive frequency and voltage for the sweep.
forcev(int,double)#
This command sets the dc bias voltage level.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
val: | The dc bias voltage level (−30 V to 30 V) |
This command sets a dc bias level for a single impedance measurement and a frequency sweep. Use the setfreq and setlevel commands to set the ac drive frequency and ac voltage for the sweep. The dc source operates independently of the ac source. Changes to the level and state of the dc source take effect immediately; the ac frequency and source value are only used during measz operations.
# get instrument id
cvuId = k4200.getinstid("CVU1", 0)
# force 5 volts
k4200.forcev(cvuId, 5)
measf(int,double@)#
This command returns the frequency sourced during a single measurement.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
val: | Returned frequency |
Returns | |
double |
Returned frequency |
This command returns the present test frequency being used for a single impedance measurement. Use the measz command to make a single measurement.
meast(int,double@)#
This command returns a timestamp referenced to a measurement or a system timer
Name | Description |
---|---|
instrId: | The instrument identification code: CVU1, TIMER1, TIMER2, and so on |
val: | Returned timestamp |
Returns | |
double |
Returned timestamp |
This command is used acquire the timestamp of the last single measurement, or return a timestamp referenced to a system timer.
When the timerID parameter is set for CVU1, calling the meast command after the call to perform a measurement (measz command) will return the timestamp for that measurement.
When the timerID parameter is set for a timer, the meast command can be called at any time and will return a timestamp that is referenced to a system timer. The enable command is used to start the timer (starts at zero when called).
measv(int,double@)#
This command returns the dc bias voltage sourced during a single measurement.
Name | Description |
---|---|
instrId: | The instrument identification code |
val: | Returned dc bias voltage |
Returns | |
double |
dc bias voltage |
This command returns the dc bias voltage presently being used for a single measurement. Use the measz command to make a single measurement
measz(int,int,int,double@,double@)#
This command makes an impedance measurement.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
model: | Measurement model |
speed: | Measure speed:▪ KI_CVU_SPEED_FAST: Fast measurements (higher noise) |
result1: | First result of the selected measure model |
result2: | Second result of the selected measure model |
Returns | |
double |
First result of the selected measure model |
double |
Second result of the selected measure model |
This command makes a single impedance measurement. Before calling measz, use the forcev command to set the dc bias level, the setfreq command to set the ac drive frequency, and the setlevel command to set the ac drive voltage. The parameter values for the measurement model are listed in the following table.
Model | Parameter value |
---|---|
ZTH - Impedance (Z) and phase (θ in degrees) | KI_CVU_TYPE_ZTH or 0 |
RjX - Resistance and reactance | KI_CVU_TYPE_RJX or 1 |
CpGp - Parallel capacitance and conductance | KI_CVU_TYPE_CPGP or 2 |
CsRs - Series capacitance and resistance | KI_CVU_TYPE_CSRS or 3 |
CpD - Parallel capacitance and dissipation factor | KI_CVU_TYPE_CPD or 4 |
CsD - Series capacitance and dissipation factor | KI_CVU_TYPE_CSD or 5 |
Y - YTH Admittance (1/Z) and phase (θ in degrees) | KI_CVU_TYPE_YTH or 7 |
from Atv.Framework.Devices.ParameterAnalyzer.Keithley4200.Enumerations import LptConstants as param
# get instrument id
cvuId = k4200.getinstid("CVU1", 0)
speed = param.KI_CVU_SPEED_QUIET
model = param.KI_CVU_TYPE_CSRS
dummy, cp, gp = k4200.measz(cvuId, model, speed, 0.0, 0.0)
rangei(int,double)#
This command selects an impedance measurement range.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
val: | Impedance measure range (0, 1 μA, 30 μA, or 1 mA) |
Use this command to set the CVU to a current measure range for impedance measurements. Setting range to 0 selects autorange. The CVU automatically goes to the most sensitive (optimum) range to make the measurement. This is the same as calling the setauto command.
The other range parameter values select a fixed measure range. The CVU remains on the fixed range until autorange is enabled or the CVU is reset (devint called).
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 of the 4210-CVU or 4215-CVU: CVU1 |
This command sets the CVU for autorange measurements. When setauto is called, the CVU goes to the most sensitive range to make the measurement. Calling devint also selects autorange. You can also use the rangei command to enable autorange or select a fixed measurement range. Autorange remains enabled until a fixed range is selected.
setlevel(int,double)#
This command sets the ac drive voltage level.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
signalLevel: | Voltage level of the ac drive (10 mV to 100 mVRMS) |
This command is used to set the voltage of the ac drive. The ac drive(ac voltage level and frequency) does not turn on until a measurement is performed.The ac drive turns off after the measurement is completed.Note that the dc voltage source stays on for the whole test.
setmode(int,int,double)#
This command sets operating modes specific to the 4210-CVU or 4215-CVU.
Name | Description |
---|---|
instrId: | The instrument identification code of the CVU: CVU1 |
mode: | Specific operating characteristic to change; see table in Details |
val: | Parameter value for the modifier |
The setmode command allows control over the following CVU operating characteristics:
• Connection compensation control for open, short and load. When disabled, saved compensation constants are not applied to the measurements. Whenever the connection setup has changed, connection compensation needs to be performed to acquire and save new compensation constants. Connection compensation is performed from Clarius.
• Setting for cable length compensation (0 m, 1.5 m, or 3 m). This setting is made from the window that is used to enable compensation.
• 4215-CVU only: Setting the step size for a frequency sweep. Must be called before sweepf() or dsweepf().
• Settings (delay factor, filter factor and aperture) for KI_CUSTOM measurement speed, which is set by measz, smeasz, or smeaszRT.
For detail on connection compensation, refer to “Connection compensation” in the Model 4200A-SCS Capacitance-Voltage Unit (CVU) User's Manual.
modifier | value | comment |
---|---|---|
KI_CVU_OPEN_COMPENSATE | 0 = OFF |
Enable or disable compensation constants for open. |
KI_CVU_SHORT_COMPENSATE | 0 = OFF |
Enable or disable compensation constants for short. |
KI_CVU_LOAD_COMPENSATE | 0 = OFF |
Enable or disable compensation constants for load. |
KI_CVU_SET_CONSTANT_FILE | 0 to 1000 |
The number in the file name that contains the open, short, and load compensation values for the CVU. |
KI_CVU_CABLE_CORRECT | 0.0 |
No cable compensation |
1.5 |
1.5 m CVU cable | |
3.0 |
3.0 m CVU cable | |
5.0 |
1.5 m CVIV cable; 2-wire mode | |
6.0 |
1.5 m CVU to CVIV cable with 0.75 m CVIV to DUT cable; 4-wire mode | |
7.0 |
1.5 m CVU to CVIV cable with 0.61 m CVIV to DUT cable; 4-wire mode | |
KI_CVU_MEASURE_SPEED | KI_CVU_SPEED_FAST |
Fast measurements (higher noise). |
KI_CVU_SPEED_NORMAL |
Balance between speed and low-noise. | |
KI_CVU_SPEED_QUIET |
Low-noise measurements. | |
KI_CVU_SPEED_CUSTOM |
Custom settings (see next modifiers). | |
KI_CVU_APERTURE KI_CVU_DELAY_FACTOR KI_CVU_DELAY_FACTOR |
0.006 to 10.002 PLCs |
Settings for the CUSTOM speedsetting (see previous modifier). |
KI_CVU_AC_SRC_HI KI_CVU_AC_MEAS_LO |
1 or 2 (setting HI side to 1 sets LO side to 2, and vice versa) |
Use to specify the ac source HI slice and ac source LO side. |
KI_CVU_DC_SRC_HI KI_CVU_DC_SRC_LO |
1 or 2 (setting HI side to 1 sets LO side to 2, and vice versa) |
Use to specify the dc source HI slice and dc source LO side. |
KI_CVU_DCV_OFFSET | −30 to +30 (default is 0) |
Sets the dc bias offset (in volts). |
KI_CVU_FREQ_STEPSIZE | 0 to use discrete frequencies 1000 to 9.999e6 |
215-CVU only. A devint() call resets the size to the default. If setmode() is not called before sweepf(), ,weepf() uses the discrete frequencies. |
KI_CVU_MEASURE_MODEL | KI_CVU_TYPE_ZTH |
Impedance and phase (degrees). |
KI_CVU_TYPE_RJX |
Resistance and reactance. | |
KI_CVU_TYPE_CPGP |
Parallel capacitance and conductance. | |
KI_CVU_TYPE_CSRS |
Series capacitance and resistance. | |
KI_CVU_TYPE_CPD |
Parallel capacitance and dissipation factor. | |
KI_CVU_TYPE_CSD |
Series capacitance and dissipation factor. | |
KI_CVU_TYPE_YTH |
1/X. |
# import constants for modes:
from Atv.Framework.Devices.ParameterAnalyzer.Keithley4200.Enumerations import LptConstants as param
# get instrument id
cvuId = k4200.getinstid("CVU1", 0)
# Enable open compensation
k4200.setmode(cvuId, param.KI_CVU_OPEN_COMPENSATE, 1)
smeasf(int,int)#
This command returns the frequencies used for a sweep.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
arraySize: | |
Returns: Returned array of test frequencies |
This command returns the present test frequencies used for a sweep. The frequency values are returned in an array. The frequency values are posted to Clarius in Analyze after the test has finished.
smeasfrt(int,double[]@,string)#
This command returns the sourced frequencies (in real time) for a sweep.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
freqArr: | Returned array of test frequencies |
colName: | Column name (character string) to pass into Clarius for the data sheet column |
Returns | |
double[] |
Returned array of test frequencies |
Like the smeasf command, the test frequencies for a sweep are returned in an array. However, the frequency values are posted to the Clarius Analyze sheet and graph in real time (after each step of the sweep is executed).
Note that the values are only available in real time if Clarius is running. Otherwise, they are stored in an array in the usual fashion.
smeast(int,int)#
This command returns timestamps referenced to sweep measurements or a system timer.
Name | Description |
---|---|
instrId: | The ID of the 4210-CVU, 4215-CVU, or timer: CVU1, TIMER1, TIMER2, and so on |
arraySize: | |
Returns | |
double[] |
Returned array of timestamps |
This command acquires the timestamp for each measurement step of a sweep. The timestamps are returned in an array. The timestamps are posted to Clarius Analyze after the test has finished.
The timestamp can be referenced to the CVU (timerID = CVU1) or to a system timer (for example, timerID = TIMER1). This command is similar to the meast command, but is synchronized with a sweep to return a timestamp referenced to each measurement. If you need a timestamp for a single measurement, use the meast command.
smeastrt(int,double[]@,string)#
This command returns timestamps (in real time) referenced to sweep measurements or a system timer
Name | Description |
---|---|
timerId: | The ID of the 4210-CVU, 4215-CVU, or timer: CVU1, TIMER1, TIMER2, and so on |
tarray: | Returned array of timestamps |
colName: | Column name to pass into Clarius (case-sensitive character string) |
Returns | |
double[] |
Returned array of timestamps |
Returns the timestamps are returned in an array and posts the timestamps to the Clarius Analyze sheet and graph in real time. Each timestamp appears in the sheet and graph after each measurement is made.
Note that the values are only available in real time if Clarius is running. Otherwise, they are stored in an array.
The colname parameter specifies the name for the data sheet column in Clarius
smeasvrt(int,double[]@,string)#
This command returns the sourced dc bias voltages (in real time) for a sweep.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
varray: | Returned array of dc bias voltages |
colName: | Column name to pass into Clarius (character string) |
Returns | |
double[] |
dc bias voltages |
This command is similar to smeasv command. It returns the sourced dc bias voltages for a sweep in an array. However, the voltage values are posted to the Clarius Analyze sheet and graph in real time. Each voltage value appears in the sheet and graph after each step of the sweep is executed.
Note that the values are only available in real time if Clarius is running. Otherwise, they are stored in an array.
The colname parameter specifies a name for the data sheet column in Clarius.
smeaszrt(int,int,int,double[]@,string,double[]@,string)#
Führt Impedanzmessung mit Spannuns- oder Frequenzdurchlauf aus
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
model: | Measure model (see "Measurement model parameter values" table in Details) |
speed: | Measure speed:▪ KI_CVU_SPEED_FAST: Fast measurements (higher noise) |
result1: | Array of the first result of the selected measure model |
colName1: | Column name to pass into Clarius for result1 array (character string) |
result2: | Array of the second result of the selected measure model |
colName2: | Column name to pass into Clarius for result2 array (character string) |
Returns | |
double[] |
Array of the first result of the selected measure model |
double[] |
Array of the second result of the selected measure model |
This command is similar to the smeasz command; both commands return the measured impedance readings for a sweep returned in arrays. However, the readings from smeaszRT are posted to the Clarius Analyze sheet and graph in real time. Two measurement results appear in the sheet and graph after each step of the sweep is executed.
Note that the values are only available in real-time if Clarius is running. Otherwise, they are stored in an array.
The colname1 and colname2 parameters specify names for data sheet columns in Clarius.
Model | Parameter value |
---|---|
ZTH - Impedance (Z) and phase (θ in degrees) | KI_CVU_TYPE_ZTH or 0 |
RjX - Resistance and reactance | KI_CVU_TYPE_RJX or 1 |
CpGp - Parallel capacitance and conductance | KI_CVU_TYPE_CPGP or 2 |
CsRs - Series capacitance and resistance | KI_CVU_TYPE_CSRS or 3 |
CpD - Parallel capacitance and dissipation factor | KI_CVU_TYPE_CPD or 4 |
CsD - Series capacitance and dissipation factor | KI_CVU_TYPE_CSD or 5 |
Y - YTH Admittance (1/Z) and phase (θ in degrees) | KI_CVU_TYPE_YTH or 7 |
sweepf(int,double,double,int@,double)#
This command performs a frequency sweep.
Name | Description |
---|---|
instrId: | The instrument identification code of the 4210-CVU or 4215-CVU: CVU1 |
startf: | Initial frequency for the sweep |
stopf: | Final frequency for the sweep |
numPts: | Query the number of sweep points |
delaytime: | Delay before each measurement (0 to 999 s) |
Returns | |
int |
Query the number of sweep points |
This command is used to perform a frequency sweep. The CVU provides test frequencies from 1 kHz to 10 MHz in the following steps:
• 1 kHz through 10 kHz in 1 kHz steps
• 10 kHz to 100 kHz in 10 kHz steps
• 100 kHz to 1 MHz in 100 kHz steps
• 1 MHz to 10 MHz in 1 MHz stepsThe frequency points to sweep are set using the startf and stopf parameters. If an entered value is not a supported frequency, the closest supported frequency is selected (for example, 15 kHz input selects 20 kHz). The sweep can step forward from low frequency to high frequency or it can step in reverse from high frequency to low frequency.
When the sweep is started, the CVU steps through all the supported frequency points from start to stop. For example, if the start frequency is 800 kHz and the stop frequency is 3 MHz, the CVU steps through the following frequency points: 800 kHz, 900 kHz, 1 MHz, 2 MHz, 3 MHz.
If you are using a 4215-CVU, you can apply a resolution of 1 kHz to frequency values within the 1 kHz to 10 MHz limits. To set a frequency step size, set the setmode KI_CVU_FREQ_STEPSIZE modifier before calling sweepf(). If KI_CVU_FREQ_STEPSIZE is set to 0, sweepf() uses the discrete frequencies.
The NumPts query returns the total number of sweep points. For the above example, NumPts returns 5.
The delayTime parameter sets the delay that occurs before each measurement. Note that there is an inherent system overhead delay on each frequency step of the sweep. Use the forcev command to set the dc bias level and setlevel command to set the ac drive voltage.