Agilent Technologies B1500A User Manual

Agilent Technologies B1500A User Manual

Semiconductor device analyzer
Hide thumbs Also See for B1500A:
Table of Contents

Advertisement

Agilent B1500A
Semiconductor Device
Analyzer
VXIplug&play Driver
User's Guide
Agilent Technologies

Advertisement

Table of Contents
loading

Summary of Contents for Agilent Technologies B1500A

  • Page 1 Agilent B1500A Semiconductor Device Analyzer VXIplug&play Driver User’s Guide Agilent Technologies...
  • Page 2 FAR 52.227-19 (June 1987) or any equivalent agency regulation or contract clause. Use, duplication or disclo- sure of Software is subject to Agilent Tech- nologies’ standard commercial license terms, and non-DOD Departments and Agencies of the U.S. Government will...
  • Page 4 In This Manual This manual describes the installation and reference information of the VXIplug&play driver for the Agilent B1500, and consists of the following chapters: • Chapter 1, “Installation” Describes the installation information of the B1500 VXIplug&play driver. • Chapter 2, “Driver Functions”...
  • Page 5: Table Of Contents

    ......... . 2-23 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 6 ..........2-46 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 7 ..........2-78 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 8 Pulsed Sweep Measurement ........4-29 Staircase Sweep with Pulsed Bias Measurement......4-33 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 9 CV Sweep Measurement ......... . . 4-49 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 10 Contents Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 11: Installation

    Installation...
  • Page 12 Installation This chapter describes the system requirements and installation procedure for the Agilent B1500 VXIplug&play driver. • “System Requirements” • “Installing VXIplug&play Driver” • “Before Programming” Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 13: System Requirements

    Minimum disk space 2 MB for the Agilent B1500 VXIplug&play driver NOTE For the latest system requirements, go to www.agilent.com and type in B1500A in the Search field at the top of the page. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 14: Installing Vxiplug&Play Driver

    4. Install the programming software. Follow the setup program instructions. 5. Install the Agilent B1500 VXIplug&play driver. a. Insert the Agilent B1500 Software CD-ROM to the drive connected to your computer. b. Execute setup.exe or \Pnp\B1500.exe on the CD-ROM. The setup program installs the driver. See Table 1-1 for the installed files.
  • Page 15 Library for Borland C++Builder <install folder>\Winnt\lib\bc\agb1500_32.lib Library for Borland C++Builder <install folder>\Winnt\lib\msc\agb1500.lib Library for Microsoft C++ <install folder>\Winnt\lib\msc\agb1500_32.lib Library for Microsoft C++ a. Execute echo %VXIPNPPATH% on the Command Prompt to know <install folder>. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 16: Before Programming

    Auto-discover The factory shipment initial values are 17, No, and No, respectively. 4. If the Reboot Required dialog box is displayed, reboot the B1500A by clicking the Reboot Now button. If the Reboot Required dialog box is not displayed, open the Start EasyEXPERT button by selecting the Start EasyEXPERT menu in the Windows start menu.
  • Page 17: Driver Functions

    Driver Functions...
  • Page 18 Driver Functions This chapter is the complete reference of VXIplug&play driver for the Agilent B1500. • “Function List” • “Parameters” • “Status Code” • “Function Reference” Additional information NOTE See the on-line help of the VXIplug&play drivers, or open the Agb1500.hlp file in the directory that the driver is installed.
  • Page 19: Function List

    Driver Functions Function List Table 2-1 lists all the driver functions for the Agilent B1500. You will see a brief description of the functions in the table. Table 2-1 B1500 Driver Functions Category Function Description Initialize agb1500_init Initializes the software connection with the B1500.
  • Page 20 Applies DC current or voltage from the specified SMU. measurement agb1500_setPiv Sets the pulsed sweep source. agb1500_setSweepSync Sets the synchronous sweep source. agb1500_stopMode Sets automatic sweep abort. agb1500_sweepPiv Performs pulsed sweep measurement. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 21 Clears the source channels for the sampling measurement. Breakdown agb1500_force Applies DC current or voltage from the specified SMU. voltage agb1500_setBdv Sets the quasi pulse source. measurement agb1500_measureBdv Performs quasi pulsed spot breakdown voltage measurement. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 22 Sets the automatic error checking. agb1500_errorQueryDetect_Q Queries for the automatic error checking setting. agb1500_dcl Sends the Device Clear. agb1500_readStatusByte_Q Reads the B1500 status byte. agb1500_opc_Q Checks the B1500 operation completion status. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 23 Sends a command to read 32 bit integer array response. agb1500_cmdReal64_Q Sends a command to read 64 bit real response. agb1500_cmdReal64Arr_Q Sends a command to read 64 bit real array response. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 24: Parameters

    SCUU connected to the MFCMU in the slot channel. a. Slot number 1 to 10 have been assigned to the bottom slot to the top slot respectively. b. HPSMU occupies two slots. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 25 For the functions to start or execute the measurement that uses the pulse source, set 0 or positive value to set the minimum range that covers the compliance value automatically. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 26 10E-3 0 to ± 200 ±50E-3 a. Parameter name may be base, bias, peak, value, start, stop, and so on. b. This column shows the maximum value of the current compliance. 2-10 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 27 ± 500E-3 ±40 to ± 1 ±20 a. Parameter name may be base, bias, peak, value, start, stop, and so on. b. This column shows the maximum value of the voltage compliance. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-11...
  • Page 28 Q (quality factor) Rp (parallel resistance, Ω) Lp (parallel inductance, H) Rs (series resistance, Ω) Ls (series inductance, H) Ls (series inductance, H) D (dissipation factor) Ls (series inductance, H) Q (quality factor) 2-12 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 29 10 kΩ 30000 ≤ range < 100000 30 kΩ 30 kΩ 100000 ≤ range < 300000 100 kΩ 300000 ≤ range 300 kΩ a. Available measurement ranges depend on the measurement frequency. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-13...
  • Page 30: Status Code

    Driver Functions Status Code After measurement is performed, the Agilent B1500 returns a status code to notify you if the measurement has been completed successfully. The status code will be returned with the measurement data by the following functions that perform measurement.
  • Page 31 Target value was not found within the search range. (for agb1500_readData) Detection time was too long. (for agb1500_measureBdv and agb1500_measureIleak) Search measurement was automatically stopped. (for agb1500_readData) Output slew rate was too late. (for agb1500_measureBdv and agb1500_measureIleak) Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-15...
  • Page 32: Function Reference

    Driver Functions agb1500_abortMeasure Function Reference This section describes the functions of VXIplug&play driver for the Agilent B1500. The functions are appeared in alphabetical order. agb1500_abortMeasure This function aborts the B1500’s present operation, such as the measurement executed by the agb1500_startMeasure function, the dc bias output by the agb1500_force function, and so on.
  • Page 33: Agb1500_Asuled

    ASU output. This function is effective for the specified channel. When the Agilent B1500 is turned on, the ASU output will be connected to the SMU connector side, but the HRSMU will not be enabled yet. After this function is executed with path=2, the HRSMU specified by channel cannot be used.
  • Page 34: Agb1500_Asurange

    To use the ASU, connect it to the correct HRSMU properly before turning the Agilent B1500A on. For the connection, see User’s Guide. The ASU will add the connection switch function described above to the B1500A and the 1 pA measurement range to the HRSMU. Use the agb1500_asuRange function to enable/disable the 1 pA range for the auto ranging operation.
  • Page 35: Agb1500_Clearcorrdata

    It is generally a good programming habit to close the instrument handle when the program is done using the instrument. Syntax ViStatus _VI_FUNC agb1500_close(ViSession vi); Parameters Instrument handle returned from agb1500_init( ). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-19...
  • Page 36: Agb1500_Cmd

    Int16 or 32 can be passed as the Int16 will be promoted. Syntax ViStatus _VI_FUNC agb1500_cmdInt(ViSession vi, ViString cmd_str, ViInt32 value); Parameters Instrument handle returned from agb1500_init( ). cmd_str Instrument command (cannot exceed 256 bytes in length). 2-20 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 37: Agb1500_Cmdint16Arr_Q

    32 bit integers. You specify the cmd_str and size parameters, and get result[ ] and count. Syntax ViStatus _VI_FUNC agb1500_cmdInt32Arr_Q(ViSession vi, ViString cmd_str, ViInt32 size, ViInt32 _VI_FAR result[ ], ViPInt32 count); Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-21...
  • Page 38: Agb1500_Cmdint32_Q

    This function passes the cmd_str string to the instrument. This function expects a response that is a definite arbitrary block of 64 bit real. You specify the cmd_str and size parameters, and get result[ ] and count. 2-22 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 39: Agb1500_Cmdreal64_Q

    ViInt32 size, ViChar _VI_FAR result[ ] ); Parameters Instrument handle returned from agb1500_init( ). cmd_str Instrument command (cannot exceed 256 bytes in length). size Length of result in bytes. 2 to 32767. result[ ] Response from instrument. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-23...
  • Page 40: Agb1500_Dcl

    This function returns the error numbers and corresponding error messages in the error queue of an instrument. See Agilent B1500 User’s Guide for a listing of the instrument error numbers and messages. Instrument errors may occur when you places the instrument in a bad state such as sending an invalid sequence of coupled commands.
  • Page 41: Agb1500_Errorquerydetect

    To execute this function, open the measurement terminals at the end of the device side. Syntax ViStatus _VI_FUNC agb1500_execCmuAdjust(ViSession vi, ViInt32 channel, ViPInt16 result); Parameters Instrument handle returned from agb1500_init( ). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-25...
  • Page 42: Agb1500_Execloadcorr

    Reference value of the standard. The value must be the value for the secondary parameter (ex: X in the R-X measurement mode). Numeric expression. result Execution result of this function. Returned value. 2-26 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 43: Agb1500_Execopencorr

    Reference value of the standard. This must be the conductance value. Numeric expression. result Execution result of this function. Returned value. 0: Passed. No failure detected. 1: Failed. 2: Aborted. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-27...
  • Page 44: Agb1500_Execshortcorr

    0: Passed. No failure detected. 1: Failed. 2: Aborted. agb1500_force This function specifies the dc current/voltage source, and forces the output immediately. To stop the output, use the agb1500_force function with zero output. 2-28 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 45: Agb1500_Forcecmuaclevel

    Slot number of the slot that installs the MFCMU to be used. See Table 2-2. channel=-1 detects the slot automatically. value Oscillator level of the output AC voltage (in V). Numeric expression. 10 mV (initial setting) to 250 mV, 1 mV step Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-29...
  • Page 46: Agb1500_Forcecmudcbias

    If the agb1500_init function encounters an error, then the value of the vi output parameter will be VI_NULL. Syntax ViStatus _VI_FUNC agb1500_init(ViRsrc InstrDesc, ViBoolean id_query, ViBoolean do_reset, ViPSession vi); Parameters InstrDesc Instrument description. Examples; GPIB0::1::INSTR. 2-30 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 47: Agb1500_Measurebdv

    Before executing this function, the agb1500_setIleak function must be executed. Syntax ViStatus _VI_FUNC agb1500_measureIleak(ViSession vi, ViInt32 channel, ViInt32 interval, ViPReal64 value, ViPInt32 status); Parameters Instrument handle returned from agb1500_init( ). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-31...
  • Page 48: Agb1500_Measurem

    2-14. To disable the status data output, set 0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-32 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 49: Agb1500_Measurep

    2-14. To disable the status data output, set 0 (NULL pointer) instead. time Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-33...
  • Page 50: Agb1500_Msweepiv

    ViInt32 emitter = 1; /* SMU1 */ ViInt32 base = 2; /* SMU2 */ ViInt32 collector = 4; /* SMU4 */ ViReal64 vb1 = 0.25; ViReal64 vb2 = 0.75; ViReal64 vc = 3; 2-34 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 51 Sweep source setup data (voltage). md[n]: Measurement data (current). st[n]: Status for the md[n] data. tm[n]: Time stamp data (measurement start time) for the md[n] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-35...
  • Page 52: Agb1500_Msweepmiv

    2-14. To disable the status data output, set 0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-36 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 53 Status for the md[2*n+1] data. tm[2*n]: Time stamp data (measurement start time) for the md[2*n] data. tm[2*n+1]: Time stamp data (measurement start time) for the md[2*n+1] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-37...
  • Page 54: Agb1500_Opc_Q

    8: Capacitance measurement data 9: Dissipation factor measurement data 10: Quality factor measurement data 11: Inductance measurement data 12: Phase measurement data (radian) 13: Phase measurement data (degree) 14: Frequency data 2-38 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 55: Agb1500_Readstatusbyte_Q

    Instrument handle returned from agb1500_init( ). channel Slot number of the slot that installs the SMU/MFCMU to return the channel settings. See Table 2-2. channel=0 specifies all modules. channel=-1 detects the CMU slot automatically. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-39...
  • Page 56: Agb1500_Reset

    ViChar_VI_FAR driver_rev[ ], ViChar _VI_FAR instr_rev[ ] ); Parameters Instrument handle returned from agb1500_init( ). driver_rev[ ] Instrument driver revision. Returned data. Up to 256 characters. instr_rev[ ] Instrument firmware revision. Returned data. Up to 256 characters. 2-40 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 57: Agb1500_Sampleiv

    0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-41...
  • Page 58 Status for the md[2*n] data. st[2*n+1]: Status for the md[2*n+1] data. tm[2*n]: Time stamp data for the md[2*n] data. tm[2*n+1]: Time stamp data for the md[2*n+1] data. where, n = 0 to 10 (integer). 2-42 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 59: Agb1500_Scuuled

    1: Enables the indicator. Initial setting. To use SCUU NOTE Before turn the Agilent B1500 on, connect the SCUU to the MFCMU and two MPSMU/HRSMUs properly. The SCUU is used to switch the module (SMU or MFCMU) connected to the DUT.
  • Page 60: Agb1500_Scuupath

    This function is available for the Agilent B1500 installed with the multi frequency capacitance measurement unit (MFCMU) and the SMU CMU unify unit (SCUU). To use the SCUU, connect it to the MFCMU and two SMUs (MPSMU or HRSMU) correctly.
  • Page 61: Agb1500_Self_Test

    SMU installed in the slot numbered slot-2. To use SCUU NOTE Before turn the Agilent B1500 on, connect the SCUU to the MFCMU and two MPSMU/HRSMUs properly. The SCUU is used to switch the module (SMU or MFCMU) connected to the DUT.
  • Page 62: Agb1500_Setadc

    Slot number of the slot that installs the SMU used to perform measurement. See Table 2-2. Set 0 to select all SMUs. A/D converter type. 0 (high-speed) or 1 (high-resolution). 2-46 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 63: Agb1500_Setbdv

    Current compliance (in A). See Table 2-4. hold Hold time (in seconds). 0 to 655.35 s, 0.01 s resolution. delay Delay time (in seconds). 0 to 6.5535 s, 0.0001 s resolution. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-47...
  • Page 64: Agb1500_Setcmuadjustmode

    0.1 Hz (100 kHz to), or 1 Hz (1 MHz to 5 MHz). agb1500_setCmuInteg This function sets the number of averaging samples or the averaging time set to the A/D converter of the MFCMU. 2-48 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 65: Agb1500_Setcv

    3: Double-Linear sweep 4: Double-Log sweep start, stop Start or stop voltage (in V). Numeric expression. start and stop must have the same polarity for log sweep. 0 (initial setting) to ±100 V Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-49...
  • Page 66: Agb1500_Setfilter

    And the source stops the settling detection and keeps the output when the following condition a or b occurs. After the delay time, the measurement channel starts leakage current measurement. Condition: a. Quasi-pulse source reaches it current compliance setting. 2-50 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 67: Agb1500_Setiv

    ViReal64 delay, ViReal64 s_delay, ViReal64 comp, ViReal64 p_comp); range, start, stop, comp parameters NOTE Available values depend on the unit. See “Parameters” on page 2-8. Parameters Instrument handle returned from agb1500_init( ). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-51...
  • Page 68: Agb1500_Setloadcorrmode

    0.001 to 20.0 VA (for HPSMU) Setting resolution: 0.001 VA agb1500_setLoadCorrMode This function sets the CMU load correction function ON or OFF. The agb1500_execLoadCorr function must be executed before this function. 2-52 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 69: Agb1500_Setnthsweep

    (second synchronous sweep source), ..., or 10 for the tenth sweep source (ninth synchronous sweep source). channel Slot number of the slot that installs the SMU to be used. See Table 2-2. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-53...
  • Page 70: Agb1500_Setopencorrmode

    For the staircase sweep with pulsed bias measurements, the pulse output synchronizes with the staircase sweep output by the agb1500_setIv function. 2-54 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 71 Measurement channel always uses the high-speed A/D converter, and performs measurement so that the pulse width and pulse period are kept. The integration time is automatically set by the Agilent B1500, and you cannot change. The agb1500_setAdc and agb1500_setAdcType settings are ignored. Also the timing parameters of the agb1500_setIv function are also ignored.
  • Page 72: Agb1500_Setpiv

    Measurement channel always uses the high-speed A/D converter, and performs measurement so that the pulse width and pulse period are kept. The integration time is automatically set by the Agilent B1500, and you cannot change. The agb1500_setAdc and agb1500_setAdcType settings are ignored. Also the timing parameters of the agb1500_setIv function are also ignored.
  • Page 73: Agb1500_Setsample

    -0.09 to -0.0001 s, resolution 0.0001 s. base_hold Hold time of the base value output until the bias value output. Numeric expression. in seconds. 0 (initial setting) to 655.35 s, resolution 0.01 s. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-57...
  • Page 74 Each channel controls the output simultaneously. 2. base_hold seconds later, the source channels change the output to the bias value. The channels keep the value until the end of the sampling measurement. 2-58 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 75: Agb1500_Setsamplemode

    For the log sampling, the B1500A holds only the data that can be plotted on the log scale in the same distance as close as possible. Only the held data is counted in the number of measurement result data.
  • Page 76: Agb1500_Setserres

    Slot number of the slot that installs the MFCMU to be used. See Table 2-2. channel=-1 detects the slot automatically. mode 0: CMU short correction function ON. 1: CMU short correction function OFF. 2-60 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 77: Agb1500_Setsweepsync

    Or, set 2 if the function sets the voltage output mode. range Output ranging mode. 0 (auto) or positive value (limited auto). start Sweep start value (in A or V). stop Sweep stop value (in A or V). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-61...
  • Page 78: Agb1500_Setswitch

    DC bias source. Syntax ViStatus _VI_FUNC agb1500_spotCmuMeas(ViSession vi, ViInt32 channel, ViInt32 mode, ViReal64 range, ViReal64 value[], ViInt32 status[], ViReal64 monitor[],ViInt32 status_mon[], ViPReal64 time); Parameters Instrument handle returned from agb1500_init( ). 2-62 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 79 = agb1500_spotCmuMeas(vi, ch, mm, mr, &md[0], &st[0], &mon[0], &stmon[0], &tm); For the above example, the array variables md[], st[], mon[], and stmon[] will contain the following data. md[0]: Primary parameter measurement data (ex: Cp). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-63...
  • Page 80: Agb1500_Spotmeas

    2-14. To disable the status data output, set 0 (NULL pointer) instead. time Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead. 2-64 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 81: Agb1500_Startmeasure

    For meas_type=3, 4, 5, 9, 17, or 18, only one measurement channel can be set. For meas_type=14 or 15, set 0 (NULL pointer) instead of channel [ ]. mode[ ] Measurement mode. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-65...
  • Page 82 0); ViInt32 type = 3; /* pulsed spot measurement */ ViInt32 mode[2]; /* measurement mode */ 2-66 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 83: Agb1500_Stopmode

    Instrument handle returned from agb1500_init( ). stop Automatic abort function. 0 (disable) or 1 (enable). last_mode Output after measurement. 1 (start value or base value) or 2 (stop value or bias value). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-67...
  • Page 84: Agb1500_Sweepcv

    0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-68 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 85 MFCMU monitor data (DC bias monitor data). stmon[2*n]: Status for the mon[2*n] data. stmon[2*n+1]: Status for the mon[2*n+1] data. tm[n]: Time stamp data (measurement start time) for the md[2*n] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-69...
  • Page 86: Agb1500_Sweepiv

    2-14. To disable the status data output, set 0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-70 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 87 Sweep source setup data (voltage). md[n]: Measurement data (current). st[n]: Status for the md[n] data. tm[n]: Time stamp data (measurement start time) for the md[n] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-71...
  • Page 88: Agb1500_Sweepmiv

    2-14. To disable the status data output, set 0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-72 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 89 Status for the md[2*n+1] data. tm[2*n]: Time stamp data (measurement start time) for the md[2*n] data. tm[2*n+1]: Time stamp data (measurement start time) for the md[2*n+1] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-73...
  • Page 90: Agb1500_Sweeppbias

    2-14. To disable the status data output, set 0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-74 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 91 Sweep source setup data (voltage). md[n]: Measurement data (current). st[n]: Status for the md[n] data. tm[n]: Time stamp data (measurement start time) for the md[n] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-75...
  • Page 92: Agb1500_Sweeppiv

    2-14. To disable the status data output, set 0 (NULL pointer) instead of array. time[ ] Time stamp data (measurement start time). Returned data. To disable the time stamp data output, set 0 (NULL pointer) instead of array. 2-76 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 93 Sweep source setup data (voltage). md[n]: Measurement data (current). st[n]: Status for the md[n] data. tm[n]: Time stamp data (measurement start time) for the md[n] data. where, n = 0 to 10 (integer). Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 2-77...
  • Page 94: Agb1500_Timeout

    Instrument handle returned from agb1500_init( ). channel Slot number of the SMU/MFCMU to set to the zero output. See Table 2-2. channel=0 specifies all modules. channel=-1 detects the CMU slot automatically. 2-78 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 95: Programming Examples For Visual Basic Users

    Programming Examples for Visual Basic Users...
  • Page 96 Programming Examples for Visual Basic Users This chapter explains programming examples to perform the following measurements using the Agilent B1500 and the B1500 VXIplug&play driver, and consists of the following sections. • “Programming Basics” • “High Speed Spot Measurement” •...
  • Page 97: Programming Basics

    Programming Examples for Visual Basic Users Programming Basics Programming Basics This section provides the basic information for programming using the Agilent B1500 VXIplug&play driver. • “To Create Your Project Template” • “To Create Measurement Program” To Create Your Project Template This section explains how to create a project template by using Microsoft Visual Basic.
  • Page 98 19 to 23 Resets the Agilent B1500, sets the driver I/O time out to 60 seconds, and enables the automatic instrument error checking. Also opens a message box to confirm start of measurement.
  • Page 99 End Sub Line Description Disables the software connection with the Agilent B1500. Calls the check_err subprogram to check if an error status is returned for the line 30. 32 to 33 Opens a message box to confirm end of program.
  • Page 100: To Create Measurement Program

    Step 4. Launch Visual Basic. Step 5. Open the project (e.g. \test\dev_a\spot_id). Step 6. Open the form that contains the template code as shown in Table 3-1. On the code window, complete the perform_meas subprogram. Then use the Agilent B1500 VXIplug&play driver functions: •...
  • Page 101: High Speed Spot Measurement

    Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 102 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the display_data subprogram (next page) to display measurement data. End of the spot_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 103 Or displays error message on a message box if the status is abnormal. End of the display_data subprogram. Measurement Id = 4.0565 (mA) Result Example Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 104: Multi Channel Spot Measurement

    Disables measurement channels. 11 and 16 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-10 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 105 17 to 28 Declares variables used to set the measurement channels, and defines the value. 30 to 32 Declares variables used to keep the measurement data, status data, and time stamp data. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-11...
  • Page 106 Calls the check_err subprogram (shown in Table 3-1) to check if and 46 an error status is returned for the previous line. Calls the display_data subprogram (next page) to display measurement data. End of the mspot_meas subprogram. 3-12 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 107 End of the display_data subprogram. Measurement Ic = 3.808 (mA) Time = 0.061(sec) Result Example Ib = 0.01883 (mA) Time = 0.0636(sec) hfe = 202.230483271375 Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-13...
  • Page 108: Pulsed Spot Measurement

    Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-14 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 109 Sets SMU filter off for the pulsed bias channel, and sets the pulsed bias source. 25 to 27 Applies voltage to device. Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-15...
  • Page 110 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the display_data subprogram (next page) to display measurement data. End of the spot_meas subprogram. 3-16 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 111 Or displays error message on a message box if the status is abnormal. End of the display_data subprogram. Measurement Id = 4.075 (mA) Result Example Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-17...
  • Page 112: Staircase Sweep Measurement

    Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-18 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 113 3 to 30 Declares variables, and defines the value. 33 to 43 Declares variables used to keep source data, measurement data, status data, and time stamp data. Also defines array size. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-19...
  • Page 114 58 to 59 Declares a variable, and defines the value. This variable is used for the output value of the secondary sweep source. Sets the array counter i to 0. 3-20 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 115 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the save_data subprogram (next page) to save measurement data. End of the sweep_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-21...
  • Page 116 Displays measurement data on a message box. If Yes is clicked on the message box, performs the sweep_meas subprogram again. If No is clicked, returns to the perform_meas subprogram. End of the save_data subprogram. 3-22 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 117 2,0.3,4.178,0.2168,0 2,0.6,7.9075,0.2182,0 2,0.9,11.193,0.2197,0 2,1.2,14.035,0.2232,0 2,1.5,16.49,0.2242,0 2,1.8,18.59,0.2255,0 2,2.1,20.44,0.2265,0 2,2.4,22.095,0.2277,0 2,2.7,23.575,0.229,0 2,3,24.94,0.2301,0 3,0,0.00050875,0.3391,0 3,0.3,5.0385,0.3468,0 3,0.6,9.6655,0.3483,0 3,0.9,13.88,0.3517,0 3,1.2,17.65,0.353,0 3,1.5,21.005,0.354,0 3,1.8,23.935,0.3554,0 3,2.1,26.515,0.3564,0 3,2.4,28.775,0.3577,0 3,2.7,30.77,0.359,0 3,3,32.575,0.3601,0 Data save completed. Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-23...
  • Page 118 Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-24 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 119 3 to 28 Declares variables, and defines the value. 30 to 38 Declares variables used to keep source data, measurement data, status data, and time stamp data. Also defines array size. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-25...
  • Page 120 Calls the save_data subprogram to save measurement data. Or, displays a message box if the number of returned data is not equal to the nop value. End of the sweep_meas subprogram. 3-26 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 121 Displays measurement data on a message box. If Yes is clicked on the message box, performs the sweep_meas subprogram again. If No is clicked, returns to the perform_meas subprogram. End of the save_data subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-27...
  • Page 122 Measurement Vg (V), Id (mA), Time (sec), Status 0,-0.000098485,0.0714,0 Result Example 0.3,2.338,0.0901,0 0.6,4.9295,0.0921,0 0.9,7.7645,0.0938,0 1.2,10.8095,0.0951,0 1.5,14.05,0.0985,0 1.8,17.465,0.1001,0 2.1,21.045,0.1016,0 2.4,24.755,0.1028,0 2.7,28.59,0.1043,0 3,32.54,0.1058,0 Data save completed. Do you want to perform measurement again? 3-28 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 123 Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-29...
  • Page 124 3 to 28 Declares variables, and defines the value. 30 to 38 Declares variables used to keep source data, measurement data, status data, and time stamp data. Also defines array size. 3-30 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 125 Calls the save_data subprogram to save measurement data. Or, displays a message box if the number of returned data is not equal to the nop value. End of the sweep_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-31...
  • Page 126 Displays measurement data on a message box. If Yes is clicked on the message box, performs the sweep_meas subprogram again. If No is clicked, returns to the perform_meas subprogram. End of the save_data subprogram. 3-32 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 127 Measurement Vg (V), Id (mA), Time (sec), Status 0,-0.000117215,0.0715,0 Result Example 0.3,2.335,0.0904,0 0.6,4.928,0.092,0 0.9,7.767,0.0937,0 1.2,10.812,0.0953,0 1.5,14.045,0.0987,0 1.8,17.465,0.1,0 2.1,21.045,0.1015,0 2.4,24.765,0.103,0 2.7,28.6,0.1046,0 3,32.555,0.1058,0 Data save completed. Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-33...
  • Page 128: Multi Channel Sweep Measurement

    Disables measurement channels. 11 and 16 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-34 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 129 Beginning of the sweep_meas subprogram. 3 to 30 Declares variables used to set the source channels, and defines the value. 32 to 41 Declares variables used to set the measurement channels, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-35...
  • Page 130 Sets the specified port to the zero output state. 55, 60, 63, and 66 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. 3-36 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 131 Next i Line Description Beginning of the save_data subprogram. 3 to 5 Declares variables, and defines the value. 7 to 10 Creates data to be saved and displayed on a message box. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-37...
  • Page 132 Vb (V), Ib (mA), Ic (mA), Time_b (sec), Time_c (sec), Status_b, Result Example Status_c 0.3,0,-0.005,0.0568,0.1427,0,0 0.35,0,-0.005,0.2288,0.3147,0,0 0.4,0,-0.005,0.4008,0.4867,0,0 0.45,0,-0.005,0.5728,0.6587,0,0 0.5,0,0,0.7448,0.8306,0,0 0.55,0.0001,0.015,0.9168,1.0027,0,0 0.6,0.0005,0.085,1.0888,1.1746,0,0 0.65,0.00305,0.605,1.2608,1.3467,0,0 0.7,0.01915,3.89,1.4328,1.5186,0,0 0.75,0.09975,19.625,1.6048,1.6906,0,0 0.8,0.34745,59.38,1.7768,1.8626,0,0 Data save completed. Do you want to perform measurement again? 3-38 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 133 Disables measurement channels. 11 and 16 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-39...
  • Page 134 Beginning of the sweep_meas subprogram. 3 to 30 Declares variables used to set the source channels, and defines the value. 32 to 41 Declares variables used to set the measurement channels, and defines the value. 3-40 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 135 Sets the specified port to the zero output state. 55, 60, 63, and 66 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-41...
  • Page 136 Next i Line Description Beginning of the save_data subprogram. 3 to 5 Declares variables, and defines the value. 7 to 10 Creates data to be saved and displayed on a message box. 3-42 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 137 Vb (V), Ib (mA), Ic (mA), Time_b (sec), Time_c (sec), Status_b, Result Example Status_c 0.3,0,-0.005,0.057,0.057,0,0 0.35,0,-0.005,0.1434,0.1434,0,0 0.4,0,-0.005,0.23,0.23,0,0 0.45,0,-0.005,0.3164,0.3164,0,0 0.5,0,-0.005,0.403,0.403,0,0 0.55,0.0001,0.01,0.489,0.489,0,0 0.6,0.0005,0.085,0.5754,0.5754,0,0 0.65,0.00305,0.595,0.662,0.662,0,0 0.7,0.0191,3.855,0.7484,0.7484,0,0 0.75,0.0993,19.255,0.835,0.835,0,0 0.8,0.34475,57.825,0.9214,0.9214,0,0 Data save completed. Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-43...
  • Page 138: Pulsed Sweep Measurement

    Disables measurement channels. 11 and 16 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-44 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 139 3 to 33 Declares variables, and defines the value. 35 to 45 Declares variables used to keep source data, measurement data, status data, and time stamp data. Also defines array size. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-45...
  • Page 140: Ret = Agb1500_Setadc

    61 to 62 Declares a variable, and defines the value. This variable is used for the output value of the secondary sweep source. Sets the array counter i to 0. 3-46 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 141 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the save_data subprogram (next page) to save measurement data. End of the sweep_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-47...
  • Page 142 Displays measurement data on a message box. If Yes is clicked on the message box, performs the sweep_meas subprogram again. If No is clicked, returns to the perform_meas subprogram. End of the save_data subprogram. 3-48 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 143 100,0.3,15.725,0.4139,0 100,0.6,18.115,0.4239,0 100,0.9,18.715,0.4339,0 100,1.2,18.84,0.4439,0 100,1.5,18.925,0.4539,0 100,1.8,19.015,0.4639,0 100,2.1,19.045,0.4739,0 100,2.4,19.12,0.4839,0 100,2.7,19.175,0.4939,0 100,3,19.215,0.5039,0 150,0,-0.15,0.6539,0 150,0.3,21.065,0.6639,0 150,0.6,24.54,0.6739,0 150,0.9,26.47,0.6839,0 150,1.2,27.19,0.6939,0 150,1.5,27.405,0.7039,0 150,1.8,27.605,0.7139,0 150,2.1,27.71,0.7239,0 150,2.4,27.795,0.7339,0 150,2.7,27.885,0.7439,0 150,3,27.955,0.7539,0 Data save completed. Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-49...
  • Page 144: Staircase Sweep With Pulsed Bias Measurement

    Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-50 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 145 Declares variables for source channels, and defines the value. 35 to 45 Declares variables used to keep source data, measurement data, status data, and time stamp data. Also defines array size. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-51...
  • Page 146 Declares a variable, and defines the value. This variable is used for the output value of the secondary sweep source. Sets the array counter i to 0. 65 to 70 Declares variables for the pulsed source, and defines the value. 3-52 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 147 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the save_data subprogram (next page) to save measurement data. End of the sweep_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-53...
  • Page 148 Displays measurement data on a message box. If Yes is clicked on the message box, performs the sweep_meas subprogram again. If No is clicked, returns to the perform_meas subprogram. End of the save_data subprogram. 3-54 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 149 2,0.3,4.205,0.4282,0 2,0.6,7.955,0.4382,0 2,0.9,11.245,0.4482,0 2,1.2,14.11,0.4582,0 2,1.5,16.55,0.4682,0 2,1.8,18.67,0.4782,0 2,2.1,20.52,0.4882,0 2,2.4,22.185,0.4982,0 2,2.7,23.67,0.5082,0 2,3,25.02,0.5182,0 3,0,0,0.6708,0 3,0.3,5.07,0.6808,0 3,0.6,9.73,0.6908,0 3,0.9,13.965,0.7008,0 3,1.2,17.76,0.7108,0 3,1.5,21.115,0.7208,0 3,1.8,24.07,0.7308,0 3,2.1,26.64,0.7408,0 3,2.4,28.91,0.7508,0 3,2.7,30.925,0.7608,0 3,3,32.71,0.7708,0 Data save completed. Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-55...
  • Page 150: Breakdown Voltage Measurement

    Disables measurement channels. 11 and 16 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 3-56 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 151 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the display_data subprogram (shown below) to display measurement data. End of the vbd_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-57...
  • Page 152 If Yes is clicked on the message box, performs the vbd_meas subprogram again. If No is clicked, returns to the perform_meas subprogram. End of the display_data subprogram. Measurement Vbd = 55.885 (V) Result Example Do you want to perform measurement again? 3-58 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 153 Disables measurement channels. 13 and 18 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-59...
  • Page 154 Calls the check_err subprogram (shown in Table 3-1) to check if an error status is returned for the previous line. Calls the display_data subprogram (next page) to display measurement data. End of the spot_meas subprogram. 3-60 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 155 Or displays error message on a message box if the status is abnormal. End of the display_data subprogram. Measurement Id = 12.775 (mA) Result Example Do you want to perform measurement again? Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 3-61...
  • Page 156 Programming Examples for Visual Basic Users Leakage Current Measurement 3-62 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 157 Programming Examples for C++ Users...
  • Page 158: Leakage Current Measurement

    Programming Examples for C++ Users This chapter explains programming examples to perform the following measurements using the Agilent B1500 and the B1500 VXIplug&play driver, and consists of the following sections. • “Programming Basics” • “High Speed Spot Measurement” • “Multi Channel Spot Measurement”...
  • Page 159: Programming Basics

    Programming Examples for C++ Users Programming Basics Programming Basics This section provides the basic information for programming using the Agilent B1500 VXIplug&play driver. • “To Create Your Project Template” • “To Create Measurement Program” To Create Your Project Template This section explains how to create a project template in the C language. Before starting programming, create your project template, and keep it as your reference.
  • Page 160 Description 1 to 4 Required to use the Agilent B1500 VXIplug&play driver. The header files contain various necessary information such as function declaration and macro definitions. You may add the include statements to call another header files that may be needed by the codes you added.
  • Page 161: Check_Err Vi, Ret

    43 to 45 Resets the Agilent B1500, sets the driver I/O time out to 60 seconds, and enables the automatic instrument error checking. Calls the perform_meas subprogram (line 22).
  • Page 162: To Create Measurement Program

    Step 4. Launch the programming software. Step 5. Open the project (e.g. \test\dev_a\spot_id). Step 6. Open the source file that contains the template code as shown in Table 4-1, and complete the perform_meas subprogram. Then use the Agilent B1500 VXIplug&play driver functions: •...
  • Page 163: High Speed Spot Measurement

    Enables measurement channels. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. 19 to 29 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 164 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Measurement Id = 14.255001 mA (at 1.5 V) Vg = 1.5 V Result Example Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 165: Multi Channel Spot Measurement

    Enables measurement channels. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. 15 to 29 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 166 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Measurement Ic = 3.846500 mA (Time: 0.093200 sec) Ib = 0.018970 mA (Time: 0.094300 sec) Result Example hfe = 202.767528 4-10 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 167: Pulsed Spot Measurement

    Enables measurement channels. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. 19 to 28 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-11...
  • Page 168: Ret = Agb1500_Zerooutput(Vi, Agb1500_Ch_All)

    Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Measurement Id = 14.255000 mA (at 1.5 V) Vg = 1.5 V Result Example 4-12 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 169: Staircase Sweep Measurement

    = "Saving data..."; ViChar msg2[] = "Data save completed."; ViChar ’\n’; /* 36 */ Line Description Beginning of the perform_meas subprogram. 4 to 36 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-13...
  • Page 170 Sets the specified port to the zero output state. 42 and 70 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. 4-14 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 171 Saves the measurement results into a CSV file specified by the f_name variable. Disables all ports. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-15...
  • Page 172 3.00, 1.20, 17.570000, 0.358000, 0 3.00, 1.50, 20.905000, 0.359300, 0 3.00, 1.80, 23.830000, 0.360300, 0 3.00, 2.10, 26.405000, 0.361700, 0 3.00, 2.40, 28.670000, 0.363000, 0 3.00, 2.70, 30.695000, 0.364000, 0 3.00, 3.00, 32.505000, 0.365300, 0 4-16 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 173: Check_Err Vi, Ret

    Declares variables, and defines the value. 33 to 36 Enables measurement channels. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-17...
  • Page 174: Ret = Agb1500_Zerooutput(Vi, Agb1500_Ch_All)

    56 to 59 Stops the program execution if the number of returned data is not equal to nop. 61 to 64 Displays the measurement result data. 4-18 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 175 7.723500, 0.074600, 0 1.20, 10.753000, 0.076300, 0 1.50, 13.975000, 0.080000, 0 1.80, 17.385000, 0.081200, 0 2.10, 20.955000, 0.082800, 0 2.40, 24.660000, 0.084300, 0 2.70, 28.500000, 0.085500, 0 3.00, 32.450000, 0.087000, 0 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-19...
  • Page 176 Declares variables, and defines the value. 33 to 36 Enables measurement channels. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. 4-20 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 177: Ret = Agb1500_Zerooutput(Vi, Agb1500_Ch_All)

    56 to 59 Stops the program execution if the number of returned data is not equal to nop. 61 to 64 Displays the measurement result data. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-21...
  • Page 178 7.764500, 0.094100, 0 1.20, 10.812500, 0.095800, 0 1.50, 14.050000, 0.099300, 0 1.80, 17.475000, 0.100500, 0 2.10, 21.050000, 0.102100, 0 2.40, 24.765000, 0.103600, 0 2.70, 28.600000, 0.105200, 0 3.00, 32.560000, 0.106500, 0 4-22 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 179: Multi Channel Sweep Measurement

    = mode[0] = mode[1] = range[0] = 0; range[1] = 0; /* 34 */ Line Description Beginning of the perform_meas subprogram. 3 to 34 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-23...
  • Page 180 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is and 57 returned for the previous line. 59 to 62 Stops the program execution if the number of returned data is not equal to the nop value. 4-24 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 181 0.60135000, 0.00303550, 198.10574864, 0.415600, 0.420900, 0, 0 0.70, 3.84650000, 0.01897000, 202.76752768, 0.428700, 0.429800, 0, 0 0.75, 18.79500000, 0.09735000, 193.06625578, 0.433900, 0.435000, 0, 0 0.80, 55.71000000, 0.33300000, 167.29729730, 0.437900, 0.441000, 0, 0 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-25...
  • Page 182 = agb1500_setSwitch(vi, collector, 1); check_err (vi, ret); /* 39 */ Line Description Beginning of the perform_meas subprogram. 3 to 34 Declares variables, and defines the value. 36 to 39 Enables measurement channels. 4-26 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 183 59 to 62 Stops the program execution if the number of returned data is not equal to nop. 64 to 69 Displays the measurement result data. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-27...
  • Page 184 0.085000, 0.000475, 178.947368, 0.072400, 0.072400, 0, 0 0.65, 0.595000, 0.003035, 196.046129, 0.074400, 0.074400, 0, 0 0.70, 3.825000, 0.018935, 202.006866, 0.076400, 0.076400, 0, 0 0.75, 18.740000, 0.096725, 193.745154, 0.078400, 0.078400, 0, 0 4-28 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 185: Pulsed Sweep Measurement

    = agb1500_setSwitch(vi, collector, 1); check_err (vi, ret); /* 34 */ Line Description Beginning of the perform_meas subprogram. 3 to 29 Declares variables, and defines the value. 31 to 33 Enables measurement channels. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-29...
  • Page 186 Sets the specified port to the zero output state. 34, 45, 48, 57, Calls the check_err subprogram (shown in Table 4-1) to check if an error status is and 63 returned for the previous line. 4-30 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 187 Saves the measurement results into a CSV file specified by the f_name variable. Disables all ports. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-31...
  • Page 188 150.0, 1.20, 27.505000, 0.692900, 0 150.0, 1.50, 27.800000, 0.702900, 0 150.0, 1.80, 27.935000, 0.712900, 0 150.0, 2.10, 28.050000, 0.722900, 0 150.0, 2.40, 28.205000, 0.732900, 0 150.0, 2.70, 28.285000, 0.742900, 0 150.0, 3.00, 28.330000, 0.752900, 0 4-32 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 189: Staircase Sweep With Pulsed Bias Measurement

    = "Saving data..."; ViChar msg2[] = "Data save completed."; ViChar ’\n’; /* 36 */ Line Description Beginning of the perform_meas subprogram. 4 to 36 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-33...
  • Page 190 Sets the specified port to the zero output state. 42 and 70 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. 4-34 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 191 Saves the measurement results into a CSV file specified by the f_name variable. Disables all ports. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-35...
  • Page 192 3.00, 1.20, 17.575000, 0.710500, 0 3.00, 1.50, 20.895000, 0.720500, 0 3.00, 1.80, 23.810000, 0.730500, 0 3.00, 2.10, 26.355000, 0.740500, 0 3.00, 2.40, 28.615000, 0.750500, 0 3.00, 2.70, 30.615000, 0.760500, 0 3.00, 3.00, 32.410000, 0.770500, 0 4-36 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 193: Breakdown Voltage Measurement

    Applies voltage to device. Sets the quasi pulsed voltage source. 17, 20, and Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-37...
  • Page 194 Calls the check_err subprogram (shown in Table 4-1) to check if and 40 an error status is returned for the previous line. End of the perform_meas subprogram. Measurement Vbd = 56.245000 V Result Example 4-38 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 195: Leakage Current Measurement

    Enables measurement channels. 24 to 26 Applies voltage to device. 22 and 27 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-39...
  • Page 196 End of the perform_meas subprogram. Measurement Id = 12.240000 mA Vd = -5.00 to 5.00 V Result Example Vg = 0.00 V 4-40 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 197: Sampling Measurement

    ViInt32 status[60]; mch[0] =t1; mch[1] =t2; mch[2] mode[0] mode[1] range[0] range[1] /* 28 */ Line Description Beginning of the perform_meas subprogram. 3 to 28 Declares variables, and defines the value. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-41...
  • Page 198 Performs sampling measurement. Sets all channels to the zero output state. 49 to 55 Stops the program execution if the number of returned data is not equal to the nop value. 4-42 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 199 Clears the sampling source setting. Disables all ports. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-43...
  • Page 200 23, 10.600, 9.434, 9.710,10.298,0 24, 10.595, 9.438, 9.716,10.292,0 25, 10.585, 9.447, 9.716,10.292,0 26, 10.585, 9.447, 9.712,10.297,0 27, 10.600, 9.434, 9.718,10.290,0 28, 10.605, 9.430, 9.714,10.294,0 29, 10.585, 9.447, 9.714,10.294,0 30, 10.595, 9.438, 9.714,10.294,0 4-44 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 201: High Speed Spot C Measurement

    Displays a message box that asks if you perform the phase compensation. If you click Yes, the phase compensation will be performed. It will take about 30 seconds. End of the phase_compen subprogram. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-45...
  • Page 202 It does not need a long time. The short correction and the load correction are not performed in this example. End of the open_corr subprogram. 4-46 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 203 Sets the SCUU connection path. 27 to 28 Enables the MFCMU, and sets the integration time. Calls the phase_compen subprogram (shown in Table 4-15) used to perform the phase compensation of the MFCMU. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-47...
  • Page 204 Cp = 5.681398 pF (status= 0) G = 27.148290 uS (status= 0) Result Example AC level = 0.028929 V (status= 0) DC bias = -4.767328 V (status= 0) Time = 0.017700 sec 4-48 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 205: Cv Sweep Measurement

    3.50, 1.671890, 0, -0.661217,0, 0.028886, 0, 3.309432,0, 0.698400 4.00, 1.671370, 0, -0.057262,0, 0.028993, 0, 3.792928,0, 0.737800 4.50, 1.661781, 0, 0.952458,0, 0.029073, 0, 4.277680,0, 0.779400 5.00, 1.635690, 0, 2.552799,0, 0.029128, 0, 4.763176,0, 0.821000 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-49...
  • Page 206 35 to 38 Enables source channels connected to the drain and source terminals, and applies 0 V. 39 to 41 Sets the SCUU connection path, enables the MFCMU, and sets the integration time. 4-50 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...
  • Page 207 Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. Resets the time stamp. Performs capacitance-voltage (CV) sweep measurement. Applies 0 V from all channels. Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3 4-51...
  • Page 208 29. Disables all ports. Calls the check_err subprogram (shown in Table 4-1) to check if an error status is returned for the previous line. End of the perform_meas subprogram. 4-52 Agilent B1500 VXIplug&play Driver User’s Guide, Edition 3...

Table of Contents