Order in Which User-Supplied Functions are Called
Table 60 through Table 63 illustrate the following 3 essential instrument operations:
• |
Rebuild (instrument list) |
These tables are representative of a typical order of invocation. Some functions may be used more than once, particularly since Measure involves looping through different bias levels. The column Function Category indicates the location of further information about the function in What Makes up an IC-CAP Driver. Other valuable information is located in the comments for each function, provided in user_instr.hxx, user_unit.hxx, user_meas.hxx, and user_meas.cxx.
During Rebuild
During this operation, the Hardware Manager locates addresses that respond to a serial poll. At each such address, available drivers determine if they own the instrument, until 1 driver succeeds. They try in the order shown in the Instrument Library list. Note that unless find_instr() is successful, none of the ensuing functions are called.
The functions called during Rebuild (instrument list) are shown in the following table.
Table 60 Functions Called During Rebuild (instrument list)
|
|
get_addl_addr
|
Hardware Editor Operations
|
addl_addr_label
|
find_instr
|
units_configurable
|
rebuild_units or build_units
|
find_units
|
set_found
|
unit_count
|
get_unit
|
During Calibrate
During this operation the Measurer initiates calibration procedures for each instrument in a Setup that has calibration supported by IC-CAP.
The functions called during Calibrate are shown in the following table.
Table 61 Functions Called During Calibrate
|
|
instr::find_instr
|
Setup Checking
|
unit::get_int_bias
|
Control and Data Acquisition Functions
|
unit::can_source
|
Checking of Inputs
|
unit::can_source_vs_time
|
Checking of Inputs
|
unit::can_measure_vs_time
|
Checking of Outputs
|
unit::can_measure
|
Checking of Outputs
|
unit::bias_compatible
|
Setup Checking
|
unit::check_sweep
|
Checking of Inputs
|
unit::check_sync
|
Checking of Inputs
|
instr::cal_possible
|
Calibration
|
instr::find_instr
|
Setup Checking
|
instr::do_cal
|
Calibration
|
During Measure
This operation undertakes a potentially complex series of operations on the instruments used by a Setup. The exact functions called vary, depending on whether calibration is available for particular instruments, and whether the main sweep instrument operates in an internally swept fashion, or in a stepped/spot-mode fashion (the case when the instrument option Use User Sweep is set to Yes for the main sweep instrument).
The functions called during Measure are shown in the following table (user main sweep) and Table 63 (internal main sweep).
Table 62 Functions Called During Measure (with User Main Sweep)
|
|
|
instr::find_instr
|
Setup Checking
|
|
instr::find_units
|
Hardware Editor Operations
|
|
instr::set_found
|
Hardware Editor Operations
|
|
unit::get_int_bias
|
Control and Data Acquisition Functions
|
|
unit::can_source
|
Checking of Inputs
|
|
unit::can_source_vs_time
|
Checking of Inputs
|
|
unit::can_measure_vs_time
|
Checking of Outputs
|
|
unit::can_measure
|
Checking of Outputs
|
|
unit::bias_compatible
|
Setup Checking
|
|
instr::reset_instr_info
|
Initialization
|
|
unit::check_sweep
|
Checking of Inputs
|
|
unit::check_sync
|
Checking of Inputs
|
|
instr::reset_outptrs
|
Initialization
|
|
unit::check_out
|
Checking of Outputs
|
|
unit::can_do_second_sweep
|
Control and Data Acquisition Functions
|
|
instr::cal_possible
|
Calibration
|
|
instr::recall_n_chk_calib
|
Calibration
|
|
instr::init_instr
|
Initialization
|
|
instr::zero_supplies
|
Initialization
|
|
BEGIN BIAS LOOP
|
|
Loop to END BIAS LOOP
|
unit::set_bias
|
Control and Data Acquisition
|
|
unit::enable_output
|
Initialization
|
|
unit::set_scalar
|
Control and Data Acquisition
|
|
BEGIN USER MAIN SWEEP LOOP
|
|
Loop to END MAIN SWEEP
|
unit::wait_hold_time
|
Control and Data Acquisition
|
|
unit::set_bias
|
Control and Data Acquisition
|
|
unit::set_sync
|
Control and Data Acquisition
|
|
unit::wait_delay_time
|
Control and Data Acquisition
|
|
unit::get_data
|
Control and Data Acquisition
|
|
unit::get_scalar_data
|
Control and Data Acquisition
|
|
END MAIN SWEEP LOOP
|
|
|
END BIAS LOOP
|
|
|
instr::zero_supplies
|
Initialization
|
|
unit::fill_outds
|
Control and Data Acquisition
|
|
Table 63 Functions Called During Measure (with Internal Main Sweep)
|
|
|
instr::find_instr
|
Setup Checking
|
|
instr::find_units
|
Hardware Editor Operations
|
|
instr::set_found
|
Hardware Editor Operations
|
|
unit::get_int_bias
|
Control and Data Acquisition Functions
|
|
unit::can_source
|
Checking of Inputs
|
|
unit::can_source_vs_time
|
Checking of Inputs
|
|
unit::can_measure_vs_time
|
Checking of Outputs
|
|
unit::can_measure
|
Checking of Outputs
|
|
unit::bias_compatible
|
Setup Checking
|
|
instr::reset_instr_info
|
Initialization
|
|
unit::check_sweep
|
Checking of Inputs
|
|
unit::check_sync
|
Checking of Inputs
|
|
instr::reset_outptrs
|
Initialization
|
|
unit::check_out
|
Checking of Outputs
|
|
unit::can_do_second_sweep
|
Control and Data Acquisition Functions
|
|
instr::cal_possible
|
Calibration
|
|
instr::recall_n_chk_calib
|
Calibration
|
|
instr::init_instr
|
Initialization
|
|
instr::zero_supplies
|
Initialization
|
|
BEGIN BIAS LOOP
|
|
Loop through END BIAS LOOP below
|
unit::set_bias
|
Control and Data Acquisition
|
|
unit::enable_output
|
Initialization
|
|
unit::set_scalar
|
Control and Data Acquisition
|
|
unit::enable_sync
|
Control and Data Acquisition
|
|
unit::set_2_internal_sweeps
|
Initialization
|
|
unit::set_internal_sweep
|
Initialization
|
|
unit::set_bias
|
Control and Data Acquisition
|
|
unit::set_sync
|
Control and Data Acquisition
|
|
unit::trigger
|
Control and Data Acquisition
|
|
unit::wait_data_ready
|
Control and Data Acquisition
|
|
unit::get_data
|
Control and Data Acquisition
|
|
unit::get_scalar_data
|
Control and Data Acquisition
|
|
END BIAS LOOP
|
|
|
instr::zero_supplies
|
Initialization
|
|
unit::fill_outds
|
Control and Data Acquisition
|
|
|