0% found this document useful (0 votes)
263 views

Agilent B1500-Programming Guide

Agilent b1500-Programming Guide

Uploaded by

samson41879
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
263 views

Agilent B1500-Programming Guide

Agilent b1500-Programming Guide

Uploaded by

samson41879
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 508

Agilent B1500A

Semiconductor Device
Analyzer

Programming Guide

Agilent Technologies
Notices
© Agilent Technologies 2005, 2006, 2007 Warranty defined in FAR 52.227-19(c)(1-2) (June
1987). U.S. Government users will receive
No part of this manual may be reproduced in The material contained in this docu- no greater than Limited Rights as defined in
any form or by any means (including elec- ment is provided “as is,” and is sub-
tronic storage and retrieval or translation FAR 52.227-14 (June 1987) or DFAR
ject to being changed, without notice, 252.227-7015 (b)(2) (November 1995), as
into a foreign language) without prior agree- in future editions. Further, to the max-
ment and written consent from Agilent applicable in any technical data.
imum extent permitted by applicable
Technologies, Inc. as governed by United law, Agilent disclaims all warranties,
States and international copyright laws. either express or implied, with regard
to this manual and any information
Manual Part Number contained herein, including but not
B1500-90010 limited to the implied warranties of
merchantability and fitness for a par-
Edition ticular purpose. Agilent shall not be
liable for errors or for incidental or
Edition 1, August 2005 consequential damages in connec-
Edition 2, April 2006 tion with the furnishing, use, or per-
Edition 3, June 2007 formance of this document or of any
Edition 4, December 2007 information contained herein. Should
Agilent and the user have a separate
written agreement with warranty
Agilent Technologies, Inc. terms covering the material in this
5301 Stevens Creek Blvd document that conflict with these
Santa Clara, CA 95051 USA terms, the warranty terms in the sep-
arate agreement shall control.

Technology Licenses
The hardware and/or software described in
this document are furnished under a license
and may be used or copied only in accor-
dance with the terms of such license.

Restricted Rights Legend


If software is for use in the performance of a
U.S. Government prime contract or subcon-
tract, Software is delivered and licensed as
“Commercial computer software” as
defined in DFAR 252.227-7014 (June 1995),
or as a “commercial item” as defined in FAR
2.101(a) or as “Restricted computer soft-
ware” as defined in 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
receive no greater than Restricted Rights as
In This Manual
This manual provides the information to control the Agilent B1500 via GPIB
interface using an external computer, and consists of the following chapters:

• “Programming Basics”
This chapter provides basic information to control the Agilent B1500.
• “Remote Mode Functions”
This chapter explains the functions of the Agilent B1500 in the remote mode.
• “Programming Examples”
This chapter lists the GPIB commands and explains the programming examples
for each measurement mode or function. The examples have been written in the
Microsoft Visual Basic .NET or the HP BASIC language.
• “Command Reference”
This chapter provides the complete reference of the GPIB commands of the
Agilent B1500.
• “Error Messages”
This chapter lists the error codes, and explains them.

EasyEXPERT is a trademark of Agilent Technologies. Microsoft, Windows, and Visual Basic are registered trademarks
of Microsoft Corporation. All other trademarks are the property of their respective owners.
Contents

1. Programming Basics
Before Starting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3
FlexGUI Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7
To Reset the Agilent B1500 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
To Read Query Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
To Perform Self-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
To Perform Self-Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
To Perform Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
To Enable Source/Measurement Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
To Select the Measurement Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-9
To Force Voltage/Current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11
To Set the SMU Integration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-13
To Set the Measurement Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14
To Pause Command Execution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
To Start Measurement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
To Force 0 V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-15
To Disable Source/Measurement Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16
To Control ASU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-16
To Control SCUU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17
To Read Error Code/Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18
To Read Spot Measurement Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18
To Read Sweep Measurement Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19
To Read Time Stamp Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20
To Perform High Speed Spot Measurement. . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21
Command Input Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22
Header. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22
Numeric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-23
Terminator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24
Special Terminator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24

Agilent B1500 Programming Guide, Edition 4


Contents

Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24
Data Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-25
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-25
ASCII Data Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26
Binary Data Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-36
GPIB Interface Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-55
Status Byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-56
Programming Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-58
To Confirm the Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-59
To Confirm the Command Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-59
To Disable the Auto Calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-59
To Optimize the Measurement Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-60
To Optimize the Integration Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-60
To Disable the ADC Zero Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-60
To Optimize the Source/Measurement Wait Time . . . . . . . . . . . . . . . . . . . . . . 1-61
To Use the Internal Program Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-62
To Get Time Data with the Best Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . 1-62
To Use Sweep Source as a Constant Source . . . . . . . . . . . . . . . . . . . . . . . . . . 1-62
To Start Measurements Simultaneously. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-62
To Perform Quasi-Sampling Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-63
To Interrupt Command Execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-63
To Use Programs for Agilent 4142B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-64
To Use Programs for Agilent 4155/4156 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-65
To Use Programs for Agilent E5260/E5270 . . . . . . . . . . . . . . . . . . . . . . . . . . 1-67

2. Remote Mode Functions


Measurement Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3
Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4
Pulsed Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-5
Staircase Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-6

Agilent B1500 Programming Guide, Edition 4


Contents

Multi Channel Sweep Measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-8


Pulsed Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-10
Staircase Sweep with Pulsed Bias Measurements . . . . . . . . . . . . . . . . . . . . . . 2-12
Quasi-Pulsed Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15
Binary Search Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-17
Linear Search Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19
Sampling Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-21
Quasi-static CV Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-24
Spot C Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-27
Pulsed Spot C Measurement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28
CV (DC bias) Sweep Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-30
Pulsed Sweep CV Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32
C-f Sweep Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-34
CV (AC level) Sweep Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-36
C-t Sampling Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-38
Synchronous Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-40
Automatic Abort Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-42
Parallel Measurement Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-44
To Set Measurement Channels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-44
To Enable Parallel Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-44
Program Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-45
Using Program Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-45
SPGU Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-48
PG Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-50
ALWG Operation Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-54
SMU/PG Selector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-59
Digital I/O Port. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-60
Accessories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-61
Digital I/O Internal Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-62

Agilent B1500 Programming Guide, Edition 4


Contents

Trigger Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-63


Trigger Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-64
Trigger Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-66
Using Trigger Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-68
Trig In/Out Internal Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-74
Initial Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-75

3. Programming Examples
Programming Basics for Visual Basic .NET Users . . . . . . . . . . . . . . . . . . . . . . . . 3-4
To Create Your Project Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
To Create Measurement Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5
High-Speed Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9
Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12
Pulsed Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
Staircase Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-18
Pulsed Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-28
Staircase Sweep with Pulsed Bias Measurements . . . . . . . . . . . . . . . . . . . . . . . 3-32
Quasi Pulsed Spot Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-36
Linear Search Measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-39
Binary Search Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-42
Multi Channel Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-45
Sampling Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-49
Quasi-static CV Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-54
High-Speed Spot C Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-59
Spot C Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-65
CV (DC Bias) Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-69

Agilent B1500 Programming Guide, Edition 4


Contents

Pulsed Spot C Measurements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-74


Pulsed Sweep CV Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-78
CV (AC Level) Sweep Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-83
C-f Sweep Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-88
C-t Sampling Measurements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-93
SPGU Pulse Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-98
Using Program Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-102
Tips to use program memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-103
Using Trigger Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-108
Reading Time Stamp Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-120
Reading Binary Output Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-121
Using Programs for 4142B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-124
Using Programs for 4155B/4156B/4155C/4156C . . . . . . . . . . . . . . . . . . . . . . . 3-126

4. Command Reference
Command Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3
Command Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-12
Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-23
AAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
AB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24
ACH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26
ACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
ACV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-27
ADJ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28
ADJ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-28
AIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-29
ALS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-31

Agilent B1500 Programming Guide, Edition 4


Contents

ALS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-31
ALW. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
ALW? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
AV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-32
AZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
BC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
BDM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34
BDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35
BDV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-35
BGI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36
BGV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-38
BSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-39
BSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40
BSSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-42
BSSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-43
BST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
BSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-44
BSVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
CA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-45
*CAL? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46
CL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-47
CLCORR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-48
CM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49
CMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-49
CN/CNX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-50
CORR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-52
CORRDT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-53
CORRDT? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-54
CORRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-54
CORRL?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-55
CORRSER? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-55
CORRST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-57

Agilent B1500 Programming Guide, Edition 4


Contents

CORRST?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-57
DCORR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-58
DCORR?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-59
DCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-60
DI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-60
DIAG? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-61
DO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-62
DV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-63
DZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-64
EMG? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-65
END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-65
ERC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-65
ERM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-66
ERMOD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-67
ERMOD? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-67
ERR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-68
ERRX? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-69
ERS? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-69
ERSSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-70
ERSSP?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-71
FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-71
FL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-72
FMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-72
*IDN? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-74
IMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-75
IN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-75
LGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-76
LGV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-77
LMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-78
LOP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-78
*LRN? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-79
LSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-85

Agilent B1500 Programming Guide, Edition 4


Contents

LSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-86
LSSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-87
LSSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-88
LST? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-89
LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-90
LSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-91
LSVM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-92
MCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-92
MDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-93
MI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-94
ML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-95
MM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-95
MSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-97
MSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-98
MT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-99
MTDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-101
MV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-102
NUB? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-103
ODSW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-103
ODSW? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-103
*OPC? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-104
OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-105
OSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-105
PA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-106
PAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-106
PAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-107
PDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-108
PI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-109
PT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-110
PTDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-111
PV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-112
PWDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-113

Agilent B1500 Programming Guide, Edition 4


Contents

PWI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-114
PWV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-115
QSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-116
QSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-116
QSM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-117
QSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-117
QSR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-118
QST. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-119
QSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-120
QSZ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-122
RC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-122
RCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-123
RI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-124
RM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-124
*RST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-125
RU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-126
RV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-126
RZ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-127
SAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-128
SAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-128
SAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-129
SCR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-129
SER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-130
SER? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-130
SIM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-131
SIM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-131
SPM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-131
SPM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-132
SPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-132
SPPER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-133
SPPER?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-133
SPRM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-133

Agilent B1500 Programming Guide, Edition 4


Contents

SPRM? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-134
SPST?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-134
SPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-135
SPT? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-136
SPUPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-136
SPV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-137
SPV?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-138
*SRE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-138
*SRE? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-139
SRP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-139
SSL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-140
SSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-140
SSR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-142
ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-143
*STB? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-144
STGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-144
STGP? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-145
TACV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-145
TC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-146
TDCV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-147
TDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-148
TDV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-149
TGMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-150
TGP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-151
TGPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-153
TGSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-154
TGSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-155
TGXO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-155
TI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-156
TM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-157
TMACV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-158
TMDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-159

Agilent B1500 Programming Guide, Edition 4


Contents

TSC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-159
TSQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-160
TSR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-160
*TST? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-161
TTC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-162
TTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-163
TTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-164
TV. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-165
UNT? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-166
VAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-166
VAR? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-167
WACV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-167
WAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-168
WDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-169
WFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-170
WI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-171
WM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-172
WMACV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-173
WMDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-174
WMFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-175
WNU? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-176
WNX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-176
WS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-179
WSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-179
WSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-181
WSX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-182
WT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-183
WTACV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-184
WTDCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-185
WTFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-186
WV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-187
WZ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-189

Agilent B1500 Programming Guide, Edition 4


Contents

XE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-189

5. Error Messages
Operation Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3
Self-test/Calibration Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18

Agilent B1500 Programming Guide, Edition 4


1 Programming Basics
Programming Basics

This chapter describes basic information to control the Agilent B1500, and consists
of the following sections.

• “Before Starting”
• “Getting Started”
• “Command Input Format”
• “Data Output Format”
• “GPIB Interface Capability”
• “Status Byte”
• “Programming Tips”

NOTE About command execution examples


In this chapter, command execution examples are written in the HP BASIC
language. See the following instructions for your guidance.

1. Use the ASSIGN statement to assign the I/O path.


For example, enter the statement as shown below if the GPIB interface logial
unit of controller is 7 and the GPIB interface address of instrument is 17.
10 ASSIGN @B1500 TO 717
2. Use the OUTPUT statement to send commands to instruments, as shown below.
OUTPUT @B1500;"*RST"
It is available to send multiple commands as shown below.
OUTPUT @B1500;"*CN;MM2,1"
3. Use the ENTER statement to get a query response or data from instruments.

1-2 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Before Starting

Before Starting
Before starting the programming using the Agilent FLEX command, perform
following.
1. Terminate the Agilent EasyEXPERT software as follows.

a. Select File > Exit on the EasyEXPERT main window.


b. Click [x] at the upper right corner of the Start EasyEXPERT button.
2. Open the Agilent Connection Expert window by clicking Agilent IO Control
icon on the Windows task bar and selecting Agilent Connection Expert.
3. Change the following setup items as shown below. The setup window can be
opened by highlighting GPIB0 in the Instrument I/O on this PC area, and
clicking Change Properties... button.
GPIB address B1500’s GPIB address (ex: 17)
System Controller No
Auto-discover No
The factory shipment initial values are 17, No, and No, respectively.
4. Reboot the B1500A if the System Controller setting is changed from Yes to No.

NOTE Start EasyEXPERT button


After rebooting the B1500A, leave the Start EasyEXPERT button on the B1500
screen. The button must be displayed on the screen or minimized to the Windows
task bar. The Start EasyEXPERT service must be run to control the B1500 from an
external computer.

Agilent B1500 Programming Guide, Edition 4 1-3


Programming Basics
Before Starting

FlexGUI Window
Once the Agilent B1500 receives a GPIB command, the Start EasyEXPERT button
is minimized to the Windows task bar, and the FlexGUI window shown in Figure
1-1 is opened. The FlexGUI window is the status indicator of the B1500 in the GPIB
remote state and provides the following GUI.

Figure 1-1 FlexGUI Window

RMT LTN TLK SRQ


Measurement
GPIB Instrument Status

GPIB Commnad-Output Window

Model number and revision number Interface name GPIB address

Tools menu Go to Local & Close Returns the B1500 to the local state and closes the
FlexGUI window. After that the Start EasyEXPERT button
appears.
Close Substitution of Go to Local & Close when the B1500 is
already in the local state. Closes the FlexGUI window.
After that the Start EasyEXPERT button appears.
Options > Enable
GPIB Capturing Enables or disables the GPIB log display function.

Help menu About FlexGUI Opens the About FlexGUI dialog box.

1-4 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Before Starting

Model number and Shows “Agilent Technologies B1500A” and its firmware revision number.
revision number

Interface name Shows the name of the B1500 internal GPIB interface.

GPIB address Shows the GPIB address set to the B1500.

GPIB Instrument Shows the B1500 remote status. Has the following indicators.
Status
RMT Turns green while the B1500 is in the GPIB remote state.
LTN Turns green while the B1500 receives a GPIB command.
TLK Turns green while the B1500 sends a response.
SRQ Turns green since the service request occurs.
The last status display continues after the last communication.

Measurement Measurement indicator. Turns green while measurement, self-test, self-calibration,


program memory, or compensation data measurement is executed.

Enable GPIB Enables or disables the GPIB log display function. This function can be set to ON
Capturing by checking this check box.
The GPIB log display function is useful for debugging a program. For the normal
remote operation, this function should be OFF.

GPIB Command- Displays the following information as the communication log when the GPIB log
Output Window display function is ON. No information is displayed when the function is OFF.

• GPIB commands sent to the B1500


• Response data sent from the B1500
• Error messages sent from the B1500
The display items can be selected by using the combo box.
All Displays all of the above information.
Errors Displays the error messages only.
Commands Sent Displays the GPIB commands only.
Response Data Displays the response data only.
Commands Sent &
Response Data Displays the GPIB commands and response data.

Agilent B1500 Programming Guide, Edition 4 1-5


Programming Basics
Before Starting

The right-click menu is available in the GPIB log display area.


Copy Copies the highlighted data to the clipboard.
Select All Highlights all of the displayed information.
Save to File Saves the displayed information as the specified file which
can be opened by using a text editor such as the Notepad.
Clear All Deletes the displayed information.
Settings... Available when the GPIB log display function is OFF.
Opens the Settings dialog box.

Settings dialog box


This dialog box is opened by selecting Settings... of the right-click menu on the
GPIB log display area, and is used to set the display update mode, the number of
elements to be displayed in a line, and the display format.

GPIB Capturing Sets the display update mode to BYTE or BUFFER.


Mode
BYTE Updates the log display every byte data which is one character
of ASCII format.
BUFFER Updates the log display every buffer data which is data to a
terminator.

Elements(Respons Sets the number of elements displayed in a line to 4, 8, 16, 32, 64, or 128 elements.
e) in one Row One element is equivalent to one character of the ASCII format data.

Display Format Sets the following function ON or OFF. The function can be set to ON by checking
the check box.
Show Hex Data Displays the values given in hexadecimal.
Show Ascii Data Displays the values given in ASCII format.
Auto Clear Clears the log display area automatically every display update.
However, if an error occurs, the error message will be left in the
log display area. Also, if the display update mode is BUFFER,
the last log will be left in this area.

OK Applies the setup changes and closes the dialog box.

Cancel Cancels the setup changes and closes the dialog box.

1-6 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

Getting Started
This section explains the following basic operations. In this section, the HP BASIC
language is used for the examples.
• “To Reset the Agilent B1500”
• “To Read Query Response”
• “To Perform Self-Test”
• “To Perform Self-Calibration”
• “To Perform Diagnostics”
• “To Enable Source/Measurement Channels”
• “To Select the Measurement Mode”
• “To Force Voltage/Current”
• “To Set the SMU Integration Time”
• “To Set the Measurement Range”
• “To Pause Command Execution”
• “To Start Measurement”
• “To Force 0 V”
• “To Disable Source/Measurement Channels”
• “To Control ASU”
• “To Control SCUU”
• “To Read Error Code/Message”
• “To Read Spot Measurement Data”
• “To Read Sweep Measurement Data”
• “To Read Time Stamp Data”
• “To Perform High Speed Spot Measurement”

Agilent B1500 Programming Guide, Edition 4 1-7


Programming Basics
Getting Started

To Reset the Agilent B1500


The B1500 returns to the initial settings by the *RST command.

Example OUTPUT @B1500;"*RST"


For the initial settings, see “Initial Settings” on page 2-75.

To Read Query Response


If you enter a query command such as the *TST?, ERR? and so on, the B1500 puts
an ASCII format response to the query buffer that can store only one response. Read
the response as soon as possible after entering a query command.

Example OUTPUT @B1500;"NUB?"


ENTER @B1500;A
This example returns the number of data stored in the data output buffer.

To Perform Self-Test
The B1500 starts the self-test by the *TST? command. The *TST? command also
returns the test result.

Example OUTPUT @B1500;"*TST?"


ENTER @B1500;Code
IF Code<>0 THEN DISP "FAIL: SELF-TEST"
This example starts the self-test, and reads the test result code. For the test result
code, see “*TST?” on page 4-161.

To Perform Self-Calibration
The B1500 starts the self-calibration by the *CAL? command.

Example OUTPUT @B1500;"*CAL?"


ENTER @B1500;Result
IF Result<>0 THEN DISP "FAIL: CALIBRATION"
This example starts the self-calibration, and reads the result, pass or fail. For details,
see “*CAL?” on page 4-46.

1-8 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Perform Diagnostics
The B1500 starts the diagnostics by the DIAG? command, and returns the result.
You must specify the diagnostics item by the command parameter. Available
parameter values are:
1: Trigger In/Out diagnostics
3: High voltage LED diagnostics
4: Digital I/O diagnostics
To perform diagnostics 1, connect a BNC cable between the Ext Trig In terminal
and the Ext Trig Out terminal before starting the diagnostics.
To perform diagnostics 4, disconnect any cable from the digital I/O port.

Example OUTPUT @B1500;"DIAG? 1"


ENTER @B1500;Result
IF Result<>0 THEN DISP "FAIL: DIAGNOSTICS"
This example starts the Trigger In/Out diagnostics, and reads the result, pass or fail.
For details, see “DIAG?” on page 4-61.

To Enable Source/Measurement Channels


The measurement channels or source channels can be enabled by closing the output
switch. To close the switch, send the CN command. The B1500 closes the output
switch of the specified channels.

Example OUTPUT @B1500;"CN 1"


This example enables channel 1 (the module installed in slot 1 of the B1500). If you
do not specify the channel, the CN command enables all channels.

To Select the Measurement Mode


The B1500 provides the measurement modes listed in Table 1-1. To select the
measurement mode, send the MM command. In the table, the Mode No. means a
command parameter of the MM command.

Syntax MM Mode#[,Ch#[,Ch#] ... ]


where, Mode# specifies the Mode No., and Ch# specifies the measurement channel.
The available number of measurement channels depends on the measurement mode.
For details, see “MM” on page 4-95.

Agilent B1500 Programming Guide, Edition 4 1-9


Programming Basics
Getting Started

Example OUTPUT @B1500;"MM 2,1"


This example sets the staircase sweep measurement, and assigns channel 1 (the
module installed in slot 1 of the B1500) as the measurement channel.

NOTE The Mode No. is not assigned for the high speed spot measurement. See “To
Perform High Speed Spot Measurement” on page 1-21. The high speed spot
measurement does not need the MM command.
For the source output commands available for each measurement mode, see Table
1-3 on page 1-12.

Table 1-1 Measurement Mode

Measurement Mode (measurement parameter) Mode No.

Spot Measurement (current or voltage) 1


Staircase Sweep Measurement (current or voltage) 2
Pulsed Spot Measurement (current or voltage) 3
Pulsed Sweep Measurement (current or voltage) 4
Staircase Sweep with Pulsed Bias Measurement (current or voltage) 5
Quasi-Pulsed Spot Measurement (current or voltage) 9
Sampling Measurement (current or voltage) 10
Quasi-static CV Measurement (capacitance) 13
Linear Search Measurement (current or voltage) 14
Binary Search Measurement (current or voltage) 15
Multi Channel Sweep Measurement (current or voltage) 16
Spot C Measurement (impedance) 17
CV (DC bias) Sweep Measurement (impedance-DC voltage) 18
Pulsed Spot C Measurement (impedance) 19
Pulsed Sweep CV Measurement (impedance-voltage) 20
Frequency Sweep Measurement (impedance-frequency) 22
CV (AC level) Sweep Measurement (impedance-AC voltage) 23
C-t Sampling Measurement (impedance) 26
High Speed Spot Measurement (current, voltage, or impedance) NA

1-10 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Force Voltage/Current
The commands listed in Table 1-2 is used to force voltage or current. These
commands start to force the voltage or current immediately when the command is
executed. They can be used regardless of the measurement mode.
See Table 1-3 for the commands available for each measurement mode. The
commands just set the source channel condition, and the source channel starts the
output by the start trigger, such as the XE command. For more details of the
commands, see Chapter 4, “Command Reference.”
Table 1-2 Voltage/Current Output Commands

Command Description

DV Applies DC voltage from SMU immediately.

DI Applies DC current from SMU immediately.

FC/ACV Applies AC voltage from MFCMU immediately.

DCV Applies DC bias from MFCMU immediately.

TDV Applies DC voltage from SMU, and returns the time data.

TDI Applies DC current from SMU, and returns the time data.

FC/TACV Applies AC voltage from MFCMU, and returns the time data.

TDCV Applies DC bias from MFCMU, and returns the time data.

Example OUTPUT @B1500;"DV 1,0,5"


This example just forces 5 V using channel 1 (the module installed in slot 1 of the
B1500) with auto ranging.

Agilent B1500 Programming Guide, Edition 4 1-11


Programming Basics
Getting Started

Table 1-3 Measurement Mode and Available Source Output Commands

Measurement Mode Command

Staircase Sweep Measurement WV(/WSV) or WI(/WSI)


Pulsed Spot Measurement PV/PT or PI/PT

Pulsed Sweep Measurement PWV/PT(/WSV) or PWI/PT(/WSI)

Staircase Sweep with Pulsed Bias WV(/WSV) or WI(/WSI), and PV/PT or


Measurement PI/PT

Quasi-Pulsed Spot Measurement BDV

Sampling Measurement MV, MI, MSP

Quasi-static CV Measurement QSV

Linear Search Measurement LSV(/LSSV) or LSI(/LSSI)

Binary Search Measurement BSV(/BSSV) or BSI(/BSSI)

Multi Channel Sweep Measurement WNX, and WV or WI

CV (DC bias) Sweep Measurement WDCV


Pulsed Spot C Measurement PDCV/PTDCV

Pulsed Sweep CV Measurement PWDCV/PTDCV

Frequency Sweep Measurement WFC


CV (AC level) Sweep Measurement WACV

C-t Sampling Measurement MDCV

1-12 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Set the SMU Integration Time


To adjust the balance of the SMU’s measurement accuracy and speed, change the
integration time or the number of averaging samples of the A/D converter (ADC) by
using the AV command. The AV command is compatible with the AV command of
the Agilent 4142B.
For accurate and reliable measurement, set the integration time longer or set the
number of samples larger. For details about the integration time settings, see
Chapter 4, “Command Reference.”
The Agilent B1500 has the following two types of the A/D converter. Use the AAD
command to select the type of ADC, and use the AIT command to set the integration
time or the number of samples.

Type of ADC Description

High-speed ADC Effective for the high speed measurement. In the multi
channel sweep measurement mode (MM16), multiple
measurement channels can perform synchronous
measurements.
The number of averaging samples must be set by the
AIT or AV command.

High-resolution ADC Effective for the accurate measurement. Cannot be used


for the pulsed measurement channel and the
simultaneous measurement channel.
The integration time must be set by the AIT command.

Example The following example sets the number of samples to 10 for the high-speed A/D
converter.
OUTPUT @B1500;"AV 10,1"
The following example sets the power line cycle mode (PLC) for both the
high-speed ADC and the high-resolution ADC. And channel 1 uses the
high-resolution ADC and other channels use the high-speed ADC.
OUTPUT @B1500;"*RST"
OUTPUT @B1500;"AIT 0,2"
OUTPUT @B1500;"AIT 1,2"
OUTPUT @B1500;"AAD 1,1"

Agilent B1500 Programming Guide, Edition 4 1-13


Programming Basics
Getting Started

To Set the Measurement Range


To set the measurement range, send the following command:

Command Description
RI Sets the current measurement range. Available for the
current measurements that use the XE command. Not
available for the high speed spot measurement.
TI, TTI Sets the current measurement channel/range, and performs
the high speed spot measurement.
RV Sets the voltage measurement range. Available for the
voltage measurements that use the XE command. Not
available for the high speed spot measurement.
TV, TTV Sets the voltage measurement channel/range, and performs
the high speed spot measurement.
RC Sets the impedance measurement range. Available for the
CV sweep/spot C measurements.
TC, TTC Sets the impedance measurement channel/range, and
performs the high speed spot measurement.

For the current measurement with the auto ranging mode, you can specify the
coverage of each measurement range. To specify the coverage, send the RM
command.
For details, see Chapter 4, “Command Reference.”

Example This example sets the voltage measurement ranging mode of channel 1 to auto.
OUTPUT @B1500;"RV 1,0"
This example sets the current measurement ranging mode of channel 1 to auto, and
specifies coverage between 9 % and 90 % of the range value or between 90 mA and
180 mA for the 200 mA range.
OUTPUT @B1500;"RI 1,0"
OUTPUT @B1500;"RM 1,3,90"

NOTE To use 1 pA range of ASU


Set the 1 pA limited auto ranging mode or the 1 pA fixed range mode. Or enable the
1 pA range for the auto ranging mode by using the SAR command. See “SAR” on
page 4-129.

1-14 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Pause Command Execution


To pause command execution until the specified wait time elapses, send the PA
command.

Example OUTPUT @B1500;"PA 5"


If this command is sent, the B1500 waits 5 seconds before executing the next
command.

To Start Measurement
To start measurement other than the high speed spot measurement, send the XE
command.

Example OUTPUT @B1500;"XE"


This starts the measurement specified by the MM command.
For the high speed spot measurement, see “To Perform High Speed Spot
Measurement” on page 1-21.

To Force 0 V
To force 0 V immediately, send the DZ command. The B1500 memorizes the
present source output settings of the specified channel, and changes the specified
channel output to 0 V. If you do not specify the channel, the DZ command function
is effective for all channels.

Example OUTPUT @B1500;"DZ 1"


If this command is sent, the B1500 memorizes the current settings of channel 1 (the
module installed in slot 1 of the B1500), and changes channel 1 output to 0 V.
To restore the settings stored by the DZ command, send the RZ command. For
details, see Chapter 4, “Command Reference.”

Agilent B1500 Programming Guide, Edition 4 1-15


Programming Basics
Getting Started

To Disable Source/Measurement Channels


To disable the channels, send the CL command. The B1500 opens the output switch
of the specified channels. Opening the output switch disables the channel.

Example OUTPUT @B1500;"CL 1"


This example disables channel 1 (the module installed in slot 1 of the B1500). If you
do not specify the channel, the CL command disables all channels.

To Control ASU
This function is available for the B1500 that is installed with the high resolution
SMU (HRSMU). Atto Sense and Switch Unit (ASU) has two inputs, SMU input for
the HRSMU and AUX input for the other instrument. And the ASU input to output
connection can be controlled by the following commands. When the B1500 is
turned on, the SMU input will be connected to the ASU output. However, the SMU
output switch will be off at this time.
Table 1-4 ASU Input Output Connection Control

Previous Connection Command Subsequent Connection

SMU side, Output on/off SAP chnum, 1 AUX side


SMU side, Output off CN chnum SMU side, Output on
SAP chnum, 0
AUX side CN chnum
SAP chnum, 0
CL [chnum] SMU side, Output off
SMU side, Output on CL [chnum]

where, chnum must be the channel number of the HRSMU connected to the ASU.
See “SAL”, “SAP”, and “SAR” on page 4-129 for the other function and control
commands of the ASU.
When the SMU side is connected to the ASU output, the source output on/off can be
controlled by the CN/CL command. And then the SAP chnum, 1 command is used
to change the output connection to the AUX side. When the AUX side is connected,
the output of the instrument connected to the AUX input is appeared to the ASU
output immediately.

1-16 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Control SCUU
SCUU (SMU CMU Unify Unit) can be used with one capacitance measurement unit
(CMU) and two SMUs (MPSMU or HRSMU). The SCUU cannot be used with the
HPSMU or when only one SMU is connected. The SCUU input to output
connection can be controlled by the following commands. When the B1500 is
turned on, the SCUU input to output connection is not made (open).
Table 1-5 SCUU Input Output Connection Control

SCUU output connection after the command


Command
CMUH/Force1/Sense1 CMUL/Force2/Sense2

SSP chnum, 1 Force1/Sense1 Open

SSP chnum, 2 Open Force2/Sense2

SSP chnum, 3 Force1/Sense1 Force2/Sense2


SSP chnum, 4 CMUH CMUL

Force1/Sense1 is connected to the SMU installed in the slot numbered slot-1.


Force2/Sense2 is connected to the SMU installed in the slot numbered slot-2.
where, slot is the slot number given by chnum. When the SCUU input to output
connection is made, the measurement unit output switch will be automatically set to
ON.
When the connection is changed from SMU to CMU, the SMU output will be set as
follows. The other setup parameters are not changed.
Output voltage 0V
Output range 100 V
Compliance 20 mA
Series resistance OFF
When the connection is changed from CMU to SMU, the SMU output will be set as
follows. The other setup parameters are not changed.
Output voltage 0V
Output range 20 V
Compliance 100 μA
Series resistance Condition before the connection is changed from SMU to CMU

Agilent B1500 Programming Guide, Edition 4 1-17


Programming Basics
Getting Started

To Read Error Code/Message


If any error occurs, the B1500 will not put the measurement data into the data output
buffer. Hence, confirm that no error has occurred before reading the measurement
data. To read the error code and the error message, enter the ERRX? command.

Example OUTPUT @B1500;"ERRX?"


ENTER @B1500;Code,Msg$
IF Code<>0 THEN
PRINT "ERROR: ";Msg$
ELSE
: :
This example checks the error buffer, and prints the error message on the computer
screen if any error code is stored in the error buffer.
ERR? and EMG? commands are also available. These commands support the error
codes 0 to 999.

To Read Spot Measurement Data


After the spot measurements, the B1500 puts the measurement data into its output
data buffer. You can read the data as shown below. For the data output format, see
“Data Output Format” on page 1-25.

Example 1 For the HP BASIC users, use the ENTER statement. The example stores the header
information and the measurement data included in the ASCII data set by the FMT5
command into the Head$ and Mdata variables respectively.
ENTER @B1500 USING "#,3A,12D,X";Head$,Mdata

Example 2 For the Microsoft Visual Basic .NET with Agilent T&M Programmer’s Toolkit
users, use the Read, ReadList, UnbufferedRead methods and so on. The example
stores the header information and the measurement data included in the ASCII data
set by the FMT5 command into the head and mdata variables respectively.
ret_value = B1500.Read(True)
head = Left(ret_val, 3)
mdata = Val(Right(ret_val, 12))

1-18 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Read Sweep Measurement Data


For the sweep measurements, the measurement data will be put into the data output
buffer after every step measurement. You can read the data as shown below. For the
data output format, see “Data Output Format” on page 1-25.
• To read data after sweep measurement
This way waits for the measurement completion by using the *OPC? command
after the XE command, and reads the sweep data (all step measurement data) at
once after the sweep measurement is completed.
Example:
B1500.WriteLine("FMT 5,0") ’terminator=comma
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?")
rep = B1500.Read(True)
ret_val = B1500.ReadListAsStringArray() ’string array
For i = 0 To nop - 1 ’nop=number of sweep steps
head = Left(ret_val(i), 3)
mdata = Val(Right(ret_val(i), 12))
ddata = "Data = " & mdata & ", Header = " & head
Console.WriteLine(ddata)
Next i
For the specific example, see Table 3-5 on page 3-19.
• To read data after every step measurement
This way starts to read the data after the XE command. You do not need to wait
for the sweep measurement completion. So you can check the result data before
the sweep measurement is completed.
Example:
B1500.WriteLine("FMT 5,0") ’terminator=comma
B1500.TerminationCharacter = Chr(44) ’Chr(44)=comma
B1500.TerminationCharacterEnabled = True ’enables comma
B1500.WriteLine("XE")
For i = 0 To nop - 1 ’nop=number of sweep steps
ret_val = B1500.Read(True) ’string
head = Left(ret_val, 3)
mdata = Val(Right(ret_val, 12))
ddata = "Data = " & mdata & ", Header = " & head
Console.WriteLine(ddata)
Next i
For the specific example, see Table 3-6 on page 3-22.

Agilent B1500 Programming Guide, Edition 4 1-19


Programming Basics
Getting Started

To Read Time Stamp Data


NOTE This function is not available for the quasi-pulsed spot measurement (MM 9), search
measurement (MM 14 or 15), and the 4 byte binary data output (FMT 3 or 4).
To read the time data with the best resolution (100 μs), clear the timer every 100 s or
less (for FMT 1, 2, or 5), or 1000 s or less (for FMT 11, 12, 15, 21, 22, or 25).

The time stamp function records the time from timer reset (Time=0 s) to the start of
measurement. This function is enabled by the TSC command. The timer count is
cleared/reset by the TSR command.
For example, the output data in the staircase sweep measurement will be as follows:
Block1 [,Block2] . . . . <terminator>
BlockN (N: integer) = Time1,Data1 [,Time2,Data2] ... [,Source_data]
TimeN (N: integer) is the time from timer reset to the start of DataN measurement.

Without the TSC command, you can get the time data by the following commands:
• TDV / TDI (for voltage/current output by using a SMU),
TDCV / TACV (for DC voltage/AC voltage output by using the MFCMU):
Starts source output, and returns the time data from timer reset (TSR command)
to the start of output.
Example: OUTPUT @B1500;"TDV 1,0,20"
ENTER @B1500 USING "#,5X,13D,X";Time
PRINT "Time=";Time;"sec"
• TTV / TTI (for voltage/current measurement by using a SMU),
TTC (for impedance measurement by using the MFCMU):
Executes high speed spot measurement, and returns the measurement data and
the time data from timer reset (TSR command) to the start of measurement.
Example: OUTPUT @B1500;"TTV 1,0"
ENTER @B1500 USING "#,5X,13D,X";Time
ENTER @B1500 USING "#,5X,13D,X";Mdata
PRINT "Data=";Mdata;" at ";Time;"sec"
• TSQ: Returns the time data from timer reset (TSR command) to this command.
Example: OUTPUT @B1500;"TSR" !Resets count
:
OUTPUT @B1500;"TSQ" !Returns time data
ENTER @B1500 USING "#,5X,13D,X";Time
PRINT "Time=";Time;"sec"

1-20 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Getting Started

To Perform High Speed Spot Measurement


The high speed spot measurement does not need the MM and XE commands to set
the measurement mode and start measurement. To start and perform the high speed
spot measurement immediately, send the TI command for current measurement, the
TV command for voltage measurement, or the TC command for impedance
measurement. The following example program measures current by using the TI
command, and displays the measurement result data on the computer screen.

Example 10 ASSIGN @B1500 TO 717


20 OUTPUT @B1500;"*RST"
30 OUTPUT @B1500;"FMT 5"
40 OUTPUT @B1500;"CN 1,2,3,4"
50 OUTPUT @B1500;"DV 1,0,0"
60 OUTPUT @B1500;"DV 2,0,0"
70 OUTPUT @B1500;"DV 3,0,2"
80 OUTPUT @B1500;"DV 4,0,5"
90 OUTPUT @B1500;"TI 4,0"
100 ENTER @B1500 USING "#,3A,12D,X";Head$,Data
110 PRINT Head$,Data
120 OUTPUT @B1500;"DZ"
130 OUTPUT @B1500;"CL"
140 END

Line
Description
Number

10 Assigns the I/O path to control the B1500.


20 Initializes the B1500.
30 Sets the data output format (ASCII with header and <,>).
40 Enables channels 1, 2, 3, and 4.
50 to 80 Forces the DC voltage. Channel 1 and 2 force 0 V, channel 3 forces
2 V, and channel 4 forces 5 V with auto ranging.
90 Performs the high speed spot measurement using channel 4 with
auto ranging.
100 to 110 Prints the header data and measurement data on the screen.
120 Forces 0 V. All channels force 0 V.
130 Disables all channels.

Agilent B1500 Programming Guide, Edition 4 1-21


Programming Basics
Command Input Format

Command Input Format


Agilent FLEX commands (GPIB commands for the Agilent B1500) are composed
of a header, numeric data, and terminator, as shown in the following syntax diagram.
B1500 Control Command Syntax Diagram

;
Separator
,

Header Numeric Data Terminator


SP SP SP

SP : Space

NOTE Terminator
Terminator is necessary to enter the command to the Agilent B1500. For the
available terminators, see “Terminator” and “Special Terminator” on page 1-24.

Header
The header is the command name, always contains alpha characters, and is not
upper or lowercase sensitive. Some command names also contain an asterisk (*) or
question mark (?). The following figure shows the syntax diagram for a header.
Header Syntax Diagram

Alpha Character
(A to Z, a to z)
* ?

1-22 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Command Input Format

Numeric Data
Numeric data are the command parameters. You can enter numeric data directly
after the header or insert spaces between the header and numeric data. Some
parameters require integer data. The following figure shows the syntax diagram for
numeric data.
Numeric Data Syntax Diagram
Integer Data

Fixed Point Data

Floating Point Data

The following 3 figures show the syntax diagrams for integer, fixed point, and
floating point data, respectively.
Integer Data Syntax Diagram

+
Digit
(0 to 9)
SP − SP

SP : Space

Fixed Point Data Syntax Diagram

+
Digit Digit
(0 to 9) (0 to 9)
SP − SP

SP : Space

Floating Point Data Syntax Diagram

+ + *1
Digit Digit Digit
E
(0 to 9) (0 to 9) (0 to 9)
SP − e − SP

SP : Space
*1: Here must be 2 digits or less.

Agilent B1500 Programming Guide, Edition 4 1-23


Programming Basics
Command Input Format

Terminator
The terminator completes the GPIB command entry and starts command execution.
The following figure shows the terminator syntax diagram.
Terminator Syntax Diagram

^
EOI
CR LF

LF
^
EOI

Special Terminator
If a semicolon (;) is inserted before the terminator, as shown in the following figure,
the preceding commands are not executed until the next command line is input and
another terminator is input, without a preceding semicolon. The command lines are
then executed together.
Special Terminator Syntax Diagram

; CR LF
LF
^
EOI

Separator
If you enter multiple commands, use semicolons (;) to separate the commands.
Spaces are allowed before and after the semicolons. Command execution starts
when the terminator is received, not when the semicolon is received. You can input
multiple commands of up to a total of 256 characters (including the terminator). If
you input more than 256 characters, the input buffer overflows, and an error is
indicated.
Use commas (,) to separate numeric data entries.

NOTE Do not include the reset command (*RST) or the abort command (AB) in multiple
command strings (example: OUTPUT @B1500;”*RST;CN”). If you do, the other
commands in the string (example: CN) are not executed.

1-24 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Data Output Format


Agilent B1500 provides the following data output formats:
• “ASCII Data Output Format”
The B1500 supports the ASCII data format that is the common format for the
instruments that support the Agilent FLEX command mode.
• “Binary Data Output Format”
The B1500 supports the 4 bytes binary data format that is the common format
for the instruments that support the Agilent FLEX command mode. The B1500
also supports the dedicated 8 bytes binary format. The binary format enables
faster data transfer time than ASCII format. You need to calculate the data to get
the measurement result.
To select the data output format, use the FMT command. See “FMT” on page 4-72.
For the query response, the returned data is always stored in the query buffer in
ASCII format, regardless of the FMT command setting.
A minimum of 17×1001×2 (34034) measurement data can be stored in the data
output buffer.

Conventions
The following conventions are used in this section.
Data Output data that the B1500 sends after a measurement.
[Data] Optional output data sent when there are multiple output data
items.
For example, source data will be sent with measurement data
after the staircase sweep measurements when the source data
output is enabled by the FMT command.
<terminator> Terminator.
<CR/LF^EOI> (two bytes) or <,> (one byte) for ASCII data.
<CR/LF^EOI> (two bytes) or <^EOI> (0 byte) for binary data.
You can select by using the FMT command.

Agilent B1500 Programming Guide, Edition 4 1-25


Programming Basics
Data Output Format

ASCII Data Output Format


This section describes the ASCII data output format, and the elements of the data.
• “Time Stamp”
• “Data Format”
• “Data Elements”

Time Stamp
The B1500 can record the time when the measurement is started, and sends the time
data (Time). This function is enabled by the TSC command. The time data will be
sent just before the measurement data.
For example, in the staircase sweep measurements, the data will be as shown below.
Block1 [,Block2] . . . . <terminator>
where, BlockN (N: integer) = Time1,Data1 [,Time2,Data2] ... [,Source_data], then
TimeN (N: integer) is the time from timer reset to the start of DataN measurement.
The timer count is cleared/reset by the TSR command (Time=0).
The time stamp function is not available for the following measurements.

• High speed spot measurement


• Quasi-pulsed spot measurement (MM9)
• Linear search measurement (MM14)
• Binary search measurement (MM15)

1-26 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Data Format
The data output format depends on the measurement mode as shown below.

High Speed Spot Data <terminator> (by TI, TV, TMACV, or TMDCV command)
Time,Data <terminator> (by TTI or TTV command)
Para1,Para2 <terminator> (by TC command)
Time,Para1,Para2 <terminator> (by TTC command)
Data is the value measured by the channel you specify in the command. Time is the
time from timer reset to the start of measurement. Para1 and Para2 are the primary
parameter and the secondary parameter (ex: Cp and G) measured by the CMU. They
are selected by the IMP command.

Spot Data1 [,Data2] . . . . <terminator>


DataN (N: integer) is the value measured by a channel. The order of Data is defined
by the MM command.

Spot C, Data <terminator>


Pulsed Spot,
Pulsed Spot C, Data is the value measured by the channel you specify by using the MM command.
Quasi-Pulsed Spot For the pulsed spot C measurement, Data consists of the following data:

Para1,Para2
For the spot C measurement, Data consists of the following data:
Para1,Para2 [,Osc_level,Dc_bias]
Para1 and Para2 are the primary and secondary parameters (ex: Cp and G). They
are selected by the IMP command. See Table 4-8 on page 4-20. And Osc_level and
Dc_bias are the monitor values of the oscillator level (AC signal level) and the DC
bias respectively. They are sent if the data output is enabled by the LMN command.

Staircase Sweep, Block1 [,Block2] . . . . <terminator>


Multi Channel
Sweep Block1 is the block of data measured at the first sweep point.
Block2 is the block of data measured at the second sweep point.
where Block consists of the following data:
Data1 [,Data2] . . . . [,Source_data]
DataN (N: integer) is the value measured by a channel. The order of Data is defined
by the MM command. Source_data is the sweep source output value. It is sent if the
data output is enabled by the FMT command.

Agilent B1500 Programming Guide, Edition 4 1-27


Programming Basics
Data Output Format

Pulsed Sweep, Block1 [,Block2] . . . . <terminator>


Pulsed Sweep CV,
CV (DC or AC) Block1 is the block of data measured at the first sweep point.
Sweep, Block2 is the block of data measured at the second sweep point.
Frequency Sweep, where Block consists of the following data:
Staircase Sweep Data [,Source_data]
with Pulsed Bias
Data is the value measured by the channel you specify by using the MM command.
Source_data is the sweep source output value. It is sent if the data output is enabled
by the FMT command.
For the pulsed sweep CV measurement, Data consists of the following data:
Para1,Para2
For the CV (DC bias) sweep, CV (AC level) sweep, and frequency sweep, Data
consists of the following data:
Para1,Para2 [,Osc_level,Dc_bias]
Para1 and Para2 are the primary and secondary parameters (ex: Cp and G). They
are selected by the IMP command. See Table 4-8 on page 4-20. And Osc_level and
Dc_bias are the monitor values of the oscillator level (AC signal level) and the DC
bias respectively. They are sent if the data output is enabled by the LMN command.

Quasi-static CV Block1 [,Block2] . . . . <terminator>


Block1 is the block of the data measured at the first sweep point.
Block2 is the block of the data measured at the second sweep point.
where Block consists of the following data:
[DataL,] DataC [,Source_data]
DataL is the leakage current measurement data. DataC is the capacitance
measurement data. Source_data is the sweep source output value. DataL and
Source_data are sent if the data output is enabled by the QSL or FMT command.

Linear Search, Data_search [,Data_sense]<terminator>


Binary Search
This is the data at the measurement point closest to the search target. Data_search is
the value forced by the search output channel. Data_sense is the value measured by
the search monitor channel. It is sent if data output is enabled by the BSVM
command for the binary search, or the LSVM command for the linear search.

1-28 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Sampling, Block1 [,Block2] . . . . <terminator>


C-t Sampling
Block1 is the block of the data measured at the first sampling point.
Block2 is the block of the data measured at the second sampling point.
where Block consists of the following data:
[Sampling_no,] Data1 [,Data2] . . . .
Sampling_no is the sampling point index, and is returned by entering the FMT
command with mode<>0. This value depends on the sampling interval setting and
the measurement time. If the measurement time is shorter than the sampling
interval, Sampling_no will be N of BlockN (N: 1, 2, 3 . . . ).
DataN (N: integer) is the data measured by one unit. The order of Data is specified
by the MM command. Sampling_no and Data values can be discarded when the
range changing is occurred while the measurement with auto or limited auto
ranging.
If the measurement time is longer than the sampling interval, Sampling_no is not N
of BlockN. For example, if the measurement time is longer than the sampling
interval and shorter than twice the sampling interval, then the Sampling_no is 2 for
Block1, and 4 for Block2. In general, the measurement time depends on the
measurement value and the A/D converter settings.
For the C-t sampling, Data consists of the following data:
Para1,Para2
Para1 and Para2 are the primary parameter and the secondary parameter (ex: Cp
and G). They are selected by the IMP command. See Table 4-8 on page 4-20.

TDI, TDV, TSQ, Time <terminator>


TACV, TDCV
command Time is the time from timer reset to the start of output.

Agilent B1500 Programming Guide, Edition 4 1-29


Programming Basics
Data Output Format

Data Elements
The data (Data, Source_data, Time, Sampling_no, Data_search, Data_sense,
Osc_level, and Dc_bias) are the string as shown in Table 1-6.
The data elements depends on the FMT command setting. Details of the elements
are described on the following pages.
A: Status. One character.
B: Channel number. One character.
C: Data type. One character.
D: Data. Twelve digits or 13 digits.
E: Status. Three digits.
F: Channel number. One character.
G: Data type. One character.

Table 1-6 Data Elements

Data FMT command

ABCDDDDDDDDDDDD FMT1 or FMT5


ABCDDDDDDDDDDDDD FMT11 or FMT15
EEEFGDDDDDDDDDDDDD FMT21 or FMT25
DDDDDDDDDDDD FMT2
DDDDDDDDDDDDD FMT12 or FMT22

1-30 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

A Status. One character.

• Status for Source_data: See Table 1-7 on page 1-32.


Priority of appearance is W<E.
• Status for measurement data: See Table 1-10 on page 1-33.
For SMU, the priority of appearance is as follows:

• For the quasi-pulsed spot measurement: N<T<C<V<X<G or S


• For other measurement: N<G<S<T<C<V<X

B Channel number of the measurement/source channel. One character. See Table 1-11
on page 1-34.

C Data type. One character. See Table 1-12 on page 1-35.

D Measurement data, output data, time data, or sampling index. Twelve or 13 digits
depends on FMT setting, which may be one of the following:

• sn.nnnnnEsnn or sn.nnnnnnEsnn
• snn.nnnnEsnn or snn.nnnnnEsnn
• snnn.nnnEsnn or snnn.nnnnEsnn
where,
s: Sign, + or -.
n: Digit, 0 to 9.
E: Exponent symbol.

E Status. Three digits. Ignore status for the Time value.


• Status for Source_data: See Table 1-7 on page 1-32.
Priority of appearance is W<E.
• Status for measurement data:
For SMU status, see Table 1-8 on page 1-32.
For CMU status, see Table 1-9 on page 1-32.
If multiple status conditions are found, the sum of the EEE values is returned.
For example, if an A/D converter overflow occurred, and an SMU was
oscillating during the measurements, the returned EEE value is 3 (=1+2).

Agilent B1500 Programming Guide, Edition 4 1-31


Programming Basics
Data Output Format

F Channel number of the source/measurement module. One character. See Table 1-11
on page 1-34.

G Data type. One character. Also see Table 1-12 on page 1-35.
Table 1-7 Source Data Status

A or EEE Explanation
W Data is for the first or intermediate sweep step.
E Data is for the last sweep step.

Table 1-8 SMU Status

EEE Explanation
1 A/D converter overflowed.
2 One or more units are oscillating.
4 Another unit reached its compliance setting.
8 This unit reached its compliance setting.
16 Target value was not found within the search range.
32 Search measurement was automatically stopped.
64 Invalid data is returned. D is not used.
128 EOD (End of Data).

Table 1-9 CMU Status

EEE Explanation
1 A/D converter overflowed.
2 CMU is in the NULL loop unbalance condition.
4 CMU is in the IV amplifier saturation condition.
8 Not assigned.
16 Not assigned.
32 Not assigned.
64 Invalid data is returned. D is not used.
128 EOD (End of Data).

1-32 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Table 1-10 Status for Measurement Data

A Explanation

N No status error occurred.


T Another channel reached its compliance setting.

C This channel reached its compliance setting.

V Measurement data is over the measurement range. Or the sweep measurement


was aborted by the automatic stop function or power compliance. D will be
199.999E+99 (no meaning).

X One or more channels are oscillating. Or source output did not settle before
measurement.a
G For linear or binary search measurement, the target value was not found within
the search range. Returns the source output value.

For quasi-pulsed spot measurement, the detection time was over the limit (3 s for
Short mode, 12 s for Long mode).b

S For linear or binary search measurement, the search measurement was stopped.
Returns the source output value. See status of Data_sense.

For quasi-pulsed spot measurement, output slew rate was too slow to perform the
settling detection.c Or quasi-pulsed source channel reached the current
compliance before the source output voltage changed 10 V from the start
voltage.d

U CMU is in the NULL loop unbalance condition.

D CMU is in the IV amplifier saturation condition.

a. Make the wait time or delay time longer. Or make the current compliance larger. For
pulsed measurement, make the pulse width longer, or make the pulse base value
closer to the pulse peak value. For current output by limited auto ranging, make the
output range lower.
b. Make the current compliance or start voltage larger. Or set the detection interval to
Long. If this status occurs with the Long mode, perform the spot measurement.
c. Make the current compliance larger. Or set the detection interval to Long. If this sta-
tus occurs with the Long mode, perform the spot measurement or pulsed spot mea-
surement.
d. Perform the pulsed spot measurement or spot measurement.

Agilent B1500 Programming Guide, Edition 4 1-33


Programming Basics
Data Output Format

Table 1-11 Channel Number

B or F Explanationa

A Subchannel 1 of the module installed in the slot 1


B Subchannel 1 of the module installed in the slot 2
C Subchannel 1 of the module installed in the slot 3
D Subchannel 1 of the module installed in the slot 4
E Subchannel 1 of the module installed in the slot 5
F Subchannel 1 of the module installed in the slot 6
G Subchannel 1 of the module installed in the slot 7
H Subchannel 1 of the module installed in the slot 8
I Subchannel 1 of the module installed in the slot 9
J Subchannel 1 of the module installed in the slot 10
K Subchannel 2 of the module installed in the slot 1
L Subchannel 2 of the module installed in the slot 2
M Subchannel 2 of the module installed in the slot 3
N Subchannel 2 of the module installed in the slot 4
O Subchannel 2 of the module installed in the slot 5
P Subchannel 2 of the module installed in the slot 6
Q Subchannel 2 of the module installed in the slot 7
R Subchannel 2 of the module installed in the slot 8
S Subchannel 2 of the module installed in the slot 9
T Subchannel 2 of the module installed in the slot 10
F Explanation
V Ground unit (GNDU)
Z Status code for extraneous data in the channel. TSQ
command response or invalid data is returned.
a. SMU and CMU do not have the subchannel 2.

1-34 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Table 1-12 Data Type

C Explanation

V Voltage (V)
I Current (A)

F Frequency (Hz)

C or G Explanation

Z Impedance, resistance, or reactance (Ω)

Y Admittance, conductance, or susceptance (S)

C Capacitance (F)

L Inductance (H)

R Phase (radian)

P Phase (degree)

D Dissipation factor

Q Quality factor

X Sampling index

T Time (second)
G Explanation

V Voltage measurement value (V)

I Current measurement value (A)

v Voltage output value (V)

i Current output value (A)

f Frequency (Hz)
z invalid data

Agilent B1500 Programming Guide, Edition 4 1-35


Programming Basics
Data Output Format

Binary Data Output Format


This section describes the binary data output format, and the elements of the data.
• “Time Stamp”
• “Data Resolution”
• “Data Format”
• “4 Bytes Data Elements”
• “8 Bytes Data Elements”

Time Stamp
The B1500 can record the time when the measurement is started, and sends the time
data (Time). This function is enabled by the TSC command. The time data will be
sent just before the measurement data.
For example, in the staircase sweep measurements, the data will be as shown below.
Block1 [Block2] . . . . <terminator>
where, BlockN (N: integer) = Time1 Data1 [Time2 Data2] ... [Source_data], then
TimeN (N: integer) is the time from timer reset to the start of DataN measurement.
The timer count is cleared/reset by the TSR command (Time=0).
The time stamp function is not available for the following measurements.

• 4 bytes binary data format (FMT3 or FMT4)


• High speed spot measurement
• Quasi-pulsed spot measurement (MM9)
• Linear search measurement (MM14)
• Binary search measurement (MM15)

1-36 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Data Resolution
The 4 bytes binary data format provides the following data resolution. To use this
data format, enter the FMT3 or FMT4 command. The resolution of the SMU
measurement value will be larger than the measurement resolution of the B1500’s
high resolution A/D converter. For Range value, see “4 Bytes Data Elements” on
page 1-41.

• SMU measurement value (voltage or current): Range / 50000


• SMU output value (voltage or current): Range / 20000
• CMU measurement value (resistance or reactance): Range / 212
• CMU measurement value (conductance or susceptance): 1 / (Range × 212)
• CMU oscillator level monitor value (Vac), DC bias monitor value (Vdc),
frequency (Hz): Range / 50000
• CMU DC bias output value: 2 mV
The 8 bytes binary data format provides the following data resolution. To use this
data format, enter the FMT13 or FMT14 command. For Range value, see “8 Bytes
Data Elements” on page 1-48.

• SMU measurement/output value (voltage or current): Range / 1000000


• CMU measurement value (resistance or reactance): Range / 224
• CMU measurement value (conductance or susceptance): 1 / (Range × 224)
• CMU oscillator level monitor value (Vac), DC bias monitor value (Vdc),
frequency (Hz): Range / 1000000
• CMU DC bias output value: 1 mV

Agilent B1500 Programming Guide, Edition 4 1-37


Programming Basics
Data Output Format

Data Format
The data output format depends on the measurement mode as shown below.

High Speed Spot Data <terminator> (by TI, TV, TMACV, or TMDCV command)
Time Data <terminator> (by TTI or TTV command)
Para1 Para2 <terminator> (by TC command)
Time Para1 Para2 <terminator> (by TTC command)
Data is the value measured by the channel you specify in the command. Time is the
time from timer reset to the start of measurement. Para1 and Para2 are R (Ω) and X
(Ω), or G (S) and B (S) respectively measured by the CMU. They will be
automatically selected by the B1500, and will be a couple without data overflow.
Time is available for the 8 bytes binary data format (FMT13 or FMT14) and not
available for the 4 bytes binary data format (FMT3 or FMT4)

Spot Data1 [Data2] . . . . <terminator>


DataN (N: integer) is the value measured by a channel. The order of Data is defined
by the MM command.

Spot C, Data <terminator>


Pulsed Spot,
Pulsed Spot C, Data is the value measured by the channel you specify by using the MM command.
Quasi-Pulsed Spot For the pulsed spot C, Data consists of the following data:

Para1 Para2
For the spot C, Data consists of the following data:
Para1 Para2 [Osc_level Dc_bias]
Para1 and Para2 are R (Ω) and X (Ω), or G (S) and B (S) respectively. They will be
automatically selected by the B1500, and will be a couple without data overflow.
And Osc_level and Dc_bias are the monitor values of the oscillator level (AC signal
level) and the DC bias respectively. They are sent if the data output is enabled by the
LMN command.

1-38 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Staircase Sweep, Block1 [Block2] . . . . <terminator>


Multi Channel
Sweep Block1 is the block of data measured at the first sweep point. Block2 is the block of
data measured at the second sweep point. where Block consists of the following
data:
Data1 [Data2] . . . . [Source_data]
DataN (N: integer) is the value measured by a channel. The order of Data is defined
by the MM command. Source_data is the sweep source output value. It is sent if the
data output is enabled by the FMT command.

Pulsed Sweep, Block1 [Block2] . . . . <terminator>


Pulsed Sweep CV,
CV (DC or AC) Block1 is the block of data measured at the first sweep point. Block2 is the block of
Sweep, data measured at the second sweep point. Block consists of the following data:
Frequency Sweep, Data [Source_data]
Staircase Sweep
with Pulsed Bias Data is the value measured by the channel you specify by using the MM command.
Source_data is the sweep source output value. It is sent if the data output is enabled
by the FMT command.
For the pulsed sweep CV measurement, Data consists of the following data:
Para1 Para2
For the CV (DC bias) sweep, CV (AC level) sweep, and frequency sweep, Data
consists of the following data:
Para1 Para2 [Osc_level Dc_bias]
Para1 and Para2 are R (Ω) and X (Ω), or G (S) and B (S) respectively. They will be
automatically selected by the B1500, and will be a couple without data overflow.
And Osc_level and Dc_bias are the monitor values of the oscillator level (AC signal
level) and the DC bias respectively. They are sent if the data output is enabled by the
LMN command.

Quasi-static CV Block1 [Block2] . . . . <terminator>


Block1 is the block of the data measured at the first sweep point.
Block2 is the block of the data measured at the second sweep point.
where Block consists of the following data:
[DataL] DataC [Source_data]
DataL is the leakage current measurement data. DataC is the capacitance
measurement data. Source_data is the sweep source output value. DataL and
Source_data are sent if the data output is enabled by the QSL or FMT command.

Agilent B1500 Programming Guide, Edition 4 1-39


Programming Basics
Data Output Format

Linear Search, Data_search [Data_sense]<terminator>


Binary Search
This is the data at the measurement point closest to the search target. Data_search is
the value forced by the search output channel. Data_sense is the value measured by
the search monitor channel. It is sent if data output is enabled by the BSVM
command for the binary search, or the LSVM command for the linear search.

Sampling, Available for the 8 bytes binary data format (FMT13 or FMT14).
C-t Sampling
Block1 [Block2] . . . . <terminator>
Block1 is the block of the data measured at the first sampling point.
Block2 is the block of the data measured at the second sampling point.
where Block consists of the following data:
[Sampling_no] Data1 [Data2] . . . .
Sampling_no is the sampling point index, and is returned by entering the FMT
command with mode<>0. This value depends on the sampling interval setting and
the measurement time. If the measurement time is shorter than the sampling
interval, Sampling_no will be N of BlockN (N: 1, 2, 3 . . . ).
DataN (N: integer) is the data measured by one unit. The order of Data is specified
by the MM command. Sampling_no and Data values can be discarded when the
range changing is occurred while the measurement with auto or limited auto
ranging.
If the measurement time is longer than the sampling interval, Sampling_no is not N
of BlockN. For example, if the measurement time is longer than the sampling
interval and shorter than twice the sampling interval, then the Sampling_no is 2 for
Block1, and 4 for Block2. In general, the measurement time depends on the
measurement value and the A/D converter settings.
For the C-t sampling, Data consists of the following data:
Para1 Para2
Para1 and Para2 are R (Ω) and X (Ω), or G (S) and B (S) respectively. They will be
automatically selected by the B1500, and will be a couple without data overflow.

TDI, TDV, TSQ, Available for the 8 bytes binary data format (FMT13 or FMT14).
TACV, TDCV
command Time <terminator>
Time is the time from timer reset to the start of output.

1-40 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

4 Bytes Data Elements


To use the 4 bytes binary data format, enter the FMT3 or FMT4 command.
The data (Data, Source_data, Sampling_no, Data_search, Data_sense, Osc_level,
and Dc_bias) will be sent as the binary value shown in Figure 1-2.

Figure 1-2 4 Bytes Binary Data Output Format

Byte 1 Byte 2 Byte 3 Byte 4


7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
A B C D E F

A: Type. One bit.


B: Parameter. One bit.
C: Range. Five bits. Range value used to calculate the data.
D: Data count. 17 bits.
E: Status. Three bits.
F: Channel number. Five bits.
These data elements are described in the following pages.

Agilent B1500 Programming Guide, Edition 4 1-41


Programming Basics
Data Output Format

A Type. One bit.

A Explanation

0 Data other than measurement data.


1 Measurement data.

B Parameter. One bit.

B for SMU data for CMU data

0 Voltage Resistance or reactance


1 Current or Capacitance Conductance or susceptance

C Range. Five bits. Range value used to calculate the data.

for SMU data for CMU data


C C
V I C Z AC DC F

01000 (8) 0.5 V 1 pA 1 pF 00000 (0) 1Ω


01001 (9) 5V 10 pA 10 pF 00001 (1) 10 Ω
01010 (10) 100 pA 100 pF 00010 (2) 100 Ω
01011 (11) 2V 1 nA 1 nF 00011 (3) 1 kΩ 8V 1 kHz
01100 (12) 20 V 10 nA 10 nF 00100 (4) 10 kΩ 16 mV 12 V 10 kHz
01101 (13) 40 V 100 nA 100 nF 00101 (5) 100 kΩ 32 mV 25 V 100 kHz
01110 (14) 100 V 1 μA 1 μF 00110 (6) 1 MΩ 64 mV 1 MHz
01111 (15) 200 V 10 μA 10 μF 00111 (7) 10 MΩ 125 mV 100 V
10000 (16) 100 μA 100 μF 01000 (8) 100 MΩ 250 mV
10001 (17) 1 mA 1 mF 01001 (9) 1 GΩ
10010 (18) 10 mA 10 mF 01010 (10) 10 GΩ
10011 (19) 100 mA 100 mF 01011 (11) 100 GΩ
10100 (20) 1A 1F
11111 (31) Invalid data is returned.

1-42 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

D (SMU data) Data count. This value is expressed in 17-bit binary data. The measurement data and
the source data can be calculated by the following formula.
Measurement data = Count × Range / 50000
Source data = Count × Range / 20000
where, Count is the D value, and Range is the measurement range or output range
given by C.
For the decimal value of C, the Range value of current and capacitance data will be
10^(C-20).
If the top bit of D is 0, Count is positive and equal to the value given by the
following 16 bits.
If the top bit of D is 1, Count is negative. Calculate Count by subtracting 65536
(10000000000000000 in binary) from the value given by the following 16 bits.
Example:
If the output binary data is:
11010110000100111000100000000001
then,
Type: Measurement data (A=1)
Parameter: Current (B=1)
Range: 1 nA=10^(11-20) A (C=01011 in binary, C=11 in decimal)
Count: 5000 (D=00001001110001000)
Status: Normal condition (E=000)
Channel: SMU1 (channel number 1) (F=00001)
Measurement data = 5000 × 1E–9 / 5E+4 = 100 pA

NOTE B=1 and C=10100 means that HPSMU used 1 A range or MPSMU used 200 mA
range. Then use Range=1 to calculate the data for both HPSMU and MPSMU.
Range=0.2 is not available even if the range value is 200 mA.

Agilent B1500 Programming Guide, Edition 4 1-43


Programming Basics
Data Output Format

D (CMU data) Data count. This value is expressed in 17-bit binary data. The measurement data and
the output data can be calculated by the following formula.
Resistance or reactance = Count × Range / 212
Conductance or susceptance = Count / (212 × Range)
OSC level monitor value = Count × Range / 50000
DC bias monitor value = Count × Range / 50000
DC bias output value = Count / 500
Output signal frequency = Count × Range / 50000
where, Count is the D value, and Range is the measurement range or output range
given by C.
For the decimal value of C, the Range value of resistance, reactance, conductance,
and susceptance data will be 10^C Ω.
If the top bit of D is 0, Count is positive and equal to the value given by the
following 16 bits.
If the top bit of D is 1, Count is negative. Calculate Count by subtracting 65536
(10000000000000000 in binary) from the value given by the following 16 bits.
Example:
If the output binary data is:
10001000000011111010000000001000
then,
Type: Measurement data (A=1)
Parameter: Resistance (or reactance) (B=0)
Range: 10 kΩ =10^4 (C=00100 in binary, C=4 in decimal)
Count: 4000 (D=00000111110100000)
Status: Normal condition (E=000)
Channel: 8 (F=01000)
Measurement data = 4000 × 10000 / 212 = 9.76 kΩ

1-44 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

E Status. Three bits.

• Status for Source_data:


Priority of appearance is 001<010.

E Explanation

001 Data is for the first or intermediate sweep step.

010 Data is for the last sweep step.

• Status for measurement data. See Table 1-13 on page 1-46.


For SMU, the priority of appearance is as follows:

• For the quasi-pulsed spot measurement: 0<1<2<3<4<6 or 7


• For other measurement: 0<6<7<1<2<3<4

F Channel number of the measurement/source channel. Five bits. See Table 1-14 on
page 1-47.

Agilent B1500 Programming Guide, Edition 4 1-45


Programming Basics
Data Output Format

Table 1-13 Status for Measurement Data

E Explanation

000 (0) No status error occurred.


001 (1) For SMU: Another channel reached its compliance setting.

For CMU: CMU is in the NULL loop unbalance condition.

010 (2) For SMU: This channel reached its compliance setting.

For CMU: CMU is in the IV amplifier saturation condition.

011 (3) Measurement data is over the measurement range. Or the sweep measurement
was aborted by the automatic stop function or power compliance. Meaningless
value will be returned to D.

100 (4) For SMU: One or more channels are oscillating. Or source output did not settle
before measurement.a

110 (6) For linear or binary search measurement, the target value was not found within
the search range. Returns the source output value.

For quasi-pulsed spot measurement, the detection time was over the limit (3 s for
Short mode, 12 s for Long mode).b
111 (7) For linear or binary search measurement, the search measurement was stopped.
Returns the source output value. See status of Data_sense.

For quasi-pulsed spot measurement, output slew rate was too slow to perform the
settling detection.c Or quasi-pulsed source channel reached the current
compliance before the source output voltage changed 10 V from the start
voltage.d

a. Make the wait time or delay time longer. Or make the current compliance larger. For
pulsed measurement, make the pulse width longer, or make the pulse base value closer
to the pulse peak value. For current output by limited auto ranging, make the output
range lower.
b. Make the current compliance or start voltage larger. Or set the detection interval to
Long. If this status occurs with the Long mode, perform the spot measurement.
c. Make the current compliance larger. Or set the detection interval to Long. If this status
occurs with the Long mode, perform the spot measurement or pulsed spot measurement.
d. Perform the pulsed spot measurement or spot measurement.

1-46 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

Table 1-14 Channel Number

F Explanationa

00001 (1) Subchannel 1 of the module installed in the slot 1


00010 (2) Subchannel 1 of the module installed in the slot 2
00011 (3) Subchannel 1 of the module installed in the slot 3
00100 (4) Subchannel 1 of the module installed in the slot 4
00101 (5) Subchannel 1 of the module installed in the slot 5
00110 (6) Subchannel 1 of the module installed in the slot 6
00111 (7) Subchannel 1 of the module installed in the slot 7
01000 (8) Subchannel 1 of the module installed in the slot 8
01001 (9) Subchannel 1 of the module installed in the slot 9
01010 (10) Subchannel 1 of the module installed in the slot 10
01011 (11) Subchannel 2 of the module installed in the slot 1
01100 (12) Subchannel 2 of the module installed in the slot 2
01101 (13) Subchannel 2 of the module installed in the slot 3
01110 (14) Subchannel 2 of the module installed in the slot 4
01111 (15) Subchannel 2 of the module installed in the slot 5
10000 (16) Subchannel 2 of the module installed in the slot 6
10001 (17) Subchannel 2 of the module installed in the slot 7
10010 (18) Subchannel 2 of the module installed in the slot 8
10011 (19) Subchannel 2 of the module installed in the slot 9
10100 (20) Subchannel 2 of the module installed in the slot 10
11010 (26) Status code for extraneous data in the channel. TSQ command
response or invalid data is returned.
11111 (31) Invalid data is returned.

a. SMU and CMU do not have the subchannel 2.

Agilent B1500 Programming Guide, Edition 4 1-47


Programming Basics
Data Output Format

8 Bytes Data Elements


To use the 8 bytes binary data format, enter the FMT13 or FMT14 command.
The data (Data, Source_data, Sampling_no, Data_search, Data_sense, Osc_level,
and Dc_bias) will be sent as the binary value shown in Figure 1-3. The format of the
time data (Time) will be different from the others.

Figure 1-3 8 Bytes Binary Data Output Format

For measurement data and source data:


Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
A B C D E G F

For time data:


Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
A B H F

A: Type. One bit.


B: Parameter. Seven bits.
C: Range. One byte. Range value used to calculate the data.
D: Data count. Four bytes.
E: Status. One byte.
F: Channel number. Five bits.
G: A/D converter. Three bits.
H: Time data count. Six bytes.
These data elements are described in the following pages.

1-48 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

A Type. One bit.

A Explanation
0 Data other than measurement data.
1 Measurement data.

B Parameter. Seven bits.

B Explanation
0000000 (0) SMU voltage measurement or output data (V)
0000001 (1) SMU current measurement or output data (A)
0000010 (2) SMU QSCV capacitance measurement data (F)
0000011 (3) Time data (second)
0000110 (6) Sampling index
0000111 (7) CMU output signal frequency data (Hz)
0001000 (8) CMU oscillator level output data (Vac)
0001001 (9) CMU DC bias output data (Vdc)
0001010 (10) CMU oscillator level monitor data (Vac)
0001011 (11) CMU DC bias monitor data (Vdc)
0001100 (12) CMU resistance measurement data (Ω)
0001101 (13) CMU reactance measurement data (Ω)
0001110 (14) CMU conductance measurement data (S)
0001111 (15) CMU susceptance measurement data (S)
0010000 (16) SMU QSCV leakage current averaging value (A), in transition
0010001 (17) SMU QSCV voltage V0 (V), before voltage transition
0010010 (18) SMU QSCV voltage V (V), after voltage transition
0010011 (19) SMU QSCV leakage current IL0 (A), before voltage transition
0010100 (20) SMU QSCV leakage current IL (A), after voltage transition
0010101 (21) SMU QSCV charge current I (A), in transition
0010110 (22) SMU QSCV voltage averaging value (V), in transition
0010111 (23) SMU QSCV sink SMU current setup value (A)

Agilent B1500 Programming Guide, Edition 4 1-49


Programming Basics
Data Output Format

C Range. One byte. Range value used to calculate the data.

for SMU data for CMU data


C
V I C Z AC DC F

00000000 (0) 1Ω

00000001 (1) 10 Ω

00000010 (2) 100 Ω

00000011 (3) 1 kΩ 8V 1 kHz


00000100 (4) 10 kΩ 16 mV 12 V 10 kHz

00000101 (5) 100 kΩ 32 mV 25 V 100 kHz

00000110 (6) 1 MΩ 64 mV 1 MHz

00000111 (7) 10 MΩ 125 mV 100 V

00001000 (8) 0.5 V 1 pA 1 pF 100 MΩ 250 mV

00001001 (9) 5V 10 pA 10 pF 1 GΩ

00001010 (10) 100 pA 100 pF 10 GΩ

00001011 (11) 2V 1 nA 1 nF 100 GΩ

00001100 (12) 20 V 10 nA 10 nF

00001101 (13) 40 V 100 nA 100 nF

00001110 (14) 100 V 1 μA 1 μF

00001111 (15) 200 V 10 μA 10 μF

00010000 (16) 100 μA 100 μF

00010001 (17) 1 mA 1 mF

00010010 (18) 10 mA 10 mF
00010011 (19) 100 mA 100 mF

00010100 (20) 1A 1F

00011111 (31) Invalid data is returned.

1-50 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

D Data count. This value is expressed in 4 bytes binary data. The measurement data
and the output data can be calculated by the following formula.
Resistance or reactance = Count × Range / 224
Conductance or susceptance = Count / (224 × Range)
DC bias output value = Count / 1000
Data other than the above parameters = Count × Range / 1000000
where, Count is the D value, and Range is the measurement range or output range
given by C.
For the decimal value of C, the Range value of current and capacitance data will be
10^(C-20), and the Range value of resistance, reactance, conductance, and
susceptance data will be 10^C Ω.
If the top bit of D is 0, Count is positive and equal to the value given by the
following 31 bits.
If the top bit of D is 1, Count is negative. Calculate Count by subtracting
2147483648 (10000000000000000000000000000000 in binary) from the value
given by the following 31 bits.
Example:
If the output binary data is:
1000000100001011000000000000000110000110101000000000000000000001
then,
Type: Measurement data (A=1)
Parameter: Current (B=0000001)
Range: 1 nA=10^(11-20) A (C=01011 in binary, C=11 in decimal)
Count: 100000 (D=00000000000000011000011010100000)
Status: Normal condition (E=00000000)
ADC: High speed ADC (G=000)
Channel: SMU1 (channel number 1) (F=00001)
Measurement data = 100000 × 1E–9/1E+6 = 100 pA

NOTE B=0000001 and C=00010100 means that HPSMU used 1 A range or MPSMU used
200 mA range. Then use Range=1 to calculate the data for both HPSMU and
MPSMU. Range=0.2 is not available even if the range value is 200 mA.

Agilent B1500 Programming Guide, Edition 4 1-51


Programming Basics
Data Output Format

E Status. One byte. Meaningless for the Time data.

• Status for Source_data:


Priority of appearance is 001<010.

E Explanation

00000001 Data is for the first or intermediate sweep step.

00000010 Data is for the last sweep step.

• Status for measurement data. See Table 1-15.


For SMU, the priority of appearance is as follows:

• For the quasi-pulsed spot measurement: 0<1<2<4<8<16 or 32


• For other measurement: 0<16<32<1<2<4<8

F Channel number of the measurement/source channel. Five bits. See Table 1-14 on
page 1-47.

G A/D converter. Three bits. For the source data and time data, G=000.

G Explanation

000 (0) SMU High Speed ADC

001 (1) SMU High Resolution ADC

010 (2) CMU ADC

1-52 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Data Output Format

H Data count for the time data. This value is expressed in 6 bytes binary data. The time
data can be calculated by the following formula.
Time = Count / 1000000
where, Count is the decimal value of H.
If the top bit of H is 0, Count is positive and equal to the value given by the
following 47 bits.
If the top bit of H is 1, Count is negative. Calculate Count by subtracting
140737488355328 (100000000000000000000000000000000000000000000000 in
binary) from the value given by the following 47 bits.
H=100000000000000000000000000000000000000000000000 means invalid data.
Example:
If the output binary data is:
0000001100000000000000000000000000000001100001101010000000000001
then,
Type: Data other than the measurement data (A=0)
Parameter: Time (B=0000011)
Count: 100000 (H=
000000000000000000000000000000011000011010100000)
Channel: SMU1 (channel number 1) (F=00001)
Time data = 100000 / 1000000 = 0.1 second

Agilent B1500 Programming Guide, Edition 4 1-53


Programming Basics
Data Output Format

Table 1-15 Status for Measurement Data

E Explanation

00000000 (0) No status error occurred.


00000001 (1) Measurement data is over the measurement range. Or the sweep measurement
was aborted by the automatic stop function or power compliance. Meaningless
value will be returned to D.

00000010 (2) For SMU: One or more channels are oscillating. Or source output did not settle
before measurement.a

For CMU: CMU is in the NULL loop unbalance condition.

00000100 (4) For SMU: Another channel reached its compliance setting.
For CMU: CMU is in the IV amplifier saturation condition.

00001000 (8) For SMU: This channel reached its compliance setting.

00010000 (16) For linear or binary search measurement, the target value was not found within
the search range. Returns the source output value.

For quasi-pulsed spot measurement, the detection time was over the limit (3 s for
Short mode, 12 s for Long mode).b
00100000 (32) For linear or binary search measurement, the search measurement was stopped.
Returns the source output value. See status of Data_sense.

For quasi-pulsed spot measurement, output slew rate was too slow to perform the
settling detection.c Or quasi-pulsed source channel reached the current
compliance before the source output voltage changed 10 V from the start
voltage.d

a. Make the wait time or delay time longer. Or make the current compliance larger. For
pulsed measurement, make the pulse width longer, or make the pulse base value closer to
the pulse peak value. For current output by limited auto ranging, make the output range
lower.
b. Make the current compliance or start voltage larger. Or set the detection interval to Long.
If this status occurs with the Long mode, perform the spot measurement.
c. Make the current compliance larger. Or set the detection interval to Long. If this status
occurs with the Long mode, perform the spot measurement or pulsed spot measurement.
d. Perform the pulsed spot measurement or spot measurement.

1-54 Agilent B1500 Programming Guide, Edition 4


Programming Basics
GPIB Interface Capability

GPIB Interface Capability


The following table lists the GPIB capabilities and functions of the Agilent B1500.
These functions provide the means for an instrument to receive, process, and
transmit, commands, data, and status over the GPIB bus.

Interface Function Code Description


Source Handshake SH1 Complete capability
Acceptor Handshake AH1 Complete capability
Talker T6 Basic Talker: YES
Serial Poll: YES
Talk Only Mode: NO
Unaddress if MLA (my listen address): YES
Listener L4 Basic Listener: YES
Unaddress if MTA (my talk address): YES
Listen Only Mode: NO
Service Request SR1 Complete capability
Remote/Local RL1 Complete capability (with local lockout)
Parallel Poll PP0 No capability
Device Clear DC1 Complete capability
Device Trigger DT1 Complete capability
Controller Function C0 No capability
Driver Electronics E1 Open Collector

The B1500 responds to the following HP BASIC statements:

• ABORT (IFC)
• CLEAR (DCL or SDC. same as AB command)
• LOCAL (GTL)
• LOCAL LOCKOUT (LL0)
• REMOTE
• SPOLL (Serial Poll)
• TRIGGER (GET. same as XE command)

Agilent B1500 Programming Guide, Edition 4 1-55


Programming Basics
Status Byte

Status Byte
Status byte bits are turned off or on (0 or 1) to represent the instrument operation
status. When you execute a serial poll, an external computer (controller) reads the
contents of the status byte, and responds accordingly. When an unmasked status bit
is set to “1”, the instrument sends an SRQ to the controller, causing the controller to
perform an interrupt service routine.

Decimal
Bit Description
Value

0 1 Data ready
Indicates whether the output buffer is empty. If an unread
data or query response exists, this bit is set to “1”. It is set
to “0” when all the stored data has been transferred to the
controller, or when the B1500 receives a *RST, BC, FMT,
or device clear command.

1 2 Wait
Indicates whether the instrument is in the wait status. This
bit is set to “1” when the B1500 has been set to the wait
state by the PA, WS, PAX, or WSX command. It is set to
“0” when the waiting condition is complete, or when the
B1500 receives a *RST or device clear command.
2 4 Not applicable. This bit is always set to “0”.

3 8 Interlock open
If the interlock circuit is open, and a voltage output or
voltage compliance setup value exceeds ±42 V, this bit is
set to “1” . It is set to “0” when the B1500 receives a serial
poll, *RST, or device clear command.

4 16 Set ready
If the B1500 receives a GPIB command or a trigger signal,
this bit is set to “0”. It is set to “1” when its operation is
completed. This bit is also set to “0” when the self-test or
calibration is started by front panel operation, and set to
“1” when it is completed.

1-56 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Status Byte

Decimal
Bit Description
Value

5 32 Error
Indicates whether any error has occurred. If an error
occurred, this bit is set to “1”. It is set to “0” when the
B1500 receives a serial poll, *RST, ERR?, ERRX?, CA,
*TST?, *CAL?, DIAG? or device clear command.
6 64 RQS (You cannot mask this bit.)
Indicates whether an SRQ (Service Request) has occurred.
This bit is set to “1” whenever any other unmasked bit is
set to “1”. This causes the B1500 to send an SRQ to the
controller. It is set to “0” when the B1500 receives a serial
poll, *RST, or device clear command.

7 128 Not applicable. This bit is always set to “0”.

The status byte register can be read with either a serial poll or the *STB? query
command. Serial poll is a low-level GPIB command that can be executed by the
SPOLL command in HP BASIC, for example Status=SPOLL(@B1500).
In general, use serial polling (not *STB?) inside interrupt service routines. Use
*STB? in other cases (not in interrupt service routine) when you want to know the
value of the Status Byte.

NOTE If Bit 3 and Bit 5 are masked, they are not set to “0” by a serial poll. Also, if these
bits are masked, set to “1”, and then unmasked, a serial poll does not set them to “0”.
After a masked bit is set to “1”, removing the mask does not set Bit 6 to “1”. That is,
the B1500 does not send an SRQ to the controller. Therefore, if you remove a mask
from a bit, it is usually best to do it at the beginning of the program.

Agilent B1500 Programming Guide, Edition 4 1-57


Programming Basics
Programming Tips

Programming Tips
This section provides the following additional information on creating measurement
programs. It is useful for checking the operation status, improving the measurement
speed, and so on.
• “To Confirm the Operation”
• “To Confirm the Command Completion”
• “To Disable the Auto Calibration”
• “To Optimize the Measurement Range”
• “To Optimize the Integration Time”
• “To Disable the ADC Zero Function”
• “To Optimize the Source/Measurement Wait Time”
• “To Use the Internal Program Memory”
• “To Get Time Data with the Best Resolution”
• “To Use Sweep Source as a Constant Source”
• “To Start Measurements Simultaneously”
• “To Interrupt Command Execution”
• “To Use Programs for Agilent 4142B”
• “To Use Programs for Agilent 4155/4156”
• “To Use Programs for Agilent E5260/E5270”

1-58 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Programming Tips

To Confirm the Operation


To complete the measurement program, you can insert statements to check the
B1500 operation status as shown below. This example starts the measurement,
checks the status caused by the statements before the ERRX? command, reads and
displays the measurement data without errors, or displays an error message when an
error occurs.
OUTPUT @B1500;"XE"
OUTPUT @B1500;"ERRX?"
ENTER @B1500;Code,Msg$
IF Code=0 THEN
ENTER @B1500 USING "#,3X,12D,X";Mdata
PRINT "I(A)=";Mdata
ELSE
PRINT "ERROR: ";Msg$
END IF

To Confirm the Command Completion


To check the completion of the previous command execution, use the *OPC? query
command. Entering the *OPC command before sending a command to other
equipment serves to delay its operation until the B1500 has completed its operation.
The *OPC? command is useful to control equipments sequentially.
For example, the following program segment waits until the B1500 completes the
DI command execution, and sends the XYZ command to equipment identified by
@Address.
OUTPUT @B1500;"DI";1,0,1.0E-10,1
OUTPUT @B1500;"*OPC?"
ENTER @B1500; A$
OUTPUT @Address;"XYZ"

To Disable the Auto Calibration


The auto calibration function triggers self-calibration automatically every 30
minutes after measurement. When the function is enabled, open the measurement
terminals frequently because calibration requires open terminals.
If you execute automatic measurements as a batch job that might leave the device
connected for over 30 minutes after the measurements, disable auto calibration.
Otherwise, the calibration might not be performed properly, or unexpected output
might appear at the measurement terminals, and it could even damage the device. To
disable auto calibration, send the CM 0 command.

Agilent B1500 Programming Guide, Edition 4 1-59


Programming Basics
Programming Tips

To Optimize the Measurement Range


The most effective way to improve measurement speed is to reduce the number of
range changes. The limited auto ranging mode is more effective than the auto
ranging mode. The fixed range mode is the most effective.
Check the typical value of the measurement data, select the optimum range, and
perform measurement using the fixed range mode.

To Optimize the Integration Time


For best reliability and repeatability of the measurement data, the integration time or
the number of averaging samples of the A/D converter must be increased. This
increases the measurement time.
A long integration time and numerous samples are required for low current/ voltage
measurements. However, the values can be decreased for medium or high
current/voltage measurements. Enter the following commands:
AV Sets the number of averaging samples of the A/D converter. This
command is compatible with the AV command of the Agilent 4142B.
AAD Selects the type of the A/D converter (high-speed ADC or
high-resolution ADC).
AIT Sets the integration time of the high-resolution ADC or the number of
averaging samples of the high-speed ADC. The AIT command covers
the function of the AV command. The last command setting is available
for the measurement.
For more information regarding these commands, see Chapter 4, “Command
Reference.”

To Disable the ADC Zero Function


This information is effective only when the high resolution A/D converter is used
for the measurement. If measurement speed is given top priority or is more
important than reliability, disable the ADC zero function by sending the AZ 0
command. This roughly halves integration time.

NOTE The ADC zero function is the function to cancel offset of the high resolution ADC.
This function is especially effective for low voltage measurements.

1-60 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Programming Tips

To Optimize the Source/Measurement Wait Time


If measurement speed is given top priority or is more important than reliability, set
the wait time shorter by using the WAT command. The source wait time is the time
the source channel always waits before changing the source output value. The
measurement wait time is the time the measurement channel always waits before
starting measurement. The time is given by the following formula:
wait time = initial wait time × A+B
where, initial wait time is the time the B1500 automatically sets and you cannot
change. The initial source wait time is not the same as the initial measurement wait
time. A and B are the command parameters of the WAT command.
The wait time settings are effective for all modules.

Figure 1-4 Source/Measurement Wait Time


Measurement wait time

Source wait time

Delay time
: Measurement
Hold time Step delay time
Time

NOTE The wait time can be ignored if it is shorter than the delay time.
It is not easy to determine the best wait time. If you specify it too short, the
measurement may start before device characteristics stable. If too long, time will be
wasted.
The initial wait time may be too short for measurements of high capacitance or slow
response devices. Then set the wait time longer.
For measurements of low capacitance or fast response devices, if measurement
speed has top priority or is more important than reliability and accuracy, set the wait
time shorter.

Agilent B1500 Programming Guide, Edition 4 1-61


Programming Basics
Programming Tips

To Use the Internal Program Memory


If your program repeats the setup and measurement for a number of devices, use the
internal program memory. For these measurements, using the internal program
memory reduces the command transfer time, and improves the program execution
speed.
You can enter a maximum of 2,000 programs (total 40,000 commands) into the
internal program memory. See Chapter 2, “Remote Mode Functions.”

To Get Time Data with the Best Resolution


To read the time data with the best resolution (100 μs), the timer must be cleared
within the following interval:

• 100 sec or less (for FMT1, 2, or 5 data output format)


• 1000 sec or less (for FMT 11, 12, 15, 21, 22, or 25 data output format)
Send the TSR command to clear the timer.

To Use Sweep Source as a Constant Source


The following setup enables sweep source to force a constant current or voltage.

• Sweep start value = Sweep stop value (for WI, WV, or WNX).
Also, setting number of sweep steps to 1 enables to perform a spot measurement.

To Start Measurements Simultaneously


Spot measurement, staircase sweep measurement, and multi channel sweep
measurement enable to use multiple measurement channels. Then the measurement
channels perform measurement in the order defined in the MM command. However,
the measurement channels with the following setup start measurements
simultaneously.

• To set the multi channel sweep measurement mode (MM 16).


• To set the measurement ranging mode to fixed (for RI or RV).
• To use the high-speed ADC (use AV).

NOTE Measurement setup is independent from source output setup. So, this simultaneous
measurement cannot be broken by the source output setup. Any setting of the output
ranging mode is effective for the simultaneous measurement.

1-62 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Programming Tips

To Perform Quasi-Sampling Measurement


The following setup enables to perform a quasi-sampling measurement. Then the
sampling interval will be sum of delay time and step delay time.
• Sets the sweep measurement mode (MM 2 or MM 16).
• Sweep start value = Sweep stop value (for WI, WV, or WNX).
• Sets hold time, delay time, and step delay time (WT).
Delay Step delay
Voltage or current

Hold

Start value, Stop value

Previous value Sampling interval = Delay + Step delay

Measurement trigger (e.g. XE) : Measurement

To Interrupt Command Execution


The B1500 executes commands in the received order. However, only the following
commands can interrupt the command execution.
Table 1-16 Interrupt Commands

Command Description

AV Changes the number of averaging samples during the


measurement.

AIT Changes the A/D converter setting of the SMU during the
measurement.
ACT Changes the A/D converter setting of the MFCMU during the
measurement.

AB Aborts the command execution.

*RST Resets the B1500 during the command execution.

XE If the B1500 has been set to the wait status by the PA or PAX
command, the XE command can be used to release the wait
status. For details, see Chapter 4, “Command Reference.”

Agilent B1500 Programming Guide, Edition 4 1-63


Programming Basics
Programming Tips

To Use Programs for Agilent 4142B


Agilent B1500 supports most of the commands and the data output format supported
by the Agilent 4142B Modular DC Source/Monitor. To reuse the programs created
for the Agilent 4142B, confirm the following and modify the programs if necessary.
• To remove all unsupported commands
Some commands are not supported owing to differences in the modules
supported by each instrument. See Table 1-17 that shows the commands not
supported by the B1500. Do not use these commands.
Perform the linear search or binary search measurement as a substitute for the
analog search measurement that needs the analog feedback unit (AFU).
Use a source/monitor unit (SMU) instead of the voltage source/voltage monitor
unit (VS/VMU). Note that the SMU cannot perform the differential voltage
measurements.
• FL command
The initial setting of the FL command is different. It is ON for the Agilent
4142B, and OFF for the B1500.
Add the FL1 command to use the filter.
• AV command
This command is used to set the A/D converter of the B1500.
To set the high resolution ADC installed in the B1500, use the AAD and AIT
commands.
• *TST? command
Use 11 to specify the B1500 mainframe instead of 9 that indicates the 4142B
mainframe.
Table 1-17 Modules and Commands Unsupported

Plug-in Module Commands

Analog Feedback Unit ASM, AT, ASV, AIV, AVI

High Current Unit PDM, PDI, PDV

High Voltage Unit POL

Voltage Source/Voltage Monitor Unit VM

1-64 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Programming Tips

To Use Programs for Agilent 4155/4156


Agilent B1500 supports commands similar to the FLEX command of the Agilent
4155B/4156B/4155C/4156C Parameter Analyzer. However, not all command sets
are fully compatible. To reuse the programs created for the Agilent 4155/4156, the
following modifications are required.

• To remove all unsupported commands


Table 1-18 shows the commands not supported by the B1500. You cannot use
these commands. The SCPI commands and 4145 syntax commands are not
supported neither.
The B1500 does not need the US and :PAGE commands that are necessary to
change the control mode of the Agilent 4155/4156.
• To check and correct the command syntax
Even if the command name is the same, the available parameters and values may
be different. Check and correct the command parameters.
• To change the FMT command parameter
Use the FMT 21, FMT 22, or FMT 25 command that sets the data output format
compatible with the 4155/4156 ASCII format.
• To delete RMD?
The B1500 does not need the RMD? command that is necessary to put the
measurement data into the output data buffer of the Agilent 4155/4156.
• FL command
The initial setting of the FL command is different. It is ON for the Agilent
4155/4156, and OFF for the B1500.
Add the FL1 command to use the filter.
• AV command
This command is used to set the A/D converter of the B1500.
To set the high resolution ADC installed in the B1500, use the AAD and AIT
commands.
• To replace TI?/TV?/TTI?/TTV? with TI/TV/TTI/TTV respectively
• To replace WM with LSM for the linear search measurement
• To replace TSQ? with TSQ

Agilent B1500 Programming Guide, Edition 4 1-65


Programming Basics
Programming Tips

• If you reuse the built-in IBASIC programs:

• Change the GPIB address.


• Remove the statements to use the built-in flexible disk drive.
Table 1-18 4155/4156 FLEX Commands Unsupported

Category Command

Control mode :PAGE, US, US42

Measurement mode VM, VMD

Staircase/pulsed sweep source setup ESC

Sampling source setup MP

Quasi-static CV measurement setup QSZ?

PGU control POR, SPG

Stress source setup STC, STI, STM, STP, STT, STV


Integration time SIT, SLI

Measurement execution TI?, TTI?, TTV?, TV?

Time stamp TSQ?


Output data RMD?

Abort/pause/wait *WAI

Zero offset cancel GOC, SOC

SMU/PGU selector SSP

R-box RBC

External trigger STG


Network operation CLOSE, OPEN, PRN, RD?, SDSK, SPL,
SPR, WR

Status byte *CLS, *ESE(?), *ESR?

Query CMD?, *OPT?, :SYST:ERR?

1-66 Agilent B1500 Programming Guide, Edition 4


Programming Basics
Programming Tips

To Use Programs for Agilent E5260/E5270


Agilent B1500 supports most of the commands and the data output format supported
by the Agilent E5260/E5270 Series of Parametric Measurement Solutions. To reuse
the programs created for the Agilent E5260/E5270, confirm the following and
modify the programs if necessary.

• To remove all unsupported commands


Some commands are not supported owing to differences in the mainframe. See
Table 1-19 that shows the commands not supported by the B1500. The
commands will not cause errors because the B1500 will ignore these commands.
However remove these commands to reduce the load.
• *CAL?, RCV, *TST? command
Use 11 to specify the B1500 mainframe instead of 9 that indicates the
E5260/E5270 mainframe.
• DIAG? command
The B1500 does not support the front panel key test and the beeper test. So, do
not use the parameter item=2 and 5.
Table 1-19 E5260/E5270 FLEX Commands Unsupported

Category Command

Display Control RED, DFM, SPA, MPA, SCH, MCH

Keyboard Control KLC

Agilent B1500 Programming Guide, Edition 4 1-67


Programming Basics
Programming Tips

1-68 Agilent B1500 Programming Guide, Edition 4


2 Remote Mode Functions
Remote Mode Functions

This chapter describes the functions of the Agilent B1500 in the remote mode, and
the initial settings.

• “Measurement Modes”
• “Synchronous Output”
• “Automatic Abort Function”
• “Parallel Measurement Function”
• “Program Memory”
• “SPGU Module”
• “SMU/PG Selector”
• “Digital I/O Port”
• “Trigger Function”
• “Initial Settings”

NOTE Synchronous Output


You can use synchronous output that will be synchronized to the output of the
primary sweep or search source. The output is available for the following
measurement modes:

• “Staircase Sweep Measurements”


• “Pulsed Sweep Measurements”
• “Staircase Sweep with Pulsed Bias Measurements”
• “Binary Search Measurements”
• “Linear Search Measurements”
The synchronous source supports the output mode (voltage or current) same as the
primary source, and does not support the pulsed output.

2-2 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Measurement Modes
The Agilent B1500 provides the following measurement modes.
• “Spot Measurements”
• “Pulsed Spot Measurements”
• “Staircase Sweep Measurements”
• “Multi Channel Sweep Measurements”
• “Pulsed Sweep Measurements”
• “Staircase Sweep with Pulsed Bias Measurements”
• “Quasi-Pulsed Spot Measurements”
• “Binary Search Measurements”
• “Linear Search Measurements”
• “Sampling Measurement”
• “Quasi-static CV Measurement”
• “Spot C Measurement”
• “Pulsed Spot C Measurement”
• “CV (DC bias) Sweep Measurement”
• “Pulsed Sweep CV Measurement”
• “C-f Sweep Measurement”
• “CV (AC level) Sweep Measurement”
• “C-t Sampling Measurement”

NOTE About Search Measurements


The B1500 supports search measurement to find a point on an I-V curve where a
specified condition is satisfied. For example, it searches for a breakdown voltage or
threshold voltage at a specified current.
Search measurements are performed by one or two SMUs. For two SMUs, one is the
search channel, and the other is a sense channel. When one SMU is used, it serves as
both search and sense channel. Basically, the search channel forces voltage or
current until the search stop condition is satisfied.

Agilent B1500 Programming Guide, Edition 4 2-3


Remote Mode Functions
Measurement Modes

Spot Measurements
Spot measurement is performed as shown below. The measurement channel
performs one point measurement.

Figure 2-1 Spot Measurements


Voltage or current : Measurement

Channel 1 output
Setup value

Previous value Measurement time

Voltage or current

Channel 2 output
Setup value

Previous value

Time
DV/DI DV/DI Measurement trigger (e.g. XE)

1. The source channel starts output by the DV or DI command. Multiple channels


can be set.
2. The measurement channel starts measurement by a trigger, such as the XE
command. If the trigger is received during the settling time of the source
channels, measurement starts after the settling time.
If you use multiple measurement channels, the channels perform measurement
in the order defined in the MM command.
3. After measurement, the source channels continue the source output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

NOTE The DV command is used to force voltage, and the DI command is used to force
current.

2-4 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Pulsed Spot Measurements


Pulsed spot measurement is performed as shown below. The measurement channel
performs one point measurement while the source channel is forcing a pulse.

Figure 2-2 Pulsed Spot Measurements


Voltage or current

: Measurement
PT/PV/PI

Trigger (e.g. XE) Trigger

Pulse value

Previous value

Base value

Time
Hold time Pulse width Hold time

Pulse period Pulse period

1. The pulse source channel sets output by the PT command and the PV or PI
command. Only one channel can be used for the pulse source.
2. The pulse source channel starts output by a trigger, such as the XE command.
3. The measurement channel starts measurement as shown in Figure 2-2.
The channel performs measurement so that the pulse width and pulse period are
kept (the integration time setting is ignored). Only one channel can be used for
measurement.
4. After measurement, the pulse source forces the pulse base value, and keeps it.
If the next trigger occurs within the pulse period, pulse output is as follows.

• If the rest of the pulse period is longer than the hold time as shown in Figure
2-2, the pulse source waits for the rest, then starts the pulse output.
• If the rest of the pulse period is shorter than the hold time, the pulse source
waits for the hold time since the last trigger, then starts the pulse output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

NOTE The PT command sets the pulse timing parameters, such as pulse width and pulse
period. The PV command sets voltage pulse, and the PI command sets current pulse.

Agilent B1500 Programming Guide, Edition 4 2-5


Remote Mode Functions
Measurement Modes

Staircase Sweep Measurements


Staircase sweep measurement is performed as shown below. The source channel
forces staircase sweep voltage or current, and the measurement channel performs
one point measurement at each sweep step.

Figure 2-3 Staircase Sweep Measurements


Voltage or current Step delay time

Stop value : Measurement


WT/WM/WV/WI

Trigger (e.g. XE)


Step delay time

Previous value

Delay time
Start value

Hold time
Delay time
Time

1. The staircase sweep source sets output by the WT, WM, and WV or WI
commands. Only one channel can be used for the sweep source.
2. The sweep source starts output by a trigger, such as the XE command.
3. After the hold time, the sweep source waits for the delay time.
4. After the delay time, the measurement channel starts measurement.
If you use multiple measurement channels, the channels perform measurement
in the order defined in the MM command.
5. After measurement, the sweep source waits for the rest of the step delay time if
it is set, and the sweep source changes the output value.
6. The B1500 repeats 4 and 5 for all sweep steps.
7. After the sweep measurement, the sweep source forces the start or stop value, as
specified by the WM command, and keeps it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

2-6 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The WT command sets the hold time, delay time, and step delay time. The WM
command sets the automatic abort function and the output after measurement. The
WV command sets the sweep voltage, and the WI command sets the sweep current.
The start and stop values must have the same polarity for log sweep.

To Use One more channel can be set up as a sweep source that has the output synchronized
Synchronous with the staircase sweep. Refer to “Synchronous Output” on page 2-40. After the
Sweep Source measurement, the synchronous sweep source forces the start or stop value, as
specified by the WM command, and keeps it.

Figure 2-4 Synchronous Sweep


Voltage or current

Stop value

WT/WM/WV/WI

Trigger (e.g. XE)

Previous value
Primary sweep
Start value
Voltage or current
Stop value

WSV/WSI

Previous value
Synchronous sweep
Start value
Time

NOTE The WSV command sets the sweep voltage, and the WSI command sets the sweep
current. You can use the same output mode (voltage or current) as the primary
sweep. The start and stop values must have the same polarity for log sweep.

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.
Even if the automatic abort function is disabled, the B1500 automatically stops
measurement if power compliance is enabled for the sweep source and the power
compliance or an automatic abort condition is detected.

Agilent B1500 Programming Guide, Edition 4 2-7


Remote Mode Functions
Measurement Modes

Multi Channel Sweep Measurements


Multi channel sweep measurement is performed as shown below. The source
channel forces staircase sweep voltage or current, and the measurement channel
performs one point measurement at each sweep step. Up to ten channels can be used
for both sweep output and measurement. Both voltage output mode and current
output mode are available for the sweep sources regardless of the output mode of the
primary sweep source.

Figure 2-5 Multi Channel Sweep Measurements using High-Resolution A/D Converter
Step delay time
Voltage or current
WT/WM/WV/WI
Stop value : Measurement
Trigger (e.g. XE)
Step delay time

Previous value Primary sweep source


Delay time
Start value
Hold time
Voltage or current
Stop value Delay time
WNX

Previous value Second sweep source


Start value

Voltage or current
Stop value
WNX

Previous value Tenth sweep source


Start value
Time

1. The primary sweep source sets output by the WV or WI commands. And the nth
(n=2 to 10) sweep source sets output by the WNX command.
2. The sweep sources simultaneously start output by a trigger, such as the XE
command. However, if a sweep source sets power compliance or forces
logarithmic sweep current, the sweep sources start output in the order specified
by the n value. Then the first output is forced by the channel set by the WI or
WV command.
3. After the hold time, the sweep sources wait for the delay time.
4. After the delay time, the measurement channel starts measurement. If you use
multiple measurement channels, the channels that use the high speed ADC with
the fixed ranging mode start measurement simultaneously, then other channels
perform measurement in the order defined in the MM command.
5. After measurement, the sweep source waits for the rest of the step delay time if
it is set, and the sweep source changes the output value.

2-8 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

6. The B1500 repeats 4 and 5 for all sweep steps.


7. After the sweep measurement, the sweep sources force the start or stop value, as
specified by the WM command, and keep it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

NOTE The WT command sets the hold time, delay time, and step delay time. The WM
command sets the automatic abort function and the output after measurement. The
WV/WI command sets the output of the first sweep source, and the WNX command
sets the output of the nth (n=2 to 10) sweep source. The start and stop values must
have the same polarity for log sweep.

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.
Even if the automatic abort function is disabled, the B1500 automatically stops
measurement if power compliance is enabled for the sweep source and the power
compliance or an automatic abort condition is detected.

Agilent B1500 Programming Guide, Edition 4 2-9


Remote Mode Functions
Measurement Modes

Pulsed Sweep Measurements


Pulsed sweep measurement is performed as shown below. The source channel forces
pulsed sweep voltage or current, and the measurement channel performs one point
measurement at each sweep step.

Figure 2-6 Pulsed Sweep Measurements


Voltage or current

Stop value

PT/WM/PWV/PWI

Trigger (e.g. XE)

Pulse width

Start value Hold time


: Measurement
Previous value
Pulse base value
Pulse period Pulse period Pulse period
Time

1. The pulsed sweep source sets output by the PT, WM, and PWV or PWI
commands. Only one channel can be used for the pulsed sweep source.
2. The pulsed sweep source starts output by a trigger, such as the XE command.
3. After the hold time, the measurement channel starts measurement as shown in
Figure 2-6. The channel performs measurement so that the pulse width and pulse
period are kept (the integration time setting is ignored). Only one channel can be
used for measurement.
4. After measurement, the pulsed sweep source forces the pulse base value, and
waits for the rest of the pulse period. Then the pulsed sweep source changes the
output value.
5. The B1500 repeats measurement and 4 for all sweep steps.
6. After the pulsed sweep measurement, the pulsed sweep source forces the pulse
base value, and keeps it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

2-10 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The PT command sets the hold time, pulse width, and pulse period. The WM
command sets the automatic abort function. The PWV sets the pulsed sweep
voltage, and the PWI sets the pulsed sweep current.

To Use One more channel can be set up as a staircase sweep source that has the output
Synchronous synchronized with the pulsed sweep. Refer to “Synchronous Output” on page 2-40.
Sweep Source After the measurement, the synchronous sweep source forces the start value, and
keeps it.

Figure 2-7 Synchronous Sweep


Voltage or current
Stop value

PT/WM/PWV/PWI

Trigger (e.g. XE)

Start value
Previous value Pulsed sweep
Pulse base value

Voltage or current
Stop value

WSV/WSI

Previous value
Synchronous sweep
Start value
Time

NOTE The WSV command sets the sweep voltage, and the WSI command sets the sweep
current. You can use the same output mode (voltage or current) as the pulsed sweep.

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.
Even if the automatic abort function is disabled, the B1500 automatically stops
measurement if power compliance is enabled for the sweep source and the power
compliance or an automatic abort condition is detected.

Agilent B1500 Programming Guide, Edition 4 2-11


Remote Mode Functions
Measurement Modes

Staircase Sweep with Pulsed Bias Measurements


Staircase sweep with pulsed bias measurement is performed as shown below. The
source channel forces staircase sweep voltage or current, the pulse channel forces
pulsed bias, and the measurement channel performs one point measurement at each
sweep step.

Figure 2-8 Staircase Sweep with Pulsed Bias Measurements


Voltage or current

Stop value
WM/WV/WI

Trigger (e.g. XE)

Previous value
Staircase sweep
Start value

Voltage or current
Pulse width
: Measurement
PT/PV/PI
Pulse peak value

Previous value Pulsed bias


Pulse base value
Hold time Pulse period Time

1. The staircase sweep source sets output by the WM, and WV or WI commands.
Only one channel can be used for the sweep source.
2. The pulsed source sets output by the PT, and PV or PI commands. Only one
channel can be used for the pulsed source.
3. The source channels start output by a trigger, such as the XE command.
4. After the hold time, the measurement channel starts measurement as shown in
Figure 2-8. The channel performs measurement so that the pulse width and pulse
period are kept (the integration time setting is ignored). Only one channel can be
used for measurement.
5. After the measurement, the sweep source changes the output value. Then the
pulsed source forces the pulse base value, and waits for the rest of the pulse
period until the next pulse output.
6. The B1500 repeats measurement and 5 for all sweep steps.

2-12 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

7. After the sweep measurement, the pulsed source forces the pulse base value, and
the sweep source forces the start or stop value, as specified by the WM
command, and keeps it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

NOTE The WM command sets the automatic abort function and the output after
measurement. The WV command sets the sweep voltage, and the WI command sets
the sweep current. The start and stop values must have the same polarity for log
sweep.
The PT command sets the pulse timing parameters, such as pulse width and pulse
period. The PV command sets the voltage pulse, and the PI command sets current
pulse.

To Use One more channel can be set up as a sweep source that has the output synchronized
Synchronous with the staircase sweep. Refer to “Synchronous Output” on page 2-40.
Sweep Source
After the measurement, the synchronous sweep source forces the start or stop value,
as specified by the WM command, and keeps it.

Figure 2-9 Synchronous Sweep


Voltage or current

Stop value

WT/WM/WV/WI

Trigger (e.g. XE)

Previous value
Primary sweep
Start value

Voltage or current
Stop value

WSV/WSI

Previous value
Synchronous sweep
Start value
Time

Agilent B1500 Programming Guide, Edition 4 2-13


Remote Mode Functions
Measurement Modes

NOTE The WSV command sets the sweep voltage, and the WSI command sets the sweep
current. You can use the same output mode (voltage or current) as the primary
sweep. The start and stop values must have the same polarity for log sweep.

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.
Even if the automatic abort function is disabled, the B1500 automatically stops
measurement if power compliance is enabled for the sweep source and the power
compliance or an automatic abort condition is detected.

2-14 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Quasi-Pulsed Spot Measurements


Quasi-pulsed spot measurement is performed as shown below. The measurement
channel performs one point measurement while the source channel forces a
quasi-pulse voltage. This measurement mode can minimize the output time of the
measurement voltage. So it is effective for the breakdown voltage measurement and
the reliability test.

Figure 2-10 Quasi-Pulsed Spot Measurements


Voltage The X value is the voltage when the settling detection is stopped.

X value : Measurement
BDT/BDM/BDV

Delay
Trigger (e.g. XE) time

Previous value

Start value

Hold time Measurement time


Settling detection time
Time

1. The quasi-pulse source channel sets output by the BDT, BDM, and BDV
commands. Only one channel can be used for the quasi-pulse source.
2. The quasi-pulse source starts output by a trigger, such as the XE command.
3. After the hold time, the quasi-pulse source starts the voltage transition to the
stop value (settling detection time). Also, it performs voltage measurement
(settling detection) in the interval set by the BDM command. The voltage
transition and settling detection continue until the output voltage slew rate
becomes half of the rate when settling detection started. The slew rate depends
on the cabling and the characteristics of the device. You cannot define it directly.
In normal operation, the slew rate will be slower in the following conditions:
• When the quasi-pulse source applies voltage close to the stop value.
• When the quasi-pulse source reaches its current compliance due to the
breakdown condition of the device under test.

NOTE If the slew rate was too slow when settling detection started or if the settling
detection time was too long, an error occurs and the source returns its output to the
start value immediately. See “BDM” on page 4-34.

Agilent B1500 Programming Guide, Edition 4 2-15


Remote Mode Functions
Measurement Modes

4. After the settling detection stops, the quasi-pulse source keeps the output.
5. After the delay time, the measurement channel starts measurement.
Only one channel can be used for measurement.
6. After measurement, the quasi-pulse source immediately returns the output to the
start value and keeps it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

NOTE If there is noise or skew on the output voltage, settling detection might stop at an
unexpected voltage.

NOTE The BDT command sets the hold time and delay time, and the BDM command sets
the settling detection interval and measurement mode (voltage or current); the BDV
command sets the output. Also |start-stop| must be 10 V or more.

2-16 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Binary Search Measurements


Binary search measurement is performed as shown below. The source channel
forces voltage or current, and the measurement channel performs one point
measurement. The B1500 repeats this until the search stop condition is satisfied, and
returns the source’s last output value. The last measurement data is also returned if it
is set by the BSVM command.

Figure 2-11 Binary Search Measurements


Voltage or current
BSM, BST, and -D/2
Stop BSV or BSI
-D/8

-D/16 Search stopped

Delay time
(1) Normal output

Hold time +D/64


+D/4 +D/32
Trigger
Delay time
Start

Stop BSM, BST, and


BSV or BSI -D/8
Delay time
-D/16 Search stopped

Delay time
(2) Cautious output
Hold time +D/4
+D/32 +D/64
Trigger

+D/2 : Measurement
Start
D = | Stop - Start |
Time

1. The search source sets output by the BSM, BST, and BSV or BSI commands.
Only one channel can be used for the search source.
2. The search source starts output by a trigger, such as the XE command.
3. After the hold time, the measurement channel waits for the delay time, and starts
measurement as shown in Figure 2-11. The measurement channel can be set by
the BGI or BGV command. Only one channel can be used for measurement.
4. After measurement, the search source changes the output value. The output
value depends on the output control mode, normal or cautious, selected by the
BSM command. See Figure 2-11.

Agilent B1500 Programming Guide, Edition 4 2-17


Remote Mode Functions
Measurement Modes

5. The B1500 repeats measurement and 4 until the search stop condition is
satisfied. The search stop condition is one of the following conditions selected
by the BGI or BGV command.

• Measured value = Search target value ± limit


• Number of measurement points > limit
6. After the search measurement, the search source forces the start value, the stop
value, or the last output value, as specified by the BSM command, and keeps it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

NOTE The BSM command sets the search control mode, the automatic abort function, and
the output after search. The BST command sets the hold time and delay time. The
BSV/BSI command sets the search output, and the BGI/BGV command sets the
measurement channel.

To Use You can use the synchronous output channel that provides the output synchronized
Synchronous with the search source. Refer to “Synchronous Output” on page 2-40. After
Output Channel measurement, the synchronous channel forces the start+offset, stop+offset, or the
last output value, as specified by the BSM command, and keeps it.

Figure 2-12 Synchronous Output


Voltage or current
BSM, BST, and BSV/BSSV or BSI/BSSI

Trigger (e.g. XE)


Offset

Synchronous search source


Stop value

Offset Offset

Primary search source


Start value

Previous value Time

NOTE The BSSV/BSSI command sets the synchronous output. You can use the same
output mode (voltage or current) as the search source. All output values must be
covered by the output range of the search source.

2-18 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Linear Search Measurements


Linear search measurement is performed as shown below. The source channel
sweeps voltage or current, and the measurement channel performs one point
measurement at each sweep step. The B1500 stops sweep and measurement when
the search stop condition is satisfied, and returns the source’s last output value. The
last measurement data is also returned if it is set by the LSVM command.

Figure 2-13 Linear Search Measurements


Voltage or current
: Measurement
LSM, LSTM, and LSV or LSI
Stop value
Trigger (e.g. XE) Search stopped
Delay time

Delay time

Hold time

Previous value

Start value
Time

1. The search source sets output by the LSM, LSTM, and LSV or LSI commands.
Only one channel can be used for the search source.
2. The search source starts output by a trigger, such as the XE command.
3. After the hold time, the measurement channel waits for the delay time, and starts
measurement as shown in Figure 2-13. The measurement channel can be set by
the LGI or LGV command. Only one channel can be used for the measurement.
4. After measurement, the search source changes the output value.
5. The B1500 repeats measurement and 4 until the search stop condition is
satisfied. The search stop condition is one of the following conditions selected
by the LGV or LGI command.

• Measured value is over the search target value.


• Measured value breaks the search target value.
6. After the search measurement, the search source forces the start value, the stop
value, or the last output value, as specified by the LSM command, and keeps it.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

Agilent B1500 Programming Guide, Edition 4 2-19


Remote Mode Functions
Measurement Modes

NOTE The LSM command sets the automatic abort function and the output after search.
The LSTM command sets the hold time and delay time. The LSV/LSI command
sets the search output, and the LGI/LGV command sets the measurement channel.

To Use You can use the synchronous output channel that provides output synchronized with
Synchronous the search source. Refer to “Synchronous Output” on page 2-40.
Output Channel
After measurement, the synchronous channel forces the start+offset, stop+offset, or
the last output value, as specified by the LSM command, and keeps it.

Figure 2-14 Synchronous Output


Voltage or current

LSM, LSTM, and LSV/LSSV or LSI/LSSI

Offset

Trigger (e.g. XE)


Stop value

Synchronous search source

Offset Offset
Previous value
Primary search source
Start value
Time

NOTE The LSSV/LSSI command sets the synchronous output. You can use the same
output mode (voltage or current) as the search source. All output values must be
covered by the output range of the search source.

2-20 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Sampling Measurement
Sampling measurement is performed as shown below. The sampling operation is
performed in the specified time interval until the number of measurement result data
reaches to the specified number of samples.

Figure 2-15 Sampling Measurements


Voltage or current : Measurement

Channel 1 output
Setup value

Previous value
SMU Sampling interval

DV/DI
Voltage or current Bias hold time
Measurement time
Base hold time
Bias value MT/ML/MSC /MV/MI
Channel 2 output
Previous value
Base value SMU

Voltage
Measurement trigger (e.g. XE)

SIM0/SPRM/SPPER/
Peak value SPM/SPT /SPV/MSP

Previous value
Base value SPGU
Time

1. The sampling condition is set by the MT, ML, and MSC commands.
2. The SMU synchronous source channels are set by the MV/MI commands. The
channels will start output by a trigger, such as the XE command.
3. The SPGU synchronous source channels are set by the SIM 0, SPRM, SPPER,
SPM, SPT, SPV, and MSP. The channels will start output by a trigger.
4. The source channels set by the DI/DV commands will start output at the timing
of the DI/DV command execution.
5. The synchronous source channels force the base value by a trigger such as the
XE command, as follows.
The SPGUs start output in the order from lower to higher slot number, and then
the SMUs start output simultaneously.

Agilent B1500 Programming Guide, Edition 4 2-21


Remote Mode Functions
Measurement Modes

6. After the base hold time, the synchronous source channels force the bias value or
the peak value as follows.
The SMUs start output simultaneously, and then the SPGUs start output in the
order from lower to higher slot number. However the SPGU pulse outputs are
started simultaneously.
The channels keep the output until the end of the sampling measurement.
7. And after the bias hold time, the measurement channels start measurement for
the first sampling point. The measurement channels perform the measurement in
series by the order set to the MM command.
8. After that, the following operation is repeated with Sampling interval.
• Measurement channels start measurement if they are ready to measure.
• Measurement channels keep the condition if they are busy.
This operation is repeated until the number of measurement result data reaches
to the specified number of samples.
For the linear sampling with interval < 2 ms, if the total sampling time runs over
Bias hold time + Sampling interval × number, the sampling measurement will be
stopped even if the number of measured data is less than the specified number.
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 measured data.
9. After the sampling measurement, the synchronous source channels change the
output value as follows.
The SPGUs change the output in the order from higher to lower slot number, and
then the SMUs change the output simultaneously. However the SPGU pulse
outputs are stopped simultaneously.
If the SPGU operation mode is not Free Run and the total time of pulse output is
shorter than the sampling measurement time, the SPGU pulse outputs are
stopped simultaneously before the measurement is completed.
SPGU forces the post measurement output value set by the MSP command.
SMU forces the post measurement output value set by the MSC command.
10. The source channel set by the DV or DI command continues the source output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.

2-22 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

The index data (max. 9999999) and the time data returned with the measurement
data will be as shown in the following formula. However, long measurement or busy
status may cause unexpected time and index data.
time = t + Bias hold time + ( index -1) × Sampling interval
Where, t is the time of the sampling measurement time origin, and is the time when
the output value is changed from base to bias.

NOTE The MT command sets the bias hold time, sampling interval, number of samples,
and base hold time. If the sampling interval is less than 2 ms, the SPGU cannot be
used.
The MSC command sets the automatic abort function and the post measurement
output value of SMU.
The ML command sets the linear sampling mode or the log sampling mode.
The MV and MI commands set the SMU synchronous voltage and current source
respectively.
The SIM 0 command sets the pulse generator operation mode for all SPGU
channels.
The SPRM command sets the output operation mode for all SPGU channels, free
run (pulse output continues until SPP), pulse count, or duration.
The SPPER command sets the pulse period for all SPGU channels.
The SPM command sets the output mode of the SPGU channel, DC voltage, 2-level
pulse using source 1, 2-level pulse using source 2, or 3-level pulse using sources 1
and 2.
The SPT command sets the delay time, pulse width, leading time, and trailing time
of the SPGU channel.
The SPV command sets the pulse base and peak voltage or the DC bias voltage of
the SPGU channel.
The MSP command sets the SPGU synchronous voltage source and its post
measurement output value.
The MCC command clears the MV, MI, and MSP command setting.

To Stop Output An automatic abort function is available. Refer to “Automatic Abort Function” on
page 2-42.

Agilent B1500 Programming Guide, Edition 4 2-23


Remote Mode Functions
Measurement Modes

Quasi-static CV Measurement
Quasi-static CV (QSCV) measurement is performed as shown. The specified SMU
performs the measurement at the sweep steps except for the sweep start voltage and
stop voltage. At each sweep step, current and voltage are measured during the
voltage transition from Nth step voltage-cvoltage/2 to Nth step voltage+cvoltage/2,
and capacitance is calculated by using the measured values. Where, cvoltage is the
capacitance measurement voltage. For the measurement operation, see Figure 2-16.
For the capacitance data calculation, see “Capacitance Data” on page 2-26.
Source parameters; start, stop, cvoltage, and step are set by the QSV command.
Time parameters; hold time, delay1, delay2, linteg, and cinteg are set by the QST
command. linteg and cinteg are the integration time for the leakage current
measurement and the capacitance measurement, respectively.

Figure 2-16 Setting Parameters and Operation of QSCV Measurement

stop
(limit of sweep source output)
last step voltage

cvoltage= 2 × Vq

Trigger (XE)
delay1

3rd step voltage


0V
Measurement items at Nth step
I, Vavg IL, V
2nd step voltage
IL 0, V 0
step voltage
1st step
voltage Vq cinteg
Vq linteg linteg

hold time step voltage


delay1
start
(limit of sweep source output) delay1 delay2

2-24 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

The operation of the quasi-static CV measurements is explained below. This is the


case of start < stop.

1. Measurement trigger enables the sweep source output. The sweep source forces
1st step voltage-Vq, and waits for hold time. where Vq=cvoltage/2.
2. Repeats 3 and 4 for the Nth sweep step. where N is integer, 1 to step.
step is the number of sweep steps given by step = |start-stop| / |step voltage| -1.
3. The sweep source forces Nth step voltage-Vq, and waits for delay time (delay1).
4. The measurement unit measures the following items, and waits for delay time
(delay2).
IL0 Leakage current before the voltage transition
V0 Voltage before the voltage transition
I Charge current in the voltage transition to Nth step voltage+Vq
Vavg Averaging voltage in the voltage transition to Nth step voltage+Vq.
Not measured for the 4155C/4156C compatible operation mode set
by the QSC1 command.
IL Leakage current after the voltage transition
V Voltage after the voltage transition
5. After the sweep measurement, the sweep source forces the start or stop value, as
specified by the QSM command, and keeps it.

NOTE If the following condition is true, the measurement operation has the differences
shown below.

• delay2 is automatically set to 0.


• V0 and IL0 are not measured for the second step and later. The capacitance
calculation uses the V and IL values at the previous sweep step, instead.
Condition:
|step voltage| = |start-stop| / (step + 1) = cvoltage

Agilent B1500 Programming Guide, Edition 4 2-25


Remote Mode Functions
Measurement Modes

Capacitance Data
Capacitance data is given by the calculation. The calculation depends on the
operation mode set by the QSC command. There is two operation modes, Normal
and 4155C/4156C compatible.

Normal Mode Normal operation mode for the B1500A

• Capacitance Data
At each sweep step, the capacitance data is calculated by using the following
formula.
C = (I - Leak) × cinteg /(V-V0)
The QSL0,0 command disables the leakage current compensation and the
leakage current data output. Then the leakage current measurement is not
executed. The capacitance data is calculated by using the following formula.
C = I × cinteg /(V-V0)
• Leakage Current Data
At each sweep step, the leakage current data is calculated by using the following
formula. This data output is enabled by the QSL1,0 or QSL1,1 command.
Leak = IL0 + (IL - IL0) × (Vavg-V0)/(V-V0)

4155C/4156C Operation mode that provides a good compatibility with the measurement results by
Compatible Mode the 4155C/4156C
• Capacitance Data
At each sweep step, the capacitance data is calculated by using the following
formula.
C = (I - Leak) × cinteg /(V-V0)
The QSL0,0 command disables the leakage current compensation and the
leakage current data output. Then the leakage current measurement is not
executed. The capacitance data is calculated by using the following formula.
C = I × cinteg /(V-V0)
• Leakage Current Data
At each sweep step, the leakage current data is calculated by using the following
formula. This data output is enabled by the QSL1,0 or QSL1,1 command.
Leak = IL + τ × (IL0 - IL)/(2 × cinteg), where τ is the time for electrical charge

2-26 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

Spot C Measurement
Spot capacitance measurement is performed as shown below. The CMU
(capacitance measurement unit) applies DC bias with AC signal, and performs one
point measurement.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-17 Spot C Measurements


DC bias : Measurement
Measurement time
FC/ACV
CMU output
Setup value

Previous value

Time
DCV Measurement trigger (e.g. XE)

1. The CMU starts AC signal output by the FC and ACV commands.


2. The CMU starts DC bias output by the DCV command.
3. The CMU performs measurement by a trigger, such as the XE command. If the
trigger is received during the settling time, the measurement starts after the time.
4. After the measurement, the CMU continue the DC bias output with AC signal.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the CMU output to 0 V for both AC and DC.

NOTE The FC command sets the AC signal frequency.


The ACV command specifies the oscillator level, and applies the AC signal.
The DCV command applies the specified DC bias.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
DC bias setting. The CMU is selected if it is ±25 V or less (setting resolution: 0.001
V), or the SMU is selected if it is greater than ±25 V (setting resolution: 0.005 V).

Agilent B1500 Programming Guide, Edition 4 2-27


Remote Mode Functions
Measurement Modes

Pulsed Spot C Measurement


Pulsed spot C measurement is performed as shown below. The CMU (capacitance
measurement unit) applies pulsed DC bias with AC signal, and performs one point
measurement.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-18 Pulsed Spot C Measurements


DC bias

: Measurement
PTDCV/PDCV/FC/ACV

Trigger (e.g. XE) Trigger

Pulse value

Previous value

Base value

Time
Hold time Pulse width Hold time

Pulse period Pulse period

1. The CMU starts AC signal output by the FC and ACV commands.


2. The CMU sets the pulsed output by the PTDCV and PDCV commands.
3. The CMU starts output by a trigger, such as the XE command.
4. The CMU starts measurement as shown in Figure 2-18. The CMU performs
measurement so that the pulse width and pulse period are kept.
5. After measurement, the CMU forces the pulse base value, and keeps it. The
CMU also keeps the AC signal output.
If the next trigger occurs within the pulse period, pulse output is as follows.

• If the rest of the pulse period is longer than the hold time as shown in Figure
2-18, the CMU waits for the rest, then starts the pulse output.
• If the rest of the pulse period is shorter than the hold time, the CMU waits
for the hold time since the last trigger, then starts the pulse output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the CMU output to 0 V for both AC and DC.

2-28 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The PTDCV command sets the pulse timing parameters, such as pulse width and
pulse period.
The PDCV command sets pulsed DC bias (voltage) with AC signal.
The FC command sets the AC signal frequency.
The ACV command specifies the oscillator level, and applies the AC signal.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
DC bias setting. The CMU is selected if it is ±25 V or less (setting resolution: 0.001
V), or the SMU is selected if it is greater than ±25 V (setting resolution: 0.005 V).

Agilent B1500 Programming Guide, Edition 4 2-29


Remote Mode Functions
Measurement Modes

CV (DC bias) Sweep Measurement


CV (DC bias) sweep measurement is performed as shown below. The CMU
(capacitance measurement unit) applies DC bias with AC signal, and performs one
point measurement at each step of DC bias sweep. While the sweep measurement,
the AC signal level and frequency are constant.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-19 CV (DC bias) Sweep Measurements


DC bias Step delay time

Stop value : Measurement


WTDCV/WMDCV/WDCV/FC/ACV

Trigger (e.g. XE)


Step delay time

Previous value

Delay time
Start value

Hold time
Delay time
Time

1. The CMU starts AC signal output by the FC and ACV commands.


2. The CMU sets the DC bias sweep output by the WTDCV, WMDCV, and WDCV
commands.
3. The CMU starts output by a trigger, such as the XE command.
4. After the hold time, the CMU waits for the delay time.
5. After the delay time, the CMU starts measurement.
6. After measurement, the CMU waits for the rest of the step delay time if it is set,
and the CMU changes the output value.
7. The B1500 repeats 5 and 6 for all sweep steps.
8. After the sweep measurement, the CMU forces the start or stop value, as
specified by the WMDCV command, and keeps it. The CMU also keeps the AC
signal output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the CMU output to 0 V for both AC and DC.

2-30 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The WTDCV command sets the hold time, delay time, and step delay time.
The WMDCV command sets the automatic abort function and the output after
measurement.
The WDCV command sets the DC bias sweep voltage. The start and stop values
must have the same polarity for log sweep.
The FC command sets the AC signal frequency.
The ACV command specifies the oscillator level, and applies the AC signal.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
sweep range (from start to stop). The CMU is selected if it is ±25 V or less (setting
resolution: 0.001 V), or the SMU is selected if it is greater than ±25 V (setting
resolution: 0.005 V).

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.

Agilent B1500 Programming Guide, Edition 4 2-31


Remote Mode Functions
Measurement Modes

Pulsed Sweep CV Measurement


Pulsed sweep CV measurement is performed as shown below. The CMU
(capacitance measurement unit) applies pulsed DC bias with AC signal, and
performs one point measurement at each step of pulsed DC bias sweep. While the
sweep measurement, the AC signal level and frequency are constant.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-20 Pulsed Sweep CV Measurements


DC bias

Stop value

PTDCV/WMDCV/PWDCV/FC/ACV

Trigger (e.g. XE)

Pulse width

Start value Hold time


: Measurement
Previous value
Pulse base value
Pulse period Pulse period Pulse period
Time

1. The CMU starts AC signal output by the FC and ACV commands.


2. The CMU sets the pulsed bias sweep output by the PTDCV, WMDCV, and
PWDCV commands.
3. The CMU starts output by a trigger, such as the XE command.
4. After the hold time, the CMU starts measurement as shown in Figure 2-20. The
CMU performs measurement so that the pulse width and pulse period are kept.
5. After measurement, the CMU forces the pulse base value, and waits for the rest
of the pulse period. Then the CMU changes the output value.
6. The B1500 repeats measurement and 5 for all sweep steps.
7. After the pulsed sweep measurement, the CMU forces the pulse base value, and
keeps it. The CMU also keeps the AC signal output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the CMU output to 0 V for both AC and DC.

2-32 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The PTDCV command sets the pulse timing parameters, such as pulse width and
pulse period.
The WMDCV command sets the automatic abort function.
The PWDCV command sets the pulsed bias sweep voltage.
The FC command sets the AC signal frequency.
The ACV command specifies the oscillator level, and applies the AC signal.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
sweep range (from start to stop). The CMU is selected if it is ±25 V or less (setting
resolution: 0.001 V), or the SMU is selected if it is greater than ±25 V (setting
resolution: 0.005 V).

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.

Agilent B1500 Programming Guide, Edition 4 2-33


Remote Mode Functions
Measurement Modes

C-f Sweep Measurement


C-f sweep measurement is performed as shown below. The CMU (capacitance
measurement unit) applies AC signal with DC bias, and performs one point
measurement at each step of AC signal frequency sweep. While the sweep
measurement, the AC signal level and the DC bias are constant.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-21 C-f Sweep Measurements


Frequency Step delay time

Stop value : Measurement


WTFC/WMFC/WFC/ACV/DCV

Trigger (e.g. XE)


Step delay time

Previous value

Delay time
Start value

Hold time
Delay time
Time

1. The CMU sets the AC signal frequency sweep output by the WTFC, WMFC,
and WFC commands.
2. The CMU starts AC signal/DC bias output by the ACV and DCV commands.
3. The CMU starts frequency sweep by a trigger, such as the XE command.
4. After the hold time, the CMU waits for the delay time.
5. After the delay time, the CMU starts measurement.
6. After measurement, the CMU waits for the rest of the step delay time if it is set,
and the CMU changes the AC signal frequency.
7. The B1500 repeats 5 and 6 for all sweep steps.
8. After the sweep measurement, the CMU keeps the signal output of the AC signal
frequency’s start or stop value as specified by the WMFC command.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the CMU output to 0 V for both AC and DC.

2-34 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The WTFC command sets the hold time, delay time, and step delay time.
The WMFC command sets the automatic abort function and the output after
measurement.
The WFC command sets the AC signal frequency sweep output.
The ACV command specifies the oscillator level, and applies the AC signal.
The DCV command applies the specified DC bias.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
DC bias setting. The CMU is selected if it is ±25 V or less (setting resolution: 0.001
V), or the SMU is selected if it is greater than ±25 V (setting resolution: 0.005 V).

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.

Agilent B1500 Programming Guide, Edition 4 2-35


Remote Mode Functions
Measurement Modes

CV (AC level) Sweep Measurement


CV (AC level) sweep measurement is performed as shown below. The CMU
(capacitance measurement unit) applies AC signal with DC bias, and performs one
point measurement at each step of AC signal level sweep. While the sweep
measurement, the AC signal frequency and the DC bias are constant.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-22 CV (AC level) Sweep Measurements


AC signal level Step delay time

Stop value : Measurement


WTACV/WMACV/WACV/FC/DCV

Trigger (e.g. XE)


Step delay time

Previous value

Delay time
Start value

Hold time
Delay time
Time

1. The CMU sets the AC signal level sweep output by the WTACV, WMACV,
WACV, and FC commands.
2. The CMU starts DC bias output by the DCV command.
3. The CMU starts AC signal level sweep by a trigger, such as the XE command.
4. After the hold time, the CMU waits for the delay time.
5. After the delay time, the CMU starts measurement.
6. After measurement, the CMU waits for the rest of the step delay time if it is set,
and the CMU changes the AC signal level.
7. The B1500 repeats 5 and 6 for all sweep steps.
8. After the sweep measurement, the CMU keeps the signal output of the AC signal
level’s start or stop value as specified by the WMACV command.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the CMU output to 0 V for both AC and DC.

2-36 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

NOTE The WTACV command sets the hold time, delay time, and step delay time.
The WMACV command sets the automatic abort function and the output after
measurement.
The WACV command sets the AC signal level sweep output.
The FC command sets the AC signal frequency.
The DCV command applies the specified DC bias.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
DC bias setting. The CMU is selected if it is ±25 V or less (setting resolution: 0.001
V), or the SMU is selected if it is greater than ±25 V (setting resolution: 0.005 V).

To Stop Sweep An automatic abort function is available. Refer to “Automatic Abort Function” on
Output page 2-42.

Agilent B1500 Programming Guide, Edition 4 2-37


Remote Mode Functions
Measurement Modes

C-t Sampling Measurement


C-t sampling measurement is performed as shown below. The sampling operation is
performed in the specified time interval until when the total sampling time runs over
Bias hold time + Sampling interval × number of samples.
Before performing the measurement, select the measurement parameters by using
the IMP command. And select the output data by using the LMN command.

Figure 2-23 C-t Sampling Measurements


Voltage or current
: Measurement

Setup value
SMU output
Previous value

DV/DI
Sampling interval
DC bias Bias hold time
Measurement time
MTDCV/MSC / Base hold time
Bias value MDCV/FC/ACV

Previous value CMU output


Base value

Measurement trigger (e.g. XE) Time

1. The sampling condition is set by the MTDCV and MSC commands.


2. The CMU sets the DC bias output by the MDCV command.
3. The CMU starts AC signal output by the FC and ACV commands.
4. (optional) The source channels set by the DI/DV commands will start output at
the timing of the DI/DV command execution.
5. The CMU starts the base value output by a trigger, such as the XE command.
6. After the base hold time, the CMU changes the output to the bias value. The
CMU keeps the value until the end of the sampling measurement.
7. And after the bias hold time, the CMU starts measurement for the first point.
8. After that, the following operation is repeated with Sampling interval.
• CMU starts measurement if it is ready to measure.
• CMU keeps the condition if it is busy.

2-38 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Measurement Modes

This operation is repeated until when the total sampling time runs over Bias hold
time + Sampling interval × number of samples. The sampling measurement will
be stopped even if the number of measurement result data is less than number.
9. After the sampling measurement, the CMU forces the base or bias value
specified by the MDCV command.
The source channel set by the DV or DI command continues the source output.
For 0 V output, enter the DZ command that is used to memorize the present
settings of the channel and change the output to 0 V.
The index data (max. 10001) and the time data returned with the measurement data
is given by the following formula. It depends on the measurement ranging mode set
by the RC command. However, long measurement or busy status may cause
unexpected time and index data.

• For the fixed range mode


time = Bias hold time + index × Sampling interval
• For the auto range mode
time = Beginning time of one point measurement - t
Where, t is the time of the sampling measurement time origin, and is the time
when the output value is changed from base to bias.

NOTE The MTDCV command sets the bias hold time, sampling interval, number of
samples, and base hold time.
The MSC command sets the automatic abort function.
The MDCV command sets the DC bias output and the output after measurement.
The FC command sets the AC signal frequency.
The ACV command specifies the oscillator level, and applies the AC signal.
If the SCUU (SMU CMU Unify Unit) is connected to the 1 CMU and 2
MPSMUs/HRSMUs correctly, the source module is automatically selected by the
DC bias setting. The CMU is selected if it is ±25 V or less (setting resolution: 0.001
V), or the SMU is selected if it is greater than ±25 V (setting resolution: 0.005 V).

To Stop Output An automatic abort function is available. Refer to “Automatic Abort Function” on
page 2-42.

Agilent B1500 Programming Guide, Edition 4 2-39


Remote Mode Functions
Synchronous Output

Synchronous Output
You can use synchronous output that will be synchronized to the output of the
primary sweep or search source. See Figure 2-24 and Figure 2-25. Synchronous
output is available for the following measurement modes and set by the following
commands:

Measurement Mode Command

“Staircase Sweep Measurements” WSI or WSV

“Pulsed Sweep Measurements” WSI or WSV

“Staircase Sweep with Pulsed Bias Measurements” WSI or WSV

“Binary Search Measurements” BSSI or BSSV


“Linear Search Measurements” LSSI or LSSV

The synchronous source supports the same output mode (voltage or current) as the
primary source, and does not support pulsed output.

Parameters The following parameters are used to set up a synchronous output. For details of the
commands, refer to Chapter 4, “Command Reference.”

• For the WSI and WSV commands:


start Synchronous sweep start value.
stop Synchronous sweep stop value.
The start and stop values must have the same polarity for logarithmic sweep.
• For the BSSI, BSSV, LSSI, and LSSV commands:
offset Offset value from the search source output.
polarity Polarity (+ or -) of the synchronous source output.
Synchronous output is given by one of the following formulas:

• Synchronous output = primary source output + offset


• Synchronous output = -1× primary source output + offset
All output values must be covered by the output range of the search source.

2-40 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Synchronous Output

Figure 2-24 Synchronous Sweep Output Example for Staircase Sweep


Voltage or current

Stop value

WT/WM/WV/WI

Trigger (e.g. XE)

Previous value
Primary sweep
Start value

Voltage or current
Stop value

WSV/WSI

Previous value
Synchronous sweep
Start value
Time

Figure 2-25 Synchronous Output Example for Binary Search


Voltage or current
BSM, BST, and BSV/BSSV or BSI/BSSI

Trigger (e.g. XE)


Offset

Synchronous search source


Stop value

Offset Offset

Primary search source


Start value

Previous value Time

Agilent B1500 Programming Guide, Edition 4 2-41


Remote Mode Functions
Automatic Abort Function

Automatic Abort Function


The automatic abort function stops measurement (increasing or decreasing source
output value) when one of the following conditions occurs. This function is useful to
reduce sweep time and to prevent damage to the device during measurement.
• The output reaches voltage compliance or current compliance
• A measurement value exceeds the specified measurement range
• An SMU oscillates, or an error is caused in the CMU
The automatic abort function is enabled by the following commands.

• WM: Staircase sweep, staircase sweep with pulsed bias, multi channel sweep,
and pulsed sweep measurements
• BSM: Binary search measurement
• LSM: Linear search measurement
• MSC: Sampling measurement and C-t sampling measurement
• QSM: Quasi-static CV measurement
• WMDCV: CV (DC bias) sweep measurement
• WMFC: C-f sweep measurement
• WMACV: CV (AC level) sweep measurement

When abort occurs After measurement is aborted, the source forces the following value. And then the
dummy data (199.999E+99) is returned for measurement points not reached.

• Start value (for sweep source and search output source)


• Pulse base value (for pulsed source and pulsed sweep source)
• Base value (for synchronous source of sampling measurement)

Output after The commands listed above also can be used to set the source output after the
measurement measurement ends normally. The source output value can be one of the following
values.
• Sweep measurement: Start value or stop value
• Search measurement: Start value, stop value, or last output value
• Sampling measurement: Base value or bias value

2-42 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Automatic Abort Function

Exceptions:

• For the sampling measurement, the SPGU output value can be set by the MSP
command, not the MSC command.
• For the C-t sampling measurement, the MFCMU output value can be set by the
MDCV command, not the MSC command.
• This function is not effective for the pulsed sweep measurement and the pulsed
sweep CV measurement.

NOTE Even if the source output value is specified, the source forces the start value or the
base value if the output is stopped by the automatic abort function, the power
compliance, or the AB command.

Agilent B1500 Programming Guide, Edition 4 2-43


Remote Mode Functions
Parallel Measurement Function

Parallel Measurement Function


The following measurement modes enable the parallel measurement (simultaneous
measurement) by using the multiple measurement channels.
• Spot measurement (MM 1,chnum,chnum, . . . ,chnum)
• Staircase sweep measurement (MM 2,chnum,chnum, . . . ,chnum)
• Multi channel sweep measurement (MM 16,chnum,chnum, . . . ,chnum)
• Sampling measurement (MM 10,chnum,chnum, . . . ,chnum)
where, chnum is the slot number where the measurement channel (SMU) has been
installed. 1 to 10 (integer) are available.

To Set Measurement Channels


The following conditions must be satisfied for the measurement channels to perform
the parallel measurements.

• Use the high speed A/D converter


AAD chnum,0 command
• Use the fixed ranging for the measurement
RI chnum,range command (for current measurement)
RV chnum,range command (for voltage measurement)
Enter the negative value for range to use the fixed ranging.

To Enable Parallel Measurement


For the multi channel sweep measurement, the measurement channels defined as
shown above always perform the parallel measurement.
For the spot measurement, staircase sweep measurement, and sampling
measurement, the measurement channels defined as shown above perform the
parallel measurement by executing the following command.
PAD 1

2-44 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Program Memory

Program Memory
The program memory is a volatile memory that is used to store command strings
temporarily. The Agilent B1500 has a built-in program memory that can store 2,000
programs maximum, and a total of 40,000 commands.
The program memory can eliminate several processes in the program execution,
such as transferring commands, checking command syntax, and converting
commands to the internal codes. Thus, using the program memory speeds up
program execution. If frequently used command strings are stored in the program
memory, GPIB/computer activity is minimized.

Using Program Memory


You can store, execute, read, and delete programs in the program memory as shown
below. For details on each command, refer to Chapter 4, “Command Reference.”

To store programs Send the ST and END commands to store a program. The following procedure
stores a program (program number n) in the program memory. A multiple command
string is also available.

1. OUTPUT @B1500;"ST n"


where, n is the program number for the program now stored in the program
memory. The value must be an integer, 1 to 2000.
2. OUTPUT @B1500;"XXXX"
where, XXXX must be the command you want to store in the program memory.
Repeat this until all required commands are stored.
Table 2-1 lists the invalid commands for the program memory.
3. OUTPUT @B1500;"END"

NOTE The program must be complete and free of errors.


An error occurs if the program memory overflows while a program is being stored.
If you store a new program using an existing program number, the old program is
deleted and the new program is stored.

Agilent B1500 Programming Guide, Edition 4 2-45


Remote Mode Functions
Program Memory

To call programs A memory program can invoke another memory program by storing the DO or RU
from a memory command in the memory program. Up to eight levels of nesting are available. The
program first level is always the DO or RU command sent by the external computer.

To execute Send the RU or DO command to execute the memory program.


programs
• OUTPUT @B1500;"RU 1,5"
This example executes the programs numbered 1 through 5 sequentially. These
programs must be stored in the memory.
• OUTPUT @B1500;"DO 1,2,3,4,5"
This example executes programs 1, 2, 3, 4, and 5 in this order. These programs
must be stored in the memory. A maximum of eight numbers can be specified.

To use variables You can use variables in the memory programs. To enter the value to the variable,
send the VAR command. If the variable is referred by multiple programs or
commands, set or change the value carefully so that the program works fine without
errors. Format of the variable is %tn (t: integer I or real R, n: integer, 1 to 99).
In the following example, the first line stores a program (program 99) which uses
the %I50 variable. The second line enters 2 to %I50, and executes the program 99.
OUTPUT @B1500;"ST99;CN%I50;DV%I50,0,2;TI%I50;CL%I50;END"
OUTPUT @B1500;"VAR0,50,2;DO99"

To read programs To read the program numbers of the memory programs, send the LST? command
without a command parameter.
To read the contents of a memory program, send the LST? command with the
program number as shown below. Up to 3000 commands can be read by one
command execution.
OUTPUT @B1500;"LST? 100"

To delete To delete all memory programs, send the SCR command without a parameter.
programs
To delete a memory program, send the SCR command with the program number as
shown below.
OUTPUT @B1500;"SCR 100"

NOTE Turning off the instrument also clears the program memory. The device clear and
*RST commands do not clear the program memory.

2-46 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Program Memory

Table 2-1 Invalid Commands for Program Memory

Category GPIB Command

Reset *RST
Diagnostics DIAG?

Self-test *TST?

Self Calibration CA, *CAL?, CM

Abort AB

Channel Control RCV, WZ?

Program Memory ST, END, SCR, VAR?, LST?

SPGU Control ALS, ALS?, ALW, ALW? CORRSER?, ODSW?,


SER?, SIM?, SPM?, SPPER?, SPRM?, SPST?,
SPT?, SPV?, STGP?
16440A Selector Control ERMOD?, ERSSP?

16 bit Control Port ERS?

Query ERRX?, ERR?, EMG?, *IDN?, LOP?, *LRN?,


NUB?, *OPC?, UNT?, WNU?

Status Byte *SRE?, *STB?

Agilent B1500 Programming Guide, Edition 4 2-47


Remote Mode Functions
SPGU Module

SPGU Module
SPGU is the pulse generator module designed for the semiconductor parametric test
application and provides the following key functions.
• Number of output channels: 2 channels per module
• Output impedance: 50 Ω
• Output level: 0 to ± 40 V (open load), ± 20 V (50 Ω load)
• SPGU operation mode (effective for all channels installed in B1500A):
PG (pulse generator) or ALWG (arbitrary linear waveform generator)
• Channel output operation mode:
Free run, count, or duration
• PG output mode:
2-level pulse, 3-level pulse, or DC bias. For each channel.
• Pulse switch, which is more durable than mechanical relays, and better suited for
frequent switching applications.
• Automatic voltage level adjustment by specifying load impedance of DUT

Figure 2-26 SPGU Simplified Block Diagram


50 ohm Pulse switch 50 ohm Pulse switch

Output 1 Output 2

PG 2-level PG 2-level
or 3-level or 3-level
or or
ALWG ALWG

NOTE SPGU DC bias output


The SPGU offers the additional functionality of serving as a DC voltage source.
However, it is not suitable for applications requiring an accurate DC bias voltage
because of 50 Ω output impedance. For these applications, use the SMU.

2-48 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
SPGU Module

NOTE SPGU Channel Status


The SPGU status can be read with the SPST? command. The channel output will be
active (SPST? response is 1) while the channel performs the pulse output or the
ALWG sequence output. The status changes to the wait state (SPST? response is 0)
when one of the following conditions occurs.

• SPP command
• Repeat count reaches the number specified by SPRM 1 (only for count mode)
• Output time specified by SPRM 2 elapses (only for duration mode)
• A command sets the output switch OFF
• The output operation mode is changed by the SPRM command
The SPGU output can be started by the SRP command, which will cause the status
to change to active state.

Agilent B1500 Programming Guide, Edition 4 2-49


Remote Mode Functions
SPGU Module

PG Operation Mode
In the PG mode (pulse generator operation mode), the SPGU outputs normal 2- or
3-level pulse voltage or DC bias voltage. To set the PG mode, execute the SIM 0
command and use the commands listed in Table 2-2 to output pulse voltage or DC
bias voltage. See Figure 2-27 for information on control commands and output
timing.

Figure 2-27 SPGU Pulse Output Control Commands and Output Timing
SPUPD 801,901 SRP SPP

SPGU 801

base base

SPGU 802

base base

SPGU 901 base

SPGU 902 base

DV

SMU

In the example shown in Figure 2-27, channels 801 and 802 are used for pulse
output, and channels 901 and 902 are used for DC bias output. Channels 801 and
901 output at base voltage level in the specified order when the SPUPD command is
executed. Channels 802 and 902 start their output when the SRP command is
executed in the order of their channel numbers, except for pulse outputs, which are
always started simultaneously. Also note that pulse outputs stop simultaneously on
one of the following stop conditions.
Stop conditions:

• SPP command
• Repeat count reaches the number specified by SPRM 1 (only for count mode)
• Output time specified by SPRM 2 elapses (only for duration mode)

2-50 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
SPGU Module

Table 2-2 SPGU Control Commands for PG Mode

Command Description

SIM 0 Sets the PG mode for all channels.


SPRM Selects the output operation mode for all channels, free run (pulse
output continues until SPP), pulse count, or duration.

SPPER Sets the pulse period for all channels.

SPM Selects the output mode of the channel, DC voltage, 2-level pulse using
source 1, 2-level pulse using source 2, or 3-level pulse using sources 1
and 2. See Figure 2-30 for details on forming 3-level pulses.

SPT Sets the delay time, pulse width, leading time, and trailing time of the
channel. See Figure 2-28 for details on the pulse setup parameters.

SPV Sets the pulse base and peak voltage or the DC bias voltage of the
channel. See Figure 2-28 for details on the pulse setup parameters.

SER or CORRSER? Sets the load impedance of device under test, or measures the load
impedance and sets it. This value is used for the automatic voltage level
adjustment.

SPUPD Applies the channel setup to the specified SPGUs. The channel outputs
the base voltage.

SRP Starts all SPGU channel outputs.

SPP Stops all SPGU pulse outputs. The channel outputs the base voltage.

ODSW Sets the pulse switch to enable or disable, the normal state to open or
close, the delay time for switching to start, and the state hold time.
STGP Defines the trigger output for the SPGU channel and is effective for all
channels in the same SPGU module. The trigger output is repeated at
the timing of each pulse start by the specified channel. See Figure 2-29
for an example of the trigger output by the SPGU channel 801.

SPST? Returns the status of the SPGU, run or wait.

Agilent B1500 Programming Guide, Edition 4 2-51


Remote Mode Functions
SPGU Module

Figure 2-28 Pulse Setup Parameters

SRP Pulse peak


Leading time V/10 V/10

V: Pulse level Trailing time

V/10 Pulse base V/10


Delay time Pulse width Delay time
Pulse period
Td-sw State hold time Td-sw: Delay time for switching
Pulse switch
Normally open Close Open Close

Figure 2-29 Trigger Output in PG Mode


STGP 801,1 10 ns
Trigger Output >= 1 V

0 V (chassis common) Pulse period

SPGU 801

base base
Delay time
SPGU 802

base base

SPUPD 801,901 SRP SPP

2-52 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
SPGU Module

Figure 2-30 3-Level Pulse Output Examples

1V Output of
2-Level pulse source 1

1V Pulse period
0V Width1
Delay1
Pulse period
0V
Delay2

0V Width2

3-Level pulse output -1 V


Output of
2-Level pulse source 2 -1 V

Output of
2-Level pulse source 1
3V
Pulse period
2V
Delay1 Width1 4V

Pulse period 3V

Output of
2-Level pulse source 2 2V
1V
3-Level pulse output
0V

Delay2 Width2

The SPGU output channels can be setup to be a 3-level pulse generator by using the
SPM 3 command. A 3-level pulse source can be made by defining two 2-level pulse
sources. For example, the upper example in Figure 2-30 can be made by the
following command sequence.
SPPER Period
SPM ch,3
SPT ch,1,Delay1,Width1,Leading1,Trailing1
SPV ch,1,0,1
SPT ch,2,Delay2,Width2,Leading2,Trailing2
SPV ch,2,0,-1

Agilent B1500 Programming Guide, Edition 4 2-53


Remote Mode Functions
SPGU Module

ALWG Operation Mode


The SPGU can output an arbitrary linear waveform voltage in the ALWG mode
(arbitrary linear waveform generator operation mode). The waveform can be a
voltage pattern sequence specified by both pattern data (Table 2-4) and sequence
data (Table 2-5). You may specify a complicated pattern sequence or a simple
pattern as shown in Figure 2-31.
To set the ALWG mode, execute the SIM 1 command. Then use the commands
listed in Table 2-3 to output the voltage pattern sequence. See Figure 2-31 for details
on the control commands and the output timing.

Figure 2-31 ALWG Output Control Commands and Output Timing


SRP SPP

SPGU 801
initial value initial value
Pattern2 Pattern2 Pattern1 Pattern1

SPGU 901
initial value initial value
Pattern2 Pattern2 Pattern1 Pattern1 Pattern1
setup change (50 ns)

1 sequence
SPGU 901 pulse switch
0: Open
(normally open) 0 11 11 11 0 11 11 11 0 011 11 11 11011 11 11 110 11 11 11 110 1: Close

In the example shown in Figure 2-31, the SPGU channels 801 and 901 are used.
Both channels output Pattern2 twice and Pattern1 three times in one sequence. Then
the same pattern is set to the Pattern1 and Pattern2 of the channel 801, and two
different patterns are set to the channel 901. Between two patterns of the different
index, the setup change will cause delay time (50 ns).
The channels start their output when the SRP command is executed and repeat their
output simultaneously. And the sequence will be repeated as same as the pulse
period. The output can be stopped simultaneously by one of the following stop
conditions.
Stop conditions:

• SPP command
• Repeat count reaches the number specified by SPRM 1 (only for count mode)
• Output time specified by SPRM 2 elapses (only for duration mode)

2-54 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
SPGU Module

NOTE Setup delay time and output voltage between the different patterns
When the pattern is changed to the pattern of the different index, 50 ns setup delay is
always inserted. There are no delay between the patterns of the same index.
During the pattern change, the channel keeps the last output voltage of the previous
pattern.

Figure 2-32 Trigger Output in ALWG Mode


STGP 901,1 10 ns
Trigger Output >= 1 V
0 V (chassis common)

STGP 901,2 10 ns
Trigger Output >= 1 V
0 V (chassis common)

STGP 901,3 10 ns
Trigger Output >= 1 V
0 V (chassis common)

Pattern2 Pattern2 Pattern1 Pattern1 Pattern1

SPGU 901
initial value
1 sequence
SRP SPP

Agilent B1500 Programming Guide, Edition 4 2-55


Remote Mode Functions
SPGU Module

Table 2-3 SPGU Control Commands for ALWG Mode

Command Description

SIM 1 Sets the ALWG mode for all channels.

SPRM Selects the operation mode, free run (output continues until SPP),
sequence count, or duration for all channels.
ALW Sets the ALWG pattern data for each channel. See Table 2-4.

ALS Sets the ALWG sequence data for the B1500A mainframe. See
Table 2-5.

SER Sets the load impedance of device under test. This value is used
for the automatic level adjustment.
SPUPD Applies the channel setup to the specified SPGUs. The channel
outputs the initial voltage.

SRP Starts all SPGU channel outputs.

SPP Stops all SPGU channel outputs. The channel outputs the initial
voltage.
ODSW Sets the pulse switch enable or disable and the normal state open
or close. Switch status (open or close) must be specified for each
vector data in the ALWG pattern data. See Table 2-4.

STGP Specifies the SPGU channel effective for the trigger output and
enables the function. The trigger output is repeated at the timing
of the sequence start, pattern change, or pattern start of the
specified channel. See Figure 2-32 for an example of the trigger
output by the SPGU channel 801.

SPST? Returns the status of the SPGU, run or wait.

NOTE SPUPD, ALS, and SRP commands


If the command is executed while the ALWG output continues, the SPGU will stop
the output and perform the channel setup operation again. After that, the SPGU will
start the output again if the operation mode is set to free run, and wait for the SRP
command if it is set to sequence count or duration.

2-56 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
SPGU Module

Table 2-4 ALWG Pattern Data

Data Data length Byte length

Header Module type (ex: 0) 1 byte 20 bytes


Data format revision (ex: 0) 1 byte

Number of patterns a (ex: x) 2 bytes

Others (0 for all bit. Do not change.) 16 bytes


Pattern Initial Number of vector data in this pattern (ex: Ni) 2 bytes 6 bytes Σ(6+8×Ni)
data data bytes,
Initial voltage (1 μV/count) b 4 bytes
i=1 to x
Vector Output level (1 μV/count) b 4 bytes 8 × Ni
data bytes
Pulse switch status (1: close, 0: open) 1 bit
Incremental time from previous point 31 bits
(1 nsec/count) c
:
Vector data can be repeated until the Ni-th vector. (i: 1 to x, integer)

:
Pattern data can be repeated until the x-th pattern. (x: number of patterns, integer)
(Total number of vector data must be ≤ 1024-x.)
a. Number of patterns must be 1 to 1000000000 (512).
b. Output level data must be 0 to 10011000100101101000000000 (40 V) or
11111111111111111111110000011000 (-1 mV) to 11111101100111011010011000000000 (-40
V) in 1111101000 (1 mV) resolution.
c. Incremental time data must be 1010 (10 nsec) to 100111111111111111111111110110
(671.088630 msec, (226-1)×10 nsec) in 1010 (10 nsec) resolution.

Agilent B1500 Programming Guide, Edition 4 2-57


Remote Mode Functions
SPGU Module

Table 2-5 ALWG Sequence Data

Data Data length Byte length

Header Module type (ex: 0) 1 byte 20 bytes


Data format revision (ex: 0) 1 byte

Number of pattern cycles a (ex: x) 2 bytes

Others (0 for all bit. Do not change.) 16 bytes

Sequence Pattern Pattern index (ex: 1 for Pattern1) 2 bytes 6× i bytes,


data cycle data i=1 to x
Repeat count b (ex: 5) 4 bytes

:
Pattern cycle data can be repeated until the x-th pattern cycle.
(x: number of pattern cycles, integer)

a. Number of pattern cycles must be 1 to 1000000000 (512).


b. Repeat count must be 1 to 100000000000000000000 (1048576).

In the example of Figure 2-31, the total byte length of the pattern data is as follows.

• SPGU 801 number of patterns: x=2 (Pattern1 and Pattern2)


Number of vectors for Pattern1 and Pattern2: N1=9, N2=9
Total byte length is 20+(6+8×9)+(6+8×9)=176 bytes.
• SPGU 901 number of patterns: x=2 (Pattern1 and Pattern2)
Number of vectors for Pattern1 and Pattern2: N1=9, N2=7
Total byte length is 20+(6+8×9)+(6+8×7)=160 bytes.
And, the total byte length of the sequence data is as follows.
Number of pattern cycles: x=2 (Pattern1 and Pattern2)
Total byte length is 20+6×2=32 bytes.

2-58 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
SMU/PG Selector

SMU/PG Selector
The Agilent 16440A SMU/Pulse Generator Selector is used to switch the
measurement resources connected to DUT (device under test). The Input ports must
be connected to the measurement resources, an SMU and an SPGU or others, and
the Output port must be connected to the DUT interface. For the SMU connection,
connect the Force terminal only. The Sense terminal must be open.
Select the measurement resource with the ERSSP command which controls the
16440A selector connected through the Digital I/O connector and the Agilent
16445A selector adapter. This command sets the selector channel CH 1 or CH 2 to
the SMU connect, PGU connect, or open (no connection).
CH 1 of the selector additionally provides the PGU open status which is made by
keeping the PGU side mechanical relay close and opening the semiconductor relay.
This is effective for applications requiring frequent PGU open/connect switching
because a semiconductor relay is durable compared to a mechanical relay.

Figure 2-33 SMU/PG Selector Block Diagram and Connections


16440A Selector 16440A Selector #2 for DUT terminals 3 and 4
CONTROL
SMU Input Input Output

CH 1 CH 2
1 Output
DUT terminal 1
Output Input
SMU #1 Force
CH 1 Input
PGU #1 or others
1
Output
DUT terminal 2
2 Input
SMU #2 Force
PGU Input Input
PGU #2 or others
CONTROL
SMU Input Input

CH 1 Output CH 2
1
16440A Selector #1
CH 2 Output
1 16445A Selector Adapter
PGU Input CONTROL
Output Input

1 Mechanical relay AC power


2 Semiconductor relay B1500A Digital I/O

Up to two selectors can be used by connecting the selector control cable between the
CONTROL Output connector of the first selector and the CONTROL Input
connector of the second selector.

Agilent B1500 Programming Guide, Edition 4 2-59


Remote Mode Functions
Digital I/O Port

Digital I/O Port


The digital I/O port is used for the trigger input/output terminals or an interface to
control an external relay circuit and so on. For the trigger input/output, refer to
“Trigger Function”. For another usage, the following commands are available:
ERM Changes the digital I/O port assignments.
ERS? Returns the digital I/O port status.
ERC Changes the output status of the digital I/O port
Connector type of the digital I/O port is D-Sub 25-pin. The pin assignment is shown
in Table 2-6. In the initial setting, all port forces TTL high level (approx. 2.4 V. TTL
low is approx. 0.8 V). The above commands are available for non trigger ports from
DIO 1 to DIO 16.
Table 2-6 Digital I/O Pin Assignment

Description Pin Number Description

GND 25 13 GND

Do not use 24 12 Do not use


Do not use 23 11 Do not use

DIO 15 (bit 15) 22 10 DIO 16 (bit 16)

DIO 13 (bit 13) 21 9 DIO 14 (bit 14)

DIO 11 (bit 11) 20 8 DIO 12 (bit 12)

DIO 9 (bit 9) 19 7 DIO 10 (bit 10)

DIO 7 (bit 7) 18 6 DIO 8 (bit 8)


DIO 5 (bit 5) 17 5 DIO 6 (bit 6)

DIO 3 (bit 3) 16 4 DIO 4 (bit 4)

DIO 1 (bit 1) 15 3 DIO 2 (bit 2)

Do not use 14 2 Do not use

1 Do not use

2-60 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Digital I/O Port

Accessories
The following accessories are available to connect the Digital I/O port.
• Agilent 16493G Digital I/O connection cable
Used to connect the Digital I/O port to a D-Sub (f) 25-pin connector. This cable
should be connected between two B1500s, or between the B1500 and the
N1253A-200 BNC box. Cable length depends on the following option items:
16493G-001: Approx. 1.5 m
16493G-002: Approx. 3 m
• Agilent N1253A-100 Digital I/O T-cable
Used to connect the Digital I/O port to a D-Sub (f) 25-pin connector and a
D-Sub (m) 25-pin connector. This cable must be used to connect three or more
B1500s. Cable length is as following:

• D-Sub (m) to D-Sub (m): Approximately 1.5 m


Both connectors should be connected to the Digital I/O ports.
• D-Sub (m) to D-Sub (f): Approximately 30 cm
The D-Sub (f) connector should be connected to the additional N1253A-100
or the 16493G cable to connect the third or following B1500.
• Agilent N1253A-200 Digital I/O BNC box
Used to convert the D-Sub connector to the BNC connectors. Only the DIO 1 to
DIO 8 are connected to the BNC (f) connectors individually. To use the BNC
box, connect the 16493G cable between the Digital I/O port and the BNC box.

Figure 2-34 Accessories for Digital I/O Port

16493G D-Sub (m) D-Sub (m)

D-Sub (m) D-Sub (m)


N1253A-100
D-Sub (f)

N1253A-200 D-Sub (f) BNC (f) x 8

Agilent B1500 Programming Guide, Edition 4 2-61


Remote Mode Functions
Digital I/O Port

Digital I/O Internal Circuit


The following figure shows the input/output circuits internally connected to each
port/pin of the Digital I/O connector.

Figure 2-35 Digital I/O Internal Circuit

Vcc

R1
R2
to input control to DSUB pins

Vcc=5 V
from output control
R1=1 kohm
Q1 R2=100 ohm
Q1: Vce(sat)=0.3 V

2-62 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Trigger Function

Trigger Function
The Agilent B1500 can be synchronized with other equipment, such as capacitance
meters, voltmeters, ammeters, probers, handlers and so on, by using the following
terminals:
• Ext Trig In
BNC connector. Only for trigger input (to receive trigger).
• Ext Trig Out
BNC connector. Only for trigger output (to send trigger).
• Digital I/O
D-Sub 25-pin connector. Sixteen paths are available for the trigger port. Each
path can be used for either input or output. For the pin assignment and
accessories, refer to “Digital I/O Port”.
Figure 2-36 shows a connection example of the B1500 and another device.

Figure 2-36 Connecting Trigger Input/Output


In Out

Other device
in out

Example connection
13 out in 1
Agilent E5270
25 14
In Out
Ext Trig Digital I/O

NOTE To use the digital I/O port for the trigger input/output port, send the TGP command.
DIO 1 to DIO 16 can be used for the trigger input/output port. See Table 2-6.

Agilent B1500 Programming Guide, Edition 4 2-63


Remote Mode Functions
Trigger Function

Trigger Input
A trigger input operation example is shown in Figure 2-37. Measurement or source
output can be started by the input trigger sent through the port specified by the TGP
command. See Table 2-7.

Figure 2-37 Trigger Input Example, Staircase Sweep Measurement, Negative Logic
Start Measurement TGP t,1,p,1

Start Step Measurement TGP t,1,p,3

Case 1
Start Step Output Setup TGP t,1,p,2
Case 2
Delay time or more
Case 1: With trigger for
first sweep step
Hold time (Case 2)
or more (Case 1) Case 2: With trigger for
output after sweep

: Measurement

Measurement trigger delay

Initial Settings The following functions are available in the initial settings:

• Trigger port: Ext Trig In


• Trigger type: Start Measurement (type 1)
• Commands for the trigger wait: WS, TM3, or PA with TM3

Input Trigger The B1500 responds to the input trigger (minimum pulse width 10 μs) that changes
the signal level from high (approx. 2.4 V) to low (approx. 0.8 V). This is negative
logic. You can change it to positive logic by using the third parameter of the TGP
command.

Measurement Delay time from a trigger input to starting a step measurement. The delay time is
Trigger Delay available for the Start Step Measurement trigger (type 3). You can set the delay time
value by using the WT command (WTDCV for the CV sweep measurement).

2-64 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Trigger Function

PA/PAX/WS/WSX The commands put the B1500 in the trigger wait state. The B1500 can recover from
Commands the wait state if an external trigger is sent to a trigger input port. You can use the
commands regardless of the trigger type.
If you use the PA or PAX command to put the B1500 in the trigger wait state, send
the TM3 command before the PA or PAX command.

Table 2-7 Type of Trigger Input

Type B1500 Operation by Input Trigger Commanda

1 Starts the measurement specified by the MM command. TGP t,1,p,1


TM3

2 The sweep source starts to set the sweep step output. TGP t,1,p,2
TGSI m
The pulse source starts to set the pulsed output.
This trigger type is available for the staircase sweep,
pulsed spot, pulsed sweep, staircase sweep with pulsed
bias, multi channel sweep, and CV sweep measurement.

3 Waits for the measurement trigger delay, and starts the TGP t,1,p,3
sweep step measurement.
This trigger type is available for the staircase sweep,
multi channel sweep, and CV sweep measurement.

a. t selects trigger input terminal, Ext Trig In or a digital I/O path.


p selects positive or negative logic of the trigger.
m selects Case 1 or Case 2 of the trigger type 2 (see Figure 2-37).

Agilent B1500 Programming Guide, Edition 4 2-65


Remote Mode Functions
Trigger Function

Trigger Output
A trigger output operation example is shown in Figure 2-38. When the measurement
or source output setup is completed, the output trigger is sent through the port
specified by the TGP command. See Table 2-8.

Figure 2-38 Trigger Output Example, Staircase Sweep Measurement, Negative Logic
Step delay time Source trigger delay
Delay time : Measurement
Hold time
XE

TGP t,2,p,1 Measurement Completion

Gate trigger TGP t,2,p,3 Step Measurement Completion

TGP t,2,p,2 Step Output Setup Completion

Source trigger delay

TGP t,2,p,1 Measurement Completion

Edge trigger TGP t,2,p,3 Step Measurement Completion

TGP t,2,p,2 Step Output Setup Completion

Initial Settings The following functions are available in the initial settings:

• Trigger port: Ext Trig Out


• Trigger type: Measurement Completion (type 1)
• Commands for the trigger output: OS

Output Trigger An edge trigger or a gate trigger will be sent when an operation is completed (see
Figure 2-39). Initially, the negative edge trigger is sent.

Source Trigger Delay time from when the source output setup is completed until an edge trigger is
Delay sent or a gate trigger level is returned. The delay time is available for the Step
Output Setup Completion trigger (type 2). You can set the delay time value by using
the WT command (WTDCV for the CV sweep measurement).

OS/OSX The command is used to send a trigger immediately from a trigger output terminal.
Commands You can use the commands regardless of the trigger type.

2-66 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Trigger Function

Using Multiple If you use the multiple measurement channels, an edge trigger will be sent or a gate
Channels trigger level will be returned when the measurement is completed by all channels.
For the multi channel sweep measurement, an edge trigger will be sent or a gate
trigger level will be returned when the source output setup is completed by all
channels, or when the measurement is completed by all channels.

Figure 2-39 Output Trigger


Operation start or OS or OSX Operation complete or OS or OSX

High
Gate trigger (Approx. 2.4 V)

Low
(Approx. 0.8 V)

High
Edge trigger Approx. 10us (Approx. 2.4 V)

Low
(Approx. 0.8 V)
Negative logic Positive logic

Table 2-8 Type of Trigger Output

Type Timing of Trigger Output by B1500 Commanda

1 When the measurement specified by the MM command TGP t,2,p,1


is completed. TGXO m
TM3

2 When the source trigger delay time elapses after the TGP t,2,p,2
sweep step output setup or pulse output setup is TGSO m
completed.
Available for the staircase sweep, pulsed spot, pulsed
sweep, staircase sweep with pulsed bias, multi channel
sweep, and CV sweep measurement.

3 When the measurement is completed at each sweep step TGP t,2,p,3


for the staircase sweep, multi channel sweep, and CV TGMO m
sweep measurement.
a. t selects the trigger output terminal, Ext Trig Out or a digital I/O.
p selects positive or negative logic. m selects edge or gate trigger.

Agilent B1500 Programming Guide, Edition 4 2-67


Remote Mode Functions
Trigger Function

Using Trigger Function


• “To Make Wait State Using PA/PAX”
• “To Make Wait State Using WS/WSX”
• “To Send Trigger Using OS/OSX”
• “To Receive Measurement Trigger”
• “To Specify Trigger Port and Receive Trigger”
• “To Control Measurement Timing Using External Trigger”

To Make Wait State Using PA/PAX


The PA or PAX command puts the B1500 into a wait state. The B1500 can be
recovered from the wait state when the specified wait time elapses, or when an event
selected by the TM command occurs. Then the B1500 executes the commands
following the PA/PAX command. The event only releases the wait state set by the
PA/PAX command.
The wait time parameter is available for the PA/PAX command. If you specify the
wait time, the wait state continues until the time elapses or until the event occurs.
Available value: -99.9999 to 99.9999 s, in 100 μs resolution.
If you set a negative value, the wait state is kept until the event occurs.
You can select the event by using the TM command. If you want to use an external
trigger as the event, enter the TM3 command. Then the PA/PAX command waits for
the XE command execution, or:

• PA waits for a trigger sent to the Ext Trig In terminal.


• PAX waits for a trigger sent to the specified terminal.
In the initial setting, negative logic is available. To change it to positive, send the
TGP command.

NOTE The TM command is used to select the event effective for starting measurement, or
releasing the wait time set by the PA or PAX command. Enter the TM command
before the PA or PAX command.

2-68 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Trigger Function

To Make Wait State Using WS/WSX


The WS or WSX command puts the B1500 into a wait state. The B1500 can be
recovered from the wait state by an external trigger. Then the B1500 executes the
commands following the WS/WSX command. The external trigger only releases the
wait state set by the WS/WSX command.
• WS waits for a trigger sent to the Ext Trig In terminal.
• WSX waits for a trigger sent to the specified terminal.
In the initial setting, the negative logic is available. To change it to the positive, send
the TGP command.
If you want to end a wait state before receiving an external trigger, enter the AB or
*RST command, or use the device clear (HP BASIC CLEAR statement) if any other
commands have already been entered.

NOTE For easy programming, do not enter the TM command, or use the TM1, TM2, or
TM4 event mode. The TM3 event mode will complicate programming.

To Send Trigger Using OS/OSX


To trigger an external device from the B1500, use the OS or OSX command.

• OS sends an edge trigger to the Ext Trig Out terminal.


• OSX sends a trigger to the specified terminal.
In the initial setting, negative logic is available. To change it to positive, send the
TGP command.
Enter the WS/WSX command immediately after the OS/OSX command. Then the
B1500 triggers an external device to start its operation by the OS/OSX, and waits for
an operation complete trigger from the external equipment. This scenario ensures
that the B1500 and external equipment operations do not overlap.

Agilent E5270 WS Wait state start Operation OS WS Wait state


Time
External device Operation end Wait state start Operation

Agilent B1500 Programming Guide, Edition 4 2-69


Remote Mode Functions
Trigger Function

To Receive Measurement Trigger


To use an external trigger just for starting measurement, instead of the XE
command, perform the next step. This is not effective for the high speed spot
measurement.
1. Connect a BNC cable between the Ext Trig In connector and a trigger output
connector of an external device.
2. Create a control program. Then the TM3 command and HP BASIC ENTER
statement should be entered as shown in the following example:
:
OUTPUT @B1500;"MM1" ! Sets spot measurement mode
: ! Sets measurement condition
:
OUTPUT @B1500;"TM3" ! Uses external trigger
ENTER @B1500 USING "#,3X,12D,2X";M_data
:

3. Execute the control program.


The B1500 sets the measurement conditions, and waits for an external trigger
(negative trigger) sent to the Ext Trig In connector.
When the trigger is received, the B1500 starts measurement. When
measurement is completed, the B1500 sends a negative edge trigger to the Ext
Trig Out connector, and puts the measurement data in the data output buffer.

Ext Trig In Start measurement

Ext Trig Out Measurement completion

NOTE The HP BASIC ENTER statement pauses program execution until measurement
data is put in the data buffer, reads the data from the buffer, and then continues
program execution.

2-70 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Trigger Function

To Specify Trigger Port and Receive Trigger


To use an external trigger just for starting measurement, instead of the XE
command, perform the next step. This is not effective for the high speed spot
measurement.
This example specifies the trigger input/output ports and uses the gate trigger for the
output trigger.

1. Connect a BNC cable between the Ext Trig In connector and a trigger output
connector of an external device.
2. Create a control program. Then the TM3 and TGP commands and HP BASIC
ENTER statement should be entered as shown in the following example:
:
OUTPUT @B1500;"MM1" ! Sets spot measurement mode
: ! Sets measurement condition
:
OUTPUT @B1500;"TM3" ! Uses external trigger
OUTPUT @B1500;"TGP -1,1,1,1" ! Sets trigger input
OUTPUT @B1500;"TGP -2,2,1,1" ! Sets trigger output
OUTPUT @B1500;"TGXO 2" ! Enables gate trigger
ENTER @B1500 USING "#,3X,12D,2X";M_data
:

3. Execute the control program.


The B1500 sets the measurement conditions, and waits for an external trigger
(positive trigger) sent to the Ext Trig In connector.
When the trigger is received, the B1500 starts measurement and sends a positive
gate trigger to the Ext Trig Out connector. When measurement is completed, the
B1500 returns the gate trigger level to logical low, and puts the measurement
data in the data output buffer.

Ext Trig In Start measurement

Ext Trig Out Measurement completion

NOTE The HP BASIC ENTER statement pauses program execution until measurement
data is put in the data buffer, reads the data from the buffer, and then continues
program execution.

Agilent B1500 Programming Guide, Edition 4 2-71


Remote Mode Functions
Trigger Function

To Control Measurement Timing Using External Trigger


Multiple trigger terminals will be used to control measurement timing. Refer to the
following example that controls the staircase sweep measurement timing.
The example below uses the following triggers and terminals:

Trigger Name or Trigger Type Terminal TGP Command a

Start Measurement Ext Trig In TGP -1,1,2,1

Start Step Measurement DIO 2 TGP 2,1,2,3

Start Step Output Setup DIO 1 TGP 1,1,2,2


Measurement Completion Ext Trig Out TGP -2,2,2,1

Step Measurement Completion DIO 12 TGP 12,2,2,3

Step Output Setup Completion DIO 11 TGP 11,2,2,2

a. Parameters mean the port number, trigger input/output, positive/nega-


tive logic, and trigger type in this order from left.

Example This example uses the negative edge trigger (set by the TGP and
TGXO/TGMO/TGSO commands), and the Case 1 Start Step Output Setup trigger
(set by the TGSI command). The WT command sets the hold time, delay time, step
delay time, source trigger delay time, and the measurement trigger delay time.
:
OUTPUT @B1500;"MM2" ! Sets staircase sweep measurement mode
: ! Sets measurement condition
:
OUTPUT @B1500;"TM3" !Uses external trigger
OUTPUT @B1500;"TGP -1,1,2,1" !Start Measurement trigger
OUTPUT @B1500;"TGP 2,1,2,3" !Start Step Measurement trigger
OUTPUT @B1500;"TGP 1,1,2,2" !Start Step Output Setup trigger
OUTPUT @B1500;"TGP -2,2,2,1" !Measurement Completion trigger
OUTPUT @B1500;"TGP 12,2,2,3" !Step Measurement Completion trigger
OUTPUT @B1500;"TGP 11,2,2,2" !Step Output Setup Completion trigger
OUTPUT @B1500;"TGXO 1" !1:Edge trigger
OUTPUT @B1500;"TGMO 1" !1:Edge trigger
OUTPUT @B1500;"TGSO 1" !1:Edge trigger
OUTPUT @B1500;"TGSI 1" !1:Case 1
OUTPUT @B1500;"WT";Hold,Delay,Sdelay,Tdelay,Mdelay
:
FOR N=1 TO No_step
ENTER @B1500 USING "#,3X,12D,2X";M_data
PRINT "DATA";N;"=";M_data
NEXT N
:

2-72 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Trigger Function

Figure 2-40 Trigger Input/Output Example, Staircase Sweep, Negative Logic


Start Measurement

Start Step Measurement

Start Step Output Setup (Case1)

Step delay time or more

Delay time or more


Hold time

: Measurement Measurement trigger delay

Measurement Completion

Step Measurement Completion


Source trigger delay
Step Output Setup Completion

The B1500 sets the measurement conditions, sets the trigger ports, and waits for a
Start Measurement trigger.
By the Start Measurement trigger, the B1500 starts the staircase sweep
measurement.
By the Start Step Output Setup trigger, the B1500 waits until the source trigger delay
elapses, and sends the Step Output Setup Completion trigger. If the trigger is
received during the hold time, the B1500 performs this after the hold time.
By the Start Step Measurement trigger, the B1500 waits until the measurement
trigger delay elapses, executes a step measurement, and sends the Step Measurement
Completion trigger. If the trigger is received during the delay time, the B1500
performs this after the delay time.
By the next Start Step Output Setup trigger, the B1500 changes the source output
value, and waits until the source trigger delay elapses, and sends the Step Output
Setup Completion trigger. If the trigger is received during the step delay time, the
B1500 performs this after the step delay time.
After the staircase sweep measurement, the B1500 sends the Step Measurement
Completion trigger and the Measurement Completion trigger, and puts the
measurement data in the data output buffer.

Agilent B1500 Programming Guide, Edition 4 2-73


Remote Mode Functions
Trigger Function

Trig In/Out Internal Circuit


The following figures show the trigger input/output circuits internally connected to
the Trig In/Out connectors.

Figure 2-41 Trigger Input Internal Circuit


Vcc

R2
to trigger
input control from Trig In (BNC)
R1
Vcc=5 V
C1 R1=220 ohm
R2=10 kohm
C1=1000 pF

Figure 2-42 Trigger Output Internal Circuit

Vcc

from trigger R1
output control to Trig Out (BNC)

74ABT245 or
equivalent C1 Vcc=5 V
R1=150 ohm
C1=1000 pF

2-74 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Initial Settings

Initial Settings
Agilent B1500 is initialized by turning the B1500 on, the *RST command, or the
device clear. Initial settings of the B1500 are shown in the following tables.
Table 2-9 Mainframe Settings

Setup Item Initial Setting Commands

Auto calibration off CM

Trigger mode XE, TV, TI, or GET TM

Trigger port Ext Trig In Start Measurement TGP


trigger input

Ext Trig Out Measurement TGP


Completion trigger
output
Digital I/O cleared TGP

Trigger delay time 0s WT, PT

Trigger condition of with trigger for first sweep step TGSI


Start Step Output Setup trigger

Type of output trigger edge trigger TGXO, TGSO, TGMO

Digital I/O port output for all port ERM

Program memory cleared a SCR

Value of internal variable (%In, %Rn) 0 VAR

Data output format ASCII with header, CR/LF^EOI FMT

Data output buffer cleared BC

Status byte Only bit 6 is enabled. *SRE


Error code register cleared ERRX?, ERR?

a. Program memory is not cleared by the *RST command or the device clear.

Agilent B1500 Programming Guide, Edition 4 2-75


Remote Mode Functions
Initial Settings

Table 2-10 SMU Settings

Setup Item Initial Setting Commands

Output switch open CN, CL


Filter off FL

Series resistor off SSR

ASU path/1 pA auto range/indicator SMU side/disable/enable SAP/SAR/SAL

Current measurement range with pulse compliance range RI

without pulse auto

Voltage measurement range with pulse compliance range RV

without pulse auto

A/D converter high speed ADC AAD

ADC integration time high speed ADC: auto, non parallel AIT, PAD

high resolution ADC: auto AIT

ADC zero function off AZ

AV command parameter number=1, mode=0 AV

Sweep source parameters cleared WV, WSV, WI, WSI


Pulse source parameters cleared PV, PI

Pulse sweep source parameters cleared PWV, PWI

Search source parameters cleared BSV, BSSV, BSI,


BSSI, LSV, LSSV,
LSI, LSSV

Search monitor parameters cleared BGV, BGI, LGV,


LGI

Search measurement data source output value only BSVM, LSVM

Quasi-pulse source parameters cleared BDV

Quasi-pulsed spot measurement mode voltage BDM

2-76 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Initial Settings

Setup Item Initial Setting Commands

Quasi-pulse settling detection interval short BDM

Sampling source cleared MI, MV

Sampling interval, sampling point 2 ms, 1000 points MT

Automatic abort function off WM, BSM, LSM,


MSC
Output after measurement start value (bias value for MSC)

Hold time 0s WT, PT, BDT, BST,


LSTM
Delay time 0s

Step delay time 0s WT

Trigger delay time 0s WT, PT

Pulse width 0.001 s PT

Pulse period 0.01 s PT

Agilent B1500 Programming Guide, Edition 4 2-77


Remote Mode Functions
Initial Settings

Table 2-11 CMU Settings

Setup Item Initial Setting Commands

SCUU path/indicator open/enable SSP/SSL


Measurement parameter Cp-G IMP

Measurement range auto RC

ADC integration time auto ACT

Open/short/load correction off OPEN/SHOR/LOAD

Phase compensation mode auto ADJ

AC signal 0 V, 1 kHz ACV, FC

Sweep source parameters cleared WDCV

Automatic abort function off WMDCV

Output after measurement start value WMDCV

Hold time 0s WTDCV

Delay time 0s WTDCV

Step delay time 0s WTDCV

Trigger delay time 0s WTDCV

2-78 Agilent B1500 Programming Guide, Edition 4


Remote Mode Functions
Initial Settings

Table 2-12 SPGU Settings

Setup Item Initial Setting Commands

Operation mode PG mode SIM


Pulse period 1.0 μs SPPER

Channel output operation mode Free run SPRM

Channel output mode Pulse source 1, 2-level pulse output SPM

DC source setup 0V SPV

Pulse source setup Delay: 0 s, Width 100 ns, Leading: 20 SPT, SPV
ns, Trailing: 20 ns, Base: -0.5 V, Peak:
0.5 V

ALWG setup Cleared ALW, ALS

Pulse switch Disable, Normally open, Delay: 0 s, ODSW


Width: 100 ns
DUT load impedance 50 Ω SER

SPGU trigger output Disable STGP

SPGU setup in sampling measurement Cleared MSP

Agilent B1500 Programming Guide, Edition 4 2-79


Remote Mode Functions
Initial Settings

Table 2-13 Initial Settings of Mainframe, SMU, and CMU


Setup Item Initial Setting Commands
Auto calibration off CM
SMU output switch open CN, CL
SMU filter/series resistor off/off FL/SSR
ASU path/1 pA auto range/indicator SMU side/disable/enable SAP/SAR/SAL
SCUU path/indicator open/enable SSP/SSL
SMU current measurement range with pulse compliance range RI
without pulse auto
SMU voltage measurement range with pulse compliance range RV
without pulse auto
SMU A/D converter high speed ADC AAD
SMU ADC Integration time high speed ADC: auto, non parallel AIT, PAD
high resolution ADC: auto AIT
SMU ADC zero function off AZ
SMU AV command parameter number=1, mode=0 AV
CMU measurement parameter Cp-G IMP
CMU measurement range auto RC
CMU ADC integration time auto ACT
CMU correction/compensation Open/Short/Load: off/off/off, Phase compensation: auto OPEN/SHOR/LOAD, ADJ
CMU AC signal 0 V, 1 kHz ACV
Sweep source parameters cleared WV, WSV, WI, WSI, WDCV
Pulse source parameters cleared PV, PI
Pulse sweep source parameters cleared PWV, PWI
Search source parameters cleared BSV, BSSV, BSI, BSSI, LSV, LSSV, LSI, LSSV
Search monitor parameters cleared BGV, BGI, LGV, LGI
Search measurement data source output value only BSVM, LSVM
Quasi-pulse source parameters cleared BDV
Quasi-pulsed spot measurement mode voltage BDM
Quasi-pulse settling detection interval short BDM
Sampling source cleared MI, MV
Sampling interval, sampling point 2 ms, 1000 points MT
Automatic abort function off WM, BSM, LSM, WMDCV, MSC
Output after measurement start value (bias value for MSC) WM, BSM, LSM, WMDCV, MSC
Pulse width 0.001 s PT
Pulse period 0.01 s PT
Hold time 0s WT, PT, BDT, BST, LSTM, WTDCV, MT
Delay time 0s WT, PT, BDT, BST, LSTM, WTDCV
Step delay time 0s WT, WTDCV
Trigger delay time 0s WT, PT, WTDCV
Trigger mode XE, TV, TI, or GET TM
Trigger port Ext Trig In Start Measurement trigger input TGP
Ext Trig Out Measurement Completion trigger output TGP
Digital I/O cleared TGP
Trigger condition of with trigger for first sweep step TGSI
Start Step Output Setup trigger
Type of output trigger edge trigger TGXO, TGSO, TGMO
Digital I/O port output for all port ERM
Program memory cleared. Not cleared by *RST command or device clear. SCR
Value of internal variable (%In, %Rn) 0 VAR
Data output format ASCII with header, CR/LF^EOI FMT
Data output buffer cleared BC
Status byte Only bit 6 is enabled. *SRE
Error code register cleared ERRX?, ERR?

2-80 Agilent B1500 Programming Guide, Edition 4


3 Programming Examples
Programming Examples

This chapter provides the following sections which show and explain programming
example.

• “Programming Basics for Visual Basic .NET Users”


• “High-Speed Spot Measurements”
• “Spot Measurements”
• “Pulsed Spot Measurements”
• “Staircase Sweep Measurements”
• “Pulsed Sweep Measurements”
• “Staircase Sweep with Pulsed Bias Measurements”
• “Quasi Pulsed Spot Measurements”
• “Linear Search Measurements”
• “Binary Search Measurements”
• “Multi Channel Sweep Measurements”
• “Sampling Measurements”
• “Quasi-static CV Measurements”
• “High-Speed Spot C Measurement”
• “Spot C Measurements”
• “CV (DC Bias) Sweep Measurements”
• “Pulsed Spot C Measurements”
• “Pulsed Sweep CV Measurements”
• “CV (AC Level) Sweep Measurement”
• “C-f Sweep Measurements”
• “C-t Sampling Measurements”
• “SPGU Pulse Output”
• “Using Program Memory”
• “Using Trigger Function”
• “Reading Time Stamp Data”
• “Reading Binary Output Data”
• “Using Programs for 4142B”

3-2 Agilent B1500 Programming Guide, Edition 4


Programming Examples

• “Using Programs for 4155B/4156B/4155C/4156C”


Refer to Chapter 4, “Command Reference,” for the command syntax and
descriptions of the Agilent B1500 FLEX commands.
The following command conventions are used in this chapter.
command Required command for measurement execution.
[command] Optional command for measurement execution.
parameter Required command parameter. A value or variable must be
specified.
[parameter] Optional command parameter. A value may be specified.

NOTE About Example Program Code


Example programs described in this section have been written in the Microsoft
Visual Basic .NET or the HP BASIC language. Most of the examples written in the
Visual Basic .NET are provided as a subprogram that can be run with the project
template shown in Table 3-1. To run the program, insert the example subprogram or
your subprogram instead of the perform_meas subprogram in the template.

NOTE To Start Program


If you create the measurement program by using the example code shown in Table
3-1, the program can be run by clicking the Run button on the Visual Basic main
window. Then a message box will appear. After that, click OK to continue.

NOTE After the Automatic Measurement


After the automatic measurements, open the measurement terminals or disconnect
the device under test from the measurement terminals. If you leave the connection
with the device, the device may be damaged by unexpected operations.
Do not leave the connection over 30 minutes after measurement if the auto
calibration is set to ON. Then, the Agilent B1500 performs the self-calibration
automatically every 30 minutes after measurement. The calibration requires to open
the measurement terminals.
To disable the auto calibration, enter the CM 0 command.

Agilent B1500 Programming Guide, Edition 4 3-3


Programming Examples
Programming Basics for Visual Basic .NET Users

Programming Basics for Visual Basic .NET Users


This section provides the basic information for programming of the automatic
measurement using the Agilent B1500, Agilent T&M Programmer’s Toolkit, and
Microsoft Visual Basic .NET.
• “To Create Your Project Template”
• “To Create Measurement Program”

To Create Your Project Template


Before starting programming, create your project template, and keep it as your
reference. It will remove the conventional task in the future programming. This
section explains how to create a project template.

Step 1. Connect instrument (e.g. Agilent B1500) to computer via GPIB.

Step 2. Launch Visual Basic .NET and create a new project. The project type must be
Agilent T&M Toolkit Projects.

Follow the Agilent T&M Toolkit New Project Wizard to create the project. For the
output type selection, select the Console Application. For the library selections,
select top four libraries at least (Agilent.TMFramework,
Agilent.TMFramework.DataAnalysis, Agilent.TMFramework.DataVisualization,
and Agilent.TMFramework.InstrumentIO).

Step 3. Click T&M Toolkit > Instrument Explorer to open Agilent Instrument Explorer. On
the explorer, click Find Instrument icon to detect the instrument automatically. Then
the instrument names will be appeared on the Agilent Instrument Explorer window
(e.g. AG B1500 (::17) below GPIB0).
Step 4. Open a module (e.g. Module1.vb) in the project. And enter a program code as
template. See Table 3-1 for example.

Step 5. Save the project as your template (e.g. \test\my_temp).

3-4 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Programming Basics for Visual Basic .NET Users

To Create Measurement Program


Create the measurement program as shown below. The following procedure needs
your project template. If the procedure does not fit your programming environment,
arrange it to suit your environment.
Step 1. Plan the automatic measurements. Then decide the following items:

• Measurement devices

Discrete, packaged, on-wafer, and so on.

• Parameters/characteristics to be measured

hFE, Vth, sheet resistance, and so on.

• Measurement method

Spot measurement, staircase sweep measurement, and so on.

Step 2. Make a copy of your project template (e.g. \test\my_temp to \test\dev_a\my_temp).

Step 3. Rename the copy (e.g. \test\dev_a\my_temp to \test\dev_a\spot_id).

Step 4. Launch Visual Basic .NET.


Step 5. Open the project (e.g. \test\dev_a\spot_id).

Step 6. Open the module that contains the template code as shown in Table 3-1. On the code
window, complete the perform_meas subprogram.

Step 7. Insert the code to display, store, or calculate data into the subprogram.

Step 8. Save the project (e.g. \test\dev_a\spot_id).

Agilent B1500 Programming Guide, Edition 4 3-5


Programming Examples
Programming Basics for Visual Basic .NET Users

Table 3-1 Example Template Program Code for Visual Basic .NET

Imports Agilent.TMFramework
Imports Agilent.TMFramework.DataAnalysis
Imports Agilent.TMFramework.DataVisualization
Imports Agilent.TMFramework.InstrumentIO

Module Module1

Sub Main() ’8
Dim B1500 As New DirectIO("GPIB0::17::INSTR")
B1500.WriteLine("*RST")
MsgBox("Click OK to start measurement.", vbOKOnly, "")
Console.WriteLine("Measurement in progress. . ." & Chr(10))
Dim t() As Integer = {1, 2, 4, 6} ’SMU1, SMU2, SMU4, SMU6
Dim term As String = t(0) & "," & t(1) & "," & t(2) & "," & t(3)
B1500.WriteLine("CN " & term)
perform_meas(B1500, t)
B1500.WriteLine("CL")
B1500.Close()
MsgBox("Click OK to stop the program.", vbOKOnly, "")
Console.WriteLine("Measurement completed." & Chr(10))
End Sub ’21

Line Description

1 to 4 These lines are necessary for the Agilent instrument control programming.

8 to 21 Main subprogram establishes the connection with the Agilent B1500, resets the B1500,
opens a message box to confirm the start of measurement, and pauses program execution
until OK is clicked on the message box. By clicking OK, the program displays a message on
the console window, enables the SMUs, and calls the perform_meas subprogram that will be
used to perform measurement.
After the measurement, the program disables all SMUs, disables the connection with the
B1500, and opens a message box to confirm the end of the program. Finally, by clicking OK
on the message box, the program displays a message on the console window.

9 The above example is for the B1500 of the GPIB address 17 on the interface GPIB0.
“GPIB0” is the VISA name. Confirm your GPIB settings, and set them properly.

13 to 14 The above example uses the SMUs installed in the B1500 slots 1, 2, 4, and 6. Change the
slot numbers for matching your configuration.

3-6 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Programming Basics for Visual Basic .NET Users

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’23


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Enter data header"
Dim fname As String = "C:\enter_file_name.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

’ insert measurement program code

B1500.WriteLine("ERR? 1") : err = B1500.Read(True)


If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

B1500.WriteLine("DZ")
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err:
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
End Sub ’47

Line Description

23 Beginning of the perform_meas subprogram.


24 to 33 Declares variables used in this program template. The values are dummy. You must
change the values to match your program. If you find unnecessary variables, delete
them.
i and j: Variables used to specify the element of the data array.
nop1 and nop2: Number of measurement steps. Also used to declare the data array.
data: String data array used to store the measurement result data.
val: String data variable to store the header (first line) of the displayed data.
fname: Full path name of the measurement result data file.
title: Title of the message box used to display the measurement result data.
msg and err: Variables used to store an error message and an error code.
35 The line is placed as dummy. Remove the line and insert your program code to control
the instruments and perform measurement.
37 to 38 Checks if the instrument causes an error, and goes to Check_err if an error is detected.
40 to 41 Applies 0 V from all channels and calls the save_data subprogram (lines 49 to 71).
44 to 46 Opens a message box to display error message if an error is detected.
47 End of the perform_meas subprogram.

Agilent B1500 Programming Guide, Edition 4 3-7


Programming Examples
Programming Basics for Visual Basic .NET Users

Sub save_data(ByVal fname As String, ByVal title As String, ByVal value As


String, ByVal data(,) As String, ByVal nop1 As Integer, ByVal nop2 As Integer,
ByVal B1500 As DirectIO, ByVal t() As Integer) ’49
Dim i As Integer = 0
Dim j As Integer = 0
FileOpen(1, fname, OpenMode.Output, OpenAccess.Write, OpenShare.LockReadWrite)
Print(1, value)
For j = 0 To nop2 - 1
For i = 0 To nop1 - 1
Print(1, data(j, i))
Next i
Next j
FileClose(1)

Dim rbx As Integer


For j = 0 To nop2 - 1
For i = 0 To nop1 - 1
value = value & data(j, i)
Next i
Next j
value = value & Chr(10) & Chr(10) & "Data save completed."
value = value & Chr(10) & Chr(10) & "Do you want to perform measurement again?"
rbx = MsgBox(value, vbYesNo, title)
If rbx = vbYes Then perform_meas(B1500, t)
End Sub ’71

End Module

Line Description

49 to 71 Save_data subprogram saves measurement result data into a file specified by the fname
variable and displays the data and a message on a message box. If Yes is clicked on the
message box, calls the perform_meas subprogram again. If No is clicked, returns to the
perform_meas subprogram.

3-8 Agilent B1500 Programming Guide, Edition 4


Programming Examples
High-Speed Spot Measurements

High-Speed Spot Measurements


To perform high-speed spot measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]

Disables channels CL [chnum ... [,chnum] ... ]


Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets series resistor ON/OFF [SSR] chnum,mode

Sets integration time [AV] number[,mode]


(Agilent B1500 can use
AAD/AIT instead of AV.) [AAD] chnum[,type]

[AIT] type,mode[,N]

Forces constant voltage DV chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current DI

Performs current measurement TI chnum[,range]

TTI chnum[,range]

Performs voltage measurement TV chnum[,range]

TTV chnum[,range]

Resets the time stamp TSR

Returns the time stamp at this TSQ


time

You can use the above commands regardless of the measurement mode (MM
command settings). The TTI/TTV command returns the time data and the
measurement data.

Agilent B1500 Programming Guide, Edition 4 3-9


Programming Examples
High-Speed Spot Measurements

A program example of a high-speed spot measurement is shown below. This


example measures MOSFET drain current. This program uses the TTI command to
measure the current and read the time stamp data.
Table 3-2 High-Speed Spot Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Id (mA), Status, Meas Time (msec)"
Dim fname As String = "C:\Agilent\prog_ex\data1.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd As Double = 0.5 ’13


Dim vg As Double = 0.5
Dim idcomp As Double = 0.05
Dim igcomp As Double = 0.01
Dim orng As Integer = 0
Dim mrng As Integer = 0

B1500.WriteLine("FMT 1") ’20


B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 0") ’ sets filter off
B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’23
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("DV " & t(1) & "," & orng & "," & vg & "," & igcomp)
B1500.WriteLine("DV " & t(0) & "," & orng & "," & vd & "," & idcomp)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.
13 to 18 Declares variables and sets the value.

20 to 22 Sets the data output format and A/D converter. Also sets the SMU filter off.

23 to 28 Applies voltage to device and checks if an error occurred. If an error is detected, forces
0 V and goes to Check_err.

3-10 Agilent B1500 Programming Guide, Edition 4


Programming Examples
High-Speed Spot Measurements

B1500.WriteLine("TSR") ’30
B1500.WriteLine("TTI " & t(0) & "," & mrng)
B1500.WriteLine("TSQ")
Dim ret_val As String() = B1500.ReadListAsStringArray()
Dim tend As String() = B1500.ReadListAsStringArray()
ret_val(0) = Right(ret_val(0), 12)
tend(0) = Right(tend(0), 12)
Dim mtime As Double = Val(tend(0)) - Val(ret_val(0))
Dim status As String = Left(ret_val(1), 3)
ret_val(1) = Right(ret_val(1), 12)
Dim meas As Double = Val(ret_val(1))
data(j, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & status & ", " & mtime *
1000

B1500.WriteLine("DZ") ’43
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’47
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
End Sub

Line Description

30 to 41 Resets time stamp and performs the high-speed spot measurement. And stores the
returned data into the ret_val string array variable. Finally, stores the measured data into
the data array.

43 to 45 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

48 to 49 Displays a message box to show an error message if the error is detected.

Measurement Id (mA), Status, Meas Time (msec)


Result Example 3.8435, NAI, 1.1

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-11


Programming Examples
Spot Measurements

Spot Measurements
To perform spot measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]

Disables channels CL [chnum ... [,chnum] ... ]

Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets series resistor ON/OFF [SSR] chnum,mode

Sets integration time [AV] number[,mode]


(Agilent B1500 can use
AAD/AIT instead of AV.) [AAD] chnum[,type]

[AIT] type,mode[,N]

Forces constant voltage DV chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current DI

Sets voltage measurement [RV] chnum,range


range

Sets current measurement [RI] chnum,range


range
[RM] chnum,mode[,rate]

Sets measurement mode MM 1,chnum[,chnum ... [,chnum] ... ]

Sets SMU operation mode [CMM] chnum,mode


Executes measurement XE

NOTE If you use multiple measurement channels, the channels start measurement in the
order defined in the MM command.

3-12 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Spot Measurements

A program example of a spot measurement is shown below. This example measures


MOSFET drain current.
Table 3-3 Spot Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Id (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data2.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd As Double = 0.5 ’13


Dim vg As Double = 0.5
Dim idcomp As Double = 0.05
Dim igcomp As Double = 0.01
Dim orng As Integer = 0
Dim mrng As Integer = 0
B1500.WriteLine("FMT 1") ’19
B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 0") ’ sets filter off
B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’23
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("DV " & t(1) & "," & orng & "," & vg & "," & igcomp)
B1500.WriteLine("DV " & t(0) & "," & orng & "," & vd & "," & idcomp)
B1500.WriteLine("MM 1," & t(0)) ’1: spot measurement
B1500.WriteLine("CMM " & t(0) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(0) & "," & mrng)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True) ’30
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 18 Declares variables and sets the value.

19 to 22 Sets the data output format, time stamp data output mode, and A/D converter. Also sets
the SMU filter off.

23 to 26 Applies voltage to device.

27 to 29 Sets the measurement mode, channel measurement mode, and measurement range.

30 to 31 Checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

Agilent B1500 Programming Guide, Edition 4 3-13


Programming Examples
Spot Measurements

B1500.WriteLine("TSR") ’33
B1500.WriteLine("XE")
B1500.WriteLine("TSQ")
Dim ret_val As String() = B1500.ReadListAsStringArray()
Dim tend As String() = B1500.ReadListAsStringArray()
ret_val(0) = Right(ret_val(0), 12)
tend(0) = Right(tend(0), 12)
Dim mtime As Double = Val(tend(0)) - Val(ret_val(0))
Dim status As String = Left(ret_val(1), 3)
ret_val(1) = Right(ret_val(1), 12)
Dim meas As Double = Val(ret_val(1))
data(j, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & status & ", " & mtime *
1000

B1500.WriteLine("DZ") ’46
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’50
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
End Sub

Line Description

33 to 44 Resets time stamp and performs the spot measurement. And stores the returned data
into the ret_val string array variable. Finally, stores the measured data into the data
array.

46 to 48 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

51 to 52 Displays a message box to show an error message if the error is detected.

Measurement Id (mA), Status, Meas Time (msec)


Result Example 3.8425, NAI, 1.1

Data save completed.

Do you want to perform measurement again?

3-14 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Spot Measurements

Pulsed Spot Measurements


To perform pulsed spot measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]

Disables channels CL [chnum ... [,chnum] ... ]

Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets series resistor ON/OFF [SSR] chnum,mode

Forces constant voltage DV chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current DI

Sets pulse timing parameters PT hold,width[,period [,tdelay]]

Sets pulse voltage PV chnum,range,base,pulse[,comp]


Sets pulse current PI chnum,range,base,pulse [,comp]

Sets voltage measurement [RV] chnum,range


range

Sets current measurement [RI] chnum,range


range
[RM] chnum,mode[,rate]

Sets measurement mode MM 3,chnum

Sets SMU operation mode [CMM] chnum,mode


Executes measurement XE

NOTE Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. For the Agilent B1500, note that the high-resolution ADC cannot be
used for the pulsed measurements. The AAD/AIT/AV/WT command settings are
ignored.

Agilent B1500 Programming Guide, Edition 4 3-15


Programming Examples
Pulsed Spot Measurements

A program example of a pulsed spot measurement is shown below. This example


measures MOSFET drain current.
Table 3-4 Pulsed Spot Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Id (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data3.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd As Double = 0.5 ’13


Dim vg As Double = 0.5
Dim idcomp As Double = 0.05
Dim igcomp As Double = 0.01
Dim orng As Integer = 0
Dim mrng As Integer = 0
B1500.WriteLine("FMT 1") ’19
B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("FL 1") ’ sets filter on
B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’22
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
Dim g_pt As String = "0.1,0.01,0.02" ’hold, width, period in sec
B1500.WriteLine("PT " & g_pt)
Dim v0 As Double = 0 ’0 V: pulse base voltage
B1500.WriteLine("PV " & t(1) & "," & orng & "," & v0 & "," & vg & "," & igcomp)
B1500.WriteLine("DV " & t(0) & "," & orng & "," & vd & "," & idcomp)
B1500.WriteLine("MM 3," & t(0)) ’3: pulsed spot measurement
B1500.WriteLine("CMM " & t(0) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(0) & "," & mrng)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True) ’32
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 18 Declares variables and sets the value.

19 to 21 Sets the data output format, time stamp data output mode, and SMU filter.

22 to 28 Applies DC voltage to device, and sets the voltage pulse source.

29 to 31 Sets the measurement mode, channel measurement mode, and measurement range.

32 to 33 Checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

3-16 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Spot Measurements

B1500.WriteLine("TSR") ’35
B1500.WriteLine("XE")
B1500.WriteLine("TSQ")
Dim ret_val As String() = B1500.ReadListAsStringArray()
Dim tend As String() = B1500.ReadListAsStringArray()
ret_val(0) = Right(ret_val(0), 12)
tend(0) = Right(tend(0), 12)
Dim mtime As Double = Val(tend(0)) - Val(ret_val(0))
Dim status As String = Left(ret_val(1), 3)
ret_val(1) = Right(ret_val(1), 12)
Dim meas As Double = Val(ret_val(1))
data(j, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & status & ", " & mtime *
1000

B1500.WriteLine("DZ") ’48
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’52
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
End Sub

Line Description

35 to 46 Resets time stamp and performs the pulsed spot measurement. And stores the returned
data into the ret_val string array variable. Finally, stores the measured data into the data
array.

48 to 50 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

53 to 54 Displays a message box to show an error message if the error is detected.

Measurement Id (mA), Status, Meas Time (msec)


Result Example 3.825, NAI, 0.799999999999995

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-17


Programming Examples
Staircase Sweep Measurements

Staircase Sweep Measurements


To perform staircase sweep measurements, use the following commands.

Function Command Parameters


Enables channels CN [chnum ... [,chnum] ... ]
Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets integration time [AV] number[,mode]
(Agilent B1500 can use [AAD] chnum[,type]
AAD/AIT instead of AV.)
[AIT] type,mode[,N]
Sets sweep source timing [WT] hold,delay
parameter [,sdelay[,tdelay[,mdelay]]]
Sets auto abort function [WM] abort[,post]
Sets voltage sweep source WV chnum,mode,range,start,stop,step
Sets current sweep source WI [,comp[,Pcomp]]

Sets synchronous sweep [WSV] chnum,range,start,stop


source a [WSI] [,comp[,Pcomp]]
Forces constant voltage DV chnum,range,output
Forces constant current DI [,comp[,polarity[,crange]]]

Sets voltage measurement [RV] chnum,range


range
Sets current measurement [RI] chnum,range
range [RM] chnum,mode[,rate]
Sets measurement mode MM 2,chnum[,chnum ... [,chnum] ... ]
Sets SMU operation mode [CMM] chnum,mode
Executes measurement XE
a. The WSV/WSI command must be entered after the WV/WI command.

NOTE If you use multiple measurement channels, the channels start measurement in the
order defined in the MM command.

3-18 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep Measurements

A program example of a staircase sweep measurement is shown below. This


example measures MOSFET Id-Vd characteristics.
Table 3-5 Staircase Sweep Measurement Example 1

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 11
Dim nop2 As Integer = 3
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Vg (V), Vd (V), Id (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data4.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd1 As Double = 0 ’13


Dim vd2 As Double = 3
Dim idcomp As Double = 0.05
Dim vg1 As Double = 1
Dim vg2 As Double = 3
Dim igcomp As Double = 0.01
Dim vg As Double = vg1 ’secondary sweep output value
Dim d_vg As Double = 0 ’secondary sweep step value (delta)
If nop2 <> 1 Then d_vg = (vg2 - vg1) / (nop2 - 1)
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim p_comp As Double = 0.3
Dim rep As Integer = nop1
Dim ret_val As String() ’27
Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim sc(nop1) As Double
Dim md(nop1) As Double
Dim st(nop1) As String
Dim tm(nop1) As Double
B1500.WriteLine("FMT 1,1") ’ ASCII<CRLF EOI> w/sweep source data ’35
B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 0") ’ sets filter off

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 26 Declares variables used to set the source output, and sets the value.
27 to 34 Declares variables used to read the measurement data.

35 to 38 Sets the data output format, time stamp data output mode, and A/D converter. Also sets
the SMU filter off.

Agilent B1500 Programming Guide, Edition 4 3-19


Programming Examples
Staircase Sweep Measurements

B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’40
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("MM 2," & t(0)) ’2: staircase sweep measurement
B1500.WriteLine("CMM " & t(0) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(0) & ",0") ’0: auto ranging
B1500.WriteLine("WT " & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WM 2,1") ’ stops at any abnormal
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

For j = 0 To nop2 - 1 ’50


B1500.WriteLine("WV " & t(0) & ",1,0," & vd1 & "," & vd2 & "," & nop1 & ","
& idcomp & "," & p_comp)
B1500.WriteLine("DV " & t(1) & ",0," & vg & "," & igcomp)
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?")
rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?"): rep = B1500.Read(True) ’59
If rep <> nop1 * 3 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray()
For i = 0 To nop1 - 1
data1 = ret_val(i * 3)
data2 = ret_val(i * 3 + 1)
data3 = ret_val(i * 3 + 2)
data1 = Right(data1, 12) : tm(i) = Val(data1)
st(i) = Left(data2, 3)
data2 = Right(data2, 12) : md(i) = Val(data2)
data3 = Right(data3, 12) : sc(i) = Val(data3)
data(j, i) = Chr(13) & Chr(10) & vg & ", " & sc(i) & ", " & md(i) * 1000
& ", " & tm(i) & ", " & st(i)
Next i
vg = vg + d_vg
Next j ’74

Line Description

40 to 44 Applies voltage to device. And sets the measurement mode, channel measurement
mode, and measurement range.

45 to 48 Sets the timing parameters and sweep mode of the staircase sweep source. And checks
if an error occurred. If an error is detected, forces 0 V and goes to Check_err.
50 to 74 Sets the sweep source, applies voltage to device, resets time stamp, and performs the
staircase sweep measurement. And stores the returned data into the ret_val string array
variable. Finally, stores the measured data into the data array.

59 to 60 Checks number of returned data. If it is not correct, forces 0 V and goes to Check_nop.

71 Stores the measured data into the data array.

3-20 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep Measurements

B1500.WriteLine("DZ") ’76
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’80
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop:
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "") ’86
End Sub

Line Description

76 to 78 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

81 to 82 Displays a message box to show an error message if the error is detected.


86 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Vg (V), Vd (V), Id (mA), Time (sec), Status


1, 0, 0.0020335, 0.0166, NAI
Result Example 1, 0.3, 3.0515, 0.0229, NAI
1, 0.6, 5.6325, 0.0243, NAI
1, 0.9, 7.7845, 0.0257, NAI
1, 1.2, 9.6155, 0.0272, NAI
1, 1.5, 11.2055, 0.0283, NAI
1, 1.8, 12.63, 0.0316, NAI
1, 2.1, 13.9, 0.033, NAI
1, 2.4, 15.05, 0.034, NAI
1, 2.7, 16.095, 0.0353, NAI
1, 3, 17.045, 0.0363, NAI
2, 0, 0.0025305, 0.016, NAI
2, 0.3, 4.0265, 0.022, NAI
2, 0.6, 7.635, 0.0236, NAI
2, 0.9, 10.804, 0.0251, NAI
2, 1.2, 13.565, 0.0281, NAI
2, 1.5, 15.945, 0.0294, NAI
2, 1.8, 18.01, 0.0305, NAI
2, 2.1, 19.825, 0.0317, NAI
2, 2.4, 21.445, 0.033, NAI
2, 2.7, 22.915, 0.0341, NAI
2, 3, 24.235, 0.0354, NAI
3, 0, 0.0028565, 0.016, NAI
3, 0.3, 4.8745, 0.0228, NAI
3, 0.6, 9.3705, 0.0243, NAI
3, 0.9, 13.445, 0.0278, NAI
3, 1.2, 17.12, 0.0292, NAI
3, 1.5, 20.37, 0.0302, NAI
3, 1.8, 23.24, 0.0315, NAI
3, 2.1, 25.75, 0.0326, NAI
3, 2.4, 27.98, 0.0339, NAI
3, 2.7, 29.96, 0.0352, NAI
3, 3, 31.73, 0.0362, NAI
Data save completed.
Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-21


Programming Examples
Staircase Sweep Measurements

The following program performs the same measurement as the previous program
(Table 3-5). This program starts to read measurement data before the sweep
measurement is completed.
Table 3-6 Staircase Sweep Measurement Example 2

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 11
Dim nop2 As Integer = 3
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Vg (V), Vd (V), Id (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data4r.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd1 As Double = 0 ’13


Dim vd2 As Double = 3
Dim idcomp As Double = 0.05
Dim vg1 As Double = 1
Dim vg2 As Double = 3
Dim igcomp As Double = 0.01
Dim vg As Double = vg1 ’secondary sweep output value
Dim d_vg As Double = 0 ’secondary sweep step value (delta)
If nop2 <> 1 Then d_vg = (vg2 - vg1) / (nop2 - 1)
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim p_comp As Double = 0.3

B1500.WriteLine("FMT 5,1") ’ ASCII comma w/sweep source data ’27


B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 0") ’ sets filter off
B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("MM 2," & t(0)) ’2: staircase sweep measurement
B1500.WriteLine("CMM " & t(0) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(0) & ",0") ’0: auto ranging
B1500.WriteLine("WT " & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WM 2,1") ’ stops at any abnormal
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err ’39

Line Description

1 to 25 Declares variables and set the value. Almost same as the previous program. Only the
fname value is different.

27 Sets the data output format. A comma will be sent as the data terminator.
28 to 39 Sets the measurement condition. Same as the lines 36 to 48 of the previous program.

3-22 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep Measurements

Dim ret_val As String : Dim status As String : Dim chan As String ’41
Dim type As String : Dim rdata As Double : Dim tdata As Double
Dim sdata As Double : Dim mdata As Double : Dim mstat As String
Dim disp_data As String : Dim k As Integer = 0
B1500.TerminationCharacter = Chr(44) ’terminator=comma ’45
B1500.TerminationCharacterEnabled = True

For j = 0 To nop2 - 1 ’48


B1500.WriteLine("WV " & t(0) & ",1,0," & vd1 & "," & vd2 & "," & nop1 & ","
& idcomp & "," & p_comp)
B1500.WriteLine("DV " & t(1) & ",0" & "," & vg & "," & igcomp)
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
For i = 0 To nop1 - 1
For k = 0 To 2 ’54
ret_val = B1500.Read(True)
status = Left(ret_val, 1) ’status
chan = Mid(ret_val, 2, 1) ’channel
type = Mid(ret_val, 3, 1) ’data type
rdata = Val(Right(ret_val, 12)) ’data
If type = "T" Then tdata = rdata ’time data
If type = "I" Then mdata = rdata : mstat = status ’meas data, status
If type = "V" Then sdata = rdata ’source data
Next k
If mstat <> "N" Then B1500.WriteLine("DZ") : GoTo Check_err ’64
disp_data = "Vg = " & vg & " (V), "
disp_data = disp_data & "Vd = " & sdata & " (V), "
disp_data = disp_data & "Id = " & mdata * 1000 & " (mA), "
disp_data = disp_data & "Time = " & tdata & " (sec), "
disp_data = disp_data & "Status = " & mstat
Console.WriteLine(disp_data)
data(j, i) = Chr(13) & Chr(10) & vg & ", " & sdata & ", " & mdata * 1000
& ", " & tdata & ", " & mstat
Next i
vg = vg + d_vg
Next j ’74

Line Description

41 to 44 Declares the variables used to read and save the measurement data.

45 to 46 Declares that a comma is the data terminator needed to read data, and enables it.
49 to 52 Sets the sweep source, applies voltage to device, resets time stamp, and triggers the
staircase sweep measurement. Same as the lines 51 to 54 of the previous program.

54 to 63 Reads data and picks up the status, channel, data type, and data. And stores the time
data, measurement data, and source data into the variables, tdata, mdata, and sdata.

64 Checks the status of the measurement channel. And applies 0 V and goes to Check_err
if an error is detected.
65 to 71 Displays the data on the console window. And stores the data into the data array.

Agilent B1500 Programming Guide, Edition 4 3-23


Programming Examples
Staircase Sweep Measurements

B1500.WriteLine("DZ") ’76
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’80
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop:
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "") ’86
End Sub

Line Description

76 to 78 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

81 to 82 Displays a message box to show an error message if the error is detected.


86 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Vg (V), Vd (V), Id (mA), Time (sec), Status


1, 0, 0.0020335, 0.0166, NAI
Result Example 1, 0.3, 3.0515, 0.0229, NAI
1, 0.6, 5.6325, 0.0243, NAI
1, 0.9, 7.7845, 0.0257, NAI
1, 1.2, 9.6155, 0.0272, NAI
1, 1.5, 11.2055, 0.0283, NAI
1, 1.8, 12.63, 0.0316, NAI
1, 2.1, 13.9, 0.033, NAI
1, 2.4, 15.05, 0.034, NAI
1, 2.7, 16.095, 0.0353, NAI
1, 3, 17.045, 0.0363, NAI
2, 0, 0.0025305, 0.016, NAI
2, 0.3, 4.0265, 0.022, NAI
2, 0.6, 7.635, 0.0236, NAI
2, 0.9, 10.804, 0.0251, NAI
2, 1.2, 13.565, 0.0281, NAI
2, 1.5, 15.945, 0.0294, NAI
2, 1.8, 18.01, 0.0305, NAI
2, 2.1, 19.825, 0.0317, NAI
2, 2.4, 21.445, 0.033, NAI
2, 2.7, 22.915, 0.0341, NAI
2, 3, 24.235, 0.0354, NAI
3, 0, 0.0028565, 0.016, NAI
3, 0.3, 4.8745, 0.0228, NAI
3, 0.6, 9.3705, 0.0243, NAI
3, 0.9, 13.445, 0.0278, NAI
3, 1.2, 17.12, 0.0292, NAI
3, 1.5, 20.37, 0.0302, NAI
3, 1.8, 23.24, 0.0315, NAI
3, 2.1, 25.75, 0.0326, NAI
3, 2.4, 27.98, 0.0339, NAI
3, 2.7, 29.96, 0.0352, NAI
3, 3, 31.73, 0.0362, NAI
Data save completed.
Do you want to perform measurement again?

3-24 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep Measurements

The following program example executes the synchronous sweep measurement


using two sweep sources. This example measures MOSFET Id-Vg characteristics.
Table 3-7 Staircase Sweep Measurement Example 3

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 11
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Vg (V), Id (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data5.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd1 As Double = 0 ’13


Dim vd2 As Double = 2
Dim idcomp As Double = 0.05
Dim pd_comp As Double = 0.1
Dim vg1 As Double = vd1
Dim vg2 As Double = vd2
Dim igcomp As Double = 0.01
Dim pg_comp As Double = 0.05
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim rep As Integer = nop1
Dim ret_val As String() ’25
Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim sc(nop1) As Double
Dim md(nop1) As Double
Dim st(nop1) As String
Dim tm(nop1) As Double
B1500.WriteLine("FMT 1,1") ’ ASCII<CRLF EOI> w/sweep source data ’33
B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 0") ’ sets filter off

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 24 Declares variables used to set the source output, and sets the value.

25 to 32 Declares variables used to read the measurement data.

33 to 36 Sets the data output format, time stamp data output mode, and A/D converter. Also sets
the SMU filter off.

Agilent B1500 Programming Guide, Edition 4 3-25


Programming Examples
Staircase Sweep Measurements

B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’38
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("MM 2," & t(0)) ’2: staircase sweep measurement
B1500.WriteLine("CMM " & t(0) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(0) & ",0") ’0: auto ranging
B1500.WriteLine("WT " & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WM 2,1") ’ stops at any abnormal
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

B1500.WriteLine("WV " & t(0) & ",1,0," & vd1 & "," & vd2 & "," & nop1 & "," &
idcomp & "," & pd_comp)
B1500.WriteLine("WSV " & t(1) & ",0," & vg1 & "," & vg2 & "," & igcomp & "," &
pg_comp)
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?") : rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True) ’55
If rep <> nop1 * 3 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray()
For i = 0 To nop1 - 1
data1 = ret_val(i * 3)
data2 = ret_val(i * 3 + 1)
data3 = ret_val(i * 3 + 2)
data1 = Right(data1, 12) : tm(i) = Val(data1)
st(i) = Left(data2, 3)
data2 = Right(data2, 12) : md(i) = Val(data2)
data3 = Right(data3, 12) : sc(i) = Val(data3)
data(j, i) = Chr(13) & Chr(10) & sc(i) & ", " & md(i) * 1000 & ", " & tm(i)
& ", " & st(i)
Next i ’68

Line Description

38 to 42 Applies voltage to device. And sets the measurement mode, channel measurement
mode, and measurement range.

43 to 46 Sets the timing parameters and sweep mode of the staircase sweep source. And checks
if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

48 to 68 Sets the sweep sources, applies voltage to device, resets time stamp, and performs the
staircase sweep measurement. And stores the returned data into the ret_val string array
variable. Finally, stores the measured data into the data array.
55 to 56 Checks number of returned data. If it is not correct, forces 0 V and goes to Check_nop.

67 Stores the measured data into the data array.

3-26 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep Measurements

B1500.WriteLine("DZ") ’70
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’74
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop:
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "") ’80
End Sub

Line Description

70 to 72 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

75 to 76 Displays a message box to show an error message if the error is detected.


80 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Vg (V), Id (mA), Time (sec), Status


Result Example 0, 9.8235E-05, 0.0199, NAI
0.2, 1.464, 0.0292, NAI
0.4, 3.035, 0.0366, NAI
0.6, 4.7175, 0.0441, NAI
0.8, 6.511, 0.0515, NAI
1, 8.4075, 0.059, NAI
1.2, 10.41, 0.0636, NAI
1.4, 12.49, 0.0654, NAI
1.6, 14.665, 0.0671, NAI
1.8, 16.915, 0.0689, NAI
2, 19.235, 0.0707, NAI

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-27


Programming Examples
Pulsed Sweep Measurements

Pulsed Sweep Measurements


To perform pulsed sweep measurements, use the following commands.

Function Command Parameters


Enables channels CN [chnum ... [,chnum] ... ]
Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets pulse timing parameters PT hold,width,period [,tdelay]
Sets auto abort function [WM] abort[,post]
Sets pulsed sweep source PWV chnum,mode,range,base,start,
stop, step[,comp]
PWI

Sets synchronous sweep source a [WSV] chnum,range,start,stop


[,comp[,Pcomp]]
[WSI]
Forces constant voltage DV chnum,range,output
[,comp[,polarity[,crange]]]
Forces constant current DI
Sets voltage measurement range [RV] chnum,range
Sets current measurement range [RI] chnum,range
[RM] chnum,mode[,rate]
Sets measurement mode MM 4,chnum
Sets SMU operation mode [CMM] chnum,mode
Executes measurement XE

a. The WSV/WSI command must be entered after the PWV/PWI command.

NOTE Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. For the Agilent B1500, note that the high-resolution ADC cannot be
used for the pulsed measurements. The AAD/AIT/AV/WT command settings are
ignored.

3-28 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Sweep Measurements

A program example of a pulsed sweep measurement is shown below. This example


measures the bipolar transistor Ic-Vc characteristics.
Table 3-8 Pulsed Sweep Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 11
Dim nop2 As Integer = 3
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Ib (uA), Vc (V), Ic (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data6.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim v0 As Double = 0 ’13


Dim vc1 As Double = 0
Dim vc2 As Double = 3
Dim iccomp As Double = 0.05
Dim ib1 As Double = 0.00005
Dim ib2 As Double = 0.00015
Dim vbcomp As Double = 5
Dim ib As Double = ib1 ’secondary sweep output value
Dim d_ib As Double = 0 ’secondary sweep step value (delta)
If nop2 <> 1 Then d_ib = (ib2 - ib1) / (nop2 - 1)
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim rep As Integer = nop1
Dim ret_val As String() ’27
Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim sc(nop1) As Double
Dim md(nop1) As Double
Dim st(nop1) As String
Dim tm(nop1) As Double

B1500.WriteLine("FMT 1,1") ’ ASCII<CRLF EOI> w/sweep source data ’36


B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("FL 1") ’ sets filter on

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 26 Declares variables used to set the source output, and sets the value.
27 to 34 Declares variables used to read the measurement data.

36 to 38 Sets the data output format, time stamp data output mode, and SMU filter.

Agilent B1500 Programming Guide, Edition 4 3-29


Programming Examples
Pulsed Sweep Measurements

B1500.WriteLine("CL " & t(3)) ’40


B1500.WriteLine("DV " & t(0) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
Dim b_pt As String = "0.1,0.01,0.02" ’hold, width, period in sec
B1500.WriteLine("PT " & b_pt)
B1500.WriteLine("MM 4," & t(2)) ’4: pulsed sweep measurement
B1500.WriteLine("CMM " & t(2) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(2) & ",0") ’0: auto ranging
B1500.WriteLine("WM 2,1") ’ stops at any abnormal ’47

B1500.WriteLine("ERR? 1") : err = B1500.Read(True)


If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
For j = 0 To nop2 - 1 ’51
B1500.WriteLine("PWV " & t(2) & ",1,0," & v0 & "," & vc1 & "," & vc2 & ","
& nop1 & "," & iccomp)
B1500.WriteLine("DI " & t(1) & ",0," & ib & "," & vbcomp)
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?") : rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True) ’59
If rep <> nop1 * 3 Then B1500.WriteLine("DZ") : GoTo Check_nop
ret_val = B1500.ReadListAsStringArray()
For i = 0 To nop1 - 1
data1 = ret_val(i * 3)
data2 = ret_val(i * 3 + 1)
data3 = ret_val(i * 3 + 2)
data1 = Right(data1, 12) : tm(i) = Val(data1)
st(i) = Left(data2, 3)
data2 = Right(data2, 12) : md(i) = Val(data2)
data3 = Right(data3, 12) : sc(i) = Val(data3)
data(j, i) = Chr(13) & Chr(10) & ib * 1000000 & ", " & sc(i) & ", " &
md(i) * 1000 & ", " & tm(i) & ", " & st(i)
Next i
ib = ib + d_ib
Next j ’73

Line Description

40 Disables SMU assigned to t(3) that is not needed.

41 to 47 Applies voltage to device. And sets the pulse timing parameters, measurement mode,
channel measurement mode, measurement range, and sweep mode.
49 to 50 Checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

51 to 73 Sets the pulsed sweep source, applies voltage to device, resets time stamp, and
performs the pulsed sweep measurement. And stores the returned data into the ret_val
string array variable. Finally, stores the measured data into the data array.

59 to 60 Checks number of returned data. If it is not correct, forces 0 V and goes to Check_nop.

3-30 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Sweep Measurements

B1500.WriteLine("DZ") ’75
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’79
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop:
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "") ’85
End Sub

Line Description

75 to 77 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

80 to 81 Displays a message box to show an error message if the error is detected.


85 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Ib (uA), Vc (V), Ic (mA), Time (sec), Status


50, 0, -0.055, 0.1161, NDI
Result Example 50, 0.3, 8.98, 0.1361, NDI
50, 0.6, 9.745, 0.1561, NDI
50, 0.9, 9.77, 0.1761, NDI
50, 1.2, 9.84, 0.1961, NDI
50, 1.5, 9.87, 0.2161, NDI
50, 1.8, 9.895, 0.2361, NDI
50, 2.1, 9.96, 0.2561, NDI
50, 2.4, 9.94, 0.2761, NDI
50, 2.7, 9.955, 0.2961, NDI
50, 3, 9.98, 0.3161, NDI
100, 0, -0.1, 0.1129, NDI
100, 0.3, 15.76, 0.1329, NDI
100, 0.6, 18.2, 0.1529, NDI
100, 0.9, 18.86, 0.1729, NDI
100, 1.2, 18.99, 0.1929, NDI
100, 1.5, 19.105, 0.2129, NDI
100, 1.8, 19.17, 0.2329, NDI
100, 2.1, 19.2, 0.2529, NDI
100, 2.4, 19.27, 0.2729, NDI
100, 2.7, 19.33, 0.2929, NDI
100, 3, 19.395, 0.3129, NDI
150, 0, -0.15, 0.1139, NDI
150, 0.3, 21.055, 0.1339, NDI
150, 0.6, 24.625, 0.1539, NDI
150, 0.9, 26.595, 0.1739, NDI
150, 1.2, 27.38, 0.1939, NDI
150, 1.5, 27.625, 0.2139, NDI
150, 1.8, 27.785, 0.2339, NDI
150, 2.1, 27.915, 0.2539, NDI
150, 2.4, 28.07, 0.2739, NDI
150, 2.7, 28.18, 0.2939, NDI
150, 3, 28.275, 0.3139, NDI
Data save completed.
Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-31


Programming Examples
Staircase Sweep with Pulsed Bias Measurements

Staircase Sweep with Pulsed Bias Measurements


To perform staircase sweep with pulsed bias measurements, use the following
commands.

Function Command Parameters


Enables channels CN [chnum ... [,chnum] ... ]
Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets auto abort function [WM] abort[,post]
Sets voltage sweep source WV chnum,mode,range,start,stop,
Sets current sweep source WI step[,comp[,Pcomp]]
Sets synchronous sweep [WSV] chnum,range,start,stop
source a [WSI] [,comp[,Pcomp]]
Sets pulse timing parameters PT hold,width,period [,tdelay]
Forces pulse voltage PV chnum,range,base,pulse[,comp]
Forces pulse current PI chnum,range,base,pulse [,comp]
Forces constant voltage DV chnum,range,output
Forces constant current DI [,comp[,polarity[,crange]]]
Sets voltage measurement [RV] chnum,range
range
Sets current measurement [RI] chnum,range
range [RM] chnum,mode[,rate]
Sets measurement mode MM 5,chnum
Sets SMU operation mode [CMM] chnum,mode
Executes measurement XE
a. The WSV/WSI command must be entered after the WV/WI command.

NOTE Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. For the Agilent B1500, note that the high-resolution ADC cannot be
used for the pulsed measurements. The AAD/AIT/AV/WT command settings are
ignored.

3-32 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep with Pulsed Bias Measurements

A program example of a staircase sweep with pulsed bias measurement is shown


below. This example measures the bipolar transistor Ic-Vc characteristics.
Table 3-9 Staircase Sweep with Pulsed Bias Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 11
Dim nop2 As Integer = 3
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Ib (uA), Vc (V), Ic (mA), Time (sec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data7.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"
Dim vc1 As Double = 0 ’12
Dim vc2 As Double = 3
Dim iccomp As Double = 0.05
Dim pccomp As Double = 0.2
Dim i0 As Double = 0
Dim ib1 As Double = 0.00005
Dim ib2 As Double = 0.00015
Dim vbcomp As Double = 5
Dim ib As Double = ib1 ’secondary sweep output value
Dim d_ib As Double = 0 ’secondary sweep step value (delta)
If nop2 <> 1 Then d_ib = (ib2 - ib1) / (nop2 - 1)
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim rep As Integer = nop1
Dim ret_val As String() ’27
Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim sc(nop1) As Double
Dim md(nop1) As Double
Dim st(nop1) As String
Dim tm(nop1) As Double

B1500.WriteLine("FMT 1,1") ’ ASCII<CRLF EOI> w/sweep source data ’36


B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("FL 1") ’ sets filter on

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

12 to 26 Declares variables used to set the source output, and sets the value.
27 to 34 Declares variables used to read the measurement data.

36 to 38 Sets the data output format, time stamp data output mode, and A/D converter. Also sets
the SMU filter on.

Agilent B1500 Programming Guide, Edition 4 3-33


Programming Examples
Staircase Sweep with Pulsed Bias Measurements

B1500.WriteLine("CL " & t(3)) ’40


B1500.WriteLine("DV " & t(0) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
Dim b_pt As String = "0.1,0.01,0.02" ’hold, width, period in sec
B1500.WriteLine("PT " & b_pt)
B1500.WriteLine("MM 5," & t(2)) ’5: sweep with pulsed bias
B1500.WriteLine("CMM " & t(2) & ",1") ’1: current measurement
B1500.WriteLine("RI " & t(2) & ",0") ’0: auto ranging
B1500.WriteLine("WM 2,1") ’ stops at any abnormal ’47

B1500.WriteLine("ERR? 1") : err = B1500.Read(True)


If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
For j = 0 To nop2 - 1 ’51
B1500.WriteLine("WV " & t(2) & ",1,0," & vc1 & "," & vc2 & "," & nop1 & ","
& iccomp & "," & pccomp)
B1500.WriteLine("PI " & t(1) & ",0," & i0 & "," & ib & "," & vbcomp)
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?") : rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True) ’59
If rep <> nop1 * 3 Then B1500.WriteLine("DZ") : GoTo Check_nop
ret_val = B1500.ReadListAsStringArray()
For i = 0 To nop1 - 1
data1 = ret_val(i * 3)
data2 = ret_val(i * 3 + 1)
data3 = ret_val(i * 3 + 2)
data1 = Right(data1, 12) : tm(i) = Val(data1)
st(i) = Left(data2, 3)
data2 = Right(data2, 12) : md(i) = Val(data2)
data3 = Right(data3, 12) : sc(i) = Val(data3)
data(j, i) = Chr(13) & Chr(10) & ib * 1000000 & ", " & sc(i) & ", " &
md(i) * 1000 & ", " & tm(i) & ", " & st(i)
Next i
ib = ib + d_ib
Next j ’73

Line Description

40 Disables SMU assigned to t(3) that is not needed.

41 to 47 Applies voltage to device. And sets the pulse timing parameters, measurement mode,
channel measurement mode, measurement range, and sweep mode.
49 to 50 Checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

51 to 73 Sets the sweep source and the pulsed bias source, resets time stamp, and performs the
staircase sweep with pulsed bias measurement. And stores the returned data into the
ret_val string array variable. Finally, stores the measured data into the data array.

59 to 60 Checks number of returned data. If it is not correct, forces 0 V and goes to Check_nop.

3-34 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Staircase Sweep with Pulsed Bias Measurements

B1500.WriteLine("DZ") ’75
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’79
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop:
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "") ’85
End Sub

Line Description

75 to 77 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

80 to 81 Displays a message box to show an error message if the error is detected.


85 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Ib (uA), Vc (V), Ic (mA), Time (sec), Status


50, 0, -0.05, 0.119, NDI
Result Example 50, 0.3, 8.97, 0.139, NDI
50, 0.6, 9.725, 0.159, NDI
50, 0.9, 9.775, 0.179, NDI
50, 1.2, 9.815, 0.199, NDI
50, 1.5, 9.845, 0.219, NDI
50, 1.8, 9.87, 0.239, NDI
50, 2.1, 9.89, 0.259, NDI
50, 2.4, 9.92, 0.279, NDI
50, 2.7, 9.91, 0.299, NDI
50, 3, 9.965, 0.319, NDI
100, 0, -0.1, 0.113, NDI
100, 0.3, 15.73, 0.133, NDI
100, 0.6, 18.185, 0.153, NDI
100, 0.9, 18.8, 0.173, NDI
100, 1.2, 18.945, 0.193, NDI
100, 1.5, 19.025, 0.213, NDI
100, 1.8, 19.13, 0.233, NDI
100, 2.1, 19.175, 0.253, NDI
100, 2.4, 19.22, 0.273, NDI
100, 2.7, 19.315, 0.293, NDI
100, 3, 19.355, 0.313, NDI
150, 0, -0.15, 0.1162, NDI
150, 0.3, 21.04, 0.1362, NDI
150, 0.6, 24.6, 0.1562, NDI
150, 0.9, 26.575, 0.1762, NDI
150, 1.2, 27.335, 0.1962, NDI
150, 1.5, 27.565, 0.2162, NDI
150, 1.8, 27.745, 0.2362, NDI
150, 2.1, 27.835, 0.2562, NDI
150, 2.4, 28, 0.2762, NDI
150, 2.7, 28.1, 0.2962, NDI
150, 3, 28.165, 0.3162, NDI
Data save completed.
Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-35


Programming Examples
Quasi Pulsed Spot Measurements

Quasi Pulsed Spot Measurements


To perform quasi-pulsed spot measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]

Disables channels CL [chnum ... [,chnum] ... ]

Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets series resistor ON/OFF [SSR] chnum,mode

Sets integration time [AV] number[,mode]


(Agilent B1500 can use
AAD/AIT instead of AV.) [AAD] chnum[,type]

[AIT] type,mode[,N]

Sets detection interval [BDM] interval[,mode]


Sets timing parameters [BDT] hold,delay

Sets quasi-pulsed source BDV chnum,range,start,stop[,comp]

Forces constant voltage DV chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current DI

Sets voltage measurement range [RV] chnum,range

Sets current measurement range [RI] chnum,range

[RM] chnum,mode[,rate]

Sets measurement mode MM 9[,chnum]

Sets SMU operation mode [CMM] chnum,mode


Executes measurement XE

3-36 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Quasi Pulsed Spot Measurements

A program example of a spot measurement is shown below. This measures the


breakdown voltage of bipolar transistor.
Table 3-10 Quasi Pulsed Spot Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "BVceo (V), Status"
Dim fname As String = "C:\Agilent\prog_ex\data8.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vc1 As Double = 0 ’13


Dim vc2 As Double = 100
Dim iccomp As Double = 0.005
Dim hold As Double = 0
Dim delay As Double = 0
Dim interval As Double = 0
Dim mmode As Double = 0
Dim mrng As Integer = 0

B1500.WriteLine("FMT 1") ’22


B1500.WriteLine("CL " & t(1) & "," & t(3))
B1500.WriteLine("MM 9," & t(2))
B1500.WriteLine("BDT " & hold & "," & delay)
B1500.WriteLine("BDM " & interval & "," & mmode)
B1500.WriteLine("BDV " & t(2) & "," & mrng & "," & vc1 & "," & vc2 & "," &
iccomp)
B1500.WriteLine("DV " & t(0) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’28
B1500.WriteLine("XE")
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 20 Declares variables, and sets the value.


22 to 23 Sets the data output format. And disables SMUs assigned to t(1) and t(3) that are not
needed.

24 to 27 Sets the measurement mode, measurement timing parameters, measurement


conditions, and source output conditions.

28 to 31 Applies voltage to device, and performs the quasi pulsed spot measurement. And
checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

Agilent B1500 Programming Guide, Edition 4 3-37


Programming Examples
Quasi Pulsed Spot Measurements

Dim data1 As String = B1500.Read(True) ’33


Dim status As String = Left(data1, 3)
data1 = Right(data1, 12)
Dim meas As Double = Val(data1)
data(j, i) = Chr(13) & Chr(10) & meas & ", " & status

B1500.WriteLine("DZ") ’39
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’43
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

End Sub

Line Description

33 to 37 Reads the returned data and stores it into the data1 string variable. Finally, stores the
measured data into the data array.

39 to 41 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

43 to 46 Displays a message box to show an error message if the error is detected.

Measurement BVceo (V), Status


Result Example 55.87, CDV

Data save completed.

Do you want to perform measurement again?

3-38 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Linear Search Measurements

Linear Search Measurements


To perform linear search measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets integration time [AV] number[,mode]
(Agilent B1500 can use
[AAD] chnum[,type]
AAD/AIT instead of AV.)
[AIT] type,mode[,N]
Sets measurement mode MM 14
Selects output data [LSVM] output_data
Sets timing parameters [LSTM] hold,delay
Sets auto abort function [LSM] abort[,post]
Sets current search or LGI or chnum,mode,range,target
voltage search condition LGV
Sets voltage source or LSV or chnum,range,start,stop,step
current source LSI [,comp]
Sets synchronous voltage [LSSV] or chnum,polarity,offset[,comp]
source or current source [LSSI]
Forces constant voltage DV chnum,range,output
[,comp[,polarity[,crange]]]
Forces constant current DI
Executes measurement XE

The LSV and LSI commands clear the previous source settings.
Send the LSI command before sending the LSSI command.
Send the LSV command before sending the LSSV command.
The LSI/LSSV commands or LSV/LSSI commands cannot be used together.

Agilent B1500 Programming Guide, Edition 4 3-39


Programming Examples
Linear Search Measurements

A program example of a linear search measurement is shown below. This example


measures the MOSFET threshold voltage.
Table 3-11 Linear Search Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Vth (mV), Id (uA), Status"
Dim fname As String = "C:\Agilent\prog_ex\data9.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vg1 As Double = 0 ’13


Dim vg2 As Double = 3
Dim vdel As Double = 0.01
Dim idcomp As Double = 0.01
Dim igcomp As Double = 0.01
Dim orng As Integer = 12 ’12: 20 V limited auto ranging
Dim mrng As Integer = 13 ’13: 100 nA limited auto ranging
Dim hold As Double = 0
Dim delay As Double = 0
Dim judge As Integer = 1 ’ 1: result>=target
Dim tgt As Double = 0.001 ’ target current
Dim posneg As Integer = 1 ’ 1: positive
Dim offset As Double = 0 ’ offset voltage

B1500.WriteLine("FMT 1") ’27


B1500.WriteLine("MM 14") ’ linear search measurement
B1500.WriteLine("LSM 2,3") ’ stops at any abnormal
B1500.WriteLine("LSVM 1") ’ returns search data and sense data
B1500.WriteLine("LSTM " & hold & "," & delay)
B1500.WriteLine("LGI " & t(0) & "," & judge & "," & mrng & "," & tgt)
B1500.WriteLine("LSV " & t(1) & "," & orng & "," & vg1 & "," & vg2 & "," & vdel
& "," & igcomp)
B1500.WriteLine("LSSV " & t(0) & "," & posneg & "," & offset & "," & idcomp)

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.
13 to 25 Declares variables, and sets the value.

27 to 28 Sets the data output format and the measurement mode.

29 to 32 Sets the linear search measurement conditions.


33 to 34 Sets the linear search sources, primary source and synchronous source.

3-40 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Linear Search Measurements

B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’36
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("XE")
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

Dim ret_val As String() = B1500.ReadListAsStringArray() ’42


Dim data1 As String = ret_val(0)
Dim data2 As String = ret_val(1)
data1 = Right(data1, 12)
Dim dsearch As Double = Val(data1)
Dim status As String = Left(data2, 3)
data2 = Right(data2, 12)
Dim dsense As Double = Val(data2)

data(j, i) = Chr(13) & Chr(10) & dsearch * 1000 & ", " & dsense * 1000000 & ",
" & status

B1500.WriteLine("DZ") ’53
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’57
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

End Sub

Line Description

36 to 40 Applies voltage to device, and performs the linear search measurement. And checks if
an error occurred. If an error is detected, forces 0 V and goes to Check_err.

42 to 51 Reads the returned data and stores it into the ret_val string array variable. Finally, stores
the measured data into the data array.

53 to 55 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.
57 to 60 Displays a message box to show an error message if the error is detected.

Measurement Vth (mV), Id (uA), Status


Result Example 140, 1013.85, NAI

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-41


Programming Examples
Binary Search Measurements

Binary Search Measurements


To perform binary search measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets integration time [AV] number[,mode]
(Agilent B1500 can use
[AAD] chnum[,type]
AAD/AIT instead of AV.)
[AIT] type,mode[,N]
Sets measurement mode MM 15
Selects output data [BSVM] output_data
Sets timing parameters [BST] hold,delay
Sets source control mode BSM mode,abort[,post]
Sets current search or BGI or chnum,mode,condition,range,
voltage search condition BGV target
Sets voltage source or BSV or chnum,range,start,stop[,comp]
current source BSI
Sets synchronous voltage [BSSV] or chnum,polarity,offset[,comp]
source or current source [BSSI]
Forces constant voltage DV chnum,range,output
[,comp[,polarity[,crange]]]
Forces constant current DI
Executes measurement XE

The BSV and BSI commands clear the previous source settings.
Send the BSI command before sending the BSSI command.
Send the BSV command before sending the BSSV command.
The BSI/BSSV commands or BSV/BSSI commands cannot be used together.

3-42 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Binary Search Measurements

A program example of a binary search measurement is shown below. This example


measures the MOSFET threshold voltage.
Table 3-12 Binary Search Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Vth (mV), Id (uA), Status"
Dim fname As String = "C:\Agilent\prog_ex\data10.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vg1 As Double = 0 ’13


Dim vg2 As Double = 3
Dim idcomp As Double = 0.01
Dim igcomp As Double = 0.01
Dim orng As Integer = 12 ’12: 20 V limited auto ranging
Dim mrng As Integer = 13 ’13: 100 nA limited auto ranging
Dim hold As Double = 0
Dim delay As Double = 0
Dim mode As Integer = 0 ’ 0: limit, 1: repeat
Dim judge As Double = 0.000001 ’ limit value in A
Dim tgt As Double = 0.001 ’ target current
Dim posneg As Integer = 1 ’ 1: positive
Dim offset As Double = 0 ’ offset voltage

B1500.WriteLine("FMT 1") ’27


B1500.WriteLine("MM 15") ’ binary search measurement
B1500.WriteLine("BSM 1,1") ’ cautious mode, abort off
B1500.WriteLine("BSVM 1") ’ returns search data and sense data
B1500.WriteLine("BST " & hold & "," & delay)
B1500.WriteLine("BGI " & t(0) & "," & mode & "," & judge & "," & mrng & "," &
tgt)
B1500.WriteLine("BSV " & t(1) & "," & orng & "," & vg1 & "," & vg2 & "," &
igcomp)
B1500.WriteLine("BSSV " & t(0) & "," & posneg & "," & offset & "," & idcomp)

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 25 Declares variables, and sets the value.

27 to 28 Sets the data output format and the measurement mode.

29 to 32 Sets the binary search measurement conditions.

33 to 34 Sets the binary search sources, primary source and synchronous source.

Agilent B1500 Programming Guide, Edition 4 3-43


Programming Examples
Binary Search Measurements

B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’36
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("XE")
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

Dim ret_val As String() = B1500.ReadListAsStringArray() ’42


Dim data1 As String = ret_val(0)
Dim data2 As String = ret_val(1)
data1 = Right(data1, 12)
Dim dsearch As Double = Val(data1)
Dim status As String = Left(data2, 3)
data2 = Right(data2, 12)
Dim dsense As Double = Val(data2)

data(j, i) = Chr(13) & Chr(10) & dsearch * 1000 & ", " & dsense * 1000000 & ",
" & status

B1500.WriteLine("DZ") ’53
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’57
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

End Sub

Line Description

36 to 40 Applies voltage to device, and performs the binary search measurement. And checks if
an error occurred. If an error is detected, forces 0 V and goes to Check_err.

42 to 51 Reads the returned data and stores it into the ret_val string array variable. Finally, stores
the measured data into the data array.

53 to 55 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.
57 to 60 Displays a message box to show an error message if the error is detected.

Measurement Vth (mV), Id (uA), Status


Result Example 139, 999.15, NAI

Data save completed.

Do you want to perform measurement again?

3-44 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Multi Channel Sweep Measurements

Multi Channel Sweep Measurements


To perform multi channel sweep measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets integration time [AV] number[,mode]
(Agilent B1500 can use
[AAD] chnum[,type]
AAD/AIT instead of AV.)
[AIT] type,mode[,N]
Sets sweep source timing [WT] hold,delay
parameter [,sdelay[,tdelay[,mdelay]]]
Sets auto abort function [WM] abort[,post]
Sets voltage sweep source WV chnum,mode,range,start,stop,step
[,comp[,Pcomp]]
Sets current sweep source WI
Sets synchronous sweep WNX N,chnum,mode,range,start,stop
source a [,comp[,Pcomp]]

Forces constant voltage DV chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current DI
Sets voltage measurement [RV] chnum,range
range
Sets current measurement [RI] chnum,range
range
[RM] chnum,mode[,rate]
Sets measurement mode MM 16,chnum[,chnum ... [,chnum] ... ]
Sets SMU operation mode [CMM] chnum,mode
Executes measurement XE
a. The WNX command must be entered after the WV/WI command.

Agilent B1500 Programming Guide, Edition 4 3-45


Programming Examples
Multi Channel Sweep Measurements

NOTE Sweep sources simultaneously start output by a trigger such as the XE command.
However, if a sweep source sets power compliance or forces logarithmic sweep
current, the sweep sources start output in the order specified by the WNX’s N value.
Then the first output is forced by the channel set by the WI or WV command.
If you use multiple measurement channels, the channels that use the high speed
ADC with the fixed ranging mode start measurement simultaneously, then other
channels start measurement in the order defined in the MM command.

A program example of a multi channel sweep measurement is shown below. This


example measures the bipolar transistor Ib-Vb and Ic-Vb characteristics.
Table 3-13 Multi Channel Sweep Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 11
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Vb (V), Ib (uA), Tb (sec), Stat_b, Ic (mA), Tc (sec),
Stat_c"
Dim fname As String = "C:\Agilent\prog_ex\data11.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vc As Double = 3 ’13


Dim vb1 As Double = 0.3
Dim vb2 As Double = 0.8
Dim ibcomp As Double = 0.001
Dim pbcomp As Double = 0.001
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim rep As Integer = nop1

Dim ret_val As String() ’23


Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim data4 As String
Dim data5 As String

Line Description
2 to 11 Declares variables used through the project. And sets the proper values.
13 to 21 Declares variables used to set the source output, and sets the value.
23 to 28 Declares variables used to read the measurement data.

3-46 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Multi Channel Sweep Measurements

Dim sc(nop1) As Double ’30


Dim md1(nop1) As Double
Dim st1(nop1) As String
Dim tm1(nop1) As Double
Dim md2(nop1) As Double
Dim st2(nop1) As String
Dim tm2(nop1) As Double

B1500.WriteLine("FMT 1,1") ’ ASCII<CRLF EOI> w/sweep source data ’38


B1500.WriteLine("TSC 1") ’ enables time stamp output
B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 1") ’ sets filter on
B1500.WriteLine("MM 16," & t(1) & "," & t(2)) ’16: multi-ch sweep
B1500.WriteLine("CMM" & t(1) & ",1") ’1: current measurement
B1500.WriteLine("CMM" & t(2) & ",1") ’1: current measurement
B1500.WriteLine("RI" & t(1) & ",-17") ’-17: 1 mA fixed range
B1500.WriteLine("RI" & t(2) & ",-19") ’-19: 100 mA fixed range
B1500.WriteLine("WT" & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WM 2,1") ’ stops at any abnormal
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

B1500.WriteLine("WV" & t(1) & ",1,0," & vb1 & "," & vb2 & "," & nop1 & "," &
ibcomp & "," & pbcomp) ’52
B1500.WriteLine("DV" & t(2) & ",0," & vc & ",0.1")
B1500.WriteLine("DV" & t(0) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?") : rep = B1500.Read(True) ’57
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 5 Then B1500.WriteLine("DZ") : GoTo Check_nop
ret_val = B1500.ReadListAsStringArray() ’62

Line Description

30 to 36 Declares variables used to read the measurement data.

38 to 50 Sets the data output format, time stamp data output mode, A/D converter, SMU filter,
measurement mode, channel measurement mode, and measurement range. Also sets
the timing parameters and sweep mode of the staircase sweep source. And checks if an
error occurred. If an error is detected, forces 0 V and goes to Check_err.

52 to 56 Sets the sweep sources, applies voltage to device, resets time stamp, and performs the
multi channel sweep measurement.
57 to 61 Waits until the measurement is completed, and checks if an error occurred. If an error is
detected, forces 0 V and goes to Check_err. Also checks number of returned data. If it
is not correct, forces 0 V and goes to Check_nop.

62 Stores the returned data into the ret_val string array variable.

Agilent B1500 Programming Guide, Edition 4 3-47


Programming Examples
Multi Channel Sweep Measurements

For i = 0 To nop1 - 1 ’64


data1 = ret_val(i * 5)
data2 = ret_val(i * 5 + 1)
data3 = ret_val(i * 5 + 2)
data4 = ret_val(i * 5 + 3)
data5 = ret_val(i * 5 + 4)
data1 = Right(data1, 12) : tm1(i) = Val(data1)
st1(i) = Left(data2, 3)
data2 = Right(data2, 12) : md1(i) = Val(data2)
data3 = Right(data1, 12) : tm2(i) = Val(data3)
st2(i) = Left(data4, 3)
data4 = Right(data4, 12) : md2(i) = Val(data4)
data5 = Right(data5, 12) : sc(i) = Val(data5)
data(j, i) = Chr(13) & Chr(10) & sc(i) & ", " & md1(i) * 1000000 & ", " &
tm1(i) & ", " & st1(i) & ", " & md2(i) * 1000 & ", " & tm2(i) & ", " & st2(i)
Next i

B1500.WriteLine("DZ") ’80
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’84
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop:
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "") ’90
End Sub

Line Description
64 to 78 Picks the measurement data out and stores it into the data array.
80 to 82 Applies 0 V from all channels and transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.
84 to 90 Displays a message box to show an error message if the error is detected. Also displays
a message box to show an error message if the number of returned data is not correct.

Measurement Vb (V), Ib (uA), Tb (sec), Stat_b, Ic (mA), Tc (sec), Stat_c


Result Example 0.3, 0.05, 0.0046, NBI, 0, 0.0046, NDI
0.35, 0.05, 0.0076, NBI, 0, 0.0076, NDI
0.4, 0.05, 0.0106, NBI, 0, 0.0106, NDI
0.45, 0.05, 0.0135, NBI, 0, 0.0135, NDI
0.5, 0.05, 0.0165, NBI, 0, 0.0165, NDI
0.55, 0.1, 0.0195, NBI, 0.01, 0.0195, NDI
0.6, 0.45, 0.0224, NBI, 0.085, 0.0224, NDI
0.65, 2.95, 0.0254, NBI, 0.58, 0.0254, NDI
0.7, 18.45, 0.0284, NBI, 3.72, 0.0284, NDI
0.75, 90.85, 0.0313, NBI, 17.635, 0.0313, NDI
0.8, 290.5, 0.0343, NBI, 50.15, 0.0343, NDI

Data save completed.


Do you want to perform measurement again?

3-48 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Sampling Measurements

Sampling Measurements
To make sampling measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]
Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets series resistor ON/OFF [SSR] chnum,mode
Sets integration time (Agilent [AV] number[,mode]
B1500 can use AAD/AIT
[AAD] chnum[,type]
instead of AV.)
[AIT] type,mode[,N]
Sets sampling mode [ML] mode
Sets timing parameters MT h_bias,interval,points[,h_base]
Sets constant voltage source MV chnum,range,base,bias[,comp]
Sets constant current source MI
Sets pulse voltage source MSP chnum[,post[,base]]
Clears sampling source setup [MCC] [chnum ... [,chnum] ... ]
Sets automatic abort function [MSC] abort[,post]
Forces constant voltage [DV] chnum,range,output
[,comp[,polarity[,crange]]]
Forces constant current [DI]
Sets voltage measurement range [RV] chnum,range
Sets current measurement range [RI] chnum,range
[RM] chnum,mode[,rate]
Sets measurement mode MM 10,chnum[,chnum ..[,chnum] ..]
Sets SMU measurement mode [CMM] chnum,mode
Executes measurement XE

Agilent B1500 Programming Guide, Edition 4 3-49


Programming Examples
Sampling Measurements

Table 3-14 explains example subprogram that performs linear sampling


measurement. This example measures current that flows to resistors R1 and R2, and
then calculates the resistance.
Table 3-14 Sampling Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 30
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Index, I1 (mA), R1 (ohm), St1, I2 (mA), R2 (ohm), St2"
Dim fname As String = "C:\Agilent\prog_ex\data17.txt"
Dim title As String = "Sampling Measurement Result"
Dim msg As String = "No error."
Dim err As Integer = 0

Dim base As Double = 0 ’13


Dim bias As Double = 0.1
Dim icomp As Double = 0.1
Dim vlout As Double = 0
Dim ilcomp As Double = 0.1
Dim base_h As Double = 0
Dim bias_h As Double = 0.1
Dim interval As Double = 0.05
Dim mch() As Integer = {t(1), t(2), 0}
Dim range() As Double = {0, 0}
Dim rep As Integer = nop1 ’23
Dim ret_val As String()
Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim id(nop1) As Double
Dim d1(nop1) As Double
Dim d2(nop1) As Double
Dim r1(nop1) As Double
Dim r2(nop1) As Double
Dim s1(nop1) As String
Dim s2(nop1) As String ’34

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 22 Declares variables used to set the source output, and sets the value.

23 to 34 Declares variables used to read the measurement data.

3-50 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Sampling Measurements

B1500.WriteLine("FMT 1,1") ’36


B1500.WriteLine("FL 1") ’ sets filter on for all channel
B1500.WriteLine("AAD " & t(1) & ", 1") ’ sets high resolution ADC for t(1)
B1500.WriteLine("AAD " & t(2) & ", 1") ’ sets high resolution ADC for t(2)
B1500.WriteLine("AIT 1,1,2") ’ sets number of averaging samples
B1500.WriteLine("AZ 0") ’ sets auto zero off

B1500.WriteLine("MT " & bias_h & "," & interval & "," & nop1 & "," & base_h) ’43
B1500.WriteLine("MV " & t(1) & ",0," & base & "," & bias & "," & icomp)
’t(1)--> High1
B1500.WriteLine("MV " & t(2) & ",0," & base & "," & bias & "," & icomp)
’t(2)--> High2
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

B1500.WriteLine("DV " & t(0) & ",0," & vlout & "," & ilcomp & ", 0") ’51
’t(0)--> Low
B1500.WriteLine("MM 10," & mch(0) & "," & mch(1))
B1500.WriteLine("RI " & mch(0) & "," & range(0))
B1500.WriteLine("RI " & mch(1) & "," & range(1))
B1500.WriteLine("TSR") ’56
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?") : rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True) ’59
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True) ’61
If rep <> nop1 * 3 Then B1500.WriteLine("DZ") : GoTo Check_nop

Line Description

36 Sets the data output format. The source output data will be also returned.

37 to 40 Sets the SMU filter and the A/D converter integration time.

41 Sets the SMU auto zero function off.

43 to 49 Sets the sampling timing parameters and the constant voltage sources. And checks if an
error occurred. If an error is detected, forces 0 V and goes to Check_err.
51 to 55 Applies 0 V to the device low terminal, sets the sampling measurement mode, and sets
the current measurement range.

56 to 58 Resets the time stamp, and perform the sampling measurement.

59 to 60 Forces 0 V and goes to Check_err if an error is detected.

61 to 62 Forces 0 V and goes to Check_nop if the number of returned data is not correct (nop1).

Agilent B1500 Programming Guide, Edition 4 3-51


Programming Examples
Sampling Measurements

ret_val = B1500.ReadListAsStringArray() ’64


For i = 0 To nop1 - 1
data1 = ret_val(i * 3)
data2 = ret_val(i * 3 + 1)
data3 = ret_val(i * 3 + 2)
s1(i) = Left(data2, 3)
s2(i) = Left(data3, 3)
data1 = Right(data1, 12) : id(i) = Val(data1)
data2 = Right(data2, 12) : d1(i) = Val(data2)
data3 = Right(data3, 12) : d2(i) = Val(data3)
r1(i) = Math.Round(bias / d1(i), 3)
r2(i) = Math.Round(bias / d2(i), 3)
data(j, i) = Chr(13) & Chr(10) & id(i) & ", " & d1(i) * 1000 & ", " & r1(i) &
", " & s1(i) & ", " & d2(i) * 1000 & ", " & r2(i) & ", " & s2(i)
Next i

B1500.WriteLine("DZ") ’79
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’83
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’88
MsgBox("No. of data: " & rep & " (not " & nop1 * 3 & ")", vbOKOnly, "")
End Sub

Line Description

64 to 77 Reads the returned data and stores it into the ret_val string array variable. Finally, stores
the measured data into the data array.

79 to 81 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

83 to 86 Displays a message box to show an error message if the error is detected.


88 to 90 Displays a message box to show an error message if the number of returned data is not
correct (nop1).

3-52 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Sampling Measurements

Measurement Index, I1 (mA), R1 (ohm), St1, I2 (mA), R2 (ohm), St2


Result Example 1, 10.41, 9.606, NBI, 9.465, 10.565, NDI
2, 10.41, 9.606, NBI, 9.465, 10.565, NDI
3, 10.41, 9.606, NBI, 9.466, 10.564, NDI
4, 10.41, 9.606, NBI, 9.464, 10.566, NDI
5, 10.41, 9.606, NBI, 9.465, 10.565, NDI
6, 10.42, 9.597, NBI, 9.465, 10.565, NDI
7, 10.41, 9.606, NBI, 9.462, 10.569, NDI
8, 10.41, 9.606, NBI, 9.463, 10.567, NDI
9, 10.41, 9.606, NBI, 9.464, 10.566, NDI
10, 10.41, 9.606, NBI, 9.465, 10.565, NDI
11, 10.41, 9.606, NBI, 9.468, 10.562, NDI
12, 10.41, 9.606, NBI, 9.464, 10.566, NDI
13, 10.41, 9.606, NBI, 9.467, 10.563, NDI
14, 10.41, 9.606, NBI, 9.464, 10.566, NDI
15, 10.41, 9.606, NBI, 9.466, 10.564, NDI
16, 10.41, 9.606, NBI, 9.466, 10.564, NDI
17, 10.41, 9.606, NBI, 9.468, 10.562, NDI
18, 10.41, 9.606, NBI, 9.465, 10.565, NDI
19, 10.42, 9.597, NBI, 9.465, 10.565, NDI
20, 10.41, 9.606, NBI, 9.467, 10.563, NDI
21, 10.41, 9.606, NBI, 9.466, 10.564, NDI
22, 10.41, 9.606, NBI, 9.466, 10.564, NDI
23, 10.4, 9.615, NBI, 9.466, 10.564, NDI
24, 10.41, 9.606, NBI, 9.466, 10.564, NDI
25, 10.41, 9.606, NBI, 9.466, 10.564, NDI
26, 10.41, 9.606, NBI, 9.467, 10.563, NDI
27, 10.41, 9.606, NBI, 9.466, 10.564, NDI
28, 10.41, 9.606, NBI, 9.467, 10.563, NDI
29, 10.41, 9.606, NBI, 9.467, 10.563, NDI
30, 10.4, 9.615, NBI, 9.468, 10.562, NDI

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-53


Programming Examples
Quasi-static CV Measurements

Quasi-static CV Measurements
To make quasi-static CV measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]

Disables channels CL [chnum ... [,chnum] ... ]

Sets filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets QSCV operation mode [QSC] mode

Sets offset cancel ON/OFF [QSZ] mode


or performs capacitance
offset measurement

Sets voltage sweep source QSV chnum,mode,vrange,start,stop


,cvoltage,step[,Icomp]

Sets time parameters QST cinteg,linteg,hold,delay1[,delay2]

Sets leak current data output [QSL] data,compen


and compensation ON/OFF

Sets measurement range [QSR] range

Sets QSCV smart operation [QSO] mode[,chnum[,Vcomp]]

Sets automatic abort function [QSM] abort[,post]


Sets measurement mode MM 13[,chnum]

Forces constant voltage [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current [DI]

Executes measurement XE

3-54 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Quasi-static CV Measurements

A program example of quasi-static CV measurement is shown below. This example


measures the gate capacitance of MOSFET. This program example uses three SMUs
directly connected to the DUT and a SMU connected to the DUT through the
SMU/CMU unify unit (SCUU).
Table 3-15 Quasi-static CV Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim value As String = "Vg (V), Cgb (pF), C-status, Ileak (pA), I-status, Time
(sec)"
Dim fname As String = "C:\Agilent\prog_ex\data21.txt"
Dim title As String = "QSCV Measurement Result"
Dim msg As String = "No error."
Dim err As Integer = 0

Dim vg1 As Double = 3.2 ’10


Dim vg2 As Double = -7.2
Dim vstep As Double = 0.2
Dim gstep As Integer = Math.Round(Math.Abs(vg2 - vg1) / Math.Abs(vstep)) - 1
Dim cvoltage As Double = 0.25
Dim icomp As Double = 0.1
Dim swp As Integer = 1
Dim hold As Double = 5
Dim delay1 As Double = 0.0
Dim delay2 As Double = 0.0
Dim cinteg As Double = 0.1
Dim linteg As Double = 0.1
Dim range As Integer = -10

Dim nop1 As Integer = gstep ’24


Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim rep As Integer
Dim ret_val As String()
Dim data1 As String
Dim data2 As String
Dim data3 As String
Dim data4 As String
Dim sc(nop1) As Double
Dim md1(nop1) As Double
Dim st1(nop1) As String
Dim md2(nop1) As Double
Dim st2(nop1) As String
Dim tm(nop1) As Double ’38

Line Description

2 to 8 Declares variables used through the project. And sets the proper values.

10 to 22 Declares variables used to set the source output, and sets the value.
24 to 38 Declares variables used to read the measurement data.

Agilent B1500 Programming Guide, Edition 4 3-55


Programming Examples
Quasi-static CV Measurements

B1500.Timeout = 60000 ’ B1500 timeout = 60 seconds ’40

B1500.WriteLine("FMT 1,1") ’ ASCII<CRLF EOI> w/sweep source data


B1500.WriteLine("TSC 1") ’ enables time stamp output

Dim cmu_ch As Integer = 7 ’CMU: ch7 ’45


B1500.WriteLine("CN " & cmu_ch) ’CMUH-->gate, CMUL-->substrate
B1500.WriteLine("SSP " & cmu_ch & ", 2") ’SCUU:force2 connect,force1 open

B1500.WriteLine("MM 13," & t(1)) ’13: QSCV measurement,t(1)-->gate


B1500.WriteLine("QSC 0") ’Normal QSCV operation
B1500.WriteLine("QSL 1,1") ’Ileak DataOn, CompenOn
B1500.WriteLine("QSM 2,1") ’AbortOn, StartValue
B1500.WriteLine("QSR " & range)
B1500.WriteLine("QST " & cinteg & "," & linteg & "," & hold & "," & delay1 & "," &
delay2)
B1500.WriteLine("QSV " & t(1) & "," & swp & ",0," & vg1 & "," & vg2 & "," &
cvoltage & "," & gstep & "," & icomp)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err ’57

B1500.WriteLine("QSZ 0")
Dim rbx As Integer
rbx = MsgBox("Do you want to perform offset cancel?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("QSZ 2")
ret_val = B1500.ReadListAsStringArray()
B1500.WriteLine("*OPC?") : rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
data1 = ret_val(0) : data1 = Right(data1, 12) : md1(0) = Val(data1)
Console.WriteLine("Offset data = " & md1(0) * 1000000000000.0 & "pF" & Chr(10))
MsgBox("Offset data = " & md1(0) * 1000000000000.0 & "pF", vbOKOnly, "")
B1500.WriteLine("QSZ 1")
End If ’74

Line Description

42 to 43 Sets the data output format and the time stamp data output mode.

45 to 47 The lines are used to enable the SMU connected to the SCUU Force2/Sense2.

49 to 57 Sets the quasi-static CV measurement condition. And checks if an error occurred. If an


error is detected, forces 0 V and goes to Check_err.

59 to 74 Sets the capacitance offset cancel to OFF. And displays a message box that asks if you
perform the offset cancel. If you click Yes, the program displays a message box that
prompts you to open the measurement terminals. Clicking OK starts the offset
measurement. After the measurement, the offset data is displayed on the console
window and the message box. Finally, the capacitance offset cancel is set to ON.

3-56 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Quasi-static CV Measurements

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "") ’76


Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source
B1500.WriteLine("DV " & t(3) & ",0,0,0.1,0") ’t(3)--> substrate
B1500.WriteLine("TSR")
B1500.WriteLine("XE")
B1500.WriteLine("*OPC?") : rep = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 4 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray() ’89


For i = 0 To nop1 - 1
data1 = ret_val(i * 4)
data2 = ret_val(i * 4 + 1)
data3 = ret_val(i * 4 + 2)
data4 = ret_val(i * 4 + 3)
data1 = Right(data1, 12) : tm(i) = Val(data1)
st1(i) = Left(data2, 3)
data2 = Right(data2, 12) : md1(i) = Val(data2)
st2(i) = Left(data3, 3)
data3 = Right(data3, 12) : md2(i) = Val(data3)
data4 = Right(data4, 12) : sc(i) = Val(data4)
data(j, i) = Chr(13) & Chr(10) & sc(i) & ", " & md2(i) * 1000000000000.0 & ", "
& st2(i) & ", " & md1(i) * 1000000000000.0 & ", " & st1(i) & ", " & tm(i)
Next i

B1500.WriteLine("DZ") ’104
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’108
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’113
MsgBox("No. of data: " & rep & " (not " & nop1 * 6 & ")", vbOKOnly, "")
End Sub

Line Description

76 to 87 Displays a message box that prompts you to connect DUT. Clicking OK applies voltage
to the device, resets the time stamp, and performs the quasi-static CV measurement.

89 to 102 Stores the returned data into the ret_val string array variable. Finally, stores the
measured data into the data array.

104 to 105 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

Agilent B1500 Programming Guide, Edition 4 3-57


Programming Examples
Quasi-static CV Measurements

Measurement Vg (V), Cgb (pF), C-status, Ileak (pA), I-status, Time (sec)
Result Example 3, 2.3085, NCC, -0.259, NCI, 5.10526
2.8, 3.1277, NCC, 0.298, NCI, 5.41159
2.6, 3.1034, NCC, 0.241, NCI, 5.71947
2.4, 3.1334, NCC, 0.278, NCI, 6.02741
2.2, 3.1314, NCC, 0.255, NCI, 6.33532
2, 3.116, NCC, 0.232, NCI, 6.64316
1.8, 3.1193, NCC, 0.215, NCI, 6.95102
1.6, 3.1218, NCC, 0.222, NCI, 7.25891
1.4, 3.106, NCC, 0.18, NCI, 7.56681
1.2, 3.1303, NCC, 0.171, NCI, 7.87471
1, 3.1317, NCC, 0.184, NCI, 8.18262
0.8, 3.1096, NCC, 0.168, NCI, 8.49048
0.6, 3.1235, NCC, 0.185, NCI, 8.79832
0.4, 3.085, NCC, 0.148, NCI, 9.10628
0.2, 3.1028, NCC, 0.164, NCI, 9.41414
0, 3.1023, NCC, 0.149, NCI, 9.72198
-0.2, 3.0651, NCC, 0.117, NCI, 10.0301
-0.4, 3.0723, NCC, 0.141, NCI, 10.338
-0.6, 3.0654, NCC, 0.115, NCI, 10.6459
-0.8, 3.0375, NCC, 0.141, NCI, 10.9538
-1, 3.0117, NCC, 0.132, NCI, 11.2617
-1.2, 2.9459, NCC, 0.115, NCI, 11.5696
-1.4, 2.8877, NCC, 0.079, NCI, 11.8775
-1.6, 2.7965, NCC, 0.036, NCI, 12.1854
-1.8, 2.7727, NCC, 0.056, NCI, 12.4933
-2, 2.7219, NCC, 0.061, NCI, 12.8011
-2.2, 2.6781, NCC, 0.044, NCI, 13.109
-2.4, 2.6496, NCC, 0.032, NCI, 13.4169
-2.6, 2.6694, NCC, 0.076, NCI, 13.7248
-2.8, 2.6174, NCC, 0.053, NCI, 14.0327
-3, 2.5789, NCC, 0.041, NCI, 14.3406
-3.2, 2.5974, NCC, 0.046, NCI, 14.6484
-3.4, 2.6325, NCC, 0.042, NCI, 14.9564
-3.6, 2.6338, NCC, 0.002, NCI, 15.2643
-3.8, 2.706, NCC, 0.031, NCI, 15.5722
-4, 2.7984, NCC, 0.069, NCI, 15.8801
-4.2, 2.8384, NCC, 0.036, NCI, 16.188
-4.4, 2.8908, NCC, 0.044, NCI, 16.4959
-4.6, 2.9477, NCC, 0.043, NCI, 16.8038
-4.8, 2.9606, NCC, 0.034, NCI, 17.1117
-5, 2.9836, NCC, 0.012, NCI, 17.4196
-5.2, 3.0091, NCC, 0.017, NCI, 17.7275
-5.4, 3.0256, NCC, 0.039, NCI, 18.0353
-5.6, 3.0433, NCC, 0.035, NCI, 18.3433
-5.8, 3.0888, NCC, 0.068, NCI, 18.6512
-6, 3.08, NCC, 0.056, NCI, 18.9591
-6.2, 3.0803, NCC, 0.041, NCI, 19.267
-6.4, 3.0658, NCC, 0.024, NCI, 19.5749
-6.6, 3.0757, NCC, 0.014, NCI, 19.8828
-6.8, 3.0961, NCC, 0.028, NCI, 20.1907
-7, 3.0894, NCC, 0.009, NCI, 20.4986

Data save completed.

Do you want to perform measurement again?

3-58 Agilent B1500 Programming Guide, Edition 4


Programming Examples
High-Speed Spot C Measurement

High-Speed Spot C Measurement


To perform high-speed spot C measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]

Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets SMU series resistor ON/OFF [SSR] chnum,mode


Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output path [SSP] chnum,path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement mode [IMP] mode

Sets AC/DC voltage monitor ON/OFF [LMN] mode

Sets MFCMU output frequency FC chnum,freq

Forces AC voltage by using MFCMU ACV chnum,ac_level

Forces DC voltage by using MFCMU DCV chnum,voltage

Forces DC voltage by using SMU [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces DC current by using SMU [DI]

Performs capacitance measurement TC chnum,mode[,range]

TTC chnum,mode[,range]
Resets the time stamp TSR

Returns the time stamp at this time TSQ

You can use the above commands regardless of the measurement mode (MM
command settings). The TTC command returns the time data and the measurement
data.

Agilent B1500 Programming Guide, Edition 4 3-59


Programming Examples
High-Speed Spot C Measurement

The following program performs a high-speed spot capacitance measurement by


using the TTC command. This example uses the multi frequency capacitance
measurement unit (MFCMU) and the SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-16 High-Speed Spot C Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V),
Dc_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data18.txt"
Dim title As String = "High Speed Spot C Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim dc_bias As Double = -5
Dim range As Integer = 0
Dim ret_val As String()
Dim tend As String()
Dim md(nop1) As Double
Dim st(nop1) As String
Dim mon(nop1) As Double
Dim st_mon(nop1) As String
Dim mt As Double
Dim stime As Double

B1500.WriteLine("FMT 1") ’28

B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain


B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 26 Declares variables and sets the value.


28 Sets the data output format.

30 to 31 Applies 0 V to the drain and source terminals.

3-60 Agilent B1500 Programming Guide, Edition 4


Programming Examples
High-Speed Spot C Measurement

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’33


B1500.WriteLine("CN " & cmu_ch) ’CMUH-->gate, CMUL-->substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples

Dim rbx As Integer ’38


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.Timeout = 60000 ’B1500 timeout = 60 seconds
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’49


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’52
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If ’63

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "")

Line Description

33 to 36 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.

38 to 47 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.

49 to 50 Sets the frequency and the oscillator level of the MFCMU output signal.
52 to 63 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.

65 Displays a message box that asks you to connect the device to the measurement
terminal. Then the CMUH and CMUL must be connected to the gate terminal and the
substrate terminal respectively.

Agilent B1500 Programming Guide, Edition 4 3-61


Programming Examples
High-Speed Spot C Measurement

B1500.WriteLine("DCV " & cmu_ch & "," & dc_bias) ’Forces DC bias ’66
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("LMN 1") ’AC/DC monitor data output ON
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("TTC " & cmu_ch & "," & range) ’High speed spot C measurement
B1500.WriteLine("TSQ") ’Returns time data

ret_val = B1500.ReadListAsStringArray() ’75


tend = B1500.ReadListAsStringArray()
Dim data1 As String
data1 = tend(0)
data1 = Right(data1, 12) : stime = Val(data1)
data1 = ret_val(0)
data1 = Right(data1, 12) : mt = Val(data1) : mt = stime - mt ’Measurement time
data1 = ret_val(1) : st(0) = Left(data1, 3)
data1 = Right(data1, 12) : md(0) = Val(data1)
data1 = ret_val(2) : st(1) = Left(data1, 3)
data1 = Right(data1, 12) : md(1) = Val(data1)
data1 = ret_val(3) : st_mon(0) = Left(data1, 3)
data1 = Right(data1, 12) : mon(0) = Val(data1)
data1 = ret_val(4) : st_mon(1) = Left(data1, 3)
data1 = Right(data1, 12) : mon(1) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & md(0) * 1000000000000.0 & "," & st(0) & "," &
md(1) * 1000000.0 & "," & st(1)
data(j, i) = data(j, i) & "," & mon(0) * 1000 & "," & st_mon(0) & "," & mon(1) &
"," & st_mon(1) & "," & mt

B1500.WriteLine("DZ") ’93
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’97
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

End Sub

Line Description

66 to 73 Sets the measurement condition, resets the time stamp, and performs the high-speed
spot C measurement.
75 to 91 Stores the returned data into the ret_val string array variable. Finally, stores the
measured data into the data array.

93 to 95 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.

97 to 100 Displays a message box to show an error message if the error is detected.

3-62 Agilent B1500 Programming Guide, Edition 4


Programming Examples
High-Speed Spot C Measurement

Measurement Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V), Dc_st, Time
Result Example (s)
4.96641,NJC,26.1348,NJY,28.7814,NJV,4.7239,NJV,0.0146

Data save completed.

Do you want to perform measurement again?

Table 3-17 Phase Compensation and Data Correction Commands for MFCMU

Function Command Parameters

Sets the phase compensation ADJ slot,mode


mode, auto or manual

Performs phase ADJ? slot


compensation data
measurement

Clears the frequency list for CLCORR slot,mode


data correction

Adds the specified frequency CORRL slot,freq


to the frequency list

Returns the frequency CORRL? slot[,index]


defined in the frequency list
Sets the reference value of DCORR slot,corr,mode,primary,secondary
open/short/load standard

Returns the reference value DCORR? slot,corr


of the specified standard

Performs the specified CORR? slot,corr


correction (open, short, or
load) data measurement
Sets the specified correction CORRST slot,corr,state
ON or OFF

Returns the status ON or CORRST? slot,corr


OFF of the specified
correction

Agilent B1500 Programming Guide, Edition 4 3-63


Programming Examples
High-Speed Spot C Measurement

Data Correction Table 3-17 lists the Agilent B1500A FLEX commands used for the phase
compensation and the open/short/load correction. Before performing the
capacitance (impedance) measurement, perform the phase compensation to adjust
the phase zero, and perform the corrections you desire.

NOTE Before executing CORR? command


• Execute DCORR command to set the calibration value or reference value of the
open/short/load standard.
• Execute CLCORRL and CORRL commands to define the MFCMU output
frequency for the data correction.
• Execute ACV command to set the AC signal level.
These setups must be done before executing the CORR? command.

• Phase Compensation

1. Open the measurement terminals at the end of the device side.


2. Execute ADJ command to set the compensation mode to manual.
3. Execute ADJ? command to perform phase compensation data measurement.
This operation will take about 30 seconds.
• Open Correction

1. Connect the open standard. Or open the measurement terminals at the end of
the device side.
2. Execute CORR? command to perform open correction data measurement.
3. Execute CORRST command to set the open correction ON.
• Short Correction

1. Connect the short standard. Or connect the measurement terminals together


at the end of the device side.
2. Execute CORR? command to perform short correction data measurement.
3. Execute CORRST command to set the short correction ON.
• Load Correction

1. Connect the load standard.


2. Execute CORR? command to perform load correction data measurement.
3. Execute CORRST command to set the load correction ON.

3-64 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Spot C Measurements

Spot C Measurements
To perform capacitance spot measurements, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]

Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets SMU series resistor ON/OFF [SSR] chnum,mode

Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output path [SSP] chnum,path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement mode [IMP] mode

Sets AC/DC voltage monitor ON/OFF [LMN] mode

Sets MFCMU output frequency FC chnum,freq

Forces AC voltage by using MFCMU ACV chnum,ac_level

Forces DC voltage by using MFCMU DCV chnum,voltage

Forces DC voltage by using SMU [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces DC current by using SMU [DI]

Sets MFCMU measurement range [RC] chnum,mode[,range]

Sets measurement mode MM 17,chnum


Executes measurement XE

Measurement Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V), Dc_st, Time
Result Example (s)
4.96981,NJC,26.1577,NJY,28.7737,NJV,4.72556,NJV,0.0259

Data save completed.


Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-65


Programming Examples
Spot C Measurements

The following program performs a spot capacitance measurement. This example


uses the multi frequency capacitance measurement unit (MFCMU) and the
SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-18 Spot C Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V),
Dc_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data19.txt"
Dim title As String = "Spot C Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim dc_bias As Double = -5
Dim range As Integer = 0
Dim ret_val As String()
Dim md(nop1) As Double
Dim st(nop1) As String
Dim mon(nop1) As Double
Dim st_mon(nop1) As String
Dim mt As Double

B1500.WriteLine("FMT 1") ’26


B1500.WriteLine("TSC 1") ’enables time stamp output
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 24 Declares variables and sets the value.

26 to 27 Sets the data output format. And enables the time stamp output.

28 to 29 Applies 0 V to the drain and source terminals.

3-66 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Spot C Measurements

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’31


B1500.WriteLine("CN " & cmu_ch) ’CMUH-->gate, CMUL-->substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples

Dim rbx As Integer ’36


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.Timeout = 60000 ’B1500 timeout = 60 seconds
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’47


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’50
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If ’61

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "")

Line Description

31 to 34 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.

36 to 45 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.

47 to 48 Sets the frequency and the oscillator level of the MFCMU output signal.
50 to 61 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.

63 Displays a message box that asks you to connect the device to the measurement
terminal. Then the CMUH and CMUL must be connected to the gate terminal and the
substrate terminal respectively.

Agilent B1500 Programming Guide, Edition 4 3-67


Programming Examples
Spot C Measurements

B1500.WriteLine("DCV " & cmu_ch & "," & dc_bias) ’Forces DC bias ’64
B1500.WriteLine("MM 17," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("LMN 1") ’AC/DC monitor data output ON
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs spot C measurement
B1500.WriteLine("*OPC?") : err = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

ret_val = B1500.ReadListAsStringArray() ’77


Dim data1 As String
data1 = ret_val(0)
data1 = Right(data1, 12) : mt = Val(data1)
data1 = ret_val(1) : st(0) = Left(data1, 3)
data1 = Right(data1, 12) : md(0) = Val(data1)
data1 = ret_val(2) : st(1) = Left(data1, 3)
data1 = Right(data1, 12) : md(1) = Val(data1)
data1 = ret_val(3) : st_mon(0) = Left(data1, 3)
data1 = Right(data1, 12) : mon(0) = Val(data1)
data1 = ret_val(4) : st_mon(1) = Left(data1, 3)
data1 = Right(data1, 12) : mon(1) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & md(0) * 1000000000000.0 & "," & st(0)
data(j, i) = data(j, i) & "," & md(1) * 1000000.0 & "," & st(1)
data(j, i) = data(j, i) & "," & mon(0) * 1000 & "," & st_mon(0)
data(j, i) = data(j, i) & "," & mon(1) & "," & st_mon(1) & "," & mt

B1500.WriteLine("DZ") ’94
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’98
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub
End Sub

Line Description

64 to 75 Sets the measurement condition, resets the time stamp, and performs the measurement.
And checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.
77 to 92 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.

94 to 96 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

98 to 101 Displays a message box to show an error message if the error is detected.

3-68 Agilent B1500 Programming Guide, Edition 4


Programming Examples
CV (DC Bias) Sweep Measurements

CV (DC Bias) Sweep Measurements


To perform capacitance-voltage (DC bias) sweep measurements, use the following
commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]

Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets SMU series resistor ON/OFF [SSR] chnum,mode

Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output path [SSP] chnum,path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement mode [IMP] mode

Sets AC/DC voltage monitor [LMN] mode


ON/OFF

Sets MFCMU output frequency FC chnum,freq


Forces AC voltage by using MFCMU ACV chnum,level

Sets CV sweep timing parameter WTDCV hold,delay


[,sdelay[,tdelay[,mdelay]]]

Sets auto abort function [WMDCV] abort[,post]


Sets DC bias sweep source WDCV chnum,mode,start,stop,step

Forces constant voltage [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current [DI]

Sets MFCMU measurement range [RC] chnum,mode[,range]

Sets measurement mode MM 18,chnum

Executes measurement XE

Agilent B1500 Programming Guide, Edition 4 3-69


Programming Examples
CV (DC Bias) Sweep Measurements

The following program performs a capacitance vs voltage measurement by the DC


bias sweep. This example uses the multi frequency capacitance measurement unit
(MFCMU) and the SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-19 CV (DC bias) Sweep Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 21
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Vg (V), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC
(V), Dc_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data20.txt"
Dim title As String = "CV Sweep Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"
Dim freq As Double = 1000000 ’12
Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim vg1 As Double = -5
Dim vg2 As Double = 5
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim range As Integer = 0
Dim rep As Integer = nop1
Dim sc(nop1) As Double
Dim md(nop1 * 2) As Double
Dim st(nop1 * 2) As String
Dim mon(nop1 * 2) As Double
Dim st_mon(nop1 * 2) As String
Dim tm(nop1) As Double
Dim ret_val As String()

B1500.WriteLine("FMT 1,1") ’31


B1500.WriteLine("TSC 1") ’enables time stamp output
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Line Description
2 to 11 Declares variables used through the project. And sets the proper values.
12 to 29 Declares variables and sets the value.
31 to 32 Sets the data output format (data with source data). And enables the time stamp output.
33 to 34 Applies 0 V to the drain and source terminals.

3-70 Agilent B1500 Programming Guide, Edition 4


Programming Examples
CV (DC Bias) Sweep Measurements

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’36


B1500.WriteLine("CN " & cmu_ch) ’CMUH-->gate, CMUL-->substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples

Dim rbx As Integer ’41


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.Timeout = 60000 ’B1500 timeout = 60 seconds
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’52


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’55
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If ’66

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "")

Line Description

36 to 39 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.

41 to 50 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.

52 to 53 Sets the frequency and the oscillator level of the MFCMU output signal.
55 to 66 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.

68 Displays a message box that asks you to connect the device to the measurement
terminal. Then the CMUH and CMUL must be connected to the gate terminal and the
substrate terminal respectively.

Agilent B1500 Programming Guide, Edition 4 3-71


Programming Examples
CV (DC Bias) Sweep Measurements

B1500.WriteLine("WMDCV 2, 1") ’69


B1500.WriteLine("WTDCV " & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WDCV " & cmu_ch & ",1," & vg1 & "," & vg2 & "," & nop1)
B1500.WriteLine("MM 18," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("LMN 1") ’AC/DC monitor data output ON
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs CV Sweep measurement
B1500.WriteLine("*OPC?") : rep = B1500.Read(True) ’80
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 6 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray() ’86


Dim data1 As String
For i = 0 To nop1 - 1
data1 = ret_val(i * 6) : data1 = Right(data1, 12) : tm(i) = Val(data1)
data1 = ret_val(i * 6 + 1) : st(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2) = Val(data1)
data1 = ret_val(i * 6 + 2) : st(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 6 + 3) : st_mon(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : mon(i * 2) = Val(data1)
data1 = ret_val(i * 6 + 4) : st_mon(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : mon(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 6 + 5) : data1 = Right(data1, 12) : sc(i) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & sc(i) & "," & md(i * 2) * 1000000000000.0
data(j, i) = data(j, i) & "," & st(i * 2)
data(j, i) = data(j, i) & "," & md(i * 2 + 1) * 1000000.0 & "," & st(i * 2 + 1)
data(j, i) = data(j, i) & "," & mon(i * 2) * 1000 & "," & st_mon(i * 2)
data(j, i) = data(j, i) & "," & mon(i * 2 + 1) & "," & st_mon(i * 2 + 1)
data(j, i) = data(j, i) & "," & tm(i)
Next i ’105

Line Description

69 to 79 Sets the measurement condition, resets the time stamp, and performs the measurement.
69 Sets the automatic abort function to ON, and sets the post measurement output value to vg1.
70 Sets the MFCMU sweep output timing.
71 Sets the MFCMU DC bias sweep output.
80 to 84 Waits until the measurement is completed. After that, if an error is detected, forces 0 V and
goes to Check_err. Also if the number of returned data is not correct, forces 0 V and goes to
Check_nop.
86 to 105 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.

3-72 Agilent B1500 Programming Guide, Edition 4


Programming Examples
CV (DC Bias) Sweep Measurements

B1500.WriteLine("DZ") ’107
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’111
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’116
MsgBox("No. of data: " & rep & " (not " & nop1 * 6 & ")", vbOKOnly, "")

End Sub

Line Description

107 to 109 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

111 to 114 Displays a message box to show an error message if the error is detected.

116 to 117 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Vg (V), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V),
Result Example Dc_st, Time (s)
-5,4.96677,NJC,26.155,NJY,28.7732,NJV,-4.72468,NJV,0.0547
-4.5,4.66524,NJC,26.3993,NJY,28.6384,NJV,-4.2384,NJV,0.0884
-4,4.2986,NJC,26.2738,NJY,28.4891,NJV,-3.75442,NJV,0.1228
-3.5,3.88182,NJC,25.5785,NJY,28.3222,NJV,-3.27358,NJV,0.1535
-3,3.43272,NJC,24.1992,NJY,28.1426,NJV,-2.79417,NJV,0.1878
-2.5,2.99286,NJC,21.9946,NJY,27.9503,NJV,-2.31792,NJV,0.2294
-2,2.57856,NJC,18.7458,NJY,27.7505,NJV,-1.84498,NJV,0.2709
-1.5,2.20793,NJC,14.2867,NJY,27.5502,NJV,-1.37609,NJV,0.3125
-1,1.92563,NJC,7.57546,NJY,27.3772,NJV,-0.91155,NJV,0.3541
-0.5,1.79915,NJC,-1.83967,NJY,27.494,NJV,-0.45241,NJV,0.3957
0,1.77613,NJC,-2.50329,NJY,27.4588,NJV,0.0041,NJV,0.4375
0.5,1.78246,NJC,-2.73976,NJY,27.488,NJV,0.46025,NJV,0.4789
1,1.7831,NJC,-2.66401,NJY,27.6511,NJV,0.92066,NJV,0.5205
1.5,1.78149,NJC,-2.52984,NJY,27.8257,NJV,1.38437,NJV,0.5621
2,1.77384,NJC,-2.39091,NJY,27.9928,NJV,1.85152,NJV,0.6037
2.5,1.77054,NJC,-2.22722,NJY,28.1473,NJV,2.32111,NJV,0.6453
3,1.76359,NJC,-2.03388,NJY,28.283,NJV,2.79339,NJV,0.6867
3.5,1.75959,NJC,-1.58516,NJY,28.3958,NJV,3.26736,NJV,0.7281
4,1.75883,NJC,-0.542666,NJY,28.481,NJV,3.74189,NJV,0.7697
4.5,1.73431,NJC,1.73765,NJY,28.5416,NJV,4.2182,NJV,0.8113
5,1.60909,NJC,6.23405,NJY,28.5737,NJV,4.69593,NJV,0.8529

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-73


Programming Examples
Pulsed Spot C Measurements

Pulsed Spot C Measurements


To perform capacitance pulsed spot measurement, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]

Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets SMU series resistor ON/OFF [SSR] chnum,mode

Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output path [SSP] chnum,path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement mode [IMP] mode

Sets MFCMU output frequency FC chnum,freq

Forces AC voltage by using MFCMU ACV chnum,ac_level

Sets pulse timing parameters PTDCV hold,width[,period [,tdelay]]

Sets pulse voltage PDCV chnum,base,pulse

Forces DC voltage by using SMU [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces DC current by using SMU [DI]

Sets MFCMU measurement range [RC] chnum,mode[,range]

Sets measurement mode MM 19,chnum


Executes measurement XE

Measurement Cp (pF), C_st, G (uS), G_st, Time (s)


Result Example 0.101969,NGC,0.258706,NGY,0.59655

Data save completed.


Do you want to perform measurement again?

3-74 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Spot C Measurements

The following program performs a pulsed spot capacitance measurement. This


example uses the multi frequency capacitance measurement unit (MFCMU) and the
SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-20 Pulsed Spot C Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Cp (pF), C_st, G (uS), G_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data22.txt"
Dim title As String = "Pulsed Spot C Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim dc_bias As Double = -5
Dim range As Integer = 0
Dim ret_val As String()
Dim md(nop1) As Double
Dim st(nop1) As String
Dim mt As Double

B1500.Timeout = 60000 ’B1500 timeout = 60 seconds ’24


B1500.WriteLine("FMT 1")
B1500.WriteLine("TSC 1") ’enables time stamp output
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.
13 to 24 Declares variables and sets the value.

24 Sets timeout for the B1500A.

25 to 26 Sets the data output format. And enables the time stamp output.
27 to 28 Applies 0 V to the drain and source terminals.

Agilent B1500 Programming Guide, Edition 4 3-75


Programming Examples
Pulsed Spot C Measurements

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’30


B1500.WriteLine("CN " & cmu_ch) ’CMUH-->gate, CMUL-->substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples

Dim rbx As Integer ’35


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’45


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’48
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If ’59

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "")

Line Description

30 to 33 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.
35 to 43 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.

45 to 46 Sets the frequency and the oscillator level of the MFCMU output signal.

48 to 59 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.
61 Displays a message box that asks you to connect the device to the measurement
terminal. Then the CMUH and CMUL must be connected to the gate terminal and the
substrate terminal respectively.

3-76 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Spot C Measurements

Dim v0 As Double = 0 ’62


Dim g_pt As String = "0.5, 0.1, 0.2" ’hold, width, period in sec
B1500.WriteLine("PTDCV " & g_pt) ’0 V: pulse base voltage
B1500.WriteLine("PDCV " & cmu_ch & "," & v0 & "," & dc_bias)
B1500.WriteLine("MM 19," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs measurement
B1500.WriteLine("*OPC?") : err = B1500.Read(True)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

ret_val = B1500.ReadListAsStringArray() ’77


Dim data1 As String
data1 = ret_val(0)
data1 = Right(data1, 12) : mt = Val(data1)
data1 = ret_val(1) : st(0) = Left(data1, 3)
data1 = Right(data1, 12) : md(0) = Val(data1)
data1 = ret_val(2) : st(1) = Left(data1, 3)
data1 = Right(data1, 12) : md(1) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & md(0) * 1000000000000.0 & "," & st(0) & "," &
md(1) * 1000000.0 & "," & st(1) & "," & mt

B1500.WriteLine("DZ") ’87
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’91
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub
End Sub

Line Description

62 to 75 Sets the measurement condition, resets the time stamp, and performs the measurement.
And checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.

64 to 65 Sets the pulse timing parameters and the pulse voltage output of MFCMU.

77 to 85 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.

87 to 89 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

91 to 94 Displays a message box to show an error message if the error is detected.

Agilent B1500 Programming Guide, Edition 4 3-77


Programming Examples
Pulsed Sweep CV Measurements

Pulsed Sweep CV Measurements


To perform capacitance-voltage pulsed sweep measurements, use the following
commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]

Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets SMU series resistor ON/OFF [SSR] chnum,mode

Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output path [SSP] chnum,path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement mode [IMP] mode

Sets MFCMU output frequency FC chnum,freq

Forces AC voltage by using MFCMU ACV chnum,level

Sets pulse timing parameters PTDCV hold,width,period [,tdelay]

Sets auto abort function [WMDCV] abort[,post]

Sets pulse voltage sweep source PWDCV chnum,mode,base,start,stop,step

Forces constant voltage [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current [DI]

Sets MFCMU measurement range [RC] chnum,mode[,range]


Sets measurement mode MM 20,chnum

Executes measurement XE

3-78 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Sweep CV Measurements

The following program performs a capacitance vs voltage measurement by the


pulsed bias sweep. This example uses the multi frequency capacitance measurement
unit (MFCMU) and the SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-21 Pulsed Sweep CV Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 21
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Vg (V), Cp (pF), C_st, G (uS), G_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data23.txt"
Dim title As String = "Pulsed Sweep CV Sweep Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim vg1 As Double = -5
Dim vg2 As Double = 5
Dim range As Integer = 0
Dim rep As Integer = nop1
Dim sc(nop1) As Double
Dim md(nop1 * 2) As Double
Dim st(nop1 * 2) As String
Dim tm(nop1) As Double
Dim ret_val As String()

B1500.Timeout = 60000 ’B1500 timeout = 60 seconds ’27


B1500.WriteLine("FMT 1,1")
B1500.WriteLine("TSC 1") ’enables time stamp output
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Line Description
2 to 11 Declares variables used through the project. And sets the proper values.
13 to 25 Declares variables and sets the value.
27 Sets timeout for the B1500A.
28 to 29 Sets the data output format (data with source data). And enables the time stamp output.
30 to 31 Applies 0 V to the drain and source terminals.

Agilent B1500 Programming Guide, Edition 4 3-79


Programming Examples
Pulsed Sweep CV Measurements

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’33


B1500.WriteLine("CN " & cmu_ch) ’CMUH--> gate, CMUL--> substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples

Dim rbx As Integer ’38


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’48


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’51
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "") ’64

Line Description

33 to 36 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.

38 to 46 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.

48 to 49 Sets the frequency and the oscillator level of the MFCMU output signal.
51 to 62 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.

64 Displays a message box that asks you to connect the device to the measurement
terminal. Then the CMUH and CMUL must be connected to the gate terminal and the
substrate terminal respectively.

3-80 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Pulsed Sweep CV Measurements

Dim v0 As Double = 0 ’pulse base voltage ’66


Dim g_pt As String = "0.1, 0.01, 0.02" ’hold, width, period in sec
B1500.WriteLine("PTDCV " & g_pt)
B1500.WriteLine("PWDCV " & cmu_ch & ",1," & v0 & "," & vg1 & "," & vg2 & "," &
nop1)
B1500.WriteLine("WMDCV 2, 1")
B1500.WriteLine("MM 20," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs measurement
B1500.WriteLine("*OPC?") : rep = B1500.Read(True) ’78
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 4 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray() ’84


Dim data1 As String
For i = 0 To nop1 - 1
data1 = ret_val(i * 4) : data1 = Right(data1, 12) : tm(i) = Val(data1)
data1 = ret_val(i * 4 + 1) : st(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2) = Val(data1)
data1 = ret_val(i * 4 + 2) : st(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 4 + 3) : data1 = Right(data1, 12) : sc(i) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & sc(i) & "," & md(i * 2) * 1000000000000.0 & ","
& st(i * 2)
data(j, i) = data(j, i) & "," & md(i * 2 + 1) * 1000000.0 & "," & st(i * 2 + 1)
& "," & tm(i)
Next i ’95

Line Description

66 to 82 Sets the measurement condition, resets the time stamp, and performs the measurement.
68 Sets the pulsed sweep timing parameters of MFCMU.
69 Sets the pulsed sweep voltage output of MFCMU.
70 Sets the automatic abort function to ON, and sets the post measurement output value to vg1.
78 to 82 Waits until the measurement is completed. After that, if an error is detected, forces 0 V and
goes to Check_err. Also if the number of returned data is not correct, forces 0 V and goes to
Check_nop.
84 to 95 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.

Agilent B1500 Programming Guide, Edition 4 3-81


Programming Examples
Pulsed Sweep CV Measurements

B1500.WriteLine("DZ") ’97
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’101
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’106
MsgBox("No. of data: " & rep & " (not " & nop1 * 6 & ")", vbOKOnly, "")

End Sub

Line Description

97 to 99 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

101 to 104 Displays a message box to show an error message if the error is detected.

106 to 107 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Vg (V), Cp (pF), C_st, G (uS), G_st, Time (s)


Result Example -5,0.133441,NGC,-0.334621,NGY,0.11755
-4.5,0.11202,NGC,-0.301203,NGY,0.13873
-4,0.137815,NGC,-0.151185,NGY,0.15973
-3.5,0.103693,NGC,-0.0974783,NGY,0.18053
-3,0.0877819,NGC,0.0884008,NGY,0.20112
-2.5,0.0523748,NGC,0.697226,NGY,0.22152
-2,0.0487233,NGC,0.0480156,NGY,0.24172
-1.5,0.118844,NGC,-0.322665,NGY,0.26172
-1,0.109541,NGC,-0.488218,NGY,0.28155
-0.5,0.0792613,NGC,0.232565,NGY,0.30135
0,0.0580278,NGC,0.240967,NGY,0.32115
0.5,0.110523,NGC,-0.0462759,NGY,0.34094
1,0.082289,NGC,0.156317,NGY,0.36075
1.5,0.102956,NGC,0.175315,NGY,0.38055
2,0.188602,NGC,-0.463437,NGY,0.40045
2.5,0.0818513,NGC,-0.620362,NGY,0.42064
3,0.0739288,NGC,-0.084286,NGY,0.44104
3.5,0.0476039,NGC,0.287456,NGY,0.46164
4,0.0910013,NGC,0.0407421,NGY,0.48244
4.5,0.0745168,NGC,0.170635,NGY,0.50344
5,0.0627603,NGC,0.144463,NGY,0.52464

Data save completed.

Do you want to perform measurement again?

3-82 Agilent B1500 Programming Guide, Edition 4


Programming Examples
CV (AC Level) Sweep Measurement

CV (AC Level) Sweep Measurement


To perform capacitance-voltage (AC level) sweep measurements, use the following
commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]
Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]
Sets SMU series resistor ON/OFF [SSR] chnum,mode
Disables SCUU status indicator [SSL] chnum,mode
Controls SCUU input-output path [SSP] chnum,path
Sets MFCMU A/D converter [ACT] mode[,N]
Sets MFCMU measurement mode [IMP] mode
Sets AC/DC voltage monitor ON/OFF [LMN] mode
Sets MFCMU output frequency FC chnum,freq
Forces AC voltage by using MFCMU ACV chnum,level
Sets CV sweep timing parameter WTACV hold,delay
[,sdelay[,tdelay[,mdelay]]]
Sets auto abort function [WMACV] abort[,post]
Sets AC level sweep source WACV chnum,mode,start,stop,step
Forces DC voltage by using MFCMU DCV chnum,voltage
Forces constant voltage [DV] chnum,range,output
[,comp[,polarity[,crange]]]
Forces constant current [DI]
Sets MFCMU measurement range [RC] chnum,mode[,range]
Sets measurement mode MM 23,chnum
Executes measurement XE

Agilent B1500 Programming Guide, Edition 4 3-83


Programming Examples
CV (AC Level) Sweep Measurement

The following program performs a capacitance vs voltage measurement by the AC


level sweep. This example uses the multi frequency capacitance measurement unit
(MFCMU) and the SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-22 CV (AC level) Sweep Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 10
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Level (mV), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st,
DC (V), Dc_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data24.txt"
Dim title As String = "CV (AC) Sweep Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim dc_bias As Double = 5
Dim v1 As Double = 0.01
Dim v2 As Double = 0.1
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim range As Integer = 0
Dim rep As Integer = nop1
Dim sc(nop1) As Double
Dim md(nop1 * 2) As Double
Dim st(nop1 * 2) As String
Dim mon(nop1 * 2) As Double
Dim st_mon(nop1 * 2) As String
Dim tm(nop1) As Double
Dim ret_val As String()

B1500.Timeout = 60000 ’B1500 timeout = 60 seconds ’33


B1500.WriteLine("FMT 1,1")
B1500.WriteLine("TSC 1") ’enables time stamp output

Line Description
2 to 11 Declares variables used through the project. And sets the proper values.
13 to 31 Declares variables and sets the value.
33 to 35 Sets the B1500A timeout and the data output format (data with source data). And
enables the time stamp output.

3-84 Agilent B1500 Programming Guide, Edition 4


Programming Examples
CV (AC Level) Sweep Measurement

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’37


B1500.WriteLine("CN " & cmu_ch) ’CMUH--> gate, CMUL--> substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Dim rbx As Integer ’44


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’54


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’57
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If
MsgBox("Connect DUT. Then click OK.", vbOKOnly, "") ’69

Line Description
37 to 40 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.
41 to 42 Applies 0 V to the drain and source terminals.
44 to 52 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.
54 to 55 Sets the frequency and the oscillator level of the MFCMU output signal.
57 to 68 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.
69 Displays a message box that asks you to connect the device to the measurement
terminal. Then the CMUH and CMUL must be connected to the gate terminal and the
substrate terminal respectively.

Agilent B1500 Programming Guide, Edition 4 3-85


Programming Examples
CV (AC Level) Sweep Measurement

B1500.WriteLine("WMACV 2, 1") ’70


B1500.WriteLine("WTACV " & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WACV " & cmu_ch & ",1," & v1 & "," & v2 & "," & nop1)
B1500.WriteLine("MM 23," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("LMN 1") ’AC/DC monitor data output ON
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("DCV " & cmu_ch & "," & dc_bias)
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs measurement
B1500.WriteLine("*OPC?") : rep = B1500.Read(True) ’82
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 6 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray() ’88


Dim data1 As String
For i = 0 To nop1 - 1
data1 = ret_val(i * 6) : data1 = Right(data1, 12) : tm(i) = Val(data1)
data1 = ret_val(i * 6 + 1) : st(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2) = Val(data1)
data1 = ret_val(i * 6 + 2) : st(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 6 + 3) : st_mon(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : mon(i * 2) = Val(data1)
data1 = ret_val(i * 6 + 4) : st_mon(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : mon(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 6 + 5) : data1 = Right(data1, 12) : sc(i) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & sc(i) * 1000
data(j, i) = data(j, i) & "," & md(i * 2) * 1000000000000.0 & "," & st(i * 2)
data(j, i) = data(j, i) & "," & md(i * 2 + 1) * 1000000.0 & "," & st(i * 2 + 1)
data(j, i) = data(j, i) & "," & mon(i * 2) * 1000 & "," & st_mon(i * 2)
data(j, i) = data(j, i) & "," & mon(i * 2 + 1) & "," & st_mon(i * 2 + 1)
data(j, i) = data(j, i) & "," & tm(i)
Next i ’107

Line Description

70 to 81 Sets the measurement condition, resets the time stamp, and performs the measurement.
70 Sets the automatic abort function to ON, and sets the post measurement output value to v1.
71 Sets the MFCMU sweep output timing.
72 Sets the MFCMU AC level sweep output.
82 to 86 Waits until the measurement is completed. After that, if an error is detected, forces 0 V and
goes to Check_err. Also if the number of returned data is not correct, forces 0 V and goes to
Check_nop.
88 to 107 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.

3-86 Agilent B1500 Programming Guide, Edition 4


Programming Examples
CV (AC Level) Sweep Measurement

B1500.WriteLine("DZ") ’109
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’113
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’118
MsgBox("No. of data: " & rep & " (not " & nop1 * 6 & ")", vbOKOnly, "")

End Sub

Line Description

109 to 111 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

113 to 116 Displays a message box to show an error message if the error is detected.

118 to 119 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Level (mV), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V),
Result Example Dc_st, Time (s)
10,0.101413,NGC,0.023601,NGY,9.9799,NGV,5.00485,NGV,0.0714
20,0.102654,NGC,0.0450136,NGY,19.963,NGV,5.0049,NGV,0.13921
30,0.100627,NGC,0.0522385,NGY,29.9446,NGV,5.00488,NGV,0.15706
40,0.10053,NGC,0.0529098,NGY,39.926,NGV,5.00491,NGV,0.22501
50,0.10008,NGC,0.0562029,NGY,49.8853,NGV,5.00495,NGV,0.24298
60,0.0982925,NGC,0.0492554,NGY,59.8801,NGV,5.00515,NGV,0.26092
70,0.0992213,NGC,0.0548534,NGY,69.899,NGV,5.00502,NGV,0.32885
80,0.099067,NGC,0.0501863,NGY,79.915,NGV,5.00514,NGV,0.34679
90,0.100248,NGC,0.0512628,NGY,89.892,NGV,5.00487,NGV,0.36446
100,0.0996081,NGC,0.0519715,NGY,99.869,NGV,5.00486,NGV,0.38241

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-87


Programming Examples
C-f Sweep Measurements

C-f Sweep Measurements


To perform capacitance-frequency sweep measurements, use the following
commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]


Disables channels CL [chnum ... [,chnum] ... ]

Sets SMU filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets SMU series resistor ON/OFF [SSR] chnum,mode

Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output path [SSP] chnum,path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement mode [IMP] mode

Sets AC/DC voltage monitor [LMN] mode


ON/OFF

Sets C-f sweep timing parameter WTFC hold,delay


[,sdelay[,tdelay[,mdelay]]]

Sets auto abort function [WMFC] abort[,post]

Sets frequency sweep source WFC chnum,mode,start,stop,step

Forces AC voltage by using MFCMU ACV chnum,level


Forces DC voltage by using MFCMU DCV chnum,voltage

Forces constant voltage [DV] chnum,range,output


[,comp[,polarity[,crange]]]
Forces constant current [DI]

Sets MFCMU measurement range [RC] chnum,mode[,range]

Sets measurement mode MM 22,chnum

Executes measurement XE

3-88 Agilent B1500 Programming Guide, Edition 4


Programming Examples
C-f Sweep Measurements

The following program performs a capacitance vs frequency sweep measurement.


This example uses the multi frequency capacitance measurement unit (MFCMU)
and the SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-23 C-f Sweep Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 10
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Freq (MHz), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st,
DC (V), Dc_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data25.txt"
Dim title As String = "C-f Sweep Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim dc_bias As Double = 5
Dim f1 As Double = 500000.0
Dim f2 As Double = 5000000.0
Dim hold As Double = 0
Dim delay As Double = 0
Dim s_delay As Double = 0
Dim range As Integer = 0
Dim rep As Integer = nop1
Dim sc(nop1) As Double
Dim md(nop1 * 2) As Double
Dim st(nop1 * 2) As String
Dim mon(nop1 * 2) As Double
Dim st_mon(nop1 * 2) As String
Dim tm(nop1) As Double
Dim ret_val As String()

B1500.Timeout = 120000 ’B1500 timeout = 120 seconds ’33


B1500.WriteLine("FMT 1,1")
B1500.WriteLine("TSC 1") ’enables time stamp output

Line Description
2 to 11 Declares variables used through the project. And sets the proper values.
13 to 31 Declares variables and sets the value.
33 to 35 Sets the B1500A timeout and the data output format (data with source data). And
enables the time stamp output.

Agilent B1500 Programming Guide, Edition 4 3-89


Programming Examples
C-f Sweep Measurements

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’37


B1500.WriteLine("CN " & cmu_ch) ’CMUH--> gate, CMUL--> substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Dim rbx As Integer ’44


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("ACV " & cmu_ch & "," & osc_level) ’54

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’56
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",1") ’clears frequency list
For i = 0 To nop1 - 1
freq = f1 + i * (f2 - f1) / (nop1 - 1) ’measurement frequency
B1500.WriteLine("CORRL " & cmu_ch & "," & freq) ’adds it to frequency list
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
Next i
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If ’73

Line Description
37 to 40 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.
41 to 42 Applies 0 V to the drain and source terminals.
44 to 52 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.
54 Sets the oscillator level of the MFCMU output signal.
56 to 73 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.

3-90 Agilent B1500 Programming Guide, Edition 4


Programming Examples
C-f Sweep Measurements

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "") ’75


B1500.WriteLine("WMFC 2, 1")
B1500.WriteLine("WTFC " & hold & "," & delay & "," & s_delay)
B1500.WriteLine("WFC " & cmu_ch & ",1," & f1 & "," & f2 & "," & nop1)
B1500.WriteLine("MM 22," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("LMN 1") ’AC/DC monitor data output ON
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("DCV " & cmu_ch & "," & dc_bias)
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs measurement
B1500.WriteLine("*OPC?") : rep = B1500.Read(True) ’88
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 6 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray() ’94


Dim data1 As String
For i = 0 To nop1 - 1
data1 = ret_val(i * 6) : data1 = Right(data1, 12) : tm(i) = Val(data1)
data1 = ret_val(i * 6 + 1) : st(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2) = Val(data1)
data1 = ret_val(i * 6 + 2) : st(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 6 + 3) : st_mon(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : mon(i * 2) = Val(data1)
data1 = ret_val(i * 6 + 4) : st_mon(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : mon(i * 2 + 1) = Val(data1)
data1 = ret_val(i * 6 + 5) : data1 = Right(data1, 12) : sc(i) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & sc(i) / 1000000
data(j, i) = data(j, i) & "," & md(i * 2) * 1000000000000.0 & "," & st(i * 2)
data(j, i) = data(j, i) & "," & md(i * 2 + 1) * 1000000.0 & "," & st(i * 2 + 1)
data(j, i) = data(j, i) & "," & mon(i * 2) * 1000 & "," & st_mon(i * 2)
data(j, i) = data(j, i) & "," & mon(i * 2 + 1) & "," & st_mon(i * 2 + 1)
data(j, i) = data(j, i) & "," & tm(i)
Next i ’113

Line Description

75 Displays a message box that asks you to connect the device to the measurement terminal.
Then the CMUH and CMUL must be connected to the gate terminal and the substrate
terminal respectively.
76 to 87 Sets the measurement condition, resets the time stamp, and performs the measurement.
88 to 92 Waits until the measurement is completed. After that, if an error is detected, forces 0 V and
goes to Check_err. Also if the number of returned data is not correct, forces 0 V and goes to
Check_nop.
94 to 113 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.

Agilent B1500 Programming Guide, Edition 4 3-91


Programming Examples
C-f Sweep Measurements

B1500.WriteLine("DZ") ’114
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Check_err: ’118
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’123
MsgBox("No. of data: " & rep & " (not " & nop1 * 6 & ")", vbOKOnly, "")

End Sub

Line Description

114 to 116 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

118 to 121 Displays a message box to show an error message if the error is detected.

123 to 124 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Freq (MHz), Cp (pF), C_st, G (uS), G_st, OSC (mV), Osc_st, DC (V),
Result Example Dc_st, Time (s)
0.5,0.102504,NGC,-0.00489649,NGY,29.9602,NGV,5.00364,NGV,0.01205
1,0.103028,NGC,0.00752516,NGY,29.9472,NGV,5.00362,NGV,0.03098
1.5,0.0941827,NGC,0.0385718,NGY,29.914,NGV,5.00384,NGV,0.04993
2,0.0925777,NGC,0.00978407,NGY,29.8359,NGV,5.00383,NGV,0.06891
2.5,0.0936848,NGC,0.0741706,NGY,29.7236,NGV,5.00383,NGV,0.08851
3,0.0926532,NGC,0.0838099,NGY,29.6289,NGV,5.00396,NGV,0.10756
3.5,0.098542,NGC,0.0313031,NGY,29.4926,NGV,5.00391,NGV,0.12654
4,0.0985281,NGC,0.0103357,NGY,29.3519,NGV,5.00376,NGV,0.14551
4.5,0.101377,NGC,0.0136298,NGY,29.1433,NGV,5.004,NGV,0.1644
5,0.100967,NGC,0.10801,NGY,28.9145,NGV,5.0038,NGV,0.1833

Data save completed.

Do you want to perform measurement again?

3-92 Agilent B1500 Programming Guide, Edition 4


Programming Examples
C-t Sampling Measurements

C-t Sampling Measurements


To perform C-t sampling measurements, use the following commands.

Function Command Parameters

Enables Measurement Units CN [chnum ... [,chnum] ... ]

Disables Measurement Units CL [chnum ... [,chnum] ... ]

Sets Filter ON/OFF [FL] mode[,chnum ... [,chnum] ... ]

Sets series resistor ON/OFF [SSR] chnum,mode

Disables SCUU status indicator [SSL] chnum,mode

Controls SCUU input-output [SSP] chnum,path


path

Sets MFCMU A/D converter [ACT] mode[,N]

Sets MFCMU measurement [IMP] mode


mode

Sets timing parameters MTDCV h_bias,interval,points[,h_base]

Sets constant voltage source MDCV chnum,base,bias[,post]

Sets MFCMU output frequency FC chnum,freq

Forces AC voltage by using ACV chnum,ac_level


MFCMU

Forces DC voltage by using [DV] chnum,range,output


SMU [,comp[,polarity[,crange]]]

Forces DC current by using [DI]


SMU

Sets MFCMU measurement [RC] chnum,mode[,range]


range

Sets measurement mode MM 26,chnum

Executes measurement XE

Agilent B1500 Programming Guide, Edition 4 3-93


Programming Examples
C-t Sampling Measurements

The following program performs sampling measurement which repeats capacitance


measurement in the specified time interval when a constant voltage is applied to the
DUT. This example uses the multi frequency capacitance measurement unit
(MFCMU) and the SMU/CMU unify unit (SCUU).
Before performing the capacitance (impedance) measurement, you need to perform
the phase compensation and data correction. See “Data Correction” on page 3-64.
Table 3-24 C-t Sampling Measurement Example

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 30
Dim nop2 As Integer = 1
Dim data(nop2, nop1) As String
Dim value As String = "Index, Cp (pF), C_st, G (uS), G_st, Time (s)"
Dim fname As String = "C:\Agilent\prog_ex\data26.txt"
Dim title As String = "C-t Sampling Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim freq As Double = 1000000 ’13


Dim ref_cp As Double = 0
Dim ref_g As Double = 0
Dim osc_level As Double = 0.03
Dim base As Double = 0
Dim bias As Double = 5
Dim base_h As Double = 0
Dim bias_h As Double = 0.1
Dim interval As Double = 0.05
Dim range As Integer = 0
Dim rep As Integer = nop1
Dim sc(nop1) As Double
Dim md(nop1 * 2) As Double
Dim st(nop1 * 2) As String
Dim tm(nop1) As Double
Dim ret_val As String()

B1500.Timeout = 120000 ’B1500 timeout = 120 seconds ’30


B1500.WriteLine("FMT 1,1")
B1500.WriteLine("TSC 1") ’enables time stamp output

Line Description

2 to 11 Declares variables used through the project. And sets the proper values.

13 to 28 Declares variables and sets the value.


30 Sets timeout for the B1500A.

31 to 32 Sets the data output format (data with source data). And enables the time stamp output.

3-94 Agilent B1500 Programming Guide, Edition 4


Programming Examples
C-t Sampling Measurements

Dim cmu_ch As Integer = 10 ’CMU: ch10 ’34


B1500.WriteLine("CN " & cmu_ch) ’CMUH--> gate, CMUL--> substrate
B1500.WriteLine("SSP " & cmu_ch & ", 4") ’SCUU connection to CMU
B1500.WriteLine("ACT 0, 2") ’CMU integration, auto, 2 samples
B1500.WriteLine("DV " & t(0) & ",0,0,0.1,0") ’t(0)--> drain
B1500.WriteLine("DV " & t(2) & ",0,0,0.1,0") ’t(2)--> source

Dim rbx As Integer ’41


rbx = MsgBox("Do you want to perform Phase compensation?", vbYesNo, "")
If rbx = vbYes Then
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("ADJ " & cmu_ch & ",1")
B1500.WriteLine("ADJ? " & cmu_ch) : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
End If

B1500.WriteLine("FC " & cmu_ch & "," & freq) ’51


B1500.WriteLine("ACV " & cmu_ch & "," & osc_level)

rbx = MsgBox("Do you want to perform Open correction?", vbYesNo, "") ’54
If rbx = vbYes Then
B1500.WriteLine("CLCORR " & cmu_ch & ",2")
MsgBox("Open measurement terminal. Then click OK.", vbOKOnly, "")
Console.WriteLine("Wait a minute . . ." & Chr(10))
B1500.WriteLine("DCORR " & cmu_ch & ",1,100," & ref_cp & "," & ref_g)
B1500.WriteLine("CORR? " & cmu_ch & ",1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("ERR? 1") : err = B1500.Read(True) :
B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("CORRST " & cmu_ch & ",1,1") ’open correction ON
B1500.WriteLine("CORRST " & cmu_ch & ",2,0") ’short correction OFF
B1500.WriteLine("CORRST " & cmu_ch & ",3,0") ’load correction OFF
End If ’65

Line Description

34 to 37 Defines the channel number of the MFCMU, enables the MFCMU, makes the SCUU
connection path, and sets the A/D converter of the MFCMU.

38 to 39 Applies 0 V to the drain and source terminals.

41 to 49 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.
51 to 52 Sets the frequency and the oscillator level of the MFCMU output signal.

54 to 65 Displays a message box that asks if you perform the open correction. If you click Yes,
the open correction will be performed. It does not need a long time. The short
correction and the load correction are not performed in this example.

Agilent B1500 Programming Guide, Edition 4 3-95


Programming Examples
C-t Sampling Measurements

MsgBox("Connect DUT. Then click OK.", vbOKOnly, "") ’67


B1500.WriteLine("MTDCV " & bias_h & "," & interval & "," & nop1 & "," & base_h)
B1500.WriteLine("MDCV " & cmu_ch & "," & base & "," & bias & ",0")
B1500.WriteLine("MM 26," & cmu_ch) ’Sets measurement mode
B1500.WriteLine("IMP 100") ’Sets MFCMU measurement mode
B1500.WriteLine("RC " & cmu_ch & "," & range) ’Sets measurement range
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TSR") ’Resets time stamp
B1500.WriteLine("XE") ’Performs measurement
B1500.WriteLine("*OPC?") : rep = B1500.Read(True) ’77
B1500.WriteLine("ERR? 1") : err = B1500.Read(True)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("NUB?") : rep = B1500.Read(True)
If rep <> nop1 * 4 Then B1500.WriteLine("DZ") : GoTo Check_nop

ret_val = B1500.ReadListAsStringArray() ’83


Dim data1 As String
For i = 0 To nop1 - 1
data1 = ret_val(i * 4) : data1 = Right(data1, 12) : sc(i) = Val(data1)
data1 = ret_val(i * 4 + 1) : data1 = Right(data1, 12) : tm(i) = Val(data1)
data1 = ret_val(i * 4 + 2) : st(i * 2) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2) = Val(data1)
data1 = ret_val(i * 4 + 3) : st(i * 2 + 1) = Left(data1, 3)
data1 = Right(data1, 12) : md(i * 2 + 1) = Val(data1)
data(j, i) = Chr(13) & Chr(10) & sc(i) & "," & md(i * 2) * 1000000000000.0 & ","
& st(i * 2)
data(j, i) = data(j, i) & "," & md(i * 2 + 1) * 1000000.0 & "," & st(i * 2 + 1)
& "," & tm(i)
Next i
B1500.WriteLine("DZ") ’95
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub

Line Description

67 Displays a message box that asks you to connect the device to the measurement terminal.
Then the CMUH and CMUL must be connected to the gate terminal and the substrate
terminal respectively.
68 to 76 Sets the measurement condition, resets the time stamp, and performs the measurement.

77 to 81 Waits until the measurement is completed. After that, if an error is detected, forces 0 V and
goes to Check_err. Also if the number of returned data is not correct, forces 0 V and goes to
Check_nop.

83 to 94 Stores the returned data into the ret_val string array variable. Finally, stores the measured
data into the data array.
95 to 97 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a CSV
file specified by the fname variable and displays the data on a message box.

3-96 Agilent B1500 Programming Guide, Edition 4


Programming Examples
C-t Sampling Measurements

Check_err: ’99
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

Check_nop: ’104
MsgBox("No. of data: " & rep & " (not " & nop1 * 6 & ")", vbOKOnly, "")

End Sub

Line Description

99 to 102 Displays a message box to show an error message if the error is detected.

104 to 106 Displays a message box to show an error message if the number of returned data is not
correct.

Measurement Index, Cp (pF), C_st, G (uS), G_st, Time (s)


Result Example 1,0.100051,NGC,0.0579184,NGY,0.10199
2,0.0989954,NGC,0.0510581,NGY,0.152
3,0.101344,NGC,0.0603764,NGY,0.20199
4,0.0988522,NGC,0.058593,NGY,0.252
5,0.0990403,NGC,0.0514987,NGY,0.30199
6,0.10049,NGC,0.0588621,NGY,0.35199
7,0.0997872,NGC,0.0505812,NGY,0.40199
8,0.0990492,NGC,0.0449747,NGY,0.452
9,0.0999805,NGC,0.0460361,NGY,0.50199
10,0.0972752,NGC,0.0518454,NGY,0.552
11,0.100533,NGC,0.0604562,NGY,0.60199
12,0.0979196,NGC,0.0573212,NGY,0.65199
13,0.0984623,NGC,0.0589873,NGY,0.70199
14,0.0991157,NGC,0.0501881,NGY,0.752
15,0.0985757,NGC,0.0550837,NGY,0.80199
16,0.0972,NGC,0.0564537,NGY,0.852
17,0.0993272,NGC,0.0596557,NGY,0.90199
18,0.0986133,NGC,0.0542398,NGY,0.952
19,0.0992744,NGC,0.0634103,NGY,1.00199
20,0.0990222,NGC,0.0627697,NGY,1.052
21,0.0985357,NGC,0.0446665,NGY,1.102
22,0.0997336,NGC,0.060945,NGY,1.152
23,0.0993864,NGC,0.0538741,NGY,1.202
24,0.0986702,NGC,0.04196,NGY,1.25199
25,0.099164,NGC,0.0535988,NGY,1.30199
26,0.100364,NGC,0.0378016,NGY,1.352
27,0.100047,NGC,0.0534552,NGY,1.402
28,0.100995,NGC,0.0550804,NGY,1.452
29,0.100044,NGC,0.0452834,NGY,1.50199
30,0.101213,NGC,0.0538826,NGY,1.552

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-97


Programming Examples
SPGU Pulse Output

SPGU Pulse Output


To output SPGU pulse voltage, use the following commands.

Function Command Parameters

Enables channels CN [chnum ... [,chnum] ... ]

Disables channels CL [chnum ... [,chnum] ... ]

Sets SPGU pulse output mode SIM 0

Sets output operation mode SPRM mode[,condition]

Sets pulse period for all of SPPER period


SPGU channels

Sets channel output mode SPM chnum,mode

Sets pulse timing parameters SPT chnum,src,delay,width,leading


[,trailing]

Sets pulse level parameters SPV chnum,src,base[,peak]

Sets load impedance SER chnum,loadZ

Measures and sets load [CORRSER?] chnum,mode,delay,interval,


impedance count

Sets pulse switch [ODSW] chnum,state[,normal[,delay,


width]]
Sets SPGU trigger output [STGP] chnum,state

Applies SPGU channel setup SPUPD chnum[,chnum ... [,chnum] ... ]

Starts SPGU pulse output SRP


Stops SPGU pulse output [SPP]

Returns SPGU output status [SPST?]

3-98 Agilent B1500 Programming Guide, Edition 4


Programming Examples
SPGU Pulse Output

The following program controls a SPGU to output 2-level pulse from the channel 1
and 3-level pulse from the channel 2. This program can run without the project
template (Table 3-1).
Table 3-25 SPGU Pulse Output Example

Imports Agilent.TMFramework ’1
Imports Agilent.TMFramework.DataAnalysis
Imports Agilent.TMFramework.DataVisualization
Imports Agilent.TMFramework.InstrumentIO

Module Module1 ’6

Sub Main()

Dim B1500 As New DirectIO("GPIB0::17::INSTR") ’10


B1500.WriteLine("*RST")
MsgBox("Click OK to start the program.", vbOKOnly, "")
Console.WriteLine("SPGU setup.")

Dim sp_ch() As Integer = {101, 102} ’15


Dim duration As Double = 10
Dim loadz As Double = 1000000.0
Dim period As Double = 0.0001
Dim p1_del As Double = 0.00001
Dim p1_wid As Double = 0.00008
Dim p2_del1 As Double = 0.00001
Dim p2_del2 As Double = 0.00006
Dim p2_wid1 As Double = 0.00003
Dim p2_wid2 As Double = 0.00003
Dim p_lead As Double = 0.00000002
Dim p_trail As Double = 0.00000002
Dim p1_base As Double = 0
Dim p1_peak As Double = 3
Dim p2_base1 As Double = 0
Dim p2_base2 As Double = 0
Dim p2_peak1 As Double = 3
Dim p2_peak2 As Double = -3
Dim p_stat As Integer = 0 ’33

Line Description

1 to 4 These lines are necessary for the Agilent instrument control programming.

10 Establishes the connection with the Agilent B1500 of the GPIB address 17 on the
interface GPIB0. “GPIB0” is the VISA name. Confirm your GPIB settings, and set
them properly.
11 Resets the B1500.

15 to 33 Declares variables and sets the value. This program uses the SPGU installed in the slot
1 of the B1500.

Agilent B1500 Programming Guide, Edition 4 3-99


Programming Examples
SPGU Pulse Output

Dim msg As String = "No error." ’35


Dim err As String = "0"
Dim err_msg() As String = {err, msg}

B1500.WriteLine("CN " & sp_ch(0) & "," & sp_ch(1)) ’ SPGU ch on ’39
B1500.WriteLine("SIM 0") ’ PG mode
B1500.WriteLine("SPRM 2," & duration) ’ Duration mode
B1500.WriteLine("ODSW " & sp_ch(0) & ", 0") ’ Disables pulse switch
B1500.WriteLine("ODSW " & sp_ch(1) & ", 0")
B1500.WriteLine("SER " & sp_ch(0) & "," & loadz) ’ Load impedance
B1500.WriteLine("SER " & sp_ch(1) & "," & loadz) ’45
B1500.WriteLine("SPPER " & period) ’ Pulse period
B1500.WriteLine("SPM " & sp_ch(0) & ",1") ’ 2-level pulse setup
B1500.WriteLine("SPT " & sp_ch(0) & ",1," & p1_del & "," & p1_wid & "," & p_lead &
"," & p_trail)
B1500.WriteLine("SPV " & sp_ch(0) & ",1," & p1_base & "," & p1_peak)
B1500.WriteLine("SPM " & sp_ch(1) & ",3") ’ 3-level pulse setup ’50
B1500.WriteLine("SPT " & sp_ch(1) & ",1," & p2_del1 & "," & p2_wid1 & "," & p_lead
& "," & p_trail)
B1500.WriteLine("SPT " & sp_ch(1) & ",2," & p2_del2 & "," & p2_wid2 & "," & p_lead
& "," & p_trail)
B1500.WriteLine("SPV " & sp_ch(1) & ",1," & p2_base1 & "," & p2_peak1)
B1500.WriteLine("SPV " & sp_ch(1) & ",2," & p2_base2 & "," & p2_peak2)
B1500.WriteLine("SPUPD" & sp_ch(0) & "," & sp_ch(1)) ’ Apply setup

Line Description

35 to 37 Declares variables used for error check.

39 Enables the SPGU channels specified by sp_ch(0) and sp_ch(1).


40 Sets the pulse generator mode to all of the SPGU channels.

41 Selects the duration output mode.

42 to 43 Disables the pulse switch.

44 to 45 Sets the load impedance value.

46 Sets the pulse period for all of the SPGU channels.

47 to 49 Sets the channel specified by sp_ch(0) to the 2-level pulse output channel using the
source 1, sets the pulse timing parameters, and sets the pulse level parameters.

50 to 54 Sets the channel specified by sp_ch(1) to the 3-level pulse output channel using the
source 1 and 2, sets the pulse timing parameters, and sets the pulse level parameters.

55 Applies the pulse setup to the channels specified by sp_ch(0) and sp_ch(1). The
channel outputs the pulse base value.

3-100 Agilent B1500 Programming Guide, Edition 4


Programming Examples
SPGU Pulse Output

B1500.WriteLine("ERRX? 0") : err_msg = B1500.ReadListAsStringArray() ’57


err = err_msg(0)
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err

B1500.WriteLine("SRP") ’ Start pulse output ’61


Console.Write("SPGU output in progress")

Spgu_stat: ’64
Console.Write(".")
B1500.WriteLine("SPST?") : p_stat = B1500.Read(True) ’ Check SPGU output status
If p_stat = 1 Then GoTo Spgu_stat
If p_stat = 0 Then GoTo Close

Check_err: ’70
msg = err_msg(1) : B1500.WriteLine("ERR?")
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")

Close: ’74
Console.WriteLine(Chr(10) & "SPGU output stopped.")
B1500.WriteLine("CL")
B1500.Close()
MsgBox("Click OK to stop the program.", vbOKOnly, "")
Console.WriteLine("Program completed." & Chr(10)) ’79

End Sub

End Module

Line Description

57 to 59 Reads error buffer. If an error is detected, changes the channel output to 0 V and goes to
Check_err.

61 Starts the SPGU pulse output.

64 to 68 Checks the SPGU pulse output status. And waits for the end status.

70 to 72 Clears the error buffer. And displays a message box to show an error message.
74 to 79 Disables all channels, and closes the connection with the Agilent B1500.

Agilent B1500 Programming Guide, Edition 4 3-101


Programming Examples
Using Program Memory

Using Program Memory


The program memory can store approximately 2,000 programs or 40,000
commands. Storing programs and executing them will improve the program
execution speed. The following commands are available to use program memory.

Command Function and Syntax


ST and END Stores the program in the memory.
ST pnum;command[ ... [;command] ..];END
or
ST pnum
[command]
:
[command]
END
[SCR] Scratches the program.
SCR [pnum]
[LST?] Gets a catalog of program numbers or a specific program listing
(up to 3000 commands).
LST? [pnum[,index[,size]]]
DO Executes specified programs.
DO pnum[,pnum ... [,pnum] ...]
RU Executes programs sequentially.
RU start,stop
[PA] Pauses command execution or internal memory program
execution.
PA [wait]
[VAR] Defines an internal memory variable, and sets the value.
VAR Type,N,Value
[VAR?] Reads the value of the internal memory variable.
VAR? Type,N

3-102 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Program Memory

Table 3-26 and Table 3-27 show the example program that uses the internal program
memory, and does the following:

• stores a high-speed spot measurement program in the memory 1, and displays it.
• stores a pulsed spot measurement program in the memory 2, and displays it.
• executes the internal memory program 1 and 2.
• displays the measurement results on the console window.
The example program shown in Table 3-27 uses the internal variables available for
the internal program memory. The program code is given as the replaceable code of
the lines 13 to 39 shown in Table 3-26. To run the program, delete the lines 13 to 39
from the program of Table 3-26, and insert the program lines 1 to 37 of Table 3-27.
Also insert Table 3-27’s lines 39 to 49 between Table 3-26’s lines 53 and 54. The
code shown in Table 3-27 cannot run by itself.

NOTE Running example programs in this section


To run the programs, the project template (Table 3-1) is not needed. To run the
program of Table 3-27, see the above paragraph.

Tips to use program memory


1. Completes program:
Before storing the program in the program memory, verify that the program is
complete and free of errors. Command parameter check will be performed when
the program is executed.
If the program being stored makes changes to the present measurement setup,
verify that these changes are correct and compatible with the present setup.
2. For the invalid commands in the internal memory program, refer to Table 2-1 on
page 2-47.

Agilent B1500 Programming Guide, Edition 4 3-103


Programming Examples
Using Program Memory

Table 3-26 Program Memory Programming Example 1

Imports Agilent.TMFramework ’1
Imports Agilent.TMFramework.DataAnalysis
Imports Agilent.TMFramework.DataVisualization
Imports Agilent.TMFramework.InstrumentIO

Module Module1
Sub Main()
Dim B1500 As New DirectIO("GPIB0::17::INSTR") ’8
B1500.WriteLine("*RST")
Dim fmt As Integer = 1 : B1500.WriteLine("FMT" & fmt)
Dim t() As Integer = {1, 2, 4, 6} ’SMU1, SMU2, SMU4, SMU6 ’11

Dim v0 As Double = 0 : Dim vd As Double = 1 : Dim idcomp As Double = 0.1


Dim vg As Double = 0.8 : Dim igcomp As Double = 0.05
Dim orng As Integer = 0 : Dim mrng As Integer = 0 : Dim hold As Double = 0.1
Dim width As Double = 0.01 : Dim period As Double = 0.02

Dim mem As Integer = 1 ’18


B1500.WriteLine("ST" & Mem)
B1500.WriteLine("DV" & t(3) & ",0,0,0.1")
B1500.WriteLine("DV" & t(2) & ",0,0,0.1")
B1500.WriteLine("DV" & t(1) & "," & orng & "," & vg & "," & igcomp)
B1500.WriteLine("DV" & t(0) & "," & orng & "," & vd & "," & idcomp)
B1500.WriteLine("TI" & t(0) & "," & mrng)
B1500.WriteLine("END")
display_mem(B1500, mem)

mem = 2 ’28
B1500.WriteLine("ST" & Mem)
B1500.WriteLine("PT" & hold & "," & width & "," & period)
B1500.WriteLine("DV" & t(3) & ",0,0,0.1")
B1500.WriteLine("DV" & t(2) & ",0,0,0.1")
B1500.WriteLine("PV" & t(1) & "," & orng & "," & v0 & "," & vg & "," & igcomp)
B1500.WriteLine("DV" & t(0) & "," & orng & "," & vd & "," & idcomp)
B1500.WriteLine("MM3," & t(0))
B1500.WriteLine("RI" & t(0) & "," & mrng)
B1500.WriteLine("XE")
B1500.WriteLine("END")
display_mem(B1500, mem) ’39

Line Description

1 to 4 These lines are necessary for the Agilent instrument control programming.

8 to 11 Establishes the connection with the Agilent B1500, resets the B1500, and sets the data
output format. Also declares the SMUs used for measurement.
13 to 16 Declares variables used to set measurement conditions and sets the value.

18 to 26 Stores program in the internal memory 1, and displays it on the console window.

28 to 39 Stores program in the internal memory 2, and displays it on the console window.

3-104 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Program Memory

Dim term As String = t(0) & "," & t(1) & "," & t(2) & "," & t(3) ’41
B1500.WriteLine("CN" & term)
Dim i As Integer : Dim ret As Integer : Dim msg As String
Dim value As String : Dim status As String : Dim meas As Double
For i = 1 To 2
B1500.WriteLine("DO" & i)
B1500.WriteLine("*OPC?") : ret = B1500.Read(True)
B1500.WriteLine("ERR? 1") : ret = B1500.Read(True)
If ret <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
value = B1500.Read(True) : status = Left(value, 3)
value = Right(value, 12) : meas = Val(value)
Console.WriteLine("Memory " & i & ": Id = " & meas & " (A), Status = " &
status & Chr(10))
Next
B1500.WriteLine("DZ") ’54
B1500.WriteLine("CL")
B1500.Close()
Exit Sub

Check_err: ’59
B1500.WriteLine("EMG? " & ret) : msg = B1500.Read(True)
MsgBox("Instrument error: " & ret & Chr(10) & msg, vbOKOnly, "")
Exit Sub
End Sub

Sub display_mem(ByVal B1500 As DirectIO, ByVal mem As Integer) ’65


B1500.WriteLine("LST?" & mem)
Dim prog_list As String = B1500.Read(True)
Console.WriteLine("Memory " & mem & ":")
Console.WriteLine(prog_list & Chr(10))
End Sub

End Module

Line Description

41 to 53 Enables SMUs and performs the measurement. After that, checks if an error occurred.
If an error is detected, forces 0 V and goes to Check_err. Also reads the measured data
and displays it on the console window.
54 to 57 Applies 0 V from all channels, disables SMUs, and closes the connection with the
Agilent B1500.

59 to 63 Displays a message box to show an error message if the error is detected.

65 to 70 Reads the program lists stored in the internal program memory, and displays it on the
console window.

Measurement Memory 1: Id = 0.021945 (A), Status = NAI


Result Example
Memory 2: Id = 0.022095 (A), Status = NAI

Press any key to continue

Agilent B1500 Programming Guide, Edition 4 3-105


Programming Examples
Using Program Memory

Table 3-27 Program Memory Programming Example 2

B1500.WriteLine("VAR0,0," & t(0)) ’%I0=t(0) ’1


B1500.WriteLine("VAR0,1," & t(1)) ’%I1=t(1)
B1500.WriteLine("VAR0,2," & t(2)) ’%I2=t(2)
B1500.WriteLine("VAR0,3," & t(3)) ’%I3=t(3)
B1500.WriteLine("VAR0,4,0") ’%I4=mrng=0
B1500.WriteLine("VAR0,5,0") ’%I5=orng=0
B1500.WriteLine("VAR1,0,1") ’%R0=vd=1
B1500.WriteLine("VAR1,1,0.8") ’%R1=vg=0.8
B1500.WriteLine("VAR1,2,0.1") ’%R2=idcomp=0.1
B1500.WriteLine("VAR1,3,0.05") ’%R3=igcomp=0.05
B1500.WriteLine("VAR1,4,0") ’%R4=v0=0
B1500.WriteLine("VAR1,5,0.1") ’%R5=hold=0.1
B1500.WriteLine("VAR1,6,0.01") ’%R6=width=0.01
B1500.WriteLine("VAR1,7,0.02") ’%R7=period=0.02

Dim mem As Integer = 1 ’16


B1500.WriteLine("ST" & mem)
B1500.WriteLine("DV %I3,0,0,0.1")
B1500.WriteLine("DV %I2,0,0,0.1")
B1500.WriteLine("DV %I1,%I5,%R1,%R3")
B1500.WriteLine("DV %I0,%I5,%R0,%R2")
B1500.WriteLine("TI %I0,%I4")
B1500.WriteLine("END")
display_mem(B1500, mem)

mem = 2 ’26
B1500.WriteLine("ST" & mem)
B1500.WriteLine("PT %R5,%R6,%R7")
B1500.WriteLine("DV %I3,0,0,0.1")
B1500.WriteLine("DV %I2,0,0,0.1")
B1500.WriteLine("PV %I1,%I5,%R4,%R1,%R3")
B1500.WriteLine("DV %I0,%I5,%R0,%R2")
B1500.WriteLine("MM3,%I0")
B1500.WriteLine("RI %I0,%I4")
B1500.WriteLine("XE")
B1500.WriteLine("END")
display_mem(B1500, mem) ’37

Line Description

1 to 14 Declares variables used to set measurement conditions and sets the value. To run the
program, replace the code with the lines 13 to 16 of the program shown in Table 3-26.

16 to 24 Stores program in the internal memory 1, and displays it on the console window. To run
the program, replace the code with the lines 18 to 26 of the program shown in Table
3-26.

26 to 37 Stores program in the internal memory 2, and displays it on the console window. To run
the program, replace the code with the lines 28 to 39 of the program shown in Table
3-26.

3-106 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Program Memory

’changes vd and vg and performs measurement again ’39


B1500.WriteLine("VAR1,0,3") ’%R0=vd=3
For i = 1 To 2
B1500.WriteLine("DO" & i)
B1500.WriteLine("*OPC?") : ret = B1500.Read(True)
B1500.WriteLine("ERR? 1") : ret = B1500.Read(True)
If ret <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
value = B1500.Read(True) : status = Left(value, 3)
value = Right(value, 12) : meas = Val(value)
Console.WriteLine("Memory " & i & ": Id = " & meas & " (A), Status = " &
status & Chr(10))
Next ’49

Line Description

39 to 49 Changes the value of the internal variable %R0, and performs measurement again. Can
be inserted between line 53 and line 54 of the program shown in Table 3-26.

Measurement Memory 1: Id = 0.021955 (A), Status = NAI


Result Example Memory 2: Id = 0.021975 (A), Status = NAI

Memory 1: Id = 0.023085 (A), Status = NAI

Memory 2: Id = 0.023335 (A), Status = NAI

Press any key to continue

Agilent B1500 Programming Guide, Edition 4 3-107


Programming Examples
Using Trigger Function

Using Trigger Function


The Agilent B1500 can be equipped with eight trigger ports that will be used for
different purpose individually. The Agilent B1500 can synchronize the operation
with other equipment by using the trigger function. For details about the trigger
input/output operation, see “Trigger Function” on page 2-63. The following
commands are available for the trigger function.

Command Function and Syntax

TGP Sets the trigger port for the specified terminal.


TGP port,terminal,polarity[,type]

TGPC Clears the trigger setting of the specified ports.


TGPC [port ... [,port] ... ]

TGSI Selects the sweep step first or last that ignores the Start Step
Output Setup trigger input set by the TGP port,1,polarity,2
command.
TGSI mode

TGSO Selects the trigger type, edge or gate, for the Step Output Setup
Completion trigger output set by the TGP port,2,polarity,2
command.
TGSO mode

TGXO Selects the trigger type, edge or gate, for the Measurement
Completion trigger output set by the TGP port,2,polarity,1
command.
TGXO mode

TGMO Selects the trigger type, edge or gate, for the Step Measurement
Completion trigger output set by the TGP port,2,polarity,3
command.
TGMO mode

TM3 Enables the trigger set by the TGP port,terminal,polarity,1


command.

3-108 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Trigger Function

The following commands are also available to send a trigger or wait for an external
trigger input. Refer to “Using Trigger Function” on page 2-68.

Command Function and Syntax

OS Causes the Agilent B1500 to send a trigger signal from the Ext
Trig Out terminal.
OS

OSX a Causes the Agilent B1500 to send a trigger signal from the
specified port.
OSX port[,level]

WS Enters a wait state until the Agilent B1500 receives an external


trigger via the Ext Trig In terminal.
WS [mode]

WSX a Enters a wait state until the Agilent B1500 receives an external
trigger via the specified port.
WSX port[,mode]

PA Pauses command execution or internal memory program


execution until the specified wait time has elapsed, or until a
trigger is received from the Ext Trig In terminal if the TM3
command has been entered.
PA [wait]

PAX a Pauses command execution or internal memory program


execution until the specified wait time has elapsed, or until a
trigger is received from the specified port if the TM3 command
has been entered.
PAX port[,wait]

TGP Sets trigger port to the specified terminal.


TGP port,terminal,polarity[,type]

TM3 Uses an external trigger to release the PA/PAX command state or


to start measurement when the B1500 is not in the PA/PAX/
WS/WSX command state.
a. Enter the TGP command to set the trigger port.

Agilent B1500 Programming Guide, Edition 4 3-109


Programming Examples
Using Trigger Function

Programming examples using the trigger function are explained below. The
examples use a couple within the available couples of the Agilent B1500A and the
Agilent E5260/E5270 series. In this section, they are assigned as Unit1 (address
717) and Unit2 (address 722).

NOTE To run the programs shown in this section, you do not need the example code shown
in Table 3-1 (template of a project).

The following program performs a MOSFET drain current measurement. Unit2


applies voltage to the source and substrate terminals. Unit1 applies voltage to the
gate and drain terminals, and measures the drain current. Before running the
program, connect a BNC cable between the following terminals.

• Unit2’s Ext Trig Out to Unit1’s Ext Trig In

Table 3-28 Trigger Programming Example 1

Imports Agilent.TMFramework ’1
Imports Agilent.TMFramework.DataAnalysis
Imports Agilent.TMFramework.DataVisualization
Imports Agilent.TMFramework.InstrumentIO

Module Module1

Sub Main() ’8
Dim unit1 As New DirectIO("GPIB0::17::INSTR")
Dim unit2 As New DirectIO("GPIB0::22::INSTR")
unit1.WriteLine("*RST")
unit2.WriteLine("*RST")
MsgBox("Click OK to start measurement.", vbOKOnly, "")
Console.WriteLine("Measurement in progress. . ." & Chr(10))
Dim t() As Integer = {1, 2, 1, 2} ’unit1[1,2], unit2[1,2]
Dim term1 As String = t(0) & "," & t(1)
Dim term2 As String = t(2) & "," & t(3)
unit1.WriteLine("CN" & term1)
unit2.WriteLine("CN" & term2)
perform_meas(unit1, unit2, t) ’20

Line Description

1 to 4 These lines are necessary for the Agilent instrument control programming.

8 to 20 Main subprogram establishes the connection with Unit1 and Unit2, resets them, opens a
message box to confirm the start of measurement, and pauses program execution until OK is
clicked on the message box. By clicking OK, the program displays a message on the console
window, enables the SMUs (in the slots 1 and 2 of both Unit1 and Unit2), and calls the
perform_meas subprogram that will be used to perform measurement.

3-110 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Trigger Function

unit1.WriteLine("CL") ’22
unit2.WriteLine("CL")
unit1.Close()
unit2.Close()
MsgBox("Click OK to stop the program.", vbOKOnly, "")
Console.WriteLine("Measurement completed." & Chr(10))
End Sub ’28

Sub perform_meas(ByVal unit1 As DirectIO, ByVal unit2 As DirectIO, ByVal t() As


Integer) ’30
Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Id (mA), Status"
Dim fname As String = "C:\Agilent\prog_ex\data14.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vg As Double = 0.8 : Dim igcomp As Double = 0.05 ’42


Dim vd As Double = 2.5 : Dim vs As Double = 0 : Dim icomp As Double = 0.1
Dim ret As Integer

unit1.WriteLine("FMT 1") ’46


unit1.WriteLine("TM 1")
unit1.WriteLine("AV -1")
unit1.WriteLine("MM 1," & t(0))
unit2.WriteLine("DV" & t(3) & ",0," & vs & "," & icomp) ’sub ’50
unit2.WriteLine("DV" & t(2) & ",0," & vs & "," & icomp) ’souce
unit1.WriteLine("DV" & t(0) & ",0," & vd & "," & icomp) ’drain
unit1.WriteLine("DV" & t(1) & ",0," & vg & "," & igcomp) ’gate ’53

Line Description

22 to 28 After the measurement, the program disables all SMUs, closes the connection with Unit1 and
Unit2, and opens a message box to confirm the end of the program. Finally, by clicking OK
on the message box, the program displays a message on the console window.
31 to 40 Declares variables used through the project. And sets the proper values.

42 to 44 Declares variables used to perform measurement, and sets the value.

46 to 49 Sets the data output format, trigger mode, A/D converter, and measurement mode.
50 to 51 Unit2 applies voltage to the source and substrate terminals of a device.

52 to 53 Unit1 applies voltage to the gate and drain terminals of a device.

Agilent B1500 Programming Guide, Edition 4 3-111


Programming Examples
Using Trigger Function

unit1.WriteLine("WS 2") ’55


unit1.WriteLine("XE")
unit2.WriteLine("OS")

’unit1.WriteLine("TM 3") ’59


’unit1.WriteLine("*OPC?") : ret = unit1.Read(True)
’unit2.WriteLine("OS") ’61
’unit1.WriteLine("PA")
’unit2.WriteLine("OS")
’unit1.WriteLine("XE")

unit1.WriteLine("*OPC?") : ret = unit1.Read(True) ’66


unit1.WriteLine("ERR? 1") : err = unit1.Read(True)
If err <> 0 Then unit1.WriteLine("DZ") : GoTo Check_err

Dim ret_val As String() = unit1.ReadListAsStringArray() ’70


Dim data1 As String = ret_val(0)
Dim status As String = Left(data1, 3)
data1 = Right(data1, 12)
Dim meas As Double = Val(data1)

data(j, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & status

unit1.WriteLine("DZ") ’78
save_data(fname, title, value, data, nop1, nop2, unit1, unit2, t)
Exit Sub

Line Description

55 to 57 Unit1 waits for a trigger sent to the Ext Trig In terminal, and starts measurement by receiving
a trigger sent by Unit2.

59 to 61 The lines can be replaced with 55 to 57.


Delete ’ at the top of the lines 59 to 61, and delete lines 55 to 57, then run the program.
Unit1 will start measurement when a trigger is received via the Ext Trig In terminal.

62 to 64 The lines can be replaced with 55 to 57.


Delete ’ at the top of the lines 59 to 64, and delete lines 55 to 57, and 61, then run the program.
Unit1 will start measurement when a trigger is received via the Ext Trig In terminal.

66 to 68 Waits for the operation complete and checks if an error occurred. If an error is detected, forces
0 V and goes to Check_err.
70 to 76 Reads measurement data and stores it into the data array.

78 to 80 Applies 0 V from all channels and transfers the data stored in the data variable to the
save_data subprogram. And the subprogram will save the data into a CSV file specified by the
fname variable and displays the data on a message box.

3-112 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Trigger Function

Check_err: ’82
unit1.WriteLine("EMG? " & err) : msg = unit1.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

End Sub ’87

Sub save_data(ByVal fname As String, ByVal title As String, ByVal value As String,
ByVal data(,) As String, ByVal nop1 As Integer, ByVal nop2 As Integer, ByVal unit1
As DirectIO, ByVal unit2 As DirectIO, ByVal t() As Integer) ’89
Dim i As Integer = 0
Dim j As Integer = 0
FileOpen(1, fname, OpenMode.Output, OpenAccess.Write, OpenShare.LockReadWrite)
Print(1, value)
For j = 0 To nop2 - 1
’Print(1, Chr(13) & Chr(10) & "Unit" & j + 1) ’95
For i = 0 To nop1 - 1
Print(1, data(j, i))
Next i
Next j
FileClose(1)

Dim rbx As Integer


For j = 0 To nop2 - 1
’value = value & Chr(10) & "Unit" & j + 1 ’104
For i = 0 To nop1 - 1
value = value & data(j, i)
Next i
Next j
value = value & Chr(10) & Chr(10) & "Data save completed."
value = value & Chr(10) & Chr(10) & "Do you want to perform measurement again?"
rbx = MsgBox(value, vbYesNo, title)
If rbx = vbYes Then perform_meas(unit1, unit2, t)
End Sub ’113

End Module

Line Description

82 to 85 Displays a message box to show an error message if the error is detected.

89 to 113 Save_data subprogram saves measurement result data into a file specified by the fname
variable and displays the data and a message on a message box. If Yes is clicked on the
message box, calls the perform_meas subprogram again. If No is clicked, returns to the
perform_meas subprogram.

Measurement Id (mA), Status


Result Example 22.475, NAI

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-113


Programming Examples
Using Trigger Function

The following program performs I-V measurement of two-terminal devices. Each


unit measures a different device simultaneously. Before running the program,
connect a BNC cable between the following terminals.

• Unit1’s Ext Trig Out to Unit2’s Ext Trig In


• Unit2’s Ext Trig Out to Unit1’s Ext Trig In

NOTE The program needs the example code shown in Table 3-28 to run. Delete apostrophe
(’) at the beginning of the lines 95 and 104 shown in Table 3-28. And delete the lines
30 to 87 shown in Table 3-28, and insert the code shown in Table 3-29 into there.

Table 3-29 Trigger Programming Example 2

Sub perform_meas(ByVal unit1 As DirectIO, ByVal unit2 As DirectIO, ByVal t() As


Integer) ’1
Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 5
Dim nop2 As Integer = 2
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "I (mA), Time (msec), Status"
Dim fname As String = "C:\Agilent\prog_ex\data15.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"
Dim v1 As Double = 0.1 : Dim v2 As Double = 0.5 ’12
Dim vs As Double = 0 : Dim icomp As Double = 0.1
Dim ret As Integer
unit1.WriteLine("FMT 1")
unit1.WriteLine("AV -1")
unit1.WriteLine("WT 0, 0.01")
unit1.WriteLine("TM 3") ’18
unit1.WriteLine("TGP -1, 1, 2, 1")
unit1.WriteLine("TGP -2, 2, 2, 3")
unit1.WriteLine("TGMO 1") ’21

Line Description

1 to 11 Declares variables used in the Main of Table 3-28. And sets the proper values.
12 to 14 Declares variables used to perform measurement, and sets the value.

15 to 17 Unit1 sets the data output format, A/D converter, and sweep delay time.

18 to 19 Unit1 sets the Start Measurement trigger input for the Ext Trig In terminal.
20 to 21 Unit1 sets the Step Measurement Completion trigger output for the Ext Trig Out terminal.

3-114 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Trigger Function

unit1.WriteLine("DV" & t(1) & ",0," & vs & "," & icomp) ’22
unit1.WriteLine("WV" & t(0) & ",1,0," & v1 & "," & v2 & "," & nop1 & "," & icomp)
unit1.WriteLine("MM 2," & t(0))
unit1.WriteLine("TSC 1")

unit2.WriteLine("FMT 1") ’27


unit2.WriteLine("AV -1")
unit2.WriteLine("WT 0, 0.01")
unit2.WriteLine("TM 3") ’30
unit2.WriteLine("TGP -2, 2, 2, 1")
unit2.WriteLine("TGXO 2")
unit2.WriteLine("TGP -1, 1, 2, 2")
unit2.WriteLine("TGSI 2") ’34
unit2.WriteLine("DV" & t(3) & ",0," & vs & "," & icomp)
unit2.WriteLine("WV" & t(2) & ",1,0," & v1 & "," & v2 & "," & nop1 & "," & icomp)
unit2.WriteLine("MM 2," & t(2))
unit2.WriteLine("TSC 1")
unit1.WriteLine("TSR") : unit2.WriteLine("TSR")
unit2.WriteLine("XE")

unit1.WriteLine("*OPC?") : ret = unit1.Read(True) ’42


unit1.WriteLine("ERR? 1") : err = unit1.Read(True)
If err <> 0 Then unit1.WriteLine("DZ") : unit2.WriteLine("DZ") : GoTo Check_err
unit2.WriteLine("ERR? 1") : err = unit1.Read(True)
If err <> 0 Then unit1.WriteLine("DZ") : unit2.WriteLine("DZ") : GoTo Check_err

Line Description

22 to 25 Unit1 applies voltage to device, and sets the sweep source, the measurement mode, and the
time stamp data output.

27 to 29 Unit2 sets the data output format, A/D converter, and sweep delay time.
30 to 32 Unit2 sets the Measurement Completion trigger output for the Ext Trig Out terminal, and
specifies the gate trigger. Unit1 will start measurement when this trigger is sent to its Ext
Trig In terminal.

33 to 34 Unit2 sets the Start Step Output Setup trigger input for the Ext Trig In terminal. Unit2 will
start step output setup when the Step Measurement Completion trigger is sent by Unit1.

35 to 38 Unit2 applies voltage to device, and sets the sweep source, the measurement mode, and the
time stamp data output.
39 Resets the time stamp.

40 Unit2 starts measurement, and sends a gate trigger to the Ext Trig Out terminal. Then Unit1
starts measurement.

42 to 46 Waits for the operation complete and checks if an error occurred. If an error is detected,
forces 0 V and goes to Check_err.

Agilent B1500 Programming Guide, Edition 4 3-115


Programming Examples
Using Trigger Function

Dim ret_val1() As String = unit1.ReadListAsStringArray() ’48


Dim ret_val2() As String = unit2.ReadListAsStringArray()

Dim data0 As String : Dim data1 As String : Dim time As String


Dim status As String : Dim meas As Double
For i = 0 To nop1 - 1
data0 = ret_val1(i * 2)
data1 = ret_val1(i * 2 + 1)
data0 = Right(data0, 12) : time = Val(data0)
status = Left(data1, 3)
data1 = Right(data1, 12) : meas = Val(data1)
data(0, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & time * 1000 & ", " & status
Next i
For i = 0 To nop1 - 1
data0 = ret_val2(i * 2)
data1 = ret_val2(i * 2 + 1)
data0 = Right(data0, 12) : time = Val(data0)
status = Left(data1, 3)
data1 = Right(data1, 12) : meas = Val(data1)
data(1, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & time * 1000 & ", " & status
Next i ’68
unit1.WriteLine("DZ") : unit2.WriteLine("DZ")
save_data(fname, title, value, data, nop1, nop2, unit1, unit2, t)
Exit Sub

Check_err: ’73
unit1.WriteLine("EMG? " & err) : msg = unit1.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub

End Sub

Line Description

48 to 68 Reads measurement data and stores it into the data array.


69 to 71 Applies 0 V from all channels and transfers the data stored in the data variable to the
save_data subprogram. And the subprogram will save the data into a CSV file specified
by the fname variable and displays the data on a message box.
73 to 76 Displays a message box to show an error message if the error is detected.

Measurement I (mA), Time (msec), Status


Result Example Unit1
11.345, 18.8, NDI
22.685, 50, NDI
34.035, 81.2, NDI
45.385, 112.4, NDI
56.73, 143.5, NDI
Unit2
10.98, 13.6, NAI
21.98, 47.1, NAI
32.98, 78.2, NAI
43.965, 109.6, NAI
54.965, 140.7, NAI

3-116 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Trigger Function

This is a program written in the HP BASIC language, and performs the following.

1. Sets the Agilent B1500 for the bipolar transistor Ib-Ic measurement
2. Triggers a sweep measurement
3. Performs a step measurement and sends the Step Measurement Completion
output gate trigger
4. Waits for the Start Step Output Setup input trigger
5. Displays a measurement data (Ic)
6. Repeats 3 to 5 the number of times specified by Ib_num
7. Disables the Agilent B1500 channel output
This is a part of the program used to synchronize the Agilent B1500 operation with
the other instrument. However this program does not include the program code to
control the instrument. So add the program code to control it before running the
program. For the timing of the trigger, refer to the comments in the following
program listing.
10 ASSIGN @B1500 TO 717
20 OPTION BASE 1
30 INTEGER Collector,Base,Ib_num,Vc_num
40 !
50 Collector=2
60 Base=1
70 Ib_start=.0001
80 Ib_stop=.001
90 Ib_num=10
100 Ib_step=(Ib_stop-Ib_start)/(Ib_num-1)
110 Vb_comp=1
120 Vc=2.5
130 Ic_comp=.1
140 !
150 !Other instrument should be initialized and set up.
160 !

Line No. Description

10 Assigns the I/O path to control the B1500.

50 to 130 Sets the value of the variables for source setup and so on.
140 to 160 Add program lines to perform initialization and measurement
setup of the other instrument.

Agilent B1500 Programming Guide, Edition 4 3-117


Programming Examples
Using Trigger Function

170 OUTPUT @B1500;"FMT 5" ! ASCII w/header<,>


180 OUTPUT @B1500;"AV -1" ! Averaging=1PLC
190 OUTPUT @B1500;"WT 0,.01" ! Hold Time, Delay Time
200 OUTPUT @B1500;"CN";Collector,Base
210 OUTPUT @B1500;"TGP -2,2,2,3" ! StepMeasEndTrg Output
220 OUTPUT @B1500;"TGMO 2" ! Gate Trigger
230 OUTPUT @B1500;"TGP -1,1,2,2" ! StartStepSetupTrg Input
240 OUTPUT @B1500;"TGSI 2" ! Ignore TRG for 1st step setup
250 OUTPUT @B1500;"DV";Collector,0,Vc,Ic_comp
260 OUTPUT @B1500;"WI";Base,1,0,Ib_start,Ib_stop,Ib_num,Vb_comp
270 OUTPUT @B1500;"MM";2,Collector
280 !
290 !Other instrument must be set to the measurement ready and
300 !trigger wait condition.
310 !

Line No. Description

170 Specifies the data output format.

180 Sets the number of averaging samples of the ADC.


190 Sets the hold time and delay time.

200 Enables the source/measurement channels.

210 to 220 Sets the Step Measurement Completion trigger output for the Ext
Trig Out terminal, and specifies the gate trigger.

230 to 240 Sets the Start Step Output Setup trigger input for the Ext Trig In
terminal, also disables the input trigger for the first sweep step.

250 Forces voltage.

260 Sets the staircase sweep source.


270 Sets the measurement mode and the measurement channel.

280 to 310 To synchronize the Agilent B1500 operation with the operation of
the other instrument, add program lines to set it to the
measurement ready and trigger wait condition.

3-118 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Trigger Function

320 OUTPUT @B1500;"XE"


330 !
340 !B1500 starts measurement. Then B1500 sends negative gate
350 !trigger to the other instrument.
360 !Then the instrument should start measurement.
370 !
380 FOR I=1 TO Ib_num
390 ENTER @B1500 USING "#,3X,12D,X";Ic
400 PRINT "Ic= ";Ic*1000;" [mA]"
410 !
420 !Measurement data of the other instrument should be read.
430 !And the data should be displayed.
440 !
450 !The instrument must be set to the measurement ready and
460 !trigger wait condition.
470 !
480 !The instrument must send trigger to B1500. B1500 will
490 !start a step source output by the trigger, and perform
500 !a step measurement.
510 !
520 NEXT I
530 !
540 OUTPUT @B1500;"CL"
550 END

Line No. Description

320 Starts sweep measurement, and performs a step measurement.


When the Agilent B1500 starts a step measurement, it sends a
negative gate trigger. Then the other instrument should start
measurement.
390 to 400 Reads the measurement data, and displays the measurement data.
410 to 510 To synchronize the Agilent B1500 operation with the operation of
other instrument, add program lines to do following:

• To read and display the data measured by the instrument


• To set it to the measurement ready and trigger wait condition
• To send a trigger from the instrument
When the Agilent B1500 receives the trigger, it starts a step
measurement and sends negative gate trigger.
520 Repeats 390 to 510 the number of times specified by Ib_num.
540 Disables the source/measurement channels.

Agilent B1500 Programming Guide, Edition 4 3-119


Programming Examples
Reading Time Stamp Data

Reading Time Stamp Data


Time stamp function outputs a time data with a measurement result data. For
example of reading the time stamp data, see programs in the previous sections.

NOTE This function is not available for binary data output format (FMT 3 and 4).
This function is not available for the quasi-pulsed spot measurement (MM 9) and
the search measurement (MM 14 and 15).
To read the time data with the best resolution (100 μs), reset the time stamp
every 100 sec or less for the FMT 1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Enter the MM command to define the measurement mode and enter the TSC
command to set the time stamp function ON. You can get the time data with the
measurement data. The time data is the time from timer reset to the start of
measurement. To clear/reset the time stamp, enter the TSR command.

Function Command Parameters

Sets the time stamp function TSC onoff

The following commands returns the time data regardless of the TSC command
setting. The time data is the time from when the time stamp is cleared until the
following command is entered.

Function Command Parameters

Forces DC voltage from SMU TDV chnum,range,output[,Icomp]


Forces DC current from SMU TDI chnum,range,output[,Vcomp]
Forces DC bias from CMU TDCV chnum,output
Forces AC signal from CMU TACV chnum,output
Performs high speed spot current measurement TTI chnum,range
Performs high speed spot voltage measurement TTV chnum,range
Performs high speed spot C measurement TTC chnum,mode[,range]
Just returns the time data TSQ

3-120 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Reading Binary Output Data

Reading Binary Output Data


This section provides the example to read binary data. The following program
example:
1. executes high-speed spot measurements
2. reads the measurement data in binary data format
3. rearranges the data and calculates the measured data
4. prints the measured data on the screen

NOTE Data resolution


The resolution of binary data is as shown below.

• Measurement data: Measurement range / 50000


• Output data: Output range / 20000
Note that the resolution of the measurement data is larger than the resolution of the
high resolution A/D converter.

Measurement Id (mA), Status


Result Example status = 0
type = 1
mode = 1
channel = 1
sign = 0
range = 0.01
count = 19075

3.815, 0

Data save completed.

Do you want to perform measurement again?

Agilent B1500 Programming Guide, Edition 4 3-121


Programming Examples
Reading Binary Output Data

Table 3-30 High-Speed Spot Measurement Example to read binary data

Sub perform_meas(ByVal B1500 As DirectIO, ByVal t() As Integer) ’1


Dim i As Integer = 0
Dim j As Integer = 0
Dim nop1 As Integer = 1
Dim nop2 As Integer = 1
Dim data(nop2 - 1, nop1 - 1) As String
Dim value As String = "Id (mA), Status"
Dim fname As String = "C:\Agilent\prog_ex\data16.txt"
Dim title As String = "Measurement Result"
Dim msg As String = "No error."
Dim err As String = "0"

Dim vd As Double = 0.5 ’13


Dim vg As Double = 0.5
Dim idcomp As Double = 0.05
Dim igcomp As Double = 0.01
Dim orng As Integer = 0
Dim mrng As Integer = 0

B1500.WriteLine("FMT 3") ’20


B1500.WriteLine("AV 10,1") ’ sets number of samples for 1 data
B1500.WriteLine("FL 0") ’ sets filter off
B1500.WriteLine("DV " & t(3) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A ’23
B1500.WriteLine("DV " & t(2) & ",0,0,0.1") ’out= 0 V, comp= 0.1 A
B1500.WriteLine("DV " & t(1) & "," & orng & "," & vg & "," & igcomp)
B1500.WriteLine("DV " & t(0) & "," & orng & "," & vd & "," & idcomp)
B1500.WriteLine("ERR? 1") : err = B1500.Read(True) ’28
If err <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
B1500.WriteLine("TI " & t(0) & "," & mrng)
Dim dat() As Byte = B1500.UnbufferedRead(4) ’31

Dim status As Integer = dat(3) And 224 : status = status / 32 ’224=128+64+32


If status <> 0 Then B1500.WriteLine("DZ") : GoTo Check_err
Dim type As Integer = dat(0) And 128 : type = type / 128 ’0:source, 1:meas
Dim mode As Integer = dat(0) And 64 : mode = mode / 64 ’0:voltage, 1:current
Dim sign As Integer = dat(0) And 1 ’0:positive, 1:negative
Dim rng As Integer = dat(0) And 62 : rng = rng / 2 ’62=32+16+8+4+2
Dim count As Integer = dat(1) * 256 + dat(2)
Dim chan As Integer = dat(3) And 31 ’31=16+8+4+2+1
If sign = 1 Then count = count - 65536 ’65536 = 10000000000000000 (17 bits)

Line Description
2 to 11 Declares variables used through the project. And sets the proper values.
13 to 18 Declares variables and sets the value.
20 to 22 Sets the data output format and A/D converter. Also sets the SMU filter off.
23 to 26 Applies voltage to device.
28 to 29 Checks if an error occurred. If an error is detected, forces 0 V and goes to Check_err.
30 to 31 Performs the high-speed spot measurement. And stores the returned binary data (four
bytes) into the dat array variable.
33 to 41 Picks up the elements, status, type, mode, sign, rng, count, and chan, included in the
returned binary data.

3-122 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Reading Binary Output Data

Dim range As Double ’43


If mode = 1 Then ’ current range
range = 10 ^ (rng - 20)
If rng = 20 Then
B1500.WriteLine("UNT? 1")
Dim unt As String = B1500.Read
Dim mdl(8) As String : Dim c As String
Dim a As Integer : Dim b As Integer = 0 : Dim d As Integer = 0
For a = 1 To Len(unt)
c = Mid(unt, a, 1)
If c = "," Then mdl(d) = Mid(unt, b + 1, a - b - 1) : d = d + 1
If c = ";" Then b = a
Next
If mdl(chan) = "E5291A" Then range = 0.2
End If
Else ’ voltage range
If rng = 8 Then range = 0.5
If rng = 9 Then range = 5
If rng = 11 Then range = 2
If rng = 12 Then range = 20
If rng = 13 Then range = 40
If rng = 14 Then range = 100
If rng = 15 Then range = 200
End If ’66
’value = value & Chr(13) & Chr(10) & "status = " & status ’68
’value = value & Chr(13) & Chr(10) & "type = " & type
’value = value & Chr(13) & Chr(10) & "mode = " & mode
’value = value & Chr(13) & Chr(10) & "channel = " & chan
’value = value & Chr(13) & Chr(10) & "sign = " & sign
’value = value & Chr(13) & Chr(10) & "range = " & range
’value = value & Chr(13) & Chr(10) & "count = " & count & Chr(13) & Chr(10)
Dim meas As Double ’76
If type = 0 Then meas = count * range / 20000 ’source data
If type = 1 Then meas = count * range / 50000 ’measurement data
data(j, i) = Chr(13) & Chr(10) & meas * 1000 & ", " & status ’80
B1500.WriteLine("DZ") ’82
save_data(fname, title, value, data, nop1, nop2, B1500, t)
Exit Sub
Check_err: ’86
B1500.WriteLine("EMG? " & err) : msg = B1500.Read(True)
MsgBox("Instrument error: " & err & Chr(10) & msg, vbOKOnly, "")
Exit Sub
End Sub

Line Description
43 to 66 Checks the measurement range or output range setting.
68 to 74 If you want to display and save the binary data elements, delete ’ at the top of the lines.
76 to 80 Calculates the measurement data or source output data. And, stores the data into the
data array.
82 to 84 Applies 0 V from all channels. And transfers the data stored in the data variable to the
save_data subprogram (see Table 3-1). And the subprogram will save the data into a
CSV file specified by the fname variable and displays the data on a message box.
86 to 89 Displays a message box to show an error message if the error is detected.

Agilent B1500 Programming Guide, Edition 4 3-123


Programming Examples
Using Programs for 4142B

Using Programs for 4142B


This section describes the program modification example to use a program created
for the Agilent 4142B Modular DC Source/Monitor. To use the program:
1. change the GPIB address, if necessary.
2. enter the ACH command to translate the channel numbers, if necessary.
3. remove the unsupported command, or replace it with the command supported by
the B1500.
For more information, refer to “To Use Programs for Agilent 4142B” on page 1-64.
The following program examples show a modified measurement program, which
performs a high-speed spot measurement.
The original 4142B program:
10 ASSIGN @Hp4142 TO 717
20 INTEGER G_ch,D_ch,S_ch
30 !
40 ! !Source: GNDU
50 G_ch=2 !Gate: HPSMU (SLOT2)
60 D_ch=3 !Drain: MPSMU (SLOT3)
70 S_ch=4 !Substrate: MPSMU (SLOT4)
80 !
90 OUTPUT @Hp4142;"FMT5"
100 OUTPUT @Hp4142;"CN";D_ch,G_ch,S_ch
110 OUTPUT @Hp4142;"DV";S_ch;",0,0,.1"
120 OUTPUT @Hp4142;"DV";G_ch;",0,3,.01"
130 OUTPUT @Hp4142;"DV";D_ch;",0,5,.1"
140 OUTPUT @Hp4142;"TI";D_ch;",0"
150 ENTER @Hp4142 USING "#,3X,12D,X";Mdata
160 PRINT "Id(A)=";Mdata
170 OUTPUT @Hp4142;"CL"
180 END

Line No. Description


10 Assigns the I/O path to control the 4142B.
90 Specifies the data output format.
100 to 130 Enables the source/measurement channels, and forces voltage.
140 to 180 Executes the measurement, reads and displays the measurement
data, and disables channels.

3-124 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Programs for 4142B

The program modified to control the B1500:


10 ASSIGN @Hp4142 TO 717 !<<<<
20 INTEGER G_ch,D_ch,S_ch
21 INTEGER Sub !<<<<
30 !
40 ! !Source: GNDU
50 G_ch=2 !Gate: HPSMU (SLOT2)
60 D_ch=3 !Drain: MPSMU (SLOT3)
70 S_ch=4 !Substrate: MPSMU (SLOT4)
80 !
81 Sub=5 !<<<<
82 OUTPUT @Hp4142;"ACH";Sub,S_ch !<<<<
83 OUTPUT @Hp4142;"*OPC?" !<<<<
84 ENTER @Hp4142;A !<<<<
85 !
90 OUTPUT @Hp4142;"FMT5"
100 OUTPUT @Hp4142;"CN";D_ch,G_ch,S_ch
110 OUTPUT @Hp4142;"DV";S_ch;",0,0,.1"
120 OUTPUT @Hp4142;"DV";G_ch;",0,3,.01"
130 OUTPUT @Hp4142;"DV";D_ch;",0,5,.1"
140 OUTPUT @Hp4142;"TI";D_ch;",0"
150 ENTER @Hp4142 USING "#,3X,12D,X";Mdata
160 PRINT "Id(A)=";Mdata
170 OUTPUT @Hp4142;"CL"
180 END

Line No. Note

10 Change GPIB address, if necessary.

21, 81 Add program lines if the module configuration is different from the
4142B. This example adds the variable Sub, and uses the SMU in
slot 5 instead of slot 4 for substrate.
82 to 84 Add program line to set the channel map. This example transfers the
Sub value to the variable S_ch used in the original program.

Agilent B1500 Programming Guide, Edition 4 3-125


Programming Examples
Using Programs for 4155B/4156B/4155C/4156C

Using Programs for 4155B/4156B/4155C/4156C


This section describes the program modification example to use a FLEX command
program created for the Agilent 4155B/4156B/4155C/4156C Parameter Analyzer.
To use the program:
1. change the GPIB address, if necessary.
2. enter the ACH command to translate the channel numbers, if necessary.
3. change the FMT command parameter value to use the data output format
compatible with the 4155/4156 output data, or change the program lines to read
the measurement data.
4. remove the US command.
5. remove the RMD? command.
6. remove the unsupported command, or replace the command with the
corresponding command supported by the B1500.
For more information, refer to “To Use Programs for Agilent 4155/4156” on page
1-65.
The following program examples show a modified measurement program, which
performs a high-speed spot measurement.

3-126 Agilent B1500 Programming Guide, Edition 4


Programming Examples
Using Programs for 4155B/4156B/4155C/4156C

The original 4156C program:


10 ASSIGN @Hp415x TO 717
20 INTEGER G_ch,D_ch,S_ch,B_ch
30 !
40 S_ch !Source: SMU1
50 G_ch=2 !Gate: SMU2
60 D_ch=3 !Drain: SMU3
70 B_ch=4 !Substrate: SMU4
80 !
90 OUTPUT @Hp415x;"US"
100 OUTPUT @Hp415x;"FMT 5"
110 OUTPUT @Hp415x;"CN ";D_ch,G_ch,S_ch,B_ch
120 OUTPUT @Hp415x;"DV ";S_ch;",0,0,.1"
130 OUTPUT @Hp415x;"DV ";B_ch;",0,0,.1"
140 OUTPUT @Hp415x;"DV ";G_ch;",0,3,.01"
150 OUTPUT @Hp415x;"DV ";D_ch;",0,5,.1"
160 OUTPUT @Hp415x;"TI ";D_ch;",0"
170 OUTPUT @Hp415x;"RMD? 1"
180 ENTER @Hp415x USING "#,5X,13D,X";Mdata
190 PRINT "Id(A)=";Mdata
200 OUTPUT @Hp415x;"CL"
210 END

Line No. Description

10 Assigns the I/O path to control the 4155/4156.

90 Enters the FLEX command mode.


100 Specifies the data output format.

110 to 150 Enables the source/measurement channels, and forces voltage.

160 to 210 Executes the measurement, reads and displays the measurement
data, and disables channels.

Agilent B1500 Programming Guide, Edition 4 3-127


Programming Examples
Using Programs for 4155B/4156B/4155C/4156C

The program modified to control the B1500:


10 ASSIGN @Hp415x TO 717 !<<<<
20 INTEGER G_ch,D_ch,S_ch,B_ch
21 INTEGER Sub !<<<<
30 !
40 ! S_ch=1 !Source: SMU1 <<<< replaced with GNDU
50 G_ch=2 !Gate: SMU2
60 D_ch=3 !Drain: SMU3
70 B_ch=4 !Substrate: SMU4
80 !
81 Sub=5 !<<<<
82 OUTPUT @Hp415x;"ACH ";Sub,B_ch !<<<<
83 !
90 ! OUTPUT @Hp415x;"US" <<<<
100 OUTPUT @Hp415x;"FMT 25" !<<<<
110 OUTPUT @Hp415x;"CN ";D_ch,G_ch,B_ch !<<<<
120 ! OUTPUT @Hp415x;"DV ";S_ch;",0,0,.1" <<<<
130 OUTPUT @Hp415x;"DV ";B_ch;",0,0,.1"
140 OUTPUT @Hp415x;"DV ";G_ch;",0,3,.01"
150 OUTPUT @Hp415x;"DV ";D_ch;",0,5,.1"
160 OUTPUT @Hp415x;"TI ";D_ch;",0"
170 ! OUTPUT @Hp415x;"RMD? 1" <<<<
180 ENTER @Hp415x USING "#,5X,13D,X";Mdata
190 PRINT "Id(A)=";Mdata
200 OUTPUT @Hp415x;"CL"
210 END

Line No. Note

10 Change GPIB address, if necessary.

21, 81 Add program lines if the module configuration is different from the
415x. This example adds the Sub variable, and uses the SMU in slot
5 instead of slot 4 for substrate.

82 Add program line to set the channel map. This example transfers the
Sub value to the variable B_ch used in the original program.

90 Remove the US command. This command is not required.

100 Change the FMT command parameter value.

40, 110, This example uses the GNDU instead of the SMU1. So remove the
120 program lines that include the variable S_ch (SMU1).
170 Remove the RMD? command. This command is not required.

3-128 Agilent B1500 Programming Guide, Edition 4


4 Command Reference
Command Reference

This chapter is the complete reference of the GPIB commands of the Agilent B1500:

• “Command Summary”
• “Command Parameters”
• “Command Reference”

NOTE Module model number and description


In this chapter, plug-in modules and accessory for the Agilent B1500 will be
expressed by the model number or the following abbreviation as shown below.
B1510A: HPSMU (high power SMU)
B1511A: MPSMU (medium power SMU)
B1517A: HRSMU (high resolution SMU)
E5288A: ASU (atto sense and switch unit)
B1520A: MFCMU (multi frequency capacitance measurement unit) or CMU
B1525A: HVSPGU (high voltage semiconductor pulse generator unit) or SPGU
N1301A: SCUU (SMU CMU unify unit)

4-2 Agilent B1500 Programming Guide, Edition 4


Command Reference

Command Summary
The following table summarizes the Agilent B1500 GPIB commands.

Category Command Summary


Reset *RST Resets the B1500 to the initial settings.
Diagnostics DIAG? Performs diagnostics, and returns the result.
Self-test *TST? Performs the self-test, and returns the result.
RCV Enables the channels that fail self-test.
Self CA Performs self-calibration.
Calibration *CAL? Performs self-calibration, and returns the result.
CM Sets SMU auto-calibration ON or OFF.
MFCMU ADJ/ADJ? Sets the phase compensation data.
Data CLCORR Clears the frequency list for the correction data measurement.
Correction
CORRL/CORRL? adds or returns the frequency for the correction data measurement.
DCORR/DCORR? sets or returns the calibration/reference value of the standard.
CORR? Performs the open/short/load correction data measurement.
CORRST/CORRST? sets or returns the open/short/load correction function ON/OFF.
CORRDT/CORRDT? sets or returns the open/short/load correction data.
Abort AB Aborts the present operation and subsequent command execution.
Pause/ PA/PAX Pauses command execution or internal memory program execution,
Continue until the specified wait time elapses or until an event specified by
the TM command is received.
TM Sets the event to start measurement or to release the B1500 from the
paused status set by the PA or PAX command.
Data Output FMT Specifies the measurement data output format and the data
terminator.
BC Clears the B1500 output data buffer that stores measurement data
and/or query command response data.
Timer Clear TSR Clears the timer count.

Agilent B1500 Programming Guide, Edition 4 4-3


Command Reference

Category Command Summary


Time Stamp TSC Enables the time stamp function. This function is not available for
the 4 bytes binary data format (FMT3 or FMT4), the high speed
spot, quasi-pulsed spot (MM9), and search (MM14 and MM15)
measurements.
TSQ Returns the time data from timer reset (TSR) to this command.
ASU Control SAL Disables the connection status indicator of the ASU.
SAP Controls the input-output path of the ASU.
SAR Enables 1 pA range for the auto ranging operation.
SCUU SSL Disables the connection status indicator of the SCUU.
Control
SSP Controls the input-output path of the SCUU.
Series resistor SSR Sets the internal series resistor of the specified SMU to ON or OFF.
Filter FL Sets the internal filter of the specified SMUs to ON or OFF.
Channel ACH Translates a channel number to another channel number.
Control
CN/CNX Enables the specified channels by setting the output switches to ON.
CL Disables the specified channels by setting the output switches to
OFF.
IN Sets the specified channels to 0 V.
DZ Stores the setup of the channels, and sets the output to 0 V.
RZ Returns the channel to the settings that are stored by the DZ
command and clears the stored channel settings.
WAT Sets the source wait time and the measurement wait time.
SMU AV Sets the number of samples for averaging of the high-speed ADC
Integration (A/D converter). Not effective for the high-resolution ADC.
Time and AAD Selects the type of A/D converter, high-speed or high-resolution
Averaging ADC.
AIT Selects the number of samples for averaging or the integration time
of the ADC.
AZ Enables or disables the ADC zero function.

4-4 Agilent B1500 Programming Guide, Edition 4


Command Reference

Category Command Summary


High Speed TC Measures impedance (TC), current (TI), voltage (TV), AC level
Spot TI (TMACV), or DC bias (TMDCV), and returns the measured data.
Measurement
TV
TMACV
TMDCV
TTC Measures impedance (TTC), current (TTI), or voltage (TTV), and
returns the measurement data and the time data from timer reset to
TTI
the start of measurement.
TTV
Source DI Forces DC current from the specified SMU.
Output
DV Forces DC voltage from the specified SMU.
TDI Forces DC current (TDI) or voltage (TDV) from the specified SMU,
TDV and returns the time data from timer reset to the start of output.

FC Sets the output signal frequency of the MFCMU.


ACV Sets the output signal level of the MFCMU, and starts AC voltage
output.
DCV Forces DC voltage from the MFCMU.
TACV Forces AC (TACV) or DC (TDCV) voltage from the MFCMU, and
returns the time data from timer reset to the start of output.
TDCV
MFCMU FC Sets the frequency of the AC voltage output. Used with ACV or
Setup TACV.
ACT Sets the A/D converter of the MFCMU.
IMP Specifies the impedance measurement parameters. For the ASCII
data output. Not available for FMT 3/4/13/14.
LMN Enables or disables data output of the OSC level/DC bias monitor
values.
Measurement MM Sets the measurement mode and measurement channels.
Mode
Measurement XE Performs measurements, and returns the measurement data; or
Execution recovers from the paused state if the PA/PAX command has been
sent. Not available for the high speed spot measurement.

Agilent B1500 Programming Guide, Edition 4 4-5


Command Reference

Category Command Summary


Measurement CMM Sets the SMU measurement operation mode.
Setup PAD Enables or disables the SMU parallel measurements. This is
effective for the spot (MM1), sweep (MM2), and sampling (MM10)
measurements.
RC Specifies the impedance (RC), current (RI), or voltage (RV)
measurement ranging mode for the measurement other than the high
RI
speed spot measurement.
RV
RM Sets the range selection rule for the auto ranging current
measurement.
Staircase WT Sets the hold time, delay time, step delay time, and trigger delay
Sweep time.
Source Setup
WI Sets the staircase current sweep source.
WV Sets the staircase voltage sweep source.
WM Sets the automatic abort function.
Synchronous WSI Sets the synchronous current sweep source used with the WI or PWI
Sweep command.
Source Setup WSV Sets the synchronous voltage sweep source used with the WV or
PWV command.
Multi channel WNX Sets the synchronous current sweep source or synchronous voltage
Sweep sweep source used with the WI or WV command.
Source Setup
Pulsed PT Sets the hold time, pulse width, pulse period, and trigger delay time.
Source Setup PI Sets the pulsed current source.
PV Sets the pulsed voltage source.
Pulsed Sweep PT Sets the hold time, pulse width, pulse period, and trigger delay time.
Source Setup PWI Sets the pulsed current sweep source.
PWV Sets the pulsed voltage sweep source.
WM Sets the automatic abort function.

4-6 Agilent B1500 Programming Guide, Edition 4


Command Reference

Category Command Summary


Quasi-pulsed BDM Specifies the detection interval, and either voltage or current
Spot measurement.
Measurement BDT Specifies the hold time and delay time.
/Source Setup
BDV Sets the quasi-pulsed voltage source.
Sampling MCC Clears the settings of the constant sources defined by MI, MV, or MSP.
Measurement Sets the current source synchronized with the sampling measurement.
MI
/Source Setup
MSC Sets the automatic abort function.
ML Sets the sampling mode, linear or logarithm.
MT Sets the timing parameters.
MV Sets the voltage source synchronized with the sampling measurement.
MSP Sets the SPGU channel synchronized with the sampling measurement,
and its output after the measurement.
Binary BSM Sets the source output control mode and the automatic abort
Search function.
Measurement BST Specifies the hold time and delay time.
/Source Setup
BSVM Selects the data output mode.
BSI Sets the current source channel.
BSSI Sets the synchronous current source channel.
BGV Sets the voltage monitor channel.
BSV Sets the voltage source channel.
BSSV Sets the synchronous voltage source channel.
BGI Sets the current monitor channel.

Agilent B1500 Programming Guide, Edition 4 4-7


Command Reference

Category Command Summary


Linear Search LSTM Specifies the hold time and delay time.
Measurement LSVM Selects the data output mode.
/Source Setup
LSI Sets the current source channel.
LSSI Sets the synchronous current source channel.
LGV Sets the voltage monitor channel.
LSV Sets the voltage source channel.
LSSV Sets the synchronous voltage source channel.
LGI Sets the current monitor channel.
LSM Sets the automatic abort function.
Quasi-static QSC Sets the QSCV measurement operation.
CV
QSO Enables or disables the QSCV smart operation.
Measurement
/Source Setup QSM Sets the automatic abort function and the post measurement
condition.
QSL Enables or disables the data output and compensation for the
leakage current.
QSZ Enables or disables the capacitance offset cancel function. Or
executes the capacitance offset measurement.
QST Sets the integration time, hold time, and delay time.
QSR Sets the current measurement range.
QSV Specifies the voltage output channel and its source parameters.
MFCMU WDCV Sets the DC bias sweep source of the MFCMU.
DC Bias
WMDCV Sets the automatic abort function, also sets the post sweep condition.
Sweep
Source Setup WTDCV Sets the hold time, delay time, step delay time, and trigger delay
time.
MFCMU WFC Sets the frequency sweep source of the MFCMU.
Frequency
WMFC Sets the automatic abort function, also sets the post sweep condition.
Sweep
Source Setup WTFC Sets the hold time, delay time, step delay time, and trigger delay
time.

4-8 Agilent B1500 Programming Guide, Edition 4


Command Reference

Category Command Summary


MFCMU WACV Sets the AC level sweep source of the MFCMU.
Sweep WMACV Sets the automatic abort function, also sets the post sweep condition.
Source Setup
WTACV Sets the hold time, delay time, step delay time, and trigger delay
time.
MFCMU PDCV Sets the pulsed voltage source of the MFCMU.
Pulsed
PTDCV Sets the hold time, pulse width, pulse period, and trigger delay time.
Source Setup
MFCMU PWDCV Sets the pulsed voltage sweep source of the MFCMU.
Pulsed Sweep PTDCV Sets the hold time, pulse width, pulse period, and trigger delay time.
Source Setup
MFCMU MSC Sets the automatic abort function.
Sampling Sets the timing parameters.
MTDCV
Measurement
/Source Setup MDCV Sets the voltage source synchronized with the sampling measurement.

SPGU SIM/SIM? Sets/returns the SPGU operation mode, PG or ALWG.


Control
SPRM/SPRM? Sets/returns the output operating mode (free run, duration, count).
SRP Starts the SPGU output.
SPP Stops the SPGU output.
SPUPD Applies the setup of the specified SPGU channels.
SPST? Returns the waveform output state of the SPGU.
ODSW/ODSW? Sets/returns the pulse switch condition of the specified channel.
SER/SER? Sets/returns the load impedance of DUT connected to the channel.
CORRSER? Measures the voltage at the DUT terminals connected to the SPGU
channel and returns the voltage and calculated load impedance.
STGP/STGP? Sets/returns the trigger output condition of the specified channel.
SPGU Pulse SPPER/SPPER? Sets/returns the pulse period for all SPGU channels.
Setup SPM/SPM? Sets/returns the output mode (2-level pulse, 3-level pulse, or DC
bias) of the specified channel.
SPT/SPT? Sets/returns the pulse timing parameter of the specified channel.
SPV/SPV? Sets/returns the voltage parameter for the DC bias source or pulse
signal source of the specified channel.

Agilent B1500 Programming Guide, Edition 4 4-9


Command Reference

Category Command Summary


SPGU ALW/ALW? Sets/returns the ALWG pattern data.
ALWG Setup ALS/ALS? Sets/returns the ALWG sequence data.
Digital I/O ERM Changes the digital I/O port assignments.
port
ERS? Returns the digital I/O port status.
ERC Changes the output status of the digital I/O port.
Selector ERMOD/ Sets/returns the digital I/O control mode, direct control (normal) or
Control ERMOD? 16440A selector control.
ERSSP/ERSSP? Sets/returns the connection state of the 16440A selector.
External TGP Enables the trigger function for a terminal.
Trigger TGPC Clears the trigger setting of the specified ports.
TGSI Selects the sweep step first or last that ignores the Start Step Output
Setup trigger input set by the TGP port,1,polarity,2 command.
TGSO Selects the trigger type, edge or gate, for the Step Output Setup
Completion trigger output set by the TGP port,2,polarity,2
command.
TGXO Selects the trigger type, edge or gate, for the Measurement
Completion trigger output set by the TGP port,2,polarity,1
command.
TGMO Selects the trigger type, edge or gate, for the Step Measurement
Completion trigger output set by the TGP port,2,polarity,3
command.
OS/OSX Causes the B1500 to send a trigger signal from a trigger output
terminal.
WS/WSX Enters a wait state until the B1500 receives an external trigger via a
trigger input terminal.
TM3 Enables use of an external trigger to release the PA/PAX state, or to
start measurement if the B1500 has not been set to the
PA/PAX/WS/WSX state. Or enables trigger set by the TGP
port,terminal,polarity,1.
Internal VAR Sets the value to the internal variable.
Variable VAR? Returns the value set to the internal variable.

4-10 Agilent B1500 Programming Guide, Edition 4


Command Reference

Category Command Summary


Program ST Used with END command to store a program in the internal
Memory program memory. The ST command indicates the beginning of the
program.
END Used with the ST command to store a program in the internal
program memory. The END command indicates the end of the
program.
SCR Scratches the specified program from the internal program memory.
LST? Returns a catalog of internal memory programs or a specific
program listing (3000 commands maximum).
DO Executes internal memory programs in the order specified.
RU Executes internal memory programs sequentially.
Query ERRX? Returns error code and error message.
ERR? Returns error codes. Supports error code 0 to 999.
EMG? Returns error message for the specified error code. Supports error
code 0 to 999.
*IDN? Returns the instrument model number and the ROM version
number.
LOP? Returns the operation status of all modules.
*LRN? Returns channel settings or the B1500 command parameter settings.
NUB? Returns the number of measurement data items in the output data
buffer.
*OPC? Starts to monitor pending operations, or asks the OPC bit setting.
UNT? Returns the model and revision numbers of all modules.
WNU? Returns the number of sweep steps specified by the sweep
command.
WZ? Returns 0 if all channel output is ± 2 V or less, or 1 if any channel
applies more than ± 2 V.
Status Byte *SRE Enables the specified bits of the status byte register.
*SRE? Returns which bits of the status byte register are enabled.
*STB? Returns the status byte setting.

Agilent B1500 Programming Guide, Edition 4 4-11


Command Reference

Command Parameters
The parameters used by several commands are explained in this section.
• “Channel Number”
• “SMU Voltage Measurement Ranging Type”
• “SMU Current Measurement Ranging Type”
• “SMU Voltage Output Ranging Type”
• “SMU Current Output Ranging Type”
• “SMU Voltage Source Setup Parameters for
DV/TDV/BDV/WV/WSV/WNX/PV/PWV/LSV/BSV/MV Commands”
• “SMU Current Source Setup Parameters for
DI/TDI/WI/WSI/WNX/PI/PWI/LSI/BSI/MI Commands”
• “MFCMU Measurement Parameters”
• “MFCMU Measurement Range”
• “MFCMU Measurement Frequency”
• “MFCMU AC Level Measurement Range”
• “MFCMU DC Bias Measurement Range”

NOTE Command Parameters


In this section, the command parameters are put in italics such as chnum.

NOTE Slot Numbers


Agilent B1500 provides ten module slots. And the slot numbers 1 to 10 have been
assigned from the bottom slot to the top slot sequentially.

NOTE Number of Channels in a Module and Subchannel Numbers


Agilent B1500 plug-in modules have one or two channels. The subchannel number
is always 1 for one-channel modules (SMU and MFCMU). And the subchannel
number is 1 or 2 for two-channel modules. For example, the subchannel number 1 is
assigned to the SPGU Output 1, and 2 is assigned to the SPGU Output 2.

4-12 Agilent B1500 Programming Guide, Edition 4


Command Reference

Table 4-1 Channel Number

chnum a Description

101 or 1 Subchannel 1 of the module installed in slot 1

201 or 2 Subchannel 1 of the module installed in slot 2

301 or 3 Subchannel 1 of the module installed in slot 3

401 or 4 Subchannel 1 of the module installed in slot 4

501 or 5 Subchannel 1 of the module installed in slot 5

601 or 6 Subchannel 1 of the module installed in slot 6

701 or 7 Subchannel 1 of the module installed in slot 7

801 or 8 Subchannel 1 of the module installed in slot 8

901 or 9 Subchannel 1 of the module installed in slot 9

1001 or 10 Subchannel 1 of the module installed in slot 10

102 Subchannel 2 of the module installed in slot 1

202 Subchannel 2 of the module installed in slot 2

302 Subchannel 2 of the module installed in slot 3

402 Subchannel 2 of the module installed in slot 4

502 Subchannel 2 of the module installed in slot 5

602 Subchannel 2 of the module installed in slot 6

702 Subchannel 2 of the module installed in slot 7

802 Subchannel 2 of the module installed in slot 8

902 Subchannel 2 of the module installed in slot 9

1002 Subchannel 2 of the module installed in slot 10

a. The HPSMU occupies two slots. To specify the HPSMU, use the channel
number given by the smaller slot number. For example, use the channel
number 301 or 3 to specify the HPSMU installed in slots 3 to 4.

Agilent B1500 Programming Guide, Edition 4 4-13


Command Reference

Table 4-2 SMU Voltage Measurement Ranging Type

Ranging type
range a for measurement mode for measurement mode
without pulse that uses pulse

0 Auto ranging Measurement channel uses


the minimum range that
5, for MPSMU/HRSMU 0.5 V limited auto ranging covers the compliance value.
50, for MPSMU/HRSMU 5 V limited auto ranging

20 or 11 2 V limited auto ranging

200 or 12 20 V limited auto ranging

400 or 13 40 V limited auto ranging

1000 or 14 100 V limited auto ranging

2000 or 15, for HPSMU 200 V limited auto ranging


-5, for MPSMU/HRSMU 0.5 V range fixed

-50, for MPSMU/HRSMU 5 V range fixed

-20 or -11 2 V range fixed


-200 or -12 20 V range fixed

-400 or -13 40 V range fixed

-1000 or -14 100 V range fixed

-2000 or -15, for HPSMU 200 V range fixed

a. If the measurement channel forces voltage, the channel uses the voltage output range regardless
of the range value.

4-14 Agilent B1500 Programming Guide, Edition 4


Command Reference

Table 4-3 SMU Current Measurement Ranging Type

Ranging type
range a for measurement mode for measurement mode
without pulse that uses pulse
0 Auto ranging Measurement channel uses
8, for HRSMU+ASU 1 pA limited auto ranging the minimum range that
covers the compliance value.
9, for HRSMU 10 pA limited auto ranging
10, for HRSMU 100 pA limited auto ranging
11 1 nA limited auto ranging
12 10 nA limited auto ranging
13 100 nA limited auto ranging
14 1 μA limited auto ranging
15 10 μA limited auto ranging
16 100 μA limited auto ranging
17 1 mA limited auto ranging
18 10 mA limited auto ranging
19 100 mA limited auto ranging
20, for HPSMU 1 A limited auto ranging
-8, for HRSMU+ASU 1 pA range fixed
-9, for HRSMU 10 pA range fixed
-10, for HRSMU 100 pA range fixed
-11 1 nA range fixed
-12 10 nA range fixed
-13 100 nA range fixed
-14 1 μA range fixed
-15 10 μA range fixed
-16 100 μA range fixed
-17 1 mA range fixed
-18 10 mA range fixed
-19 100 mA range fixed
-20, for HPSMU 1 A range fixed
a. If the measurement channel forces current, the channel uses the current output range regardless
of the range value.

Agilent B1500 Programming Guide, Edition 4 4-15


Command Reference

NOTE Measurement ranging (auto and limited auto)


The instrument automatically selects the minimum range that covers the
measurement value, and performs the measurement by using the range. For the
limited auto ranging, the instrument does not use the range lower than the specified
range value. For example, if you select the 100 nA limited auto ranging, the
instrument never uses the 10 nA range and below.

NOTE Before using 1 pA range


The measurement channel connected to the ASU (Atto Sense and Switch Unit)
supports the 1 pA range. To use the 1 pA range, set the 1 pA fixed range or the 1 pA
limited auto ranging.
To enable the 1 pA range for the auto ranging mode, execute the SAR command.
The Agilent B1500 automatically performs the compensation of the data measured
by the 1 pA range and returns the compensated data. You can use either the
pre-stored offset data or the pre-measured offset data.
To measure the offset data, execute the CA command before starting the
measurement for a DUT. The offset data is temporarily memorized until the B1500
is turned off.

NOTE Output ranging


The instrument automatically selects the minimum range that covers the output
value, and applies voltage or current by using the range. For the limited auto
ranging, the instrument does not use the range lower than the specified range value.
For example, if you select the 100 nA limited auto ranging, the instrument never
uses the 10 nA range and below.

4-16 Agilent B1500 Programming Guide, Edition 4


Command Reference

Table 4-4 SMU Voltage Output Ranging Type

range or vrange Ranging type

0 Auto ranging
5 0.5 V limited auto ranging, for MPSMU/HRSMU
50 5 V limited auto ranging, for MPSMU/HRSMU
20 or 11 2 V limited auto ranging
200 or 12 20 V limited auto ranging
400 or 13 40 V limited auto ranging
1000 or 14 100 V limited auto ranging
2000 or 15 200 V limited auto ranging, for HPSMU

Table 4-5 SMU Current Output Ranging Type

range or
Ranging type
irange

0 Auto ranging
8 1 pA limited auto ranging, for HRSMU+ASU, not available for pulsed output
9 10 pA limited auto ranging, for HRSMU, not available for pulsed output
10 100 pA limited auto ranging, for HRSMU, not available for pulsed output
11 1 nA limited auto ranging, not available for pulsed output
12 10 nA limited auto ranging
13 100 nA limited auto ranging
14 1 μA limited auto ranging
15 10 μA limited auto ranging
16 100 μA limited auto ranging
17 1 mA limited auto ranging
18 10 mA limited auto ranging
19 100 mA limited auto ranging
20 1 A limited auto ranging, for HPSMU

Agilent B1500 Programming Guide, Edition 4 4-17


Command Reference

Table 4-6 SMU Voltage Source Setup Parameters for


DV/TDV/BDV/WV/WSV/WNX/PV/PWV/LSV/BSV/MV Commands

Output voltage, start, Maximum Icomp value in A


Setting
range stop, base,
resolution
(actually bias, or pulse
in V HPSMU MPSMU HRSMU
used) in V

0.5 V 25E-6 0 to ± 0.5 NA ±100E-3 ±100E-3

2V 100E-6 0 to ± 2 ±1 ±100E-3 ±100E-3

5V 250E-6 0 to ± 5 NA ±100E-3 ±100E-3

20 V 1E-3 0 to ± 20 ±1 ±100E-3 ±100E-3

40 V 2E-3 0 to ± 20 ±500E-3 ±100E-3 ±100E-3

to ± 40 ±50E-3 ±50E-3

100 V 5E-3 0 to ± 20 ±125E-3 ±100E-3 ±100E-3

to ± 40 ±50E-3 ±50E-3

to ± 100 ±20E-3 ±20E-3

200 V 10E-3 0 to ± 200 ±50E-3 NA NA

4-18 Agilent B1500 Programming Guide, Edition 4


Command Reference

Table 4-7 SMU Current Source Setup Parameters for


DI/TDI/WI/WSI/WNX/PI/PWI/LSI/BSI/MI Commands

Output Maximum Vcomp value in V


Setting current, start,
range
resolution stop, base, bias,
(actually
in A or pulse in A HPSMU MPSMU HRSMU
used)

1 pA 1E-15 0 to ± 1.15 E-12 NA NA ±100

10 pA 5E-15 0 to ± 11.5 E-12 ±100

100 pA 5E-15 0 to ± 115 E-12 ±100

1 nA 50E-15 0 to ± 1.15 E-9 ±200 ±100 ±100

10 nA 500E-15 0 to ± 11.5 E-9 ±200 ±100 ±100

100 nA 5E-12 0 to ± 115 E-9 ±200 ±100 ±100

1 μA 50E-12 0 to ± 1.15E-6 ±200 ±100 ±100

10 μA 500E-12 0 to ± 11.5E-6 ±200 ±100 ±100

100 μA 5E-9 0 to ± 115E-6 ±200 ±100 ±100

1 mA 50E-9 0 to ± 1.15E-3 ±200 ±100 ±100

10 mA 500E-9 0 to ± 11.5E-3 ±200 ±100 ±100

100 mA 5E-6 0 to ± 20E-3 ±200 ±100 ±100

to ± 50E-3 ±200 ±40 ±40

to ± 100E-3 ±100 ±20 ±20


to ± 115E-3 ±100 NA NA

1A 50E-6 0 to ± 50E-3 ±200

to ± 125E-3 ±100

to ± 500E-3 ±40

to ± 1 ±20

Agilent B1500 Programming Guide, Edition 4 4-19


Command Reference

Table 4-8 MFCMU Measurement Parameters

mode Primary Parameter Secondary Parameter

1 R (resistance, Ω) X (reactance, Ω)
2 G (conductance, S) B (susceptance, S)

10 Z (impedance, Ω) θ (phase, radian)

11 Z (impedance, Ω) θ (phase, degree)

20 Y (admittance, S) θ (phase, radian)

21 Y (admittance, S) θ (phase, degree)

100 Cp (parallel capacitance, F) G (conductance, S)

101 Cp (parallel capacitance, F) D (dissipation factor)

102 Cp (parallel capacitance, F) Q (quality factor)

103 Cp (parallel capacitance, F) Rp (parallel resistance, Ω)

200 Cs (series capacitance, F) Rs (series resistance, Ω)

201 Cs (series capacitance, F) D (dissipation factor)

202 Cs (series capacitance, F) Q (quality factor)

300 Lp (parallel inductance, H) G (conductance, S)


301 Lp (parallel inductance, H) D (dissipation factor)

302 Lp (parallel inductance, H) Q (quality factor)

303 Lp (parallel inductance, H) Rp (parallel resistance, Ω)

400 Ls (series inductance, H) Rs (series resistance, Ω)

401 Ls (series inductance, H) D (dissipation factor)

402 Ls (series inductance, H) Q (quality factor)

4-20 Agilent B1500 Programming Guide, Edition 4


Command Reference

Table 4-9 MFCMU Measurement Range

Measurement range a
range
≤ 200 kHz ≤ 2 MHz ≤ 5 MHz

0 ≤ range < 100 50 Ω 50 Ω 50 Ω

100 ≤ range < 300 100 Ω 100 Ω 100 Ω


300 ≤ range < 1000 300 Ω 300 Ω 300 Ω

1000 ≤ range < 3000 1 kΩ 1 kΩ 1 kΩ

3000 ≤ range < 10000 3 kΩ 3 kΩ 3 kΩ

10000 ≤ range < 30000 10 kΩ 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 output signal frequency.

Agilent B1500 Programming Guide, Edition 4 4-21


Command Reference

Table 4-10 MFCMU Measurement Frequency

freq Measurement resolution

1000 ≤ freq < 10000 0.001 Hz


10000 ≤ freq < 100000 0.01 Hz

100000 ≤ freq < 1000000 0.1 Hz

1000000 ≤ freq ≤ 5000000 1 Hz

Table 4-11 MFCMU AC Level Measurement Range

range Maximum measurement value, absolute value

0.016 0.016 V

0.032 0.032 V

0.064 0.064 V

0.125 0.125 V

0.250 0.250 V

Table 4-12 MFCMU DC Bias Measurement Range

range a Maximum measurement value, absolute value

8 100 V (SMU) 8 V (MFCMU)

12 12 V (MFCMU)
25 25 V (MFCMU)

100

a. SMU (MPSMU or HRSMU) connected to the SCUU (SMU CMU


Unify Unit) always performs the 100 V limited auto ranging operation.
The MFCMU uses the 25V range even if range=100 is specified.

4-22 Agilent B1500 Programming Guide, Edition 4


Command Reference

Command Reference
This section contains detailed descriptions of all GPIB commands. The commands
are listed in alphabetical order. Each entry:
1. Defines one GPIB command
2. Describes the execution conditions, if any exist
3. Describes the syntax
4. Lists the parameters
5. Shows the query response after command execution, if there is a query
command
6. Explains any additional information
7. Provides examples

The following conventions are used in this section.


parameter Required command parameters, for which you must substitute a
value or variable.
[parameter] Optional command parameters, for which you may substitute a
value or omit it.

Agilent B1500 Programming Guide, Edition 4 4-23


Command Reference
AAD

AAD
This command is used to specify the A/D converter (ADC) type, high-speed or
high-resolution, for each measurement channel.
This command setting is ignored by the pulsed spot, pulsed sweep, and staircase
sweep with pulsed bias measurements.

Execution Enter the AIT command to set up the ADC.


Conditions

Syntax AAD chnum,type

Parameters chnum : SMU measurement channel number. Integer expression. 1 to 10 or 101


to 1001. See Table 4-1 on page 4-13.
type : Type of the A/D converter. Integer expression. 0 or 1.

• 0: High-speed ADC. Initial setting. For high speed measurement.


• 1: High-resolution ADC. For high accurate measurement.

Example OUTPUT @B1500;"AAD 1,0"


Statements OUTPUT @B1500;"AAD 1,1"

AB
The AB command aborts the present operation and subsequent command execution.
This command stops the operation now in progress, such as the measurement
execution, source setup changing, and so on. But this command does not change the
present condition. For example, if the B1500 just keeps to force the DC bias, the AB
command does not stop the DC bias output.

Syntax AB

Example OUTPUT @B1500;"AB"


Statements

Remarks If you start an operation that you may want to abort, do not send any command after
the command or command string that starts the operation. If you do, the AB
command cannot enter the command input buffer until the intervening command
execution starts, so the operation cannot be aborted. In this case, use the device clear
(HP BASIC CLEAR command) to end the operation.

4-24 Agilent B1500 Programming Guide, Edition 4


Command Reference
AB

If the AB command is entered in a command string, the other commands in the


string are not executed. For example, the CN command in the following command
string is not executed.
OUTPUT @B1500;"AB;CN"
During sweep measurement, if the B1500 receives the AB command, it returns only
the measurement data obtained before abort. Then the dummy data is not returned.
For the quasi-pulsed spot measurement, the B1500 cannot receive any command
during the settling detection. So the AB command cannot abort the operation, and it
will be performed after the settling detection.

Conditions after The AB command sets the B1500 as listed in the following table.
Execution
Operation before AB Setting after AB

Staircase sweep measurement Sets specified start value.

Pulsed spot measurement Sets specified base value.

Pulsed sweep measurement Sets specified base value.

Staircase sweep with pulsed bias measurement Sets specified start value and
base value.

Quasi-pulsed spot measurement Sets specified start value.

Sampling measurement Sets specified base value.

Quasi-static CV measurement Sets specified start value.

Linear search measurement Sets specified start value.


Binary search measurement Sets specified start value.

Multi channel sweep measurement Sets specified start value.

MFCMU DC/AC/frequency sweep measurement Sets specified start value.

Self-test Same as set by CL command.

Self-calibration Same as set by CL command.

Wait state (PA/PAX/WS/WSX command) Settings do not change.


Program execution (RU or DO command) Settings do not change.

Agilent B1500 Programming Guide, Edition 4 4-25


Command Reference
ACH

ACH
The ACH command translates the specified program channel number to the
specified actual channel number at the program execution. This command is useful
when you use a control program created for an instrument, such as the 4142B,
4155B/4155C/4156B/4156C/E5260/E5270, and B1500, that has a module
configuration different from the B1500 actually you use. After the ACH command,
enter the *OPC? command to confirm that the command execution is completed.

Syntax ACH [actual[,program]]

Parameter actual : Channel number actually set to the B1500 instead of program. Integer
expression. 1 to 10 or 101 to 1002. See Table 4-1 on page 4-13.
program : Channel number used in a program and will be replaced with actual.
Integer expression.
If you do not set program, this command is the same as ACH n,n.
If you do not set actual and program, all channel number mapping is cleared.
For parameter settings, you cannot use the variables set by the VAR command.

Remarks The ACH commands must be put at the beginning of the program or before the
command line that includes a program channel number. In the program lines that
follow the ACH command, you must leave the program channel numbers. The
measurement data is returned as the data of the channel program, not actual.

Example If you want to use channels 1 to 3 instead of channels 5 to 7 respectively, enter the
Statements following statements. The measurement data is returned as the data of channel 5, not
channel 1.
OUTPUT @B1500;"ACH 1,5" !uses ch1 instead of ch5
OUTPUT @B1500;"ACH 2,6" ! ch2 ch6
OUTPUT @B1500;"ACH 3,7" ! ch3 ch7
OUTPUT @B1500;"*OPC?"
ENTER @B1500;A
!
OUTPUT @B1500;"CN 5,6,7" !leave prog ch No.
! |
OUTPUT @B1500;"DV 5,0,3" ! |
OUTPUT @B1500;"DV 6,0,0" ! |
OUTPUT @B1500;"DV 7,0,0" ! |
! |
OUTPUT @B1500;"TI 5,0" ! |
ENTER @B1500 USING "#,3X,13D,X";Data! |
PRINT "I=";Data ! |
! |
OUTPUT @B1500;"CL 5,6,7" ! V

4-26 Agilent B1500 Programming Guide, Edition 4


Command Reference
ACT

ACT
This command sets the number of averaging samples or the averaging time set to the
A/D converter of the MFCMU.

Syntax ACT mode[,N]

Parameters mode : Averaging mode. Integer expression. 0 (initial setting) or 2.

• 0: Auto mode.
Defines the number of averaging samples given by the following
formula. Then initial averaging is the number of averaging samples
automatically set by the B1500 and you cannot change.
Number of averaging samples = N × initial averaging
• 2: Power line cycle (PLC) mode.
Defines the averaging time given by the following formula.
Averaging time = N / power line frequency
N: Coefficient used to define the number of averaging samples or the
averaging time. Integer expression.

• For mode=0: 1 to 1023. Initial setting/default setting is 2.


• For mode=2: 1 to 100. Initial setting/default setting is 1.

Example OUTPUT @B1500;"ACT 0,1"


Statements OUTPUT @B1500;"ACT 2,2"

ACV
This command sets the output signal level of the MFCMU, and starts the AC
voltage output. Output signal frequency is set by the FC command.

Execution The CN/CNX command has been executed for the specified channel.
Conditions

Syntax ACV chnum,voltage

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
voltage : Oscillator level of the output AC voltage (in V). Numeric expression.

Agilent B1500 Programming Guide, Edition 4 4-27


Command Reference
ADJ

0 mV (initial setting) to 250 mV, 1 mV step.

Example OUTPUT @B1500;"ACV 7,0.01"


Statements
ADJ
This command selects the MFCMU phase compensation mode. This command
initializes the MFCMU.

Syntax ADJ chnum,mode

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Phase compensation mode. Integer expression. 0 or 1.
0: Auto mode. Initial setting.
1: Manual mode.
For mode=0, the B1500 sets the compensation data automatically.
For mode=1, execute the ADJ? command to perform the phase
compensation and set the compensation data.

Example OUTPUT @B1500;"ADJ 9,1"


Statements
ADJ?
This command performs the MFCMU phase compensation, and sets the
compensation data to the B1500. This command also returns the execution results.
This command resets the MFCMU.
Before executing this command, set the phase compensation mode to manual by
using the ADJ command. During this command, open the measurement terminals at
the end of the device side. This command execution will take about 30 seconds.
The compensation data is cleared by turning off power or by the CLCORR,
CORRL, or DCORR command.

Syntax ADJ? chnum[,mode]

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Command operation mode.

4-28 Agilent B1500 Programming Guide, Edition 4


Command Reference
AIT

0: Use the last phase compensation data without measurement.


1: Perform the phase compensation data measurement.
If the mode parameter is not set, mode=1 is set.

Query Response results<CR/LF^EOI>


results returns the following value.

results Meaning

0 Phase compensation measurement was normally completed.

1 Phase compensation measurement failed.

2 Phase compensation measurement was aborted.

3 Phase compensation measurement has not been performed.

If the phase compensation measurement has never been performed, result=3 is


returned.

Example OUTPUT @B1500;"ADJ?"


Statements ENTER @B1500;A

AIT
This command is used to set the integration time or the number of averaging
samples of the A/D converter (ADC) for each ADC type.
This command setting is ignored by the pulsed spot, pulsed sweep, and staircase
sweep with pulsed bias measurements.

Execution Enter the AAD command to specify the ADC type for each measurement channel.
Conditions

Syntax AIT type,mode[,N]

Parameters type : A/D converter type. Integer expression.


0: High-speed A/D converter.
1: High-resolution A/D converter.

Agilent B1500 Programming Guide, Edition 4 4-29


Command Reference
AIT

Table 4-13 Available Parameter Values

type mode N

0 0 Value that defines the number of averaging samples given by


the following formula. 1 to 1023. Default setting is 1.
Number of averaging samples = N × initial averaging
where initial averaging is the number of averaging samples
automatically set by Agilent B1500 and you cannot change.

1 Number of averaging samples. 1 to 1023. Default setting is 1.

2 Value that defines the number of averaging samples given by


the following formula. 1 to 100. Default setting is 1.
Number of averaging samples = N × 128
The Agilent B1500 gets 128 samples in a power line cycle,
repeats this for the times you specify, and performs averaging
to get the measurement data.

1 0 Value that defines the integration time given by the following


formula. 1 to 127. Default setting is 6.
Integration time = N × initial integration time
where initial integration time is the integration time
automatically set by Agilent B1500 and you cannot change.

1 Value that defines the integration time given by the following


formula. 1 to 127. Default setting is 3.
Integration time = N × 80 μsec

2 Value that defines the integration time given by the following


formula. 1 to 100. Default setting is 1.
Integration time = N / power line frequency

mode : ADC operation mode. Integer expression. Initial setting is 0.


0: Auto mode.
1: Manual mode.
2: Power line cycle (PLC) mode.

4-30 Agilent B1500 Programming Guide, Edition 4


Command Reference
ALS

N: Coefficient used to define the integration time or the number of


averaging samples. Integer expression. See Table 4-13.

Example OUTPUT @B1500;"AIT 0,2,1"


Statements OUTPUT @B1500;"AIT 1,1,10"

ALS
This command sets the ALWG sequence data.
To generate an arbitrary linear waveform, the SPGU channels need both sequence
data and pattern data. The sequence data must be used by and in common with all
SPGU channels installed in the B1500. And the pattern data must be set to each
SPGU channel.
See “SPGU Module” on page 2-48 for details on the ALWG output and the data
format.

Execution The SPGU operating mode must be set to ALWG with the SIM 1 command.
Conditions

Syntax ALS chnum,bytes,block

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
bytes : Total number of bytes of the ALWG sequence data. Numeric
expression.
block : ALWG sequence data.

ALS?
This query command returns the ALWG sequence data of the specified SPGU
channel.

Syntax ALS? chnum

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.

Query Response block<^EOI>


Returns the ALWG sequence data.

Agilent B1500 Programming Guide, Edition 4 4-31


Command Reference
ALW

ALW
This command sets the ALWG pattern data.
To generate an arbitrary linear waveform, the SPGU channels need both sequence
data and pattern data. The sequence data must be used by and in common with all
SPGU channels installed in the B1500. And the pattern data must be set to each
SPGU channel.
See “SPGU Module” on page 2-48 for details on the ALWG output and the data
format.

Execution The SPGU operating mode must be set to ALWG with the SIM 1 command.
Conditions

Syntax ALW chnum,bytes,block

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
bytes : Total number of bytes of the ALWG pattern data. Numeric expression.
block : ALWG pattern data.

ALW?
This query command returns the ALWG pattern data of the specified SPGU
channel.

Syntax ALW? chnum

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.

Query Response block<^EOI>


Returns the ALWG pattern data.

AV
This command sets the number of averaging samples of the high-speed ADC (A/D
converter). This command is not effective for the high-resolution ADC.
This command setting is ignored by the pulsed spot, pulsed sweep, and staircase
sweep with pulsed bias measurements.

4-32 Agilent B1500 Programming Guide, Edition 4


Command Reference
AV

Syntax AV number[,mode]

Parameters number : 1 to 1023, or −1 to −100. Initial setting is 1.


For positive number input, this value specifies the number of samples
depended on the mode value. See below.
For negative number input, this parameter specifies the number of
power line cycles (PLC) for one point measurement. The Agilent
B1500 gets 128 samples in 1 PLC. Ignore the mode parameter.
mode : Averaging mode. Integer expression. This parameter is meaningless for
negative number.
0: Auto mode (default setting).
Number of samples = number × initial number
1: Manual mode.
Number of samples = number
where initial number means the number of samples the Agilent B1500
automatically sets and you cannot change. For voltage measurement,
initial number=1. For current measurement, see Table 4-14.
If you select the manual mode, number must be initial number or more
to satisfy the specifications.
Table 4-14 Initial Number for Current Measurement

Voltage Output Range a


Current Measurement Range
to 40 V 100 V 200 V

to 10 μA 4 10 25

100 μA to 1 A 1 1 1

a. For measurement channels that force current, this is the minimum range
that covers the voltage compliance value.

Example OUTPUT @B1500;"AV 10"


Statements OUTPUT @B1500;"AV -50"
OUTPUT @B1500;"AV 100,1"

Agilent B1500 Programming Guide, Edition 4 4-33


Command Reference
AZ

AZ
This command is used to enable or disable the ADC zero function that is the
function to cancel offset of the high-resolution A/D converter. This function is
especially effective for low voltage measurements. Power on, *RST command, and
device clear disable the function.
This command is effective for the high-resolution A/D converter, not effective for
the high-speed A/D converter.

Syntax AZ mode

Parameters mode : Mode ON or OFF.


0: OFF. Disables the function. Initial setting.
1: ON. Enables the function.

Remarks Set the function to OFF in cases that the measurement speed is more important than
the measurement accuracy. This roughly halves the integration time.

Example OUTPUT @B1500;"AZ 0"


Statements
BC
The BC command clears the output data buffer that stores measurement data and
query command response data. This command does not change the measurement
settings.

NOTE Multi command statement is not allowed for this command.

Syntax BC

Example OUTPUT @B1500;"BC"


Statements
BDM
The BDM command specifies the settling detection interval and the measurement
mode; voltage or current, for the quasi-pulsed measurements.

Syntax BDM interval[,mode]

Parameters interval : Settling detection interval. Numeric expression.

4-34 Agilent B1500 Programming Guide, Edition 4


Command Reference
BDT

0: Short. Initial setting.


1: Long. For measurements of the devices that have the stray
capacitance, or the measurements with the compliance less than 1 μA
mode : Measurement mode. Numeric expression.
0: Voltage measurement mode. Default setting.
1: Current measurement mode.

Remarks The following conditions must be true to perform the measurement successfully:
When interval=0: A > 1 V/ms and B ≤ 3 s
When interval=1: A > 0.1 V/ms and B ≤ 12 s
where A means the slew rate when source output sweep was started, and B means
the settling detection time. See “Quasi-Pulsed Spot Measurements” on page 2-15.
These values depend on the conditions of cabling and device characteristics. And
you cannot specify the values directly.

Example OUTPUT @B1500;"BDM 0,1"


Statements
BDT
The BDT command specifies the hold time and delay time for the quasi-pulsed
measurements.

Syntax BDT hold,delay

Parameters hold : Hold time (in sec). Numeric expression.


0 to 655.35 s, 0.01 s resolution. Initial setting is 0.
delay : Delay time (in sec). Numeric expression.
0 to 6.5535 s, 0.0001 s resolution. Initial setting is 0.

Example OUTPUT @B1500;"BDT 0.1,1E-3"


Statements
BDV
The BDV command specifies the quasi-pulsed voltage source and its parameters.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax BDV chnum,range,start,stop[,Icomp]

Agilent B1500 Programming Guide, Edition 4 4-35


Command Reference
BGI

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
range : Ranging type for quasi-pulsed source. Integer expression. The output
range will be set to the minimum range that covers both start and stop
values. For the limited auto ranging, the instrument never uses the
range less than the specified range. See Table 4-4 on page 4-17.
start, stop : Start or stop voltage (in V). Numeric expression. See Table 4-6 on page
4-18.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
|start - stop| must be 10 V or more.
Icomp : Current compliance (in A). Numeric expression. See Table 4-6 on page
4-18.
If you do not set Icomp, the previous value is used.
The compliance polarity is automatically set to the same polarity as the
stop value, regardless of the specified Icomp value. If stop=0, the
polarity is positive.

Remarks The time forcing the stop value will be approximately 1.5 ms to 1.8 ms with the
following settings:

• BDM, BDT command parameters: interval=0, mode=0, delay=0


• AV or AAD/AIT command parameters: initial setting

Example OUTPUT @B1500;"BDV 1,0,0,100,0.01"


Statements
BGI
The BGI command sets the current monitor channel for the binary search
measurement (MM15). This command setting clears, and is cleared by, the BGV
command setting.
This command ignores the RI command setting.

Syntax BGI chnum,mode,condition,range,target

Parameters chnum : SMU search monitor channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.

4-36 Agilent B1500 Programming Guide, Edition 4


Command Reference
BGI

mode,
condition : Search mode (0: limit mode or 1: repeat mode) and search stop
condition. The meaning of condition depends on the mode setting.

mode condition

0 Limit value for the search target (target). The search stops when the
monitor data reaches target ± condition. Numeric expression. Positive
value. in A. Setting resolution: range/20000. where range means the
measurement range actually used for the measurement.

1 Repeat count. The search stops when the repeat count of the operation
that changes the source output value is over the specified value.
Numeric expression. 1 to 16.

range : Measurement ranging type. Integer expression. The measurement range


will be set to the minimum range that covers the target value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-3 on page 4-15.
target : Search target current (in A). Numeric expression.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU

Remarks In the limit search mode, if search cannot find the search target and the following
two conditions are satisfied, the B1500 repeats the binary search between the last
source value and the source start value.

• target is between the data at source start value and the last measurement data.
• target is between the data at source stop value and the data at:
source value = | stop − start | / 2.
If the search cannot find the search target and the following two conditions are
satisfied, the B1500 repeats the binary search between the last source value and the
source stop value.

• target is between the data at source stop value and the last measurement data.
• target is between the data at source start value and the data at:
source value = | stop − start | / 2.

Example OUTPUT @B1500;"BGI 1,0,1E-8,14,1E-6"


Statements

See Also “BSM”

Agilent B1500 Programming Guide, Edition 4 4-37


Command Reference
BGV

BGV
The BGV command specifies the voltage monitor channel and its search parameters
for the binary search measurement (MM15). This command setting clears, and is
cleared by, the BGI command setting.
This command ignores the RV command setting.

Syntax BGV chnum,mode,condition,range,target

Parameters chnum : SMU search monitor channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.
mode,
condition : Search mode (0: limit mode or 1: repeat mode) and search stop
condition. The meaning of condition depends on the mode setting.

mode condition

0 Limit value for the search target (target). The search stops when the
monitor data reaches target ± condition. Numeric expression. Positive
value. in V. Setting resolution: range/20000. where range means the
measurement range actually used for the measurement.

1 Repeat count. The search stops when the repeat count of the operation
that changes the source output value is over the specified value.
Numeric expression. 1 to 16.

range : Measurement ranging type. Integer expression. The measurement range


will be set to the minimum range that covers the target value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-2 on page 4-14.
target : Search target voltage (in V). Numeric expression.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU

Remarks In the limit search mode, if search cannot find the search target and the following
two conditions are satisfied, the B1500 repeats the binary search between the last
source value and the source start value.

• target is between the data at source start value and the last measurement data.
• target is between the data at source stop value and the data at:
source value = | stop − start | / 2.

4-38 Agilent B1500 Programming Guide, Edition 4


Command Reference
BSI

If the search cannot find the search target and the following two conditions are
satisfied, the B1500 repeats the binary search between the last source value and the
source stop value.

• target is between the data at source stop value and the last measurement data.
• target is between the data at source start value and the data at:
source value = | stop − start | / 2.

Example OUTPUT @B1500;"BGV 1,0,0.1,12,5"


Statements

See Also “BSM”

BSI
The BSI command sets the current search source for the binary search measurement
(MM15). After search stops, the search channel forces the value specified by the
BSM command.
This command clears the BSV, BSSI, and BSSV command settings.
This command setting is cleared by the BSV command.
If Vcomp value is greater than ± 42 V, the interlock circuit must be shorted.

Syntax BSI chnum,range,start,stop[,Vcomp]

Parameters chnum : SMU search source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
range : Output ranging type. Integer expression. The output range will be set to
the minimum range that covers both start and stop values. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-5 on page 4-17.
start, stop : Search start or stop current (in A). Numeric expression. See Table 4-7
on page 4-19. The start and stop must have different values.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Vcomp : Voltage compliance value (in V). Numeric expression. See Table 4-7 on
page 4-19. If you do not specify Vcomp, the previous value is set.

Example OUTPUT @B1500;"BSI 1,0,1E-12,1E-6,10"


Statements

Agilent B1500 Programming Guide, Edition 4 4-39


Command Reference
BSM

BSM
The BSM command specifies the search source control mode in the binary search
measurement (MM15), and enables or disables the automatic abort function. The
automatic abort function stops the search operation when one of the following
conditions occurs:

• Compliance on the measurement channel


• Compliance on the non-measurement channel
• Overflow on the AD converter
• Oscillation on any channel
This command also sets the post search condition for the binary search sources.
After the search measurement is normally completed, the binary search sources
force the value specified by the post parameter.
If the search operation is stopped by the automatic abort function, the binary search
sources force the start value after search.

Syntax BSM mode,abort[,post]

Parameters mode : Source output control mode, 0 (normal mode) or 1 (cautious mode).
If you do not enter this command, the normal mode is set. See Figure
4-1.
abort : Automatic abort function. Integer expression.
1: Disables the function. Initial setting.
2: Enables the function.
post : Source output value after the search operation is normally completed.
Integer expression.
1: Start value. Initial setting.
2: Stop value.
3: Output value when the search target value is get.
If this parameter is not set, the search source forces the start value.

Normal mode The operation of the normal mode is explained below:

1. The source channel forces the Start value, and the monitor channel executes a
measurement.

4-40 Agilent B1500 Programming Guide, Edition 4


Command Reference
BSM

2. The source channel forces the Stop value, and the monitor channel executes a
measurement.
If the search target value is out of the range between the measured value at the
Start value and the measured value at the Stop value, the search stops.
3. The source channel forces the Stop-D/2 value (or Stop+D/2 if Start>Stop), and
the monitor channel executes a measurement.
If the search stop condition is not satisfied, the measured data is used to decide
the direction (+ or –) of the next output change. The value of the change is
always half of the previous change.
4. Repeats the output change and measurement until the search stop condition is
satisfied.
For information on the search stop condition, see “BGI” or “BGV”. If the output
change value is less than the setting resolution, the search stops.

Figure 4-1 Binary Search Source Output Control Mode


Voltage or current
BSM, BST, and -D/2
Stop BSV or BSI
-D/8

-D/16 Search stopped

Delay time
(1) Normal output

Hold time +D/64


+D/4 +D/32
Trigger
Delay time
Start

Stop BSM, BST, and


BSV or BSI -D/8
Delay time
-D/16 Search stopped

Delay time
(2) Cautious output
Hold time +D/4
+D/32 +D/64
Trigger

+D/2 : Measurement
Start
D = | Stop - Start |
Time

Agilent B1500 Programming Guide, Edition 4 4-41


Command Reference
BSSI

Cautious mode The operation of the cautious mode is explained below:

1. The source channel forces the Start value, and the monitor channel executes a
measurement.
2. The source channel forces the Start+D/2 value (or Start-D/2 if Start>Stop), and
the monitor channel executes a measurement.
If the search stop condition is not satisfied, the measured data is used to decide
the direction (+ or –) of the next output change. The value of the change is
always half of the previous change.
3. Repeats the output change and measurement until the search stop condition is
satisfied.
For information on the search stop condition, see “BGI” or “BGV”. If the output
change value is less than the setting resolution, the search stops.

Example OUTPUT @B1500;"BSM 1,2,3"


Statements
BSSI
The BSSI command sets the synchronous current source for the binary search
measurement (MM15). The synchronous source output will be:
Synchronous source output = polarity × BSI source output + offset
where BSI source output means the output set by the BSI command.
This command setting is cleared by the BSV/BSI command.

Execution The BSI command must be sent before sending this command.
Conditions

Syntax BSSI chnum,polarity,offset[,Vcomp]

Parameters chnum : SMU synchronous source channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
polarity : Polarity of the BSSI output for the BSI output.
0: Negative. BSSI output = −BSI output + offset
1: Positive. BSSI output = BSI output + offset
offset : Offset current (in A). Numeric expression.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU

4-42 Agilent B1500 Programming Guide, Edition 4


Command Reference
BSSV

Both primary and synchronous search sources will use the same output
range. So check the output range set to the BSI command to determine
the synchronous source outputs.
Vcomp : Voltage compliance value (in V). Numeric expression. If you do not
specify Vcomp, the previous value is set.

Example OUTPUT @B1500;"BSSI 1,0,1E-6,10"


Statements

See Also Refer to Table 4-7 on page 4-19 for the source output value, output range, and the
available compliance values.

BSSV
The BSSV command sets the synchronous voltage source for the binary search
measurement (MM15). The synchronous source output will be:
Synchronous source output = polarity × BSV source output + offset
where BSV source output means the output set by the BSV command.
This command setting is cleared by the BSI/BSV command.

Execution The BSV command must be sent before sending this command.
Conditions

Syntax BSSV chnum,polarity,offset[,Icomp]

Parameters chnum : SMU synchronous source channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
polarity : Polarity of the BSSV output for the BSV output.
0: Negative. BSSV output = −BSV output + offset
1: Positive. BSSV output = BSV output + offset
offset : Offset voltage (in V). Numeric expression.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Both primary and synchronous search sources will use the same output
range. So check the output range set to the BSV command to determine
the synchronous source outputs.

Agilent B1500 Programming Guide, Edition 4 4-43


Command Reference
BST

Icomp : Current compliance value (in A). Numeric expression. If you do not
specify Icomp, the previous value is set. Zero amps (0 A) is not a valid
value for the Icomp parameter.

Example OUTPUT @B1500;"BSSV 1,0,5,1E-6"


Statements

See Also Refer to Table 4-6 on page 4-18 for the source output value, output range, and the
available compliance values.

BST
The BST command sets the hold time and delay time for the binary search
measurement (MM15). If you do not enter this command, all parameters are set to 0.

Syntax BST hold,delay

Parameters hold : Hold time (in seconds) that is the wait time after starting the search
measurement and before starting the delay time for the first search
point. Numeric expression.
0 to 655.35 sec. 0.01 sec resolution.
delay : Delay time (in seconds) that is the wait time after starting to force a step
output value and before starting a step measurement. Numeric
expression.
0 to 65.535 sec. 0.0001 sec resolution.

Example OUTPUT @B1500;"BST 5,0.1"


Statements
BSV
The BSV command sets the voltage search source for the binary search
measurement (MM15). After search stops, the search channel forces the value
specified by the BSM command.
This command clears the BSI, BSSI, and BSSV command settings.
This command setting is cleared by the BSI command.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax BSV chnum,range,start,stop[,Icomp]

4-44 Agilent B1500 Programming Guide, Edition 4


Command Reference
BSVM

Parameters chnum : SMU search source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
range : Output ranging type. Integer expression. The output range will be set to
the minimum range that covers both start and stop values. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-4 on page 4-17.
start, stop : Search start or stop voltage (in V). Numeric expression. See Table 4-6
on page 4-18. The start and stop parameters must have different values.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Icomp : Current compliance value (in A). Numeric expression. See Table 4-6 on
page 4-18. If you do not specify Icomp, the previous value is set. Zero
amps (0 A) is not allowed for Icomp.

Example OUTPUT @B1500;"BSV 1,0,0,20,1E-6"


Statements
BSVM
The BSVM command selects the data output mode for the binary search
measurement (MM15).

Syntax BSVM mode

Parameters mode : Data output mode. Integer expression.


0 : Returns Data_search only (initial setting).
1 : Returns Data_search and Data_sense.
Data_search is the value forced by the search output channel set by BSI or BSV.
Data_sense is the value measured by the monitor channel set by BGI or BGV.
For data output format, refer to “Data Output Format” on page 1-25.

Example OUTPUT @B1500;"BSVM 1"


Statements
CA
This command performs the self-calibration.
The *OPC? command should be entered after this command to confirm the
completion of the self-calibration.

Agilent B1500 Programming Guide, Edition 4 4-45


Command Reference
*CAL?

Module condition after this command is the same as the condition by the CL
command.

Execution No SMU may be in the high voltage state (forcing more than ± 42 V, or voltage
Conditions compliance set to more than ± 42 V).
Before starting the calibration, open the measurement terminals.

Syntax CA [slot]

Parameters slot : Slot number where the module under self-calibration has been installed.
1 to 10. Integer expression. If slot is not specified, the self-calibration is
performed for the mainframe and all modules.
If slot specifies the slot that installs no module, this command causes an error.

Example OUTPUT @B1500;"CA"


Statements OUTPUT @B1500;"*OPC?"
ENTER @B1500;A

NOTE To send CA command to Agilent B1500 installed with ASU


If you send the CA command to the B1500 installed with the ASU (Atto Sense and
Switch Unit), the B1500 executes the self-calibration and the 1 pA range offset
measurement for the measurement channels connected to the ASUs. The offset data
is temporarily memorized until the B1500 is turned off, and is used for the
compensation of the data measured by the 1 pA range of the channels. The B1500
performs the data compensation automatically and returns the compensated data.
Since the B1500 is turned on, if you do not send the CA command, the B1500
performs the data compensation by using the pre-stored offset data.

Remarks Failed modules are disabled, and can only be enabled by the RCV command.

*CAL?
This query command performs the self-calibration, and returns the results. After this
command, read the results soon.
Module condition after this command is the same as the condition by the CL
command.

Execution No SMU may be in the high voltage state (forcing more than ± 42 V, or voltage
Conditions compliance set to more than ± 42 V).

4-46 Agilent B1500 Programming Guide, Edition 4


Command Reference
CL

Before starting the calibration, open the measurement terminals.

Syntax *CAL? [slot]

Parameters slot : Slot number where the module under self-calibration has been installed.
1 to 10. Or 0 or 11. Integer expression.
0: All modules and mainframe. Default setting.
11: Mainframe.
If slot specifies the slot that installs no module, this command causes an error.

Query Response results<CR/LF^EOI>


results returns the sum of the following values corresponding to the failures.

results Description results Description

0 Passed. No failure detected. 32 Slot 6 module failed.

1 Slot 1 module failed. 64 Slot 7 module failed.

2 Slot 2 module failed. 128 Slot 8 module failed.

4 Slot 3 module failed. 256 Slot 9 module failed.

8 Slot 4 module failed. 512 Slot 10 module failed.


16 Slot 5 module failed. 1024 Mainframe failed.

Example OUTPUT @B1500;"*CAL?"


Statements ENTER @B1500;A

Remarks If a SMU connected to SCUU fails the self-calibration, the SCUU cannot be
controlled. And the SSP and SSL commands are not available.
Failed modules are disabled, and can only be enabled by the RCV command.

CL
The CL command disables the specified channels.

Execution No channel may be in the high voltage state (forcing more than ± 42 V, or voltage
Conditions compliance set to more than ± 42 V). However, if you do not specify chnum for CL
command, there are no restrictions on the execution conditions.

Agilent B1500 Programming Guide, Edition 4 4-47


Command Reference
CLCORR

Syntax CL [chnum[,chnum...[,chnum]...]]
A maximum of 15 channels can be set.

Parameters chnum : Channel number. Integer expression. See Table 4-1 on page 4-13.
If you specify multiple chnums, the channels will be disabled in the specified order.
If you do not specify chnum, this command disables all SMU, all SPGU, and CMU
in this order. Then, SMU will be disabled in the order from higher to lower output
range and SPGU will be disabled in the order from higher to lower setup voltage.

Remarks The CL command sets the specified module to the following conditions:

SMU setup parameter Value MFCMU setup parameter Value

Output switch OFF DC bias 0V

Source mode Voltage AC level 0V

Output voltage 0V Output signal frequency 1 kHz

V range 20 V Measurement range 50 Ω

I compliance 100 μA SPGU setup parameter Value


I range 100 μA Output switch OFF

Filter OFF Output mode DC

Series resistor Not changed Output voltage 0V

After this command, there is no additional power consumption for the idle state.

Example OUTPUT @B1500;"CL"


Statements OUTPUT @B1500;"CL 1,2,3,5"

CLCORR
This command disables the MFCMU open/short/load correction function and clears
the frequency list for the correction data measurement. This command also clears
the correction data and the phase compensation data.

Syntax CLCORR chnum,mode

4-48 Agilent B1500 Programming Guide, Edition 4


Command Reference
CM

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Command option. Integer expression. 1 or 2.
1: Just clears the frequency list.
2: Clears the frequency list and sets the default frequencies, 1 k, 2 k,
5 k, 10 k, 20 k, 50 k, 100 k, 200 k, 500 k, 1 M, 1.2 M, 1.5 M, 2 M,
2.5 M, 2.7 M, 3 M, 3.2 M, 3.5 M, 3.7 M, 4 M, 4.2 M, 4.5 M, 5 MHz.

Example OUTPUT @B1500;"CLCORR 9,1"


Statements
CM
The CM command sets the SMU auto-calibration function to ON or OFF. If the
following two conditions are satisfied, the B1500 automatically calibrates all
modules every 30 minutes.

• Auto-calibration is ON.
• For all SMUs, the output switch has been OFF for 30 minutes.

Syntax CM mode

Parameters mode : Auto-calibration ON or OFF. Integer expression.


0: OFF (initial setting)
1: ON

Remarks Before starting the calibration, open the measurement terminals.


If the auto-calibration is enabled, do not forget to open the measurement terminals
after measurements.

Example OUTPUT @B1500;"CM 0"


Statements OUTPUT @B1500;"CM 1"

CMM
The CMM command sets the SMU measurement operation mode. This command is
not available for the high speed spot measurement.

Syntax CMM chnum,mode

Agilent B1500 Programming Guide, Edition 4 4-49


Command Reference
CN/CNX

Parameters chnum : SMU channel number. Integer expression. 1 to 10 or 101 to 1001. See
Table 4-1 on page 4-13.
mode : SMU measurement operation mode. Integer expression.

• 0: Compliance side measurement (initial setting).


• 1: SMU always performs current measurement.
• 2: SMU always performs voltage measurement.
• 3: Force side measurement.
If mode=0, SMU measures current when it forces voltage, or measures voltage when
it forces current.
If mode=3, SMU measures current when it forces current, or measures voltage when
it forces voltage.
The mode setting is kept until the mode is changed by this command. If you want to
return it to the initial setting, enter the CMM command with mode=0.

Example OUTPUT @B1500;"CMM 1,1"


Statements
CN/CNX
This command enables the specified channels. See Table 4-15 for the difference
between the CN command and the CNX command.

WARNING THIS COMMAND ENABLES SMU TO FORCE DANGEROUS VOLTAGES.


WHEN THE CHANNEL IS NOT IN USE, SET THE OUTPUT SWITCH TO
"OFF" WHENEVER POSSIBLE.

Execution No channel may be in the high voltage state (forcing more than ± 42 V, or voltage
Conditions compliance set to more than ± 42 V).

Syntax CN [chnum[,chnum...[,chnum]...]]
CNX [chnum[,chnum...[,chnum]...]]
A maximum of 15 channels can be set.

Parameters chnum : Channel number. Integer expression. See Table 4-1 on page 4-13.
If the output switch of the specified SMU is already set to ON, no action is
performed by this command.
If you specify multiple chnums, the channels will be enabled in the specified order.

4-50 Agilent B1500 Programming Guide, Edition 4


Command Reference
CN/CNX

If you do not specify chnum, this command enables all SMU, all SPGU, and CMU
in this order. Then, the modules of same kind will be enabled in the order from
lower to higher channel number 101 to 1002. The channel numbers 1 to 10
correspond to the channel numbers 101 to 1001 respectively. See Table 4-1 on page
4-13.
If you specify the HRSMU connected to the ASU, this command enables the
HRSMU and connects the path to the ASU output.
If you specify a SMU connected to the SCUU, this command enables the SMU and
connects the path to the SCUU output.
If you specify the MFCMU connected to the SCUU, this command enables the
MFCMU and connects the path to the SCUU output.
If you specify both MFCMU and SMU connected to the SCUU, this command
causes an error.
If you enter the CN/CNX command without chnum parameter to the B1500 installed
with the SCUU, this command enables the SMUs except for the SMUs connected to
the SCUU, enables the MFCMU, and connects the path to the SCUU output.

Remarks The CN/CNX command sets the specified module to the following conditions:

SMU setup parameter Value MFCMU setup parameter Value

Output switch ON DC bias 0V

Source mode Voltage AC level 0V

Output voltage 0V Output signal frequency 1 kHz

V range 20 V Measurement range 50 Ω

I compliance 100 μA SPGU setup parameter Value


I range 100 μA Output switch ON

Filter Not changed Output mode DC

Series resistor Not changed Output voltage 0V

After this command, there is no additional power consumption for the idle state.

Agilent B1500 Programming Guide, Edition 4 4-51


Command Reference
CORR?

Table 4-15 Differences between CN and CNX

Previous status Command execution result

Module status Output switch CN CNX

Normal Open/Close Close with no error

High voltage Open Open with an error

Close Close with an error Close with no error

Example OUTPUT @B1500;"CN"


Statements OUTPUT @B1500;"CN 1,2,3,5"
OUTPUT @B1500;"CNX"
OUTPUT @B1500;"CNX 1,2,3,5"

CORR?
This command performs the MFCMU open, short. or load correction data
measurement, and set the correction data to the B1500.
Before executing this command, set the oscillator level of the MFCMU output
signal by using the ACV command.
If you use the correction standard, execute the DCORR command before this
command. The calibration value or the reference value of the standard must be
defined before executing this command.
The correction function is set to OFF by turning off power or by the CORRST or
*RST command. The correction data is cleared by turning off power or by the
CLCORR, CORRL, or DCORR command. If the correction function is set to ON
after the *RST command, the correction function uses the memorized correction
data.

Execution To measure the open correction data, connect the open standard that has the
Conditions calibration value or reference value, or open the measurement terminals at the end of
the device side.
To measure the short correction data, connect the short standard that has the
calibration value or reference value, or connect the measurement terminals together
at the end of the device side.
To measure the load correction data, connect the load standard that has the
calibration value or reference value.

4-52 Agilent B1500 Programming Guide, Edition 4


Command Reference
CORRDT

Syntax CORR? chnum,corr

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
corr : Correction data to measure. Integer expression. 1, 2, or 3.
1: Open correction data
2: Short correction data
3: Load correction data

Query Response result<CR/LF^EOI>


0: Correction data measurement completed successfully.
1: Correction data measurement failed.
2: Correction data measurement aborted.

Example OUTPUT @B1500;"CORR? 9,3"


Statements ENTER @B1500;Result

CORRDT
This command sets the MFCMU open/short/load correction data to the B1500.
The correction data is cleared by the CORR? command which performs the
correction data measurement and set it to the B1500.

Syntax CORRDT chnum,freq,open_r,open_i,short_r,short_i,load_r,


load_i

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
freq : Frequency to be added. Numeric expression in Hz. See Table 4-10 on
page 4-22.
open_r : Open correction data (G). Numeric expression in S.
open_i : Open correction data (B). Numeric expression in S.
short_r : Short correction data (R). Numeric expression in Ω.
short_i : Short correction data (X). Numeric expression in Ω.
load_r : Load correction data (R). Numeric expression in Ω.
load_i : Load correction data (X). Numeric expression in Ω.

Agilent B1500 Programming Guide, Edition 4 4-53


Command Reference
CORRDT?

Example OUTPUT @B1500;"CORRDT 9,3000000,0,0,0,0,0,0"


Statements
CORRDT?
This command returns the MFCMU open/short/load correction data.

Syntax CORRDT? chnum[,index]

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
index : Index number of the list. Integer expression.

Query Response freq,open_r,open_i,short_r,short_i,load_r,load_i<CR/LF^E


OI>
freq : Frequency of the correction data. Numeric expression in Hz.
open_r : Open correction data (G). Numeric expression in S.
open_i : Open correction data (B). Numeric expression in S.
short_r : Short correction data (R). Numeric expression in Ω.
short_i : Short correction data (X). Numeric expression in Ω.
load_r : Load correction data (R). Numeric expression in Ω.
load_i : Load correction data (X). Numeric expression in Ω.

Example OUTPUT @B1500;"CORRDT 9,3000000,0,0,0,0,0,0"


Statements OUTPUT @B1500;"CORRDT? 9,1"
ENTER @B1500;Freq,Open_r,Open_i,Short_r,Short_i,Load_r,
Load_i

CORRL
This command disables the MFCMU open/short/load correction function and adds
the specified frequency to the frequency list for the correction data measurement.
This command also clears the correction data and the phase compensation data.

Syntax CORRL chnum,freq

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
freq : Frequency to be added. Numeric expression. in Hz. See Table 4-10 on
page 4-22.

4-54 Agilent B1500 Programming Guide, Edition 4


Command Reference
CORRL?

Example OUTPUT @B1500;"CORRL 9,3000000"


Statements
CORRL?
This command returns the frequency stored in the frequency list for the MFCMU
correction data measurement.

Syntax CORRL? chnum[,index]

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
index : Index number of the list. Integer expression.

Query Response • CORRL? chnum returns:


number_of_frequencies<CR/LF^EOI>
This value is the number of frequencies stored in the list.
• CORRL? chnum,index returns:
frequency<CR/LF^EOI>
This value is the frequency corresponding to the specified index.

Example OUTPUT @B1500;"CLCORR 9,2"


Statements OUTPUT @B1500;"CORRL? 9"
ENTER @B1500;Number
OUTPUT @B1500;"CORRL? 9,4"
ENTER @B1500;Freq
This example returns Number=12 and Freq=10000.

CORRSER?
This query command measures the voltage at the DUT terminals connected to the
SPGU channel and returns the voltage and calculated load impedance. Setting mode
= 1 automatically executes the SER command using the calculated return value as
the input parameter.

Execution The SPGU output channel must be set up by using the following commands before
Conditions executing this command.

• SPPER, SPM, SPT, and SPV commands, in PG mode


• ALW and ALS commands, in ALWG mode

Agilent B1500 Programming Guide, Edition 4 4-55


Command Reference
CORRSER?

The DUT terminal voltage must be measured in the first pulse or ALWG sequence
output. In the PG mode, the pulse period must be more than delay + interval × count
value.
Set the command parameters properly. The DUT terminal voltage must be measured
at the output timing of the voltage effective for the automatic adjustment of the
SPGU output voltage.

Syntax CORRSER? chnum,mode,delay,interval,count

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
mode : Automatic execution modes of SER. Integer expression.
0: Does not execute the SER command (set the load impedance)
1: Executes the SER command (set the load impedance)
delay : Delay till start of measurement (seconds). Numeric expression.
0 (initial setting) to pulse period -5E-6 seconds, setting resolution
1E-8 seconds.
interval : Measuring interval (seconds). Numeric expression. 5E-6 (initial
setting) to 0.001 seconds, setting resolution 2E-8 seconds.
count : Measurement repetitions (times). Integer expression. 1 (initial setting)
to 65535 times.

Query Response loadZ,voltage<CR/LF^EOI>


loadZ : Returns the calculated load impedance.
voltage : Returns the voltage measurement (V).

Remarks Active SPGU outputs are stopped by the CORRSER? command.


Any other channels specified as SPGU output channels, but not specified in this
command, will output synchronized to the CORRSER? command.
After executing the CORRSER? command, all SPGU channel outputs are changed
to the following value.

• base value set by the SPV command, in PG mode


• initial value of waveform, in ALWG mode

4-56 Agilent B1500 Programming Guide, Edition 4


Command Reference
CORRST

Example OUTPUT @B1500;"SPPER 10E-6"


Statements OUTPUT @B1500;"SPM 101,1"
OUTPUT @B1500;"SPT 101,1,0,5E-7,20E-9"
OUTPUT @B1500;"SPV 101,1,-0.5,0.5"
OUTPUT @B1500;"CORRSER? 101,1,1E-7,1E-8,10"
ENTER @B1500;A,B

See Also “SER”、“SER?”

CORRST
This command enables or disables the MFCMU open/short/load correction function.
Before setting a function to ON, perform the corresponding correction data
measurement by using the CORR? command.
The correction function is set to OFF by turning off power or by the CORRST or
*RST command. The correction data is cleared by turning off power or by the
CLCORR, CORRL, or DCORR command. If the correction function is set to ON
after the *RST command, the correction function uses the memorized correction
data.

Syntax CORRST chnum,corr,state

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
corr : Correction mode. Integer expression. 1, 2, or 3.
1: Open correction
2: Short correction
3: Load correction
state : Correction function state. Integer expression. 0 (OFF) or 1 (ON).

CORRST?
This command returns the MFCMU open/short/load correction function ON or OFF.

Syntax CORRST? chnum,corr

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
corr : Correction mode. Integer expression. 1, 2, or 3.
1: Open correction

Agilent B1500 Programming Guide, Edition 4 4-57


Command Reference
DCORR

2: Short correction
3: Load correction

Query Response status<CR/LF^EOI>


0: Disable (correction OFF)
1: Enable (correction ON)

Example OUTPUT @B1500;"CORRST 9,3,1"


Statements OUTPUT @B1500;"CORRST? 9,3"
ENTER @B1500;Status
The above example returns Status=1.

DCORR
This command disables the MFCMU open/short/load correction function and sets
the open/short/load standard calibration value or reference value to the B1500. This
command also clears the correction data and the phase compensation data.
The reference values set by this command are cleared by turning off power.

Syntax DCORR chnum,corr,mode,primary,secondary

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
corr : Correction mode. Integer expression. 1, 2, or 3.
1: Open correction
2: Short correction
3: Load correction
mode : Measurement mode. Integer expression. 100 or 400.
100: Cp-G (for open correction)
400: Ls-Rs (for short or load correction)
primary : Primary reference value of the standard. Numeric expression.
Cp value for the open standard. in F.
Ls value for the short or load standard. in H.
secondary : Secondary reference value of the standard. Numeric expression.
G value for the open standard. in S.

4-58 Agilent B1500 Programming Guide, Edition 4


Command Reference
DCORR?

Rs value for the short or load standard. in Ω.

Example OUTPUT @B1500;"DCORR 9,3,400,0.00001,49.8765"


Statements
DCORR?
This command returns the calibration value or the reference value of the standard
used for the MFCMU open/short/load correction.

Syntax DCORR? chnum,corr

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
corr : Correction mode. Integer expression. 1, 2, or 3.
1: Open correction
2: Short correction
3: Load correction

Query Response mode,primary,secondary<CR/LF^EOI>


mode : Measurement mode. Integer expression. 100 or 400.
100: Cp-G (for open correction)
400: Ls-Rs (for short or load correction)
primary : Primary reference value of the standard. Numeric expression.
Cp value for the open standard. in F.
Ls value for the short or load standard. in H.
secondary : Secondary reference value of the standard. Numeric expression.
G value for the open standard. in S.
Rs value for the short or load standard. in Ω.

Example OUTPUT @B1500;"DCORR 9,3,400,0.00001,49.8765"


Statements OUTPUT @B1500;"DCORR? 9,3"
ENTER @B1500;Mode,Primary,Secondary
This example returns Mode=400, Priamry=0.00001, Secondary=49.8765.

Agilent B1500 Programming Guide, Edition 4 4-59


Command Reference
DCV

DCV
This command forces DC bias (voltage, up to ± 25 V) from the MFCMU. When the
SCUU (SMU CMU unify unit) is connected, output up to ± 100 V is available by
using the SMU that can be connected to the Force1/Sense1 terminals.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax DCV chnum,voltage

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
voltage : DC voltage (in V). Numeric expression.
0 (initial setting) to ± 25 V (MFCMU) or ± 100 V (with SCUU)
With the SCUU, the source module is automatically selected by the
setting value. The MFCMU is used if voltage is below ± 25 V (setting
resolution: 0.001 V), or the SMU is used if voltage is greater than
± 25 V (setting resolution: 0.005 V).
The SMU will operate with the 100 V limited auto ranging and 20 mA
compliance settings.

Example OUTPUT @B1500;"DCV 7,1"


Statements
DI
The DI command forces DC current from the specified SMU.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If Vcomp value is greater than ± 42 V, the interlock circuit must be shorted.

Syntax DI chnum,irange,current[,Vcomp[,comp_polarity[,vrange]]]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.

4-60 Agilent B1500 Programming Guide, Edition 4


Command Reference
DIAG?

irange : Ranging type for current output. Integer expression. The output range
will be set to the minimum range that covers current value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-5 on page 4-17.
current : Output current value (in A). Numeric expression. See Table 4-7 on page
4-19.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Vcomp : Voltage compliance value (in V). Numeric expression. See Table 4-7 on
page 4-19. If you do not specify this parameter, Vcomp is set to the
previous setting.
comp_
polarity : Polarity of voltage compliance. Integer expression.
0: Auto mode (default setting). The compliance polarity is
automatically set to the same polarity as current, regardless of the
specified Vcomp. If current=0 A, the polarity is set to positive.
1: Manual mode. Uses the polarity of Vcomp you specified.
vrange : Voltage compliance ranging type. Integer expression. The compliance
range will be set to the minimum range that covers Vcomp value. For
the limited auto ranging, the instrument never uses the range less than
the specified range. See Table 4-4 on page 4-17.

Example OUTPUT @B1500;"DI 1,0,1E-6"


Statements OUTPUT @B1500;"DI 3,14,5E-7,20,0,0"

DIAG?
The DIAG? command starts the diagnostics, and returns the results.
Before starting the diagnostics, refer to Remarks below.
After the DIAG? command, read the results soon.

Syntax DIAG? item[,pause]

Agilent B1500 Programming Guide, Edition 4 4-61


Command Reference
DO

Parameters item : Diagnostics item. Integer expression. 1 to 5.

item Description

1 Trigger In/Out diagnostics.


3 High voltage LED diagnostics.

4 Digital I/O diagnostics.

pause : Place holder to keep the compatibility with the FLEX command of
other instruments.

Query Response result<CR/LF^EOI>


0: Passed.
1: Failed.
2: Aborted.

Remarks • Before executing DIAG? 1 (trigger in/out diagnostics), connect a BNC cable
between the Ext Trig In and Out connectors.
• After executing DIAG? 3 (high voltage LED diagnostics), confirm the status of
LED. Then enter the AB command. result returns 2.
If the LED does not blink, the B1500 must be repaired.
• Before executing DIAG? 4 (digital I/O diagnostics), disconnect any cable from
the digital I/O port.

Example OUTPUT @B1500;"DIAG? 1"


Statements ENTER @B1500;A

DO
The DO command executes the B1500 internal memory programs (up to 8
programs) in the order specified.

Execution The specified programs have been stored by using the ST and END commands.
Conditions

Syntax DO pnum[,pnum[,pnum[,pnum[,pnum[,pnum[,pnum[,pnum]]]]]]]

Parameters pnum : Internal memory program number. Numeric expression. 1 to 2000.

4-62 Agilent B1500 Programming Guide, Edition 4


Command Reference
DV

Example OUTPUT @B1500;"DO 1,2,3,4,5,6,7,8"


Statements OUTPUT @B1500;"DO 98,99"

DV
The DV command forces DC voltage from the specified SMU.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax DV chnum,vrange,voltage[,Icomp[,comp_polarity[,irange]]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
vrange : Ranging type for voltage output. Integer expression. The output range
will be set to the minimum range that covers voltage value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-4 on page 4-17.
voltage : Output voltage value (in V). Numeric expression. See Table 4-6 on
page 4-18.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Icomp : Current compliance value (in A). Numeric expression. See Table 4-6 on
page 4-18. If you do not set Icomp, the previous value is used. 0 A is
not allowed for Icomp.
comp_
polarity : Polarity of current compliance. Integer expression.
0: Auto mode (default setting). The compliance polarity is
automatically set to the same polarity as voltage, regardless of the
specified Icomp. If voltage=0 V, the polarity is set to positive.
1: Manual mode. Uses the polarity of Icomp you specified.
irange : Current compliance ranging type. Integer expression. The compliance
range will be set to the minimum range that covers Icomp value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-5 on page 4-17.

Example OUTPUT @B1500;"DV 1,0,20,1E-6,0,15"


Statements OUTPUT @B1500;"DV 2,12,10"

Agilent B1500 Programming Guide, Edition 4 4-63


Command Reference
DZ

DZ
The DZ command stores the settings (V/I output values, V/I output ranges, V/I
compliance values, and so on) of the specified channels, and sets the channels to 0
V. The settings can be recovered by using the RZ command. The stored settings are
cleared by using a device clear (HP BASIC CLEAR) command, *RST, RZ, CL, CA,
or *TST?.

Syntax DZ [chnum[,chnum...[,chnum]...]]
A maximum of 15 channels can be set.

Parameters chnum : Channel number. Integer expression. See Table 4-1 on page 4-13.
If you specify multiple chnums, the channel outputs will be set to 0 V in the
specified order.
If you do not specify chnum, all SMU, all SPGU, and CMU with the output switch
ON will be set to 0 V in this order. Then, SMU will be set to 0 V in the order from
higher to lower output range and SPGU will be set to 0 V in the order from higher to
lower setup voltage.

Remarks The DZ command sets the specified module to the following conditions:

SMU setup parameter Value MFCMU setup parameter Value

Source mode Voltage DC bias 0V


Output voltage 0V AC level 0V
V range Not changed Output signal frequency Not changed
I compliance See next table Measurement range 50 Ω
I range See next table SPGU setup parameter Value
Filter Not changed Output mode Not changed
Series resistor Not changed Output voltage 0V

Previous range a I Range I Compliance

1 nA to 100 μA same as previous range range value


over 100 μA 100 μA 100 μA
a. Range value that was set before the DZ command.

4-64 Agilent B1500 Programming Guide, Edition 4


Command Reference
EMG?

Example OUTPUT @B1500;"DZ 1,2,3"


Statements
EMG?
The EMG? query command returns error message corresponding to the specified
error code.

Syntax EMG? errcode

Parameters errcode : Error code returned by the ERR? command. Numeric expression.

Query Response error_message<CR/LF^EOI>


See Chapter 5, “Error Messages” for the error codes and error messages.

Remarks Use the ERRX? command to support all errors. The EMG? command supports the
error code 0 to 999 only.
If unsupported error is detected, 999 is returned by the ERR? command.
The EMG? 999 command returns the message associated with the last error.

Example OUTPUT @B1500;"EMG? 100"


Statements ENTER @B1500;A$

See Also “ERR?”

END
The END command is used with the ST command to store a program in the internal
program memory. See “ST” on page 4-143.

Syntax END

Example OUTPUT @B1500;"ST1;CN1;DV1,0,5,1E-4;TI1,0;CL1"


Statements OUTPUT @B1500;"END"

ERC
The ERC command changes the output status of the digital I/O port. This command
does not change the status of the trigger ports and the input ports set by the ERM
command.
The *RST command or the device clear sets the digital I/O port (total 16 paths) to
the output port, and sets the port output level to TTL high.

Agilent B1500 Programming Guide, Edition 4 4-65


Command Reference
ERM

Execution The digital I/O control mode must be the direct control (ERMOD 0).
Conditions

Syntax ERC mode,value[,rule]

Parameters mode : Control mode. Integer expression. Set mode to 2.


2: Controls the digital I/O port.
If you set 1 that is effective for the Agilent 4142B, an error occurs.
value : Decimal value of the output status bit pattern. Integer expression. 0 to
65535. The bit pattern must comply with the following rule:
Bit value 0: TTL high level (approx. 2.4 V)
Bit value 1: TTL low level (approx. 0.8 V)
rule : Place holder to keep the same syntax as the ERC command of the
Agilent 4142B. Input value is ignored.

Example If you want to set TTL low level for the output ports of the digital I/O port bit 0 to 7,
Statements enter the following command.
OUTPUT @B1500;"ERC 2,255"
where the decimal value 255 means binary bit pattern 0000000011111111. This
command does not change the status of the trigger ports and the input ports.

See Also “ERMOD”, “ERM”, “ERS?”

ERM
The ERM command changes the input/output assignments of the digital I/O port
(total 16 paths). This command does not change the trigger port assignments and
settings.
The *RST command or the device clear sets the digital I/O port to the output port,
and sets the port output level to TTL high.

Execution The digital I/O control mode must be the direct control (ERMOD 0).
Conditions

Syntax ERM iport

Parameters iport : Decimal value of the port setting. Integer expression. 0 to 65535.

4-66 Agilent B1500 Programming Guide, Edition 4


Command Reference
ERMOD

The setting of each port must be designated by 0 or 1 that has the


following meaning:
0: Output port
1: Input port

Example If you want to use the non-trigger ports of the digital I/O ports 0 to 7 as the input
Statements port, enter the following statement.
OUTPUT @B1500;"ERM 255"
where the decimal value 255 means binary bit pattern 0000000011111111.

Remarks The ERM command sets the port level to TTL high for all ports where the port
assignment is changed from output to input or from input to output.
The ERM command does not change the port assignment of the trigger ports.

See Also “ERMOD”, “ERC”, “ERS?”

ERMOD
This command selects the control mode for the digital I/O ports.

Syntax ERMOD mode

Parameters mode : Control mode. Integer expression.


0: General purpose control mode. Use ERM, ERS?, ERC.
1: Dedicated selector control mode. Use ERSSP, ERSSP?.
Dedicated selector control mode offers easy control over the Agilent 16440A
SMU/PG selector connected to the digital I/O port via the Agilent 16445A selector
adapter.

Example OUTPUT @B1500;"ERMOD 1"


Statements

See Also “ERM”、“ERS?”、“ERC”、“ERSSP”、“ERSSP?”

ERMOD?
This query command returns the control mode for the digital I/O ports.

Agilent B1500 Programming Guide, Edition 4 4-67


Command Reference
ERR?

Syntax ERMOD?

Query Response mode<CR/LF^EOI>


0: General purpose control mode.
1: Dedicated selector control mode.

Example OUTPUT @B1500;"ERMOD?"


Statements ENTER @B1500;A

ERR?
The ERR? query command returns error code.

Syntax ERR? [mode]

Parameters mode : Error code output mode. Integer expression. 0 (default setting) or 1.
0: Reads the contents of the error queue, and clears the queue. This
returns four error codes in order from their occurrence.
1: Reads one error code from the head of the error queue and removes
that code from the queue. This returns one error code.

Query Response error_code,error_code,error_code,error_code<CR/LF^EOI>


or
error_code<CR/LF^EOI>
See Chapter 5, “Error Messages” for the error codes and error messages.
If no error occurred, 0 is returned.

Remarks Use the ERRX? command to support all errors. The ERR? command supports the
error code 0 to 999 only.
If unsupported error is detected, 999 is returned. The EMG? 999 command returns
the message associated with the last error.
This command uses the error queue which can store four error codes. This error
queue is cleared by executing the ERRX? command.

Example OUTPUT @B1500;"ERR?"


Statements ENTER @B1500;A$
OUTPUT @B1500;"ERR? 1"
ENTER @B1500;A

4-68 Agilent B1500 Programming Guide, Edition 4


Command Reference
ERRX?

See Also “EMG?”, “ERRX?”

ERRX?
This query command reads one error code from the head of the error queue and
removes that code from the queue.

Syntax ERRX? [mode]

Parameters mode : Error code output mode. Integer expression. 0 (default setting) or 1.
0: Returns the error code and the corresponding message.
1: Returns the error code only.

Query response error_code,message<CR/LF^EOI>


or
error_code<CR/LF^EOI>
Message contains an error message similar to the EMG? response and a custom
message containing additional information such as the channel number. They are
separated by a semicolon (;).
See Chapter 5, “Error Messages” for the error codes and error messages.
If no error occurred, Error Code is 0 and Message is "No Error."

Remarks This command uses the error queue which can store 30 error codes. This error queue
is cleared by executing the ERR? command.

Example OUTPUT @B1500;"ERRX?"


ENTER @B1500;A,B$
OUTPUT @B1500;"ERRX? 1"
ENTER @B1500;A

See Also “EMG?”, “ERR?”

ERS?
The ERS? command returns the status of the digital I/O port (16 paths).

Execution The digital I/O control mode must be the direct control (ERMOD 0).
Conditions

Agilent B1500 Programming Guide, Edition 4 4-69


Command Reference
ERSSP

Syntax ERS?

Query Response pattern<CR/LF^EOI>


pattern returns the decimal value of the port status.
The status of each port is designated by 0 or 1 that has the following meaning:
0: TTL high level (approx. 2.4 V)
1: TTL low level (approx. 0.8 V)

Example OUTPUT @B1500;"ERS?"


Statements ENTER @B1500;A
PRINT "Port Status=";A
For example, 255 (0000000011111111) is returned when the port 0 to 7 have
been set to the TTL low level and the port 8 to 15 have been set to the TTL high
level.

See Also “ERMOD”, “ERC”, “ERM”

ERSSP
This command sets the connection state of the I/O path for the Agilent 16440A
SMU/PG selector. Set for each output port on the selector.

Execution Digital I/O port must be set for dedicated selector control mode using the ERMOD 1
Conditions command.

Syntax ERSSP port,status

Parameters port: Output port of SMU/PG selector. Integer expression.


0: Output 1 on selector of first module
1: Output 2 on selector of first module
2: Output 1 on selector of second module
3: Output 2 on selector of second module
status: Connection status of I/O path. Integer expression.
0: Open. Normally open mechanical relay contact.
1: SMU connect. Connected to the SMU input.
2: PGU connect. Connected to the PGU input.

4-70 Agilent B1500 Programming Guide, Edition 4


Command Reference
ERSSP?

3: PGU open. Open semiconductor relay contact installed on the


PGU connect path.

Example OUTPUT @B1500;"ERMOD 1"


Statements OUTPUT @B1500;"ERSSP 0,2"

See Also “ERMOD”

ERSSP?
This query command returns the connection state of the I/O path for the Agilent
16440A SMU/PG selector.

Syntax ERSSP? port

Parameters port: Output port of SMU/PG selector. Integer expression.


0: Output 1 on selector of first module
1: Output 2 on selector of first module
2: Output 1 on selector of second module
3: Output 2 on selector of second module

Query Response status<CR/LF^EOI>


0: Open. Normally open mechanical relay contact.
1: SMU connect. Connected to the SMU input.
2: PGU connect. Connected to the PGU input.
3: PGU open. Open semiconductor relay contact installed on the PGU connect path.

Example OUTPUT @B1500;"ERSSP? 1"


Statements ENTER @B1500;A

See Also “ERMOD”

FC
This command sets the output signal frequency of the MFCMU.

Execution The CN/CNX command has been executed for the specified channel (MFCMU).
Conditions

Agilent B1500 Programming Guide, Edition 4 4-71


Command Reference
FL

Syntax FC chnum,freq

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
freq : Frequency (in Hz). Numeric expression. in Hz. See Table 4-10 on page
4-22.

Example OUTPUT @B1500;"FC 7,1000000"


Statements
FL
This command sets the connection mode of a SMU filter for each channel.
A filter is mounted on the SMU. It assures clean source output with no spikes or
overshooting.

Syntax FL mode[,chnum[,chnum...[,chnum]...]]
A maximum of ten channels can be set.

Parameters mode : Status of the filter. Integer expression.


0: Disconnect (initial setting).
1: Connect.
chnum : SMU channel number. Integer expression. 1 to 10 or 101 to 1001. See
Table 4-1 on page 4-13.
If you do not specify chnum, the FL command sets the same mode for all channels.

Example OUTPUT @B1500;"FL"


Statements OUTPUT @B1500;"FL 0,1,3,5"

FMT
This command clears the B1500 output data buffer, and specifies the data output
format. For details about data output format, see “Data Output Format” on page
1-25. Without this command, the data output format is same as the format by the
FMT1,0 command.
Query command output data is always stored in the query buffer in ASCII format,
regardless of this command.

NOTE Multi command statement is not allowed for this command.

4-72 Agilent B1500 Programming Guide, Edition 4


Command Reference
FMT

Syntax FMT format[,mode]

Parameters format : Data output format. Integer expression. 1 to 25. See Table 4-16.
mode : Data output mode. Integer expression. 0 to 10. See Table 4-17. Without
setting the mode value, only the measurement data is returned.
For the sampling measurement, the sampling index is also returned if
no zero value is set to mode.
Table 4-16 FMT format parameter

format Data format Terminator

1a ASCII (12 digits data with header) <CR/LF^EOI>

2a ASCII (12 digits data without header) <CR/LF^EOI>

3a 4 byte binary <CR/LF^EOI>

4a 4 byte binary <^EOI>

5a ASCII (12 digits data with header) ,

11 ASCII (13 digits data with header) <CR/LF^EOI>


12 ASCII (13 digits data without header) b <CR/LF^EOI>

13 8 byte binary <CR/LF^EOI>


14 8 byte binary <^EOI>
15 ASCII (13 digits data with header) ,
21 ASCII (13 digits data with header) b <CR/LF^EOI>

22 ASCII (13 digits data without header) b <CR/LF^EOI>

25 ASCII (13 digits data with header) b ,

a. Compatible with the Agilent 4142B data output format.


b. Compatible with the Agilent 4155/4156 FLEX mode ASCII data.

12 digits data will be sn.nnnnnEsnn, snn.nnnnEsnn, or snnn.nnnEsnn.


13 digits data will be sn.nnnnnnEsnn, snn.nnnnnEsnn, or
snnn.nnnnEsnn.
where, s is + or -, E is exponent symbol, and n means one digit number.

Agilent B1500 Programming Guide, Edition 4 4-73


Command Reference
*IDN?

NOTE For the 4 byte binary data output format, the time stamp function is not available.
Refer to “Data Output Format” on page 1-25.

Table 4-17 FMT mode parameter

mode Source data returned with measurement data

0 None (default setting). Only the measurement data is returned.

1 Source output data of the primary sweep source.

2 Source output data of the synchronous sweep source set by the


WSI/WSV command.

2 to 10 For the multi channel sweep measurement:


Source output data of the synchronous sweep source set by the
WNX command. The mode value must be the sweep source number
(2 to 10) you want to get data. For the sweep source number, refer
to “WNX” on page 4-176.

Example OUTPUT @B1500;"FMT 1"


Statements OUTPUT @B1500;"FMT 2,1"

*IDN?
The *IDN? query command returns the instrument model number and the firmware
revision number.

Syntax *IDN?

Query Response Agilent Technologies,model,0,revision<CR/LF^EOI>

Response Explanation

model B1500A
revision Firmware revision number. Example: A.01.00

Example OUTPUT @B1500;"*IDN?"


Statements ENTER @B1500;A$

Example Agilent Technologies,B1500A,0,A.01.00


Response

4-74 Agilent B1500 Programming Guide, Edition 4


Command Reference
IMP

IMP
The IMP command specifies the parameter measured by the MFCMU. This
command is effective for the following commands and the following measurement
mode. The MFCMU can measure two parameters.
• TC command
• TTC command
• Spot C measurement (MM17)
• DC bias sweep measurement (MM18)
• Pulsed spot C measurement (MM19)
• Pulsed sweep CV measurement (MM20)
• Frequency sweep measurement (MM22)
• AC level sweep measurement (MM23)
• C-t sampling measurement (MM26)

Execution This command is not effective for the binary data output format (FMT3, FMT4,
Conditions FMT13, and FMT14). Then one of the following couples will be measured. They
will be automatically selected by the B1500, and will be a couple without data
overflow.

• R (resistance, Ω) and X (reactance, Ω)


• G (conductance, S) and B (susceptance, S)

Syntax IMP mode

Parameters mode : Measurement mode. 1 to 402. Integer expression. See Table 4-8 on
page 4-20.
Initial setting: mode=100 (Cp-G measurement)

Example OUTPUT @B1500;"IMP 10"


Statements
IN
The IN command sets the specified channel to 0 V with an output range change.

Syntax IN [chnum[,chnum...[,chnum]...]]
A maximum of 15 channels can be set.

Agilent B1500 Programming Guide, Edition 4 4-75


Command Reference
LGI

Parameters chnum : Channel number. Integer expression. See Table 4-1 on page 4-13.
If you specify multiple chnums, the channel outputs will be set to 0 V in the
specified order.
If you do not specify chnum, all SMU, all SPGU, and CMU will be set to 0 V in this
order. Then, SMU will be set to 0 V in the order from higher to lower output range
and SPGU will be set to 0 V in the order from higher to lower setup voltage.

Remarks The IN command sets the specified module to the following conditions:

SMU setup parameter Value MFCMU setup parameter Value

Source mode Voltage DC bias 0V

Output voltage 0V AC level 0V

V range 20 V Output signal frequency 1 kHz

I compliance 100 μA Measurement range 50 Ω

I range 100 μA SPGU setup parameter Value

Filter Not changed Output mode DC

Series resistor Not changed Output voltage 0V

After this command, there is no additional power consumption for the idle state.

Example OUTPUT @B1500;"IN"


Statements OUTPUT @B1500;"IN 1,2,3,5,6"

LGI
The LGI command sets the current monitor channel for the linear search
measurement (MM14). This command setting clears, and is cleared by, the LGV
command setting.
This command ignores the RI command setting.

Syntax LGI chnum,mode,range,target

Parameters chnum : SMU search monitor channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.
mode : Search mode. Integer expression.

4-76 Agilent B1500 Programming Guide, Edition 4


Command Reference
LGV

0 : If the measured value ≤ target, it is the search result data.


1 : If the measured value ≥ target, it is the search result data.
range : Measurement ranging type. Integer expression. The measurement range
will be set to the minimum range that covers the target value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-3 on page 4-15.
target: Search target current (in A). Numeric expression.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU

Example OUTPUT @B1500;"LGI 0,1,14,1E-6"


Statements
LGV
The LGV command sets the voltage monitor channel for the linear search
measurement (MM14). This command setting clears, and is cleared by, the LGI
command setting.
This command ignores the RV command setting.

Syntax LGV chnum,mode,range,target

Parameters chnum : SMU search monitor channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.
mode : Search mode. Integer expression.
0 : If the measured value ≤ target, it is the search result data.
1 : If the measured value ≥ target, it is the search result data.
range : Measurement ranging type. Integer expression. The measurement range
will be set to the minimum range that covers the target value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-2 on page 4-14.
target : Search target voltage (in V). Numeric expression.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU

Example OUTPUT @B1500;"LGV 1,2,12,3"


Statements

Agilent B1500 Programming Guide, Edition 4 4-77


Command Reference
LMN

LMN
This command enables or disables the data monitor and data output of the MFCMU
AC voltage and DC voltage.
This command is not effective for the pulsed spot C (MM19), pulsed sweep CV
(MM20), and C-t sampling (MM26) measurement.

Syntax LMN mode

Parameters mode : Data monitor and output mode. Integer expression. 0 or 1.


0: Disables the data monitor and output. Initial setting.
1: Enables the data monitor and output.

Example OUTPUT @B1500;"LMN 1"


Statements
LOP?
The LOP? query command returns the operation status of all modules and stores the
results in the output data buffer (query buffer).

Syntax LOP?

Query Response LOP stat1,stat2,stat3,stat4,stat5,stat6,stat7,stat8,stat


9,stat10<CR/LF^EOI>
The variables stat1 to stat10 will indicate the status of the module installed in the
slot 1 to 10 respectively, and will be the two-digit status code shown in the following
table. For the HPSMU that occupies two slots, two variables will be returned. Then
the first one is always 00, and the last one indicates the module status. For example,
LOP00,11,00,00,00,00,00,00,00,00 will be returned when only the
HPSMU installed in the slot 1-2 is used and is in the voltage compliance condition.

Status code Description

00 No module is installed, or the output switch is OFF.


01 SMU forces voltage, and does not reach current compliance.

02 SMU forces positive current, and does not reach voltage compliance.

03 SMU forces negative current, and does not reach voltage compliance.

10 Not applicable.

4-78 Agilent B1500 Programming Guide, Edition 4


Command Reference
*LRN?

Status code Description

11 SMU reaches voltage compliance.

12 SMU reaches positive current compliance.

13 SMU reaches negative current compliance.

20 SMU is oscillating.
30 Not applicable.

40 MFCMU applies DC bias.

51 MFCMU is in the NULL loop unbalance condition.


52 MFCMU is in the IV amplifier saturation condition.

Example OUTPUT @B1500;"LOP?"


Statements ENTER @B1500;A$

*LRN?
The *LRN? (learn) query command returns the B1500 command parameter settings.

Syntax *LRN? type

Example DIM A$[200]


Statements OUTPUT @B1500;"*LRN? 1"
ENTER @B1500;A$

Parameters and type : This parameter selects the type of query response. Available values are
Query Response 0 to 110, but some numbers are not used. See below. Integer expression.
A description and the query response of each type is described below.
0: Returns the output switch ON/OFF status:
CN[chnum[,chnum . . . [,chnum] . . . ]]<CR/LF^EOI>
where chnum is the channel number for the channel whose output
switch is set to ON.
If no output switches are ON, the query response is:
CL<CR/LF^EOI>
1 to 10: Returns the source status of SMU or MFCMU.

Agilent B1500 Programming Guide, Edition 4 4-79


Command Reference
*LRN?

The type parameter corresponds to slot number where the module is


installed.
For the SMU when the output switch is ON, the query response is:
DV chnum,range,voltage[,Icomp[,comp polarity[,irange]]]
<CR/LF^EOI>
or
DI chnum,range,current[,Vcomp[,comp polarity[,vrange]]]
<CR/LF^EOI>
where range is the present setting of the output range.
For the SMU when the output switch is OFF, the query response is:
CL chnum<CR/LF^EOI>
For the MFCMU, the query response is:
DCV chnum,voltage;ACV chnum,voltage;FC chnum,frequency
<CR/LF^EOI>
For the SPGU, the query response is:
CNX chnum[,chnum][;CL chnum]<CR/LF^EOI>
or
CL chnum[,chnum][;CNX chnum]<CR/LF^EOI>
where chnum of CNX is the channel number for the channel whose
output switch is set to ON, and chnum of CL is the channel number for
the channel whose output switch is set to OFF.
30 : Returns the filter ON/OFF status:
FL0 [off ch[,off ch . . . [,off ch] . . . ];
FL1 [on ch[,on ch . . . [,on ch] . . ] <CR/LF^EOI>
If all modules are Filter OFF, the query response is:
FL0<CR/LF^EOI>
If all modules are Filter ON, the query response is:
FL1<CR/LF^EOI>
31 : Returns the parameter values of the TM, AV, CM, FMT, and MM
commands:

4-80 Agilent B1500 Programming Guide, Edition 4


Command Reference
*LRN?

TM trigger mode;AV number[,mode];CM auto calibration mode;


FMT output data format,output data mode
[;MM measurement mode[,chnum[,chnum...[,chnum]...]]]
<CR/LF^EOI>
32 : Returns the measurement ranging status:
RI chnum,Irange;RV chnum,Vrange
[;RI chnum,Irange;RV chnum,Vrange] . . . .
[;RI chnum,Irange;RV chnum,Vrange]<CR/LF^EOI>
33 : Returns the staircase sweep measurement settings:
WM automatic sweep abort function,output after sweep;
WT hold time,delay time[,step delay time[,S trig delay[,M trig delay]]]
[;WV chnum,mode,range,start,stop,nop[,Icomp [,pcomp]]] or
[;WI chnum,mode,range,start,stop,nop[,Vcomp[,pcomp]]]
[;WSV chnum,range,start,stop[,Icomp[,pcomp]]] or
[;WSI chnum,range,start,stop[,Vcomp[,pcomp]]]<CR/LF^EOI>
34 : Returns the pulsed source settings:
PT hold time,pulse width[,pulse period[,trig delay]]
[;PV chnum,output range,base voltage,pulse voltage [,Icomp]] or
[;PI chnum,output range,base current,pulse current [,Vcomp]]
[;PWV chnum,mode,range,base,start,stop,nop[,Icomp]] or
[;PWI chnum,mode,range,base,start,stop,nop[,Vcomp]]<CR/LF^EOI>
37 : Returns the quasi-pulsed source settings:
BDM detection interval[,mode];
BDT hold time,delay time
[;BDV chnum,range,start,stop[,Icomp]]<CR/LF^EOI>
38 : Returns the digital I/O port information:
ERM input pin;ERC2,value <CR/LF^EOI>
40 : Returns channel mapping information:
If multiple channel numbers are translated to another numbers.
ACH actual,program[;ACH actual,program] . . . .
[;ACH actual,program]<CR/LF^EOI>
If no channel number is defined by the ACH command.
ACH<CR/LF^EOI>
46 : Returns SMU measurement operation mode settings:

Agilent B1500 Programming Guide, Edition 4 4-81


Command Reference
*LRN?

CMM chnum,mode[;CMM chnum,mode] . . . .


[;CMM chnum,mode]<CR/LF^EOI>
47 : Returns the sampling measurement settings:
MSC abort,post;MT h_bias,interval,number,h_base;ML mode
[;MV chnum,range,base,bias,comp] or
[;MI chnum,range,base,bias,comp] or
[;MSP chnum[,post [,base]]]
:
<CR/LF^EOI>
49 : Returns the quasi-static CV measurement settings:
QSM abort,post;QSL data,compen;QSZ mode
;QSO mode[,chnum[,Vcomp]]
;QSC mode
;QST cinteg,linteg,hold,delay1[,delay2]
;QSR range
[;QSV chnum,mode,range,start,stop,cvoltage,step[,Icomp]]
:
<CR/LF^EOI>
50 : Returns the linear search measurement settings:
LSM abort,post;LSTM hold,delay;LSVM mode
[;LGI chnum,mode,Irange,Itarget] or
[;LGV chnum,mode,Vrange,Vtarget]
[;LSV chnum,range,start,stop,step[,Icomp]] or
[;LSI chnum,range,start,stop,step[,Vcomp]]
[;LSSV chnum,polarity,offset[,Icomp]] or
[;LSSI chnum,polarity,offset[,Vcomp]]
<CR/LF^EOI>
51 : Returns the binary search measurement settings:
BSM mode,past;BST hold,delay;BSVM mode
[;BGI chnum,mode,condition,Irange,Itarget] or
[;BGV chnum,mode,condition,Vrange,Vtarget]
[;BSV chnum,range,start,stop[,Icomp]] or
[;BSI chnum,range,start,stop[,Vcomp]]
[;BSSV chnum,polarity,offset[,Icomp]] or
[;BSSI chnum,polarity,offset[,Vcomp]]
<CR/LF^EOI>
53 : Returns the SMU series resistor ON/OFF status:

4-82 Agilent B1500 Programming Guide, Edition 4


Command Reference
*LRN?

SSR chnum,mode[;SSR chnum,mode] . . . .


[;SSR chnum,mode]<CR/LF^EOI>
54 : Returns the auto ranging mode status:
RM chnum,mode[,rate][;RM chnum,mode[,rate]] . . . .
[;RM chnum,mode[,rate]]<CR/LF^EOI>
55 : Returns the A/D converter settings:
AAD chnum,type[;AAD chnum,type] . . . .
[;AAD chnum,type]<CR/LF^EOI>
56 : Returns the ADC averaging or integration time setting:
AIT0,mode,time;AIT1,mode,time;AZ mode<CR/LF^EOI>
57 : Returns the source/measurement wait time settings:
WAT0,set_set;WAT1,set_meas<CR/LF^EOI>
58 : Returns the trigger settings:
[TGP port,terminal,polarity,type]
[;TGP port,terminal,polarity,type] . . . .
[;TGP port,terminal,polarity,type]
TGSI mode;TGXO mode;TGSO mode;TGMO mode<CR/LF^EOI>
59 : Returns the multi channel sweep source settings:
WNX n,chnum,mode,range,start,stop[,comp[,pcomp]]
[;WNX n,chnum,mode,range,start,stop[,comp[,pcomp]]] . . . .
[;WNX n,chnum,mode,range,start,stop[,comp[,pcomp]]]
<CR/LF^EOI>
If no multi channel sweep source is set, the query response is:
WNX<CR/LF^EOI>
60 : Returns the time stamp setting:
TSC enable<CR/LF^EOI>
61 : Returns the display settings:
RED enable;
KLC lock;
DFM format;
SPA1,param;
SPA2,param;

Agilent B1500 Programming Guide, Edition 4 4-83


Command Reference
*LRN?

MPA param;
SCH chnum;
MCH chnum<CR/LF^EOI>
62 : Returns the ASU connection path:
SAP chnum,path[;SAP chnum,path] . . . .
[;SAP chnum,path]<CR/LF^EOI>
63 : Returns the 1 pA auto ranging operation mode:
SAR chnum,mode[;SAR chnum,mode] . . . .
[;SAR chnum,mode]<CR/LF^EOI>
64 : Returns the operation mode of the ASU connection status indicator:
SAL chnum,mode[;SAL chnum,mode] . . . .
[;SAL chnum,mode]<CR/LF^EOI>
70 : Returns the MFCMU measurement mode:
IMP mode<CR/LF^EOI>
71 : Returns the MFCMU data output mode:
LMN mode<CR/LF^EOI>
72 : Returns the MFCMU’s ADC setting:
ACT mode, number<CR/LF^EOI>
73 : Returns the MFCMU measurement range:
RC chnum,mode,range<CR/LF^EOI>
80 : Returns the operation mode of the SCUU connection status indicator:
SSL chnum,mode<CR/LF^EOI>
81 : Returns the SCUU connection path:
SSP chnum,mode<CR/LF^EOI>
90 : Returns the MFCMU adjustment mode setting:
ADJ chnum,mode<CR/LF^EOI>
100 : Returns the DC bias sweep measurement settings:
WMDCV abort function[,output after sweep];
WTDCV hold,delay[,step delay[,S trig delay[,M trig delay]]]
[;WDCV chnum,mode,start,stop,step]<CR/LF^EOI>

4-84 Agilent B1500 Programming Guide, Edition 4


Command Reference
LSI

101 : Returns the pulsed spot C measurement or pulsed sweep CV


measurement settings:
PTDCV hold,width[,period[,trig delay]]
[;PDCV chnum,base,peak] or
[;PWDCV chnum,mode,base,start,stop,step]<CR/LF^EOI>
102 : Returns the frequency sweep measurement settings:
WMFC abort post;
WTFC hold,delay[,step delay[,S trig delay[,M trig delay]]]
[;WFC chnum,mode,start,stop,step]<CR/LF^EOI>
103 : Returns the AC level sweep measurement settings:
WMACV abort post;
WTACV hold,delay[,step delay[,S trig delay[,M trig delay]]]
[;WACV chnum,mode,start,stop,step]<CR/LF^EOI>
104 : Returns the C-t sampling measurement settings:
MTDCV h_bias,interval,number,h_base
[;MDCV chnum,base,bias,post]<CR/LF^EOI>
110 : Returns the parallel measurement mode setting:
PAD mode<CR/LF^EOI>

LSI
The LSI command sets the current search source for the linear search measurement
(MM14). After search stops, the search channel forces the value specified by the
LSM command.
This command clears the LSV, LSSI, and LSSV command settings.
This command setting is cleared by the LSV command.
If Vcomp value is greater than ± 42 V, the interlock circuit must be shorted.

Syntax LSI chnum,range,start,stop,step[,Vcomp]

Parameters chnum : SMU search source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
range : Output ranging type. Integer expression. The output range will be set to
the minimum range that covers both start and stop values. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-5 on page 4-17.

Agilent B1500 Programming Guide, Edition 4 4-85


Command Reference
LSM

start, stop : Search start or stop current (in A). Numeric expression. See Table 4-7
on page 4-19. The start and stop must have different values.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
step: Step current (in A). Numeric expression.
If start < stop, step must be positive, and if start > stop, step must be
negative. Maximum number of search steps is 1001.
Vcomp: Voltage compliance value (in V). Numeric expression. See Table 4-7 on
page 4-19. If you do not specify Vcomp, the previous value is set.

Example OUTPUT @B1500;"LSI 1,0,0,1E-6,1E-8,10"


Statements
LSM
The LSM command enables or disables the automatic abort function for the linear
search measurement (MM14). The automatic abort function stops the search
operation when one of the following conditions occurs:

• Compliance on the measurement channel


• Compliance on the non-measurement channel
• Overflow on the AD converter
• Oscillation on any channel
This command also sets the post search condition for the linear search sources. After
the search measurement is normally completed, the linear search sources force the
value specified by the post parameter.
If the search operation is stopped by the automatic abort function, the linear search
sources force the start value after search.

Syntax LSM abort[,post]

Parameters abort : Automatic abort function. Integer expression.


1: Disables the function. Initial setting.
2: Enables the function.
post : Source output value after the search operation is normally completed.
Integer expression.
1: Start value. Initial setting.
2: Stop value.

4-86 Agilent B1500 Programming Guide, Edition 4


Command Reference
LSSI

3: Output value when the search target value is obtained.


If this parameter is not set, the search source forces the start value.

Example OUTPUT @B1500;"LSM 2"


Statements OUTPUT @B1500;"LSM 2,3"

LSSI
The LSSI command sets the synchronous current source for the linear search
measurement (MM14). The synchronous source output will be:
Synchronous source output = polarity × LSI source output + offset
where the LSI source output is the output set by the LSI command.
This command setting is cleared by the LSV/LSI command.

Execution The LSI command must be entered before this command.


Conditions
If Vcomp value is greater than ± 42 V, the interlock circuit must be shorted.

Syntax LSSI chnum,polarity,offset[,Vcomp]

Parameters chnum : SMU synchronous source channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
polarity: Polarity of the LSSI output for the LSI output.
0 (negative): LSSI output = −LSI output + offset
1 (positive): LSSI output = LSI output + offset
offset: Offset current (in A). Numeric expression.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Both primary and synchronous search sources will use the same output
range. So check the output range set to the LSI command to determine
the synchronous source outputs.
Vcomp: Voltage compliance value (in V). Numeric expression. If you do not
specify Vcomp, the previous value is set.

Example OUTPUT @B1500;"LSSI 1,1,1E-6,5"


Statements

Agilent B1500 Programming Guide, Edition 4 4-87


Command Reference
LSSV

See Also Refer to Table 4-7 on page 4-19 for the source output value, output range, and the
available compliance values.

LSSV
The LSSV command sets the synchronous voltage source for the linear search
measurement (MM14). The synchronous source output will be:
Synchronous source output = polarity × LSV source output + offset
where the LSV source output is the value set by the LSV command.
This command setting is cleared by the LSI/LSV command.

Execution The LSV command must be entered before this command.


Conditions
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax LSSV chnum,polarity,offset[,Icomp]

Parameters chnum : SMU synchronous source channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
polarity: Polarity of the LSSV output for the LSV output.
0 (negative): LSSV output = −LSV output + offset
1 (positive): LSSV output = LSV output + offset
offset: Offset voltage (in V). Numeric expression.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Both primary and synchronous search sources will use the same output
range. So check the output range set to the LSV command to determine
the synchronous source outputs.
Icomp: Current compliance value (in A). Numeric expression. If you do not
specify Icomp, the previous value is set. Zero amps (0 A) is not a valid
value for the Icomp parameter.

Example OUTPUT @B1500;"LSSV 1,0,5,1E-6"


Statements

See Also Refer to Table 4-6 on page 4-18 for the source output value, output range, and the
available compliance values.

4-88 Agilent B1500 Programming Guide, Edition 4


Command Reference
LST?

LST?
The LST? query command stores a catalog of internal memory programs or a
specific program listing in the output data buffer (query buffer) of the B1500.

Syntax LST? [pnum[,index[,size]]]

Parameters pnum : Memory program number. Numeric expression. 0 to 2000. If you do not
specify the value, 0 is set.
LST? 0 returns the catalog of the memory programs. This is same as the
LST? command results. Then index and size are not required.
index : Command index that is the number of top command to read. Numeric
expression. If you do not specify the value, 1 is set.
index=1 specifies the first command stored in the memory program.
This command is always the ST command. And the last command is
always the END command. If the index value is greater than the
number of commands, the LST? returns the END only.
If you set index=0, the LST? returns the number of commands stored in
the memory program. For empty memory programs, the LST? returns 2
(ST and END).
size : Number of commands to read. Numeric expression. 1 to 3000. If you
do not specify the value, 3000 is set.
If you set the value greater than the number of commands from the
command specified by index to the last command (END), the LST?
command stops operation after reading the END command.

Query Response Response by LST? or LST? 0:


number_of_programs[,pnum[,pnum ... [,pnum]...]]<CR/LF^EO
I>
Response by LST? pnum[, index[, size]]:
ST pnum<CR/LF>
[saved_command<CR/LF>]
[saved_command<CR/LF>]
:
[saved_command<CR/LF>]
END<CR/LF^EOI>
The LST? command reads the command specified by the index, reads the command
stored next, and repeats this operation until the size each of commands are read. If
you do not specify the index and size values, the LST? command reads the first

Agilent B1500 Programming Guide, Edition 4 4-89


Command Reference
LSTM

stored command (ST pnum) to the 3000th stored command. If the number of
commands are less than 3000, the LST? command reads the commands from ST to
END. See Example Statements that show an HP BASIC programming example.

Example Example of LST? :


Statements
DIM A$[100]
OUTPUT @B1500;"LST?"
ENTER @B1500;A$
PRINT A$

Example of LST? pnum[, index[, size]] :


DIM A$[100]
P_num=1
!
OUTPUT @B1500;"LST?";P_num,0
ENTER @B1500;Num_c
Num_l=Num_c/3000
!
IF Num_c>3000 THEN
C_index=1
FOR I=1 TO INT(Num_l)
OUTPUT @B1500;"LST?";P_num,C_index
FOR N=1 TO 3000
ENTER @B1500;A$
PRINT A$
C_index=C_index+1
NEXT N
NEXT I
OUTPUT @B1500;"LST?";P_num,C_index
LOOP
ENTER @B1500;A$
PRINT A$
EXIT IF A$="END"
END LOOP
ELSE
OUTPUT @B1500;"LST?";P_num
LOOP
ENTER @B1500;A$
PRINT A$
EXIT IF A$="END"
END LOOP
END IF

LSTM
The LSTM command sets the timing parameters for the linear search measurement
(MM14). If you do not enter this command, all parameters are set to 0.

Syntax LSTM hold,delay

4-90 Agilent B1500 Programming Guide, Edition 4


Command Reference
LSV

Parameters hold : Hold time (in seconds) that is the wait time after starting the search
measurement and before starting the delay time for the first search
point. Numeric expression.
0 to 655.35 sec. 0.01 sec resolution.
delay : Delay time (in seconds) that is the wait time after starting to force a step
output value and before starting a step measurement. Numeric
expression.
0 to 65.535 sec. 0.0001 sec resolution.

Example OUTPUT @B1500;"LSTM 5,0.1"


Statements
LSV
The LSV command sets the voltage search source for the linear search measurement
(MM14). After search stops, the search channel forces the value specified by the
LSM command.
This command clears the LSI, LSSI, and LSSV command settings.
This command setting is cleared by the LSI command.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax LSV chnum,range,start,stop,step[,Icomp]

Parameters chnum : SMU search source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
range : Output ranging type. Integer expression. The output range will be set to
the minimum range that covers both start and stop values. Range
changing may cause 0 V output in a moment. For the limited auto
ranging, the instrument never uses the range less than the specified
range. See Table 4-4 on page 4-17.
start, stop : Search start or stop voltage (in V). Numeric expression. See Table 4-6
on page 4-18. The start and stop parameters must have different values.
0 to ± 100 for MPSMU/HRSMU,
0 to ± 200 for HPSMU
step : Step voltage (in V). Numeric expression.
If start < stop, step must be positive, and if start > stop, step must be
negative. Maximum number of search steps is 1001.

Agilent B1500 Programming Guide, Edition 4 4-91


Command Reference
LSVM

Icomp: Current compliance value (in A). Numeric expression. See Table 4-6 on
page 4-18. If you do not specify Icomp, the previous value is set. Zero
amps (0 A) is not allowed for Icomp.

Example OUTPUT @B1500;"LSV 1,0,0,20,.5,1E-6"


Statements
LSVM
The LSVM command selects the data output mode for the linear search
measurement (MM14).

Syntax LSVM mode

Parameters mode : Data output mode. Integer expression. 0 (initial setting) or 1.


0 : Returns Data_search only.
1 : Returns Data_search and Data_sense.
Data_search is the value forced by the search output channel set by LSI or LSV.
Data_sense is the value measured by the search monitor channel set by LGI or LGV.
For data output format, refer to “Data Output Format” on page 1-25.

Example OUTPUT @B1500;"LSVM 1"


Statements
MCC
The MCC command clears the settings of the sampling output channels defined by
the MV, MI, or MSP command. This command is available for the sampling
measurement (MM10).

Syntax MCC [chnum[,chnum...[,chnum[,chnum]]...]]


A maximum of 15 channels can be set.

Parameters chnum : Channel number of the unit to clear the settings. Integer expression. See
Table 4-1 on page 4-13.
If you do not specify chnum, the MCC command clears the settings of
all sampling channels.

Example OUTPUT @B1500;"MCC"


Statements OUTPUT @B1500;"MCC 1,2,3"

4-92 Agilent B1500 Programming Guide, Edition 4


Command Reference
MDCV

MDCV
This command sets the DC bias source (MFCMU, up to ± 25 V) used for the C-t
sampling measurement (MM26). When the SCUU (SMU CMU unify unit) is
connected, output up to ± 100 V is available by using the SMU that can be
connected to the Force1/Sense1 terminals.
This command setting clears the previous MDCV command setting.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax MDCV chnum,base,bias[,post]

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
base, bias: Base or bias voltage (in V). Numeric expression. See NOTE below.
0 (initial setting) to ± 25 V (MFCMU) or ± 100 V (with SCUU)
post : Source output value after the measurement is normally completed.
Numeric expression. See NOTE below. If you do not specify post, the
previous value is set.
0 to ± 25 V (MFCMU) or ± 100 V (with SCUU)

NOTE With the SCUU, the source module is automatically selected by the setting value.
The MFCMU is used if the base, bias, and post values are below ± 25 V (setting
resolution: 0.001 V), or the SMU is used if they are greater than ± 25 V (setting
resolution: 0.005 V).
The SMU will operate with the 100 V limited auto ranging and 20 mA compliance
settings.

Example OUTPUT @B1500;"MDCV 9,0,5"


Statements

Agilent B1500 Programming Guide, Edition 4 4-93


Command Reference
MI

MI
The MI command sets the DC current source (SMU) for the sampling measurement
(MM10). This command setting clears, and is cleared by, the MV command setting.
The specified channel starts the base current output by the measurement trigger (XE
command and so on), and changes the output value to bias after the hold time
elapses. The hold time is set by the h_base parameter of the MT command.
When multiple channels are used, channel outputs start in the order from lower to
higher channel number 101 to 1001. The channel numbers 1 to 10 correspond to the
channel numbers 101 to 1001 respectively. See Table 4-1 on page 4-13.
If the DI command is executed for this channel, the channel works as the DC current
source set by the DI command.

Execution If Vcomp value is greater than ± 42 V, the interlock circuit must be shorted.
Conditions

Syntax MI chnum,irange,base,bias[,Vcomp]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
irange : Ranging type. Integer expression. The output range will be set to the
minimum range that covers both base and bias values. For the limited
auto ranging, the instrument never uses the range less than the specified
range. See Table 4-5 on page 4-17.
base, bias : Base current and bias current (in A). Numeric expression. See Table 4-7
on page 4-19. base and bias must have the same polarity.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Vcomp : Voltage compliance value (in V). Numeric expression. See Table 4-7 on
page 4-19. If you do not specify this parameter, Vcomp is set to the
previous setting.

Example OUTPUT @B1500;"MI 1,18,0,5E-5,10"


Statements

See Also “MT”, “MCC”, “MSC”

4-94 Agilent B1500 Programming Guide, Edition 4


Command Reference
ML

ML
The ML command sets the sampling mode, linear or logarithmic. For the
logarithmic sampling, this command also specify the number of measurement data
to be returned.
If you do not execute this command, the last sampling mode is effective.
Initialization such as the *RST command sets the linear sampling mode.

Syntax ML mode

Parameters mode Sampling mode, linear or logarithm.


1: linear sampling, initial setting.
2: logarithmic sampling, 10 data/decade.
3: logarithmic sampling, 25 data/decade.
4: logarithmic sampling, 50 data/decade.
5: logarithmic sampling, 100 data/decade.
6: logarithmic sampling, 250 data/decade.
7: logarithmic sampling, 500 data/decade.

Example OUTPUT @B1500;"ML 2"


Statements
MM
The MM command specifies the measurement mode and the channels used for
measurements. This command must be entered to specify the measurement mode.
For the high speed spot measurements, do not enter the MM command.

Syntax • mode= 1, 2, 10, or 16:


MM mode,chnum[,chnum[,chnum...[,chnum]...]]
A maximum of ten channels can be set.
• mode= 3, 4, 5, 17, 18, 19, 20, 22, 23, or 26:
MM mode,chnum
• mode= 14 or 15:
MM mode
• mode= 9 or 13:

Agilent B1500 Programming Guide, Edition 4 4-95


Command Reference
MM

MM mode[,chnum]

Parameters mode : Measurement mode. Integer expression. 1 to 26. See Table 4-18.
chnum: Measurement channel number. Integer expression. See Table 4-1 on
page 4-13.
Table 4-18 Measurement Mode

mode Measurement mode Related source setup command

1 Spot DI, DV

2 Staircase sweep WI, WV, WT, WM, WSI, WSV

3 Pulsed spot PI, PV, PT

4 Pulsed sweep PWI, PWV, PT, WM, WSI, WSV


5 Staircase sweep with WI, WV, WM, WSI, WSV, PI, PV, PT
pulsed bias

9 Quasi-pulsed spot BDV, BDT, BDM

10 Sampling MCC, MSC, ML, MT, MI, MV

13 Quasi-static CV QSV, QST, QSM

14 Linear search LSV, LSI, LGV, LGI, LSM, LSTM, LSSV,


LSSI, LSVM

15 Binary search BSV, BSI, BGV, BGI, BSM, BST, BSSV,


BSSI, BSVM

16 Multi channel sweep WI, WV, WT, WM, WNX

17 Spot C FC, ACV, DCV

18 DC bias sweep FC, ACV, WDCV, WMDCV, WTDCV


19 Pulsed spot C PDCV, PTDCV

20 Pulsed sweep CV PWDCV, PTDCV

22 Frequency sweep WFC, ACV, DCV, WMFC, WTFC

23 AC level sweep FC, WACV, DCV, WMACV, WTACV

26 C-t sampling MSC, MDCV, MTDCV

4-96 Agilent B1500 Programming Guide, Edition 4


Command Reference
MSC

Remarks The SMU operation mode is defined by the CMM command.


The measurement range is defined by the RI or RV command (for SMU), or the RC
command (for MFCMU).
To execute the measurement, enter the XE command.
For mode=1, 2, or 10, if you use multiple measurement channels, the channels start
measurement in the order defined in the MM command.
For mode=16, if you use multiple measurement channels, the channels that use the
high speed ADC with the fixed ranging mode start measurement simultaneously,
then other channels start measurement in the order defined in the MM command.
For mode=9 or 13, if you do not specify chnum, the B1500 uses the channel
specified by the BDV or QSV command to execute measurement.
For mode=9, 14, or 15, the time stamp function is not available. See “Data Output
Format” on page 1-25.

Example OUTPUT @B1500;"MM 1,1"


Statements OUTPUT @B1500;"MM 2,1,3"

MSC
The MSC command enables or disables the automatic abort function for the
sampling measurement (MM10 and MM26). The automatic abort function stops the
measurement when one of the following conditions occurs:

• Compliance on the measurement channel (MM10)


• Compliance on the non-measurement channel (MM10)
• Oscillation on any channel (MM10)

• NULL loop unbalance condition (MM26)


• IV amplifier saturation condition (MM26)
• Overflow on the AD converter (MM10 and MM26)
This command also sets the post measurement condition for the sources. After the
measurement is normally completed, the voltage/current sources force the value
specified by the post parameter. The post parameter is effective only for the DC
output channels in MM10.
If the measurement is stopped by the automatic abort function, the voltage/current
sources force the base value.

Agilent B1500 Programming Guide, Edition 4 4-97


Command Reference
MSP

Syntax MSC abort[,post]

Parameters abort : Automatic abort function. Integer expression.


1: Disables the function. Initial setting.
2: Enables the function.
post : Source output value after the measurement is normally completed.
Integer expression.
1: Base value.
2: Bias value. Initial setting.
If this parameter is not set, the sources force the bias value.

Output Data The B1500 returns the data measured before any abort condition is detected.
Dummy data 199.999E+99 will be returned for the data after abort.

Example OUTPUT @B1500;"MSC 2"


Statements OUTPUT @B1500;"MSC 2,2"

MSP
The MSP command specifies the SPGU channel synchronized with the sampling
measurements (MM10), and the channel output after the sampling measurement.
You can also specify the channel output before the sampling measurement for the
channel which is set to the DC bias output by the SPM command.
Using the measurement trigger (XE command, etc.), the specified channel’s output
changes to the base value (set by the SPV command) and then changes to the pulse
peak value or the DC bias value (set by the SPV command) after the base hold time
elapses (which is set by the MT command). Finally the output is changed to the post
value (set by the MSP command) after the sampling measurement.

Execution Sampling interval (interval of MT command) must be ≥ 2 ms.


Conditions

Syntax MSP chnum[,post[,base]]

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1 on page 4-13.

4-98 Agilent B1500 Programming Guide, Edition 4


Command Reference
MT

post : Output voltage after completing sampling measurement. Numeric


expression. If this parameter is not set, the SPGU channel outputs the
base value set by the SPV command.
0 to ± 40 V, in 1 mV resolution
base : Output voltage before starting sampling measurement. Numeric
expression. This parameter is available only for the SPGU channel
which is set to the DC bias output by the SPM command. If this
parameter is not set, the SPGU channel outputs the base value set by
the SPV command.
0 to ± 40 V, in 1 mV resolution

Remarks The MSC command’s post parameter is not effective for the SPGU channel
synchronized with the sampling measurements (MM10).

Example OUTPUT @B1500;"SMP 101,0"


Statements OUTPUT @B1500;"SMP 1,0"

See Also “SPT”, “SPV”, “SPM”

MT
This command sets the timing parameters of the sampling measurement (MM10).

Syntax MT h_bias,interval,number[,h_base]

Parameters h_bias : Time since the bias value output until the first sampling point. Numeric
expression. in seconds. 0 (initial setting) to 655.35 s, resolution 0.01 s.
The following values are also available for interval < 0.002 s. |h_bias|
will be the time since the sampling start until the bias value output.
-0.09 to -0.0001 s, resolution 0.0001 s.
interval : Interval of the sampling. Numeric expression, 0.0001 to 65.535, in
seconds. Initial value is 0.002. Resolution is 0.001 at interval ≥ 0.002.
Linear sampling of interval < 0.002 in 0.00001 resolution is available
only when the following formula is satisfied. Also see NOTE below.
interval ≥ 0.0001 + 0.00002 × (number of measurement channels-1)
number : Number of samples. Integer expression. 1 to the following value. Initial
value is 1000.

Agilent B1500 Programming Guide, Edition 4 4-99


Command Reference
MT

For the linear sampling: 100001 / (number of measurement channels)


For the log sampling: 1 + (number of data for 11 decades)
h_base 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.

NOTE If you set interval < 0.002 s


Sampling mode must be linear. This setting is not permitted for the log sampling.
Also SPGU is not available.
The following conditions are automatically set to the all measurement channels.
And the all channels start measurement simultaneously. After the measurement,
they are returned to the previous conditions automatically.

• High speed A/D converter (ADC)


• Minimum measurement range that covers compliance value, fixed ranging
If the measurement time is expected to be longer than interval, the measurement
channels automatically adjust the number of averaging samples (AIT or AV
command settings) to keep the sampling interval. After the measurement, it is
returned to the previous setting automatically.

Sampling Sampling measurement will be started by a measurement trigger such as the XE


Operation command or an external trigger, and performed as shown below. Before the
measurement trigger, the source channels set by the DI/DV commands will start
output at the timing of the DI/DV command execution.
1. By the measurement trigger, source channels set by the MI/MV commands start
the base value output. Each source channel controls the output simultaneously.
2. h_base seconds later, the source channels change the output to the bias value.
The channels keep the value until the end of the sampling measurement.
3. Another h_bias seconds later, the measurement channels start measurement for
the first sampling point. The measurement channels perform the measurement in
series by the order set to the MM command.
4. After that, the following operation is repeated with the specified time interval.

• Measurement channels start measurement if they are ready to measure.


• Measurement channels keep the condition if they are busy.
This operation is repeated until the number of measurement result data reaches
to the specified number of measurement data.

4-100 Agilent B1500 Programming Guide, Edition 4


Command Reference
MTDCV

For the linear sampling with interval < 2 ms, if the total measurement time runs
over the specified time interval × number, the sampling measurement will be
stopped even if the number of measurement result data is less than the specified
number.
For the log sampling, the B1500 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.
5. The sampling measurement is completed. And the source channel set by the
MI/MV command forces the base or bias value specified by the MSC command.
The source channel set by the DI/DV command keeps its output.
The index data (max. 9999999) and the time data returned with the measurement
data will be as shown in the following formula. However, long measurement or busy
status may cause unexpected time data.
time data = t + h_bias + (index data -1) × interval
Where, t is the time of the sampling measurement time origin, and is the time when
the output value is changed from base to bias.

Example OUTPUT @B1500;"MT 0,0.0001,5000,0"


Statements OUTPUT @B1500;"MT 0.01,0.001,101,0.1"

MTDCV
This command sets the timing parameters of the C-t sampling measurement
(MM26).

Syntax MTDCV h_bias,interval,number[,h_base]

Parameters h_bias : Time since the bias value output until the first sampling point. Numeric
expression. in seconds. 0 (initial setting) to 655.35 s, resolution 0.01 s.
interval : Interval of the sampling. Numeric expression. in seconds. 0.008 to
655.35 s, 0.001 s resolution. Initial setting is 0.01.
number : Number of samples. Integer expression. 1 to 10001. Initial setting =
1000.
h_base: 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.

Example OUTPUT @B1500;"MTDCV 0,0.008,5000,0"


Statements OUTPUT @B1500;"MTDCV 0.01,0.008,101,0.1"

Agilent B1500 Programming Guide, Edition 4 4-101


Command Reference
MV

MV
The MV command sets the DC voltage source (SMU) for the sampling
measurement (MM10). This command setting clears, and is cleared by, the MI
command setting.
The specified channel starts the base voltage output by the measurement trigger (XE
command and so on), and changes the output value to bias after the hold time
elapses. The hold time is set by the h_base parameter of the MT command.
When multiple channels are used, channel outputs start in the order from lower to
higher channel number 101 to 1001. The channel numbers 1 to 10 correspond to the
channel numbers 101 to 1001 respectively. See Table 4-1 on page 4-13.
If the DV command is executed for this channel, the channel works as the DC
voltage source set by the DV command.

Execution If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.
Conditions

Syntax MV chnum,vrange,base,bias[,Icomp]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
vrange : Ranging type. Integer expression. The output range will be set to the
minimum range that covers both base and bias values. For the limited
auto ranging, the instrument never uses the range less than the specified
range. See Table 4-4 on page 4-17.
base, bias : Base voltage and bias voltage (in V). Numeric expression. See Table
4-6 on page 4-18.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Icomp : Current compliance value (in A). Numeric expression. See Table 4-6 on
page 4-18. If you do not set Icomp, the previous value is used. 0 A is
not allowed for Icomp.

Example OUTPUT @B1500;"MV 1,12,0,5,1E-3"


Statements

See Also “MT”, “MCC”, “MSC”

4-102 Agilent B1500 Programming Guide, Edition 4


Command Reference
NUB?

NUB?
The NUB? query command checks the number of measurement data in the output
data buffer, and stores the results in the output data buffer (query buffer).

Syntax NUB?

Query Response number_of_measurement_data<CR/LF^EOI>

Example OUTPUT @B1500;"NUB?"


Statements ENTER @B1500;A

ODSW
This command specifies the operation of the pulse switch for the specified SPGU
channel. Set for each channel. See “SPGU Module” on page 2-48 for details on the
operation of the pulse switch.

Syntax ODSW chnum,state[,normal,[delay,width]]

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
state : 0: pulse switch disabled (initial setting)
1: pulse switch enabled
normal: 0: normally open (switch is normally open, initial setting)
1: normally closed (switch is normally closed)
delay: Only for the PG mode. Delay time (seconds) from start of pulse output
to changeover of pulse switch. Numeric expression. 0 (initial setting) to
pulse period-1E-7 seconds, setting resolution 1E-8 seconds.
width: Only for the PG mode. Duration (seconds) to hold the switched state of
the pulse switch. Numeric expression. 1E-7 (initial setting) to pulse
period-delay seconds, setting resolution 1E-8 seconds.
The delay and width parameters are ignored in ALWG mode.

Example OUTPUT @B1500;"ODSW 101,1,1,1E-6,2E-6"


Statements
ODSW?
This query command returns the pulse switch settings for the specified SPGU
channel.

Agilent B1500 Programming Guide, Edition 4 4-103


Command Reference
*OPC?

Syntax ODSW? chnum

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table Table 4-1.

Query Response state[,normal,[delay,width]]<CR/LF^EOI>


state : 0: pulse switch disabled
1: pulse switch enabled
normal : 0: normally open (switch is normally open)
1: normally closed (switch is normally closed)
delay : Delay time (seconds) from start of pulse output to changeover of pulse
switch.
width : Duration (seconds) to hold the switched state of the pulse switch

Example OUTPUT @B1500;"ODSW? 101"


Statements ENTER @B1500;A,B,C,D

*OPC?
The *OPC? command monitors the pending operations, and places ASCII character
1 into the output queue when all pending operations are completed. Also this
command sets/clears the operation complete (OPC) bit in the standard event status
register as follows:
• If there are no pending operations, sets the OPC bit to 1.
• If there are any pending operations, sets the OPC bit to 0.
The bit will be set to 1 when all pending operations are completed.

Syntax *OPC?

Query Response 1<CR/LF^EOI>


No response will be returned until all pending operations are completed.

Example OUTPUT @B1500;"*OPC?"


Statements ENTER @B1500;A

4-104 Agilent B1500 Programming Guide, Edition 4


Command Reference
OS

OS
The OS command causes the B1500 to send a edge trigger from the Ext Trig Out
terminal. To set the trigger logic (initial setting: negative), send the TGP command
for the Ext Trig Out terminal.

Syntax OS

Example OUTPUT @B1500;"OS"


Statements
OSX
The OSX command causes the B1500 to send a trigger from a trigger output
terminal specified by the port parameter. To set the trigger logic (initial setting:
negative), send the TGP command for the specified port.

Syntax OSX port[,level]

Parameters port : External trigger output port number. Integer expression. -2, or 1 to 16.
-2: Ext Trig Out terminal.
1 to 16: Port 1 to 16 of the digital I/O terminal.
To use a digital I/O port, send the TGP command. The port value must
be same as the port value set to the TGP command.
level : Trigger output level. Integer expression. 0, 1, or 2.
0: Logical low.
1: Logical high.
2: Edge trigger (default setting).
If level is not specified, the B1500 sends the edge trigger. For the gate
trigger output, send OSX port,1 when starting trigger output, and send
OSX port,0 when stopping trigger output.

Example OUTPUT @B1500;"OSX 1,1"


Statements OUTPUT @B1500;"TI";1
ENTER @B1500 USING "#,3X,13D,X";Idata
OUTPUT @B1500;"OSX 1,0"

See Also “TGP” and “TGPC”

Agilent B1500 Programming Guide, Edition 4 4-105


Command Reference
PA

PA
The PA command pauses the command execution or internal memory program
execution, until the specified wait time elapses or until an event specified by the TM
command is received. The event set by the TM command only releases the paused
status. It does not start the measurement.

Syntax PA [wait time]

Parameters wait time : -99.9999 to 99.9999 seconds, with 100 μsec resolution. Numeric
expression. If wait time is not specified or negative wait time is set, the
paused status is kept until receiving an event specified by the TM
command.

Remarks The TM3 command enables an external trigger from the Ext Trig In terminal as an
event used to break the pause state set by the PA command.
The B1500 counts the wait time independent of the source wait time and the
measurement wait time set by the WAT command. So the wait time can cover them
as shown in the following program example:
OUTPUT @B1500;"CN";1
OUTPUT @B1500;"WAT";1,0,1E-3 !Source Wait Time =1ms
OUTPUT @B1500;"WAT";2,0,1E-3 !Meas Wait Time =1ms
OUTPUT @B1500;"DV";1,0,5,1E-2
OUTPUT @B1500;"PA";1E-3 !Wait Time =1ms
OUTPUT @B1500;"TI";1
ENTER @B1500 USING "#,3X,13D,X";Idata

Example OUTPUT @B1500;"PA 10"


Statements

See Also “TM”

PAD
Enables or disables parallel measurements by the multiple channels (SMU). This
command is effective for the measurement channels that use the high speed A/D
converter (ADC) and for the spot measurement (MM1), staircase sweep
measurement (MM2), or sampling measurement (MM10).
The parallel measurements are performed at first by using the measurement
channels that use the high speed ADC. And the other measurement channels
perform measurements in series as defined in the MM command by using the high
resolution ADC.

4-106 Agilent B1500 Programming Guide, Edition 4


Command Reference
PAX

Syntax PAD mode

Parameters mode : 1 (enable) or 0 (disable, initial setting). Integer expression.

Example OUTPUT @B1500;"PAD 1"


Statements
PAX
The PAX command pauses the command execution or internal memory program
execution, until the specified wait time elapses or until an event specified by the TM
command is received. The event set by the TM command only releases the paused
status. It does not start the measurement.

Execution The port parameter is meaningful only for the event (trigger input) set by the TM3
Conditions command. Set 1 (dummy) for the event set by the TM1, TM2, or TM4 command.

Syntax PAX port[,wait time]

Parameters port : External trigger input port number. Integer expression. -1, or 1 to 16.
-1: Ext Trig In terminal.
1 to 16: Port 1 to 16 of the digital I/O terminal.
To use a digital I/O port, send the TGP command. The port value must
be same as the port value set to the TGP command.
wait time : -99.9999 to 99.9999 seconds, with 100 μsec resolution. Numeric
expression.
If wait time is not specified or negative wait time is set, the paused
status is kept until receiving an event specified by the TM command.

Remarks The TM3 command enables an external trigger from a trigger input terminal
specified by the port parameter as an event used to break the pause state set by the
PA command.
The B1500 counts the wait time independent of the source wait time and the
measurement wait time set by the WAT command. So the wait time can cover them
as shown in the following program example:
OUTPUT @B1500;"CN";1
OUTPUT @B1500;"WAT";1,0,1E-3 !Source Wait Time =1ms
OUTPUT @B1500;"WAT";2,0,1E-3 !Meas Wait Time =1ms
OUTPUT @B1500;"DV";1,0,5,1E-2
OUTPUT @B1500;"PAX";-1,1E-3 !Wait Time =1ms

Agilent B1500 Programming Guide, Edition 4 4-107


Command Reference
PDCV

OUTPUT @B1500;"TI";1
ENTER @B1500 USING "#,3X,13D,X";Idata

Example OUTPUT @B1500;"PAX 1,10"


Statements

See Also “TM”, “TGP”, and “TGPC”

PDCV
This command sets the pulsed voltage source used for the pulsed spot C
measurement (MM19). The source will be the MFCMU, or the SMU that can be
connected to the Force1/Sense1 terminals of the SCUU (SMU CMU unify unit).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax PDCV chnum,base,pulse

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
base,
pulse: Pulse base voltage or pulse peak voltage (in V). Numeric expression.
0 (initial setting) to ± 100 V.
With the SCUU, the source module is automatically selected by the
setting value. The MFCMU is used if the base and pulse values are
below ± 25 V (setting resolution: 0.001 V), or the SMU is used if they
are greater than ± 25 V (setting resolution: 0.005 V).
The SMU will operate with the 100 V limited auto ranging and 20 mA
compliance settings.

Example OUTPUT @B1500;"PTDCV 1,0.01"


Statements OUTPUT @B1500;"PDCV 9,0,1"

4-108 Agilent B1500 Programming Guide, Edition 4


Command Reference
PI

PI
The PI command specifies the pulse current source and its parameters. This
command also clears, and is cleared by, the PV command setting.
In the staircase sweep with pulsed bias measurement mode (set by the MM 5
command), the output forced by the PI command synchronized with the staircase
sweep outputs forced by the WI or WV command.
Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. Note that the high-resolution ADC cannot be used for the pulsed
measurements. The AAD/AIT/AV/WT command settings are ignored.
If Vcomp value is greater than ± 42 V, the interlock circuit must be shorted.

Syntax PI chnum,irange,base,pulse[,Vcomp]

Parameters chnum : SMU pulsed source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
irange: Ranging type for pulse current output. Integer expression. The output
range will be set to the minimum range that covers both base and pulse
values. For the limited auto ranging, the instrument never uses the
range less than the specified range. See Table 4-5 on page 4-17.
base,
pulse : Pulse base current or peak current (in A). Numeric expression. See
Table 4-7 on page 4-19. base and pulse must have the same polarity.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Vcomp: Voltage compliance value (in V). Numeric expression. See Table 4-7 on
page 4-19. If Vcomp is not specified, the previous value is set.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Vcomp. If the output value is 0,
the polarity is set to positive.

Example OUTPUT @B1500;"PT 1,0.01"


Statements OUTPUT @B1500;"PI 1,16,0,5E-5,5"

OUTPUT @B1500;"PT 1,0.01"


OUTPUT @B1500;"PI 3,0,0,5E-6"

Agilent B1500 Programming Guide, Edition 4 4-109


Command Reference
PT

PT
The PT command sets the hold time, pulse width, and pulse period for a pulse source
set by the PI, PV, PWI or PWV command. This command also sets the trigger delay
time. Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. Note that the high-resolution ADC cannot be used for the pulsed
measurements. The AAD/AIT/AV/WT command settings are ignored.

Syntax For pulsed spot measurements:


PT hold,width[,period[,Tdelay]]
For pulsed sweep or staircase sweep with pulsed bias measurements:
PT hold,width,period[,Tdelay]

Parameters hold : Hold time (in seconds). Numeric expression. 0 to 655.35 sec. 10 ms
resolution. Initial setting = 0.
width : Pulse width (in seconds). Numeric expression. 0.5 ms to 2.0 s. 0.1 ms
resolution. Initial setting = 1 ms.
period : Pulse period (in seconds). Numeric expression. 0, -1, or 5 ms to 5.0 s.
0.1 ms resolution. Initial setting = 10 ms. Default setting = 0.

• period ≥ width + 2 ms (for width ≤ 100 ms)


• period ≥ width + 10 ms (for width > 100 ms)
If you set period =0, the pulse period is automatically set as follows.

• period = 5 ms (for width ≤ 3 ms)


• period = width + 2 ms (for 3 ms < width ≤ 100 ms)
• period = width + 10 ms (for width > 100 ms)
If you set period =-1, the pulse period is set to the width value. Where,
period =-1 is available only for the pulse spot measurement (MM3).
Tdelay : Trigger output delay time (in seconds). Numeric expression. 0 to width
sec. 0.1 ms resolution. Default setting = 0.
This parameter is the time from pulse leading edge to timing of trigger
output from a trigger output terminal. If you do not specify Tdelay, 0 is
set.

4-110 Agilent B1500 Programming Guide, Edition 4


Command Reference
PTDCV

PTDCV
This command sets the hold time, pulse width, pulse period, and trigger output delay
time of the pulsed spot C measurement (MM19) or pulsed sweep CV measurement
(MM20).

Syntax For pulsed spot C measurement:


PTDCV hold,width[,period[,Tdelay]]
For pulsed sweep CV measurement:
PTDCV hold,width,period[,Tdelay]

Parameters hold : Hold time (in seconds). Numeric expression. 0 to 655.35 sec. 10 ms
resolution. Initial setting = 0 sec.
width : Pulse width (in seconds). Numeric expression. 8 ms to 655.35 sec. 0.1
ms resolution. Initial setting = 8 ms.

• width ≥ 50 ms (for 1 kHz ≤ MFCMU frequency ≤ 10 kHz)


• width ≥ 10 ms (for 10 kHz < MFCMU frequency ≤ 200 kHz)
• width ≥ 8 ms (for 200 kHz < MFCMU frequency ≤ 5 MHz)
period : Pulse period (in seconds). Numeric expression. 0, or 10 ms to 655.35
sec. 0.1 ms resolution. Initial or default setting = 10 ms.

• period ≥ width + 2 ms (for width ≤100 ms)


• period ≥ width + 10 ms (for width > 100 ms)
If you set period =0, the pulse period is automatically set as follows.

• period = width + 2 ms (for width ≤100 ms)


• period = width + 10 ms (for width > 100 ms)
If you do not specify period, 0 sec is set.
Tdelay : Trigger output delay time (in seconds). Numeric expression.
0 to width sec. 0.1 ms resolution. Default setting = 0 sec.
This parameter is the time from pulse leading edge to timing of trigger
output from a trigger output terminal. If you do not specify Tdelay, 0 is
set.

Agilent B1500 Programming Guide, Edition 4 4-111


Command Reference
PV

PV
The PV command specifies the pulsed voltage source and its parameters. This
command also clears, and is cleared by, the PI command setting.
In the staircase sweep with pulsed bias measurement mode (MM 5 command), the
output forced by the PV command synchronized with the staircase sweep outputs
forced by the WI or WV command.
Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. Note that the high-resolution ADC cannot be used for the pulsed
measurements. The AAD/AIT/AV/WT command settings are ignored.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax PV chnum,vrange,base,pulse[,Icomp]

Parameters chnum : SMU pulsed source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
vrange: Ranging type for the pulsed voltage output. Integer expression. The
output range will be set to the minimum range that covers both base
and pulse values. For the limited auto ranging, the instrument never
uses the range less than the specified range. See Table 4-4 on page 4-17.
base,
pulse : Pulse base voltage or pulse peak voltage (in V). Numeric expression.
See Table 4-6 on page 4-18.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Icomp: Current compliance value (in A). Numeric expression. See Table 4-6 on
page 4-18. If you do not set Icomp, the previous value is used.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Icomp. If the output value is 0,
the polarity is set to positive.

Example OUTPUT @B1500;"PT 1,0.01"


Statements OUTPUT @B1500;"PV 1,12,0,5,1E-3"

OUTPUT @B1500;"PT 1,0.01"


OUTPUT @B1500;"PV 2,0,0,3"

4-112 Agilent B1500 Programming Guide, Edition 4


Command Reference
PWDCV

PWDCV
This command sets the pulsed voltage sweep source used for the pulsed sweep CV
measurement (MM20). The sweep source will be the MFCMU, or the SMU that can
be connected to the Force1/Sense1 terminals of the SCUU (SMU CMU unify unit).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax PWDCV chnum,mode,base,start,stop,step

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. 1 or 3.

1: Linear sweep (single stair, start to stop.)

3: Linear sweep (double stair, start to stop to start.)


base, start,
stop : Pulse base, start or stop voltage (in V). Numeric expression.
0 (initial setting) to ± 100 V.
With the SCUU, the source module is automatically selected by the
setting value. The MFCMU is used if the base, start, and stop values
are below ± 25 V (setting resolution: 0.001 V), or the SMU is used if
they are greater than ± 25 V (setting resolution: 0.005 V).
The SMU will operate with the 100 V limited auto ranging and 20 mA
compliance settings.
step : Number of steps for the pulsed sweep. Numeric expression. 1 to 1001.

Example OUTPUT @B1500;"PTDCV 1,0.01,0.02"


Statements OUTPUT @B1500;"PWDCV 9,1,0,-5,5,101"

Agilent B1500 Programming Guide, Edition 4 4-113


Command Reference
PWI

PWI
The PWI command specifies the pulsed current sweep source and its parameters.
This command clears the settings of the PWV, WSV and WSI commands.
The settings specified by this command are cleared by the PWV command.
Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. Note that the high-resolution ADC cannot be used for the pulsed
measurements. The AAD/AIT/AV/WT command settings are ignored.

Syntax PWI chnum,mode,range,base,start,stop,step[,Vcomp]

Parameters chnum : SMU pulsed sweep source channel number. Integer expression. 1 to 10
or 101 to 1001. See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. 1 or 3.
1: Linear sweep (single stair, start to stop.)
3: Linear sweep (double stair, start to stop to start.)
range : Ranging type for pulsed current sweep. Integer expression. The output
range will be set to the minimum range that covers base, start, and stop
values. For the limited auto ranging, the instrument never uses the
range less than the specified range. See Table 4-5 on page 4-17.
base, start,
stop : Pulse base, start, or stop current (in A). Numeric expression. See Table
4-7 on page 4-19. base, start and stop must have the same polarity.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
step : Number of steps for pulsed sweep. Numeric expression. 1 to 1001.
Vcomp : Voltage compliance (in V). Numeric expression. See Table 4-7 on page
4-19. If you do not specify Vcomp, the previous value is set. If Vcomp
value is greater than ± 42 V, the interlock circuit must be shorted.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Vcomp. If the output value is 0,
the polarity is set to positive.

Example OUTPUT @B1500;"PT 1,0.01"


Statements OUTPUT @B1500;"PWI 1,1,0,0,0,0.1,101"
OUTPUT @B1500;"PT 1,0.01"
OUTPUT @B1500;"PWI 2,3,13,0,1E-7,1E-2,100,10"

4-114 Agilent B1500 Programming Guide, Edition 4


Command Reference
PWV

PWV
The PWV command specifies the pulsed voltage sweep source and its parameters.
This command also clears the settings of the PWI, WSV and WSI commands.
The settings specified by this command are cleared by the PWI command.
Measurement channel performs measurement so that the pulse width and pulse
period are kept. The integration time is automatically set by the instrument, and you
cannot change. Note that the high-resolution ADC cannot be used for the pulsed
measurements. The AAD/AIT/AV/WT command settings are ignored.

Syntax PWV chnum,mode,range,base,start,stop,step[,Icomp]

Parameters chnum : SMU pulsed sweep source channel number. Integer expression. 1 to 10
or 101 to 1001. See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. 1 or 3.
1: Linear sweep (single stair, start to stop.)
3: Linear sweep (double stair, start to stop to start.)
range: Ranging type for pulsed voltage sweep. Integer expression. The output
range will be set to the minimum range that covers base, start, and stop
values. For the limited auto ranging, the instrument never uses the
range less than the specified range. See Table 4-4 on page 4-17.
base, start,
stop : Pulse base, start, or stop voltage (in V). Numeric expression. See Table
4-6 on page 4-18. If the output voltage is greater than ± 42 V, the
interlock circuit must be shorted.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
step : Number of steps for pulsed sweep. Numeric expression. 1 to 1001.
Icomp : Current compliance (in A). Numeric expression. See Table 4-6 on page
4-18. If you do not specify Icomp, the previous value is set.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Icomp. If the output value is 0,
the polarity is set to positive.

Example OUTPUT @B1500;"PT 1,0.01"


Statements OUTPUT @B1500;"PWV 1,1,0,0,0,10,101"
OUTPUT @B1500;"PT 1,0.01"
OUTPUT @B1500;"PWV 2,3,14,0,1,10,100,0.1"

Agilent B1500 Programming Guide, Edition 4 4-115


Command Reference
QSC

QSC
This command sets the QSCV measurement operation for the quasi-static CV
measurement (MM13). For the QSCV measurement operation, see “Quasi-static CV
Measurement” on page 2-24.

Syntax QSC mode

Parameters mode : Operation mode of the QSCV measurement. Integer expression. 0 or 1.

0: Normal. Initial setting.


1: 4155C/4156C compatible.
Use the 4155C/4156C compatible mode (mode=1) to have a good
compatibility with the measurement results by the 4155C/4156C.

Example OUTPUT @B1500;"QSC 1"


Statements
QSL
This command enables or disables the leakage current data output, and enables or
disables the leakage current compensation for the quasi-static CV measurement
(MM13).

Syntax QSL data,compen

Parameters data : Leakage current data output. Integer expression. 0 or 1.


0 : Disables data output. Initial setting.
1: Enables data output.
compen : Leakage current compensation. Integer expression. 0 or 1.
0 : Disables compensation. Initial setting.
1: Enables compensation.

Example OUTPUT @B1500;"QSL 0,0"


Statements If you send the above command, the leakage current is not measured during the
quasi-static CV measurements.

4-116 Agilent B1500 Programming Guide, Edition 4


Command Reference
QSM

QSM
This command enables or disables the automatic abort function for the quasi-static
CV measurement (MM13). The automatic abort function stops the measurement
when one of the following conditions occurs.
• Compliance on the measurement channel
• Compliance on the non-measurement channel
• Overflow on the AD converter
• Oscillation on any channel
This command also sets the post measurement condition for the sweep source. After
the measurement is normally completed, the sweep source forces the value specified
by the post parameter.
If the measurement is stopped by the automatic abort function, the sweep source
forces the start value.

Syntax QSM abort[,post]

Parameters abort : Automatic abort function. Integer expression. 1 or 2.


1: Disables the function. Initial setting.
2: Enables the function.
post : Source output value after the measurement is normally completed.
Integer expression. 1 or 2.
1: Start value. Initial setting.
2: Stop value.
If this parameter is not set, the sweep sources force the start value.

Output Data The B1500 returns the data measured before an abort condition is detected. Dummy
data 199.999E+99 will be returned for the data after abort.

Example OUTPUT @B1500;"QSM 2"


Statements OUTPUT @B1500;"QSM 2,2"

QSO
This command enables or disables the QSCV smart operation for the quasi-static
CV measurement (MM13).

Agilent B1500 Programming Guide, Edition 4 4-117


Command Reference
QSR

Execution The QSCV measurement operation must be Normal (QSC 0).


Conditions

Syntax QSO mode[,chnum[,Vcomp]]

Parameters mode : QSCV smart operation. Integer expression. 0 or 1.


0: Disables the smart operation. Initial setting.
1: Enables the smart operation.
The QSCV smart operation is effective for the quasi-static CV
measurement with large leakage current, and needs an additional SMU.
The SMU must be specified by chnum.
Do not specify the following parameters when mode=0.
chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to
1001. See Table 4-1 on page 4-13.
The specified SMU is used to perform the QSCV smart operation. The
SMU performs the current force operation to minimize the
measurement error caused by an offset current.
Vcomp : Voltage compliance (in V). Numeric expression. See Table 4-7 on page
4-19. If you do not specify Vcomp, the previous value is set.
This value is set to the SMU specified by chnum.

Example OUTPUT @B1500;"QSO 1,5,20"


Statements
QSR
This command sets the current measurement range used for the quasi-static CV
measurement (MM13).

Syntax QSR range

Parameters range : Current measurement range. Integer expression. -9 to -14.


-9: 10 pA range fixed.
-10: 100 pA range fixed.
-11: 1 nA range fixed. Initial setting.
-12: 10 nA range fixed.
-13: 100 nA range fixed.

4-118 Agilent B1500 Programming Guide, Edition 4


Command Reference
QST

-14: 1 μA range fixed.

Remarks The range set by this command is used for both the leakage current measurement
and the capacitance measurement.
Use the QST command to set the integration time of the capacitance measurement
and the leakage current measurement.

Example OUTPUT @B1500;"QSR -10"


Statements
QST
This command sets the integration time, hold time, and delay time of the quasi-static
CV measurement (MM13).

Syntax QST cinteg,linteg,hold,delay1[,delay2]

Parameters cinteg : Integration time for the capacitance measurement, in seconds. Numeric
expression. The available values are 0.02 to 400 s for a 50 Hz line
frequency, and 0.016667 to 333.33 s for 60 Hz. But the value is
rounded as follows:
cinteg = n / selected line frequency (n : integer. 1 to 20000.)
The initial setting is 5/ selected line frequency. So this value is 0.1 s for
a 50 Hz line frequency, and approximately 0.083 s for 60 Hz.
linteg : Integration time for the leakage current measurement, in seconds.
Numeric expression. The available values are 0.02 to 2 s for a 50 Hz
line frequency, and 0.016667 to 1.6667 s for 60 Hz. But the value is
rounded as follows:
linteg = n / selected line frequency (n : integer. 1 to 100.)
The initial setting is 5/ selected line frequency. So this value is 0.1 s for
a 50 Hz line frequency, and approx. 0.083 s for 60 Hz.
hold : Hold time (in seconds). Numeric expression. This is the time from the
start of the first sweep step to the beginning of the delay time (delay1).
0 to 655.35 sec. 0.01 sec resolution. Initial setting = 0.
delay1 : Delay time (in seconds). Numeric expression. This is the time from the
start of each sweep step to the start of the measurement.
0 to 65.535 sec. 0.0001 sec resolution. Initial setting = 0.

Agilent B1500 Programming Guide, Edition 4 4-119


Command Reference
QSV

delay2 : Delay time (in seconds). Numeric expression. This is the time from the
end of the each sweep step to the start of the next sweep step or the end
of the sweep. delay2 is not effective for the spot measurement.
0 to 65.535 sec. 0.0001 sec resolution. Initial setting = 0.

Example OUTPUT @B1500;"QST 0.35,0.1,5,0.2,0.2"


Statements This example sets a hold time of 5 s and a delay time of 0.2 s for delay1 and delay2.
The integration time for the capacitance measurement is 0.35 s for a line frequency
of 60 Hz, and 0.36 s for 50 Hz. The integration time for the leakage current is 0.1 s
for 50 Hz and 60 Hz.
Where, 0.35 is equal to 21 / 60 and 17.5 / 50. This means 0.35 s is not a suitable
value for the integration time at 50 Hz. Because n must be integer. In this case, the
integration time is automatically set to 0.36 s (=18 / 50). n is rounded to 18, not 17.

QSV
This command specifies the voltage sweep source and its parameters for the
quasi-static CV measurement (MM13).

Execution If you do not specify the channel number for the MM command, the channel
Conditions specified by the QSV command forces the sweep voltage, and measures the
capacitance.

Syntax QSV chnum,mode,vrange,start,stop,cvoltage,step[,Icomp]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. 1 or 3.

1: Linear sweep (single stair, start to stop.)

3: Linear sweep (double stair, start to stop to start.)


vrange : Ranging type. Integer expression. The output range will be set to the
minimum range that covers both start and stop values. For the limited
auto ranging, the instrument never uses the range less than the specified
range. See Table 4-4 on page 4-17.
start, stop : Start or stop voltage (in V). Numeric expression. See Table 4-6 on page
4-18.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU

4-120 Agilent B1500 Programming Guide, Edition 4


Command Reference
QSV

This value is the upper or lower limit of the sweep output voltage.
cvoltage : Capacitance measurement voltage (in V).
The minimum value is double the resolution of the output range, and
the maximum value is 10 V. The value must be ≤ |sweep step voltage|
you desire. If you set the value greater than |sweep step voltage|, the
cvoltage is automatically set to the same value as |sweep step voltage|.
See step.

NOTE In the QSCV measurement, the B1500 executes the capacitance measurement at the
sweep steps except for the sweep start voltage and stop voltage. At each sweep step,
the capacitance measurement is executed over the voltage range: output voltage ±
cvoltage/2 (V).

step : The number of steps for the voltage sweep. 1 to 1001. Integer
expression. Define the sweep step voltage at first, then calculate the
step value by using the following formula.
step = |start-stop| / |sweep step voltage|- 1
If you set step=1 and |stop−start| ≤ 10, the B1500 executes a one-point
capacitance measurement between the start and stop values. Then
cvoltage value is ignored.
Icomp : Current compliance (in A). Numeric expression. See Table4-6 on page
4-14. If you do not set Icomp, the previous value is used.
The current compliance polarity is automatically set to the same
polarity value as the output voltage, regardless of polarity of the
specified Icomp.

Example OUTPUT @B1500;"QSV 1,1,0,0,5,1,4,0.1"


Statements This example sets the following parameter values:
start=0 V, stop=5 V, cvoltage=1 V, step=4
This sets the sweep step voltage to 1 V. And the capacitance measurement is then
executed over the following voltage ranges:
1st sweep step: 0.5 to 1.5 V
2nd sweep step: 1.5 to 2.5 V
3rd sweep step: 2.5 to 3.5 V
4th sweep step: 3.5 to 4.5 V

Agilent B1500 Programming Guide, Edition 4 4-121


Command Reference
QSZ

For easy definition, use variables to set the parameters as shown below:
Start=0 !Start voltage (V)
Stop=5 !Stop voltage (V)
Cvolt=1 !C meas voltage (V)
Svolt=1 !Sweep step voltage (V)
Nop=ABS(Start-Stop)/Svolt-1 ! Number of steps
!
OUTPUT @B1500;"QSV 1,1,0,Start,Stop,Cvolt,Nop,0.1"

QSZ
This command enables/disables the capacitance offset cancel function for the
quasi-static CV measurement (MM13). Or this command triggers the capacitance
offset measurement, and returns the measurement result.

Execution The quasi-static CV measurement setup must be completed before executing the
Conditions offset measurement.
To execute the offset measurement, open the measurement terminals at the end of
the device side.

Syntax QSZ mode

Parameters mode : Capacitance offset cancel function. Integer expression. 0 to 2.


0: Disables the function. Initial setting.
1: Enables the function.
2: Performs a capacitance offset measurement, and returns the result.
The QSZ 2 command does not enable the capacitance offset cancel function.

Example OUTPUT @B1500;"QSZ 2"


Statements OUTPUT @B1500;"*OPC?"
ENTER @B1500;A
ENTER @B1500 USING "#,3X,13D,X";Offset
OUTPUT @B1500;"QSZ 1"

RC
The RC command specifies the measurement range or the measurement ranging
type of the MFCMU. In the initial setting, the auto ranging is set. The range
changing occurs immediately after the trigger (that is, during the measurements).

4-122 Agilent B1500 Programming Guide, Edition 4


Command Reference
RCV

For the high speed spot measurement, use the TC/TTC command.
The range setting is cleared by the CL, CA, IN, *TST?, *RST or a device clear (HP
BASIC CLEAR) command.

Syntax RC chnum,mode[,range]

Parameters chnum : MFCMU measurement channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.
mode : Ranging mode. 0 (auto ranging. initial setting) or 2 (fixed range).
range : Measurement range. Needs to set when mode=2. Integer (0 or more).
50 Ω, 100 Ω, 300 Ω, 1 kΩ, 3 kΩ, 10 kΩ, 30 kΩ, 100 kΩ, and 300 kΩ
are selectable. See Table 4-9 on page 4-21. Available measurement
ranges depend on the output signal frequency set by the FC command.

Example OUTPUT @B1500;"RC 8,0"


Statements OUTPUT @B1500;"RC 8,2,10000"

RCV
This command enables the modules that fail the self-test or self-calibration so that it
can receive commands again.
The *OPC? command should be entered to confirm the completion of the module
recovery.
This command should only be used for servicing the B1500.

Syntax RCV [slot]

Parameters slot : Slot number where the failed module to enable has been installed. 1 to
10. Or 0 or 11. Integer expression.
0: All failed modules. Default setting.
11: Mainframe.
If slot specifies the slot that installs no module, this command causes an error.

Example OUTPUT @B1500;"RCV 1"


Statements OUTPUT @B1500;"*OPC?"
ENTER @B1500;A

Remarks When a SMU connected to SCUU is recovered, the MFCMU is also recovered. The
SCUU cannot be controlled if a failed module is connected.

Agilent B1500 Programming Guide, Edition 4 4-123


Command Reference
RI

RI
The RI command specifies the current measurement range or ranging type. In the
initial setting, the auto ranging is set. The range changing occurs immediately after
the trigger (that is, during the measurements). Current measurement channel can be
decided by the CMM command setting and the channel output mode (voltage or
current).
For the high speed spot measurement, use the TI/TTI command.
The range setting is cleared by the CL, CA, IN, *TST?, *RST or a device clear (HP
BASIC CLEAR) command.

Syntax RI chnum,range

Parameters chnum : SMU current measurement channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
range : Measurement range or ranging type. Integer expression. See Table 4-3
on page 4-15.
If you select the fixed range, the instrument performs measurement by using the
specified range.
For the auto or limited auto ranging, the measurement range will be set to the
minimum range that covers the measured values. However, the instrument never
uses the range less than the specified range for the limited auto ranging.
For the measurement mode that uses pulse source, if you select the auto or limited
auto ranging, the measurement channel uses the minimum range that covers the
compliance value or current output range.

NOTE To use 1 pA range


The measurement channel connected to the ASU (Atto Sense and Switch Unit)
supports the 1 pA range. To use the 1 pA range, set the 1 pA fixed range or the 1 pA
limited auto ranging.
To enable the 1 pA range for the auto ranging mode, execute the SAR command.

Example OUTPUT @B1500;"RI 1,0"


Statements OUTPUT @B1500;"RI 2,-20"

RM
This command specifies the auto range operation for the current measurement.

4-124 Agilent B1500 Programming Guide, Edition 4


Command Reference
*RST

Syntax RM chnum,mode[,rate]
where the rate parameter is available for mode=2 or 3.

Parameters chnum : SMU current measurement channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
mode : Range changing operation mode. Integer expression. 1, 2 or 3.

mode Description

1 Initial setting. If you set mode=1, do not set rate.

2 If measured data ≥ current1, the range changes up after


measurement.

3 If measured data ≤ current2, the range changes down


immediately, and if measured data ≥ current1, the range
changes up after measurement.

where current1 and current2 are given by the following formula:


current1 = measurement range × rate /100
current2 = measurement range × rate /1000
For example, if measurement range=10 mA and rate=90, these values
are as follows:
current1 = 9 mA
current2 = 0.9 mA
rate: Parameter used to calculate the current value. Numeric expression.
11 to 100. Default setting is 50.

Example OUTPUT @B1500;"RM 1,2"


Statements OUTPUT @B1500;"RM 2,3,60"

*RST
The *RST command resets the B1500 to the initial settings. This command does not
clear the program memory and the self-calibration data.

Syntax *RST

Agilent B1500 Programming Guide, Edition 4 4-125


Command Reference
RU

Remarks If you want to reset channels while a sweep measurement is being performed, you
must first send the AB command, then the *RST command.

Example OUTPUT @B1500;"*RST"


Statement
RU
The RU command sequentially executes the internal memory programs.

Execution The specified programs have been stored by using the ST and END commands,
Conditions from the start program number through the stop program number.

Syntax RU start,stop

Parameters start : Start program number. Numeric expression. 1 to 2000.


stop : Stop program number. Numeric expression. 1 to 2000.
where stop value must be greater than or equal to the start value.

Example OUTPUT @B1500;"RU 1,10"


Statements OUTPUT @B1500;"RU 3,6"

RV
The RV command specifies the voltage measurement range or ranging type. In the
initial setting, the auto ranging is set. The range changing occurs immediately after
the trigger (that is, during the measurements). Voltage measurement channel can be
decided by the CMM command setting and the channel output mode (voltage or
current).
For the high speed spot measurement, use the TV/TTV command.
The range setting is cleared by the CL, CA, IN, *TST?, *RST or a device clear (HP
BASIC CLEAR) command.

Syntax RV chnum,range

Parameters chnum : SMU voltage measurement channel number. Integer expression. 1 to 10


or 101 to 1001. See Table 4-1 on page 4-13.
range : Measurement range or ranging type. Integer expression. See Table 4-2
on page 4-14.

4-126 Agilent B1500 Programming Guide, Edition 4


Command Reference
RZ

If you select the fixed range, the instrument performs measurement by using the
specified range.
For the auto or limited auto ranging, the measurement range will be set to the
minimum range that covers the measured values. However, the instrument never
uses the range less than the specified range for the limited auto ranging.
For the measurement mode that uses pulse source, if you select the auto or limited
auto ranging, the measurement channel uses the minimum range that covers the
compliance value or voltage output range.

Example OUTPUT @B1500;"RV 2,-15"


Statements OUTPUT @B1500;"RV 1,12"

RZ
The RZ command returns the channel to the settings that are stored by the DZ
command and clears the stored settings.
The DZ command stores the channel settings (V/I output values, V/I output ranges,
V/I compliance values, and so on), then sets the channel to 0 V.

Execution The channel setup has not been changed since the DZ command has been executed
Conditions for the specified channel. And the CL, CA, *TST?, *RST or a device clear (HP
BASIC CLEAR) command has not been executed for the specified channel.

Syntax RZ [chnum[,chnum...[,chnum]...]]
A maximum of 15 channels can be set.

Parameters chnum : Channel number. Integer expression. See Table 4-1 on page 4-13.
If you specify multiple chnums, the B1500 returns the stored settings in the order
specified.
If you do not specify chnum, this command returns the settings for all SMU, all
SPGU, and CMU that satisfy the conditions described in “Execution Conditions”
above, in this order. For the modules of same kind, the settings will be restored in
reverse order from their storage by the DZ command.

Example OUTPUT @B1500;"RZ"


Statements OUTPUT @B1500;"RZ 1,2,3"

Agilent B1500 Programming Guide, Edition 4 4-127


Command Reference
SAL

SAL
This function is available for the Agilent B1500 installed with the high resolution
SMU (HRSMU) and the atto sense and switch unit (ASU).
Disables or enables the connection status indicator (LED) of the ASU. This
command is effective for the specified channel.

Syntax SAL chnum,mode

Parameters chnum : Channel number of the HRSMU connected to the ASU. Integer
expression. 1 to 10 or 101 to 1001. See Table 4-1 on page 4-13.
mode : 0: Disables the indicator.
1: Enables the indicator. Default setting.

Example OUTPUT @B1500;"SAL 1,0"


Statements
SAP
This function is available for the Agilent B1500 installed with the high resolution
SMU (HRSMU) and the atto sense and switch unit (ASU). This command is not
effective when the High Voltage indicator of the Agilent B1500 has been lighted.
Controls the connection path of the ASU. Switches the ASU input resource
(HRSMU or the instrument connected to the AUX input) to be connected to the
ASU output. This command is effective for the specified channel.
After the Agilent B1500 is turned on or the CL command is entered, the ASU output
will be connected to the SMU connector side, but the HRSMU will not be enabled
yet. After this command is entered with path=1, the HRSMU specified by chnum
cannot be used. After this command is entered with path=0 or the CN command is
entered, the HRSMU output will appear on the ASU output.Then the HRSMU
output will be 0 V.

Syntax SAP chnum,path

Parameters chnum : Channel number of the HRSMU connected to the ASU. Integer
expression. 1 to 10 or 101 to 1001. See Table 4-1 on page 4-13.
path : 0: The ASU output will be connected to the SMU connector side.
1: The ASU output will be connected to the AUX connector side.

4-128 Agilent B1500 Programming Guide, Edition 4


Command Reference
SAR

Example OUTPUT @B1500;"SAP 1,1"


Statements

NOTE To use ASU


To use the ASU, connect it to the correct HRSMU properly before turning the
Agilent B1500 on. For the connection, see User’s Guide.
The ASU will add the connection switch function described above to the B1500 and
the 1 pA measurement range to the HRSMU. Use the SAR function to
enable/disable the 1 pA range for the auto ranging operation.
Remember that the series resistor in the HRSMU connected to the ASU cannot be
used.

SAR
This function is available for the Agilent B1500 installed with the high resolution
SMU (HRSMU) and the atto sense and switch unit (ASU).
Enables or disables the 1 pA range for the auto ranging operation. This command is
effective for the specified channel.

Syntax SAR chnum,mode

Parameters chnum : Channel number of the HRSMU connected to the ASU. Integer
expression. 1 to 10 or 101 to 1001. See Table 4-1 on page 4-13.
mode : 0: Enables 1 pA range for the auto ranging operation.
1: Disables 1 pA range for the auto ranging operation. Initial setting

Example OUTPUT @B1500;"SAR 1,0"


Statements
SCR
The SCR command scratches the specified program from the internal program
memory.

Syntax SCR [pnum]

Parameters pnum : Program number. Numeric expression. 1 to 2000.


If you do not specify this parameter, this command scratches all
programs stored in the internal program memory.

Agilent B1500 Programming Guide, Edition 4 4-129


Command Reference
SER

Example OUTPUT @B1500;"SCR"


Statements OUTPUT @B1500;"SCR 5"

SER
This command sets the load impedance value of the DUT connected to the specified
SPGU channel. Set for each channel.
This load impedance value is used for automatic adjustment of the SPGU output
voltage. Setting the correct value will make the voltage applied to the DUT close to
the voltage set with the SPV command. To automatically set the load impedance,
execute the CORRSER? command.

Syntax SER chnum,loadZ

Parameters mode : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
loadZ : Load impedance value (Ω). Numeric expression. 0.1 Ω to 1 MΩ. Initial
setting: 50 Ω.

Remarks The recommended load impedance ranges are shown below.


Measured voltage: 1 V or more
Minimum load: 40 Ω
Maximum load: 500 Ω (at 1 V), 2 kΩ (at 5 V), 5 kΩ (at 10 V)

Example OUTPUT @B1500;"SER 101,1000000"


Statements

See Also “CORRSER?”

SER?
This query command returns the load impedance value of the DUT set for the
specified SPGU channel.

Syntax SER? chnum

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.

Query Response loadZ<CR/LF^EOI>

4-130 Agilent B1500 Programming Guide, Edition 4


Command Reference
SIM

Returns the load impedance value (Ω) for the specified SPGU channel.

Example OUTPUT @B1500;"SER? 101"


Statements ENTER @B1500;A

SIM
The SIM command sets the SPGU operation mode, PG or ALWG. The setting is
effective for the all SPGU modules installed in the B1500. This command also
triggers 0 V output of the SPGU channels which output switch has been ON.

Syntax SIM mode

Parameters mode : SPGU operation mode. Integer expression. 0 or 1.


0: PG (pulse output) mode
1: ALWG (arbitrary linear wave output) mode

Example OUTPUT @B1500;"SIM 1"


Statements
SIM?
This query command returns the present SPGU operation mode of the B1500.

Syntax SIM?

Response mode<CR/LF^EOI>
0: PG (pulse output) mode
1: ALWG (Arbitrary linear wave output) mode

Example OUTPUT @B1500;"SIM?"


Statements ENTER @B1500;A

SPM
This command specifies the output mode of the specified SPGU channel. Set for
each channel.

Execution The SPGU operating mode must be set to PG with the SIM 0 command.
Conditions

Syntax SPM chnum,mode

Agilent B1500 Programming Guide, Edition 4 4-131


Command Reference
SPM?

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
mode : Settings for the output signal source. Integer expression.
0: DC voltage output mode.
1: 2-level pulse output mode using pulse signal source 1.
2: 2-level pulse output mode using pulse signal source 2.
3: 3-level pulse output mode using pulse signal source 1 and 2.

Example OUTPUT @B1500;"SPM 101,3"


Statements
SPM?
This query command returns the output mode of the specified SPGU channel.

Syntax SPM? chnum

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.

Query Response mode<CR/LF^EOI>


0: DC voltage output mode.
1: 2-level pulse output mode using pulse signal source 1.
2: 2-level pulse output mode using pulse signal source 2.
3: 3-level pulse output mode using pulse signal source 1 and 2.

Example OUTPUT @B1500;"SPM? 101"


Statements ENTER @B1500;A

SPP
The SPP command stops the SPGU output. If you use multiple outputs, this
command stops all outputs simultaneously. The output goes to the following value.

• base value set by the SPV command, in PG mode


• initial value of waveform, in ALWG mode
This command cannot stop the SPGU DC bias output.

Syntax SPP

4-132 Agilent B1500 Programming Guide, Edition 4


Command Reference
SPPER

Example OUTPUT @B1500;"SPP"


Statements
SPPER
This command sets the pulse period for the SPGU channel. This setting applies to
all SPGU modules installed in the B1500. See “SPGU Module” on page 2-48.

Syntax SPPER period

Parameters period : Pulse period. Numeric expression. 2E-8 to 10 seconds, setting


resolution 1E-8 seconds. Initial setting 1E-6 seconds.

Example OUTPUT @B1500;"SPPER 20E-6"


Statements
SPPER?
This query command returns the pulse period for the SPGU channel.

Syntax SPPER?

Query Response period<CR/LF^EOI>


Returns the pulse period (seconds).

Example OUTPUT @B1500;"SPPER?"


Statements ENTER @B1500;A

SPRM
This command specifies the operating mode for SPGU channel outputs. This setting
applies to all SPGU modules installed in the B1500.

Syntax SPRM mode[,condition]

Parameters mode : Operating mode of the SPGU channel output. Integer expression. 0, 1,
or 2. Initial setting 0.
0: Free Run mode. Continues outputting until the SPP command is
executed. The condition parameter is not required.
1: Count mode. Outputs the number of pulses (when set to PG mode
with the SIM 0 command), or the number of sequences (when set
to ALWG mode with the SIM 1 command) specified by the
condition parameter.

Agilent B1500 Programming Guide, Edition 4 4-133


Command Reference
SPRM?

2: Duration mode. Outputs for a duration specified by the condition


parameter.
condition : Number of pulses or sequences to output, or output duration (seconds).
Numeric expression. The following values are valid for the condition
parameter.
When mode = 1, 1 (initial value) to 1,000,000 times.
When mode = 2, IE-6 (initial setting) to 31,556,926 seconds (1 year),
setting resolution 1E-8 seconds.

Example OUTPUT @B1500;"SPRM 1,300"


Statements
SPRM?
This query command returns the operating mode and settings of the SPGU channel
output.

Syntax SPRM?

Query Response mode[,condition]<CR/LF^EOI>


mode : Returns the operating mode of the SPGU channel output. Integer
expression.
0: Free run mode. condition is not returned.
1: Count mode.
2: Duration mode.
condition : Returns the number of pulses or sequences to output, or output duration
(seconds). Numeric expression.
When mode = 1, returns the number of outputs (times).
When mode = 2, returns the duration of the output (seconds).

Example OUTPUT @B1500;"SPRM?"


Statements ENTER @B1500;A,B

SPST?
This query command returns the waveform output state of the SPGU.

Syntax SPST?

4-134 Agilent B1500 Programming Guide, Edition 4


Command Reference
SPT

Query Response state<CR/LF^EOI>


0: Pulse output inactive or ALWG sequence output inactive
1: Pulse output active or ALWG sequence active

Example OUTPUT @B1500;"SPST?"


Statements ENTER @B1500;A

SPT
This command sets the pulse timing parameter for the specified SPGU channel. Set
for each channel. For the parameters, see Figure 2-28 on page 2-52.

Execution The SPGU operating mode must be set to PG with the SIM 0 command.
Conditions

Syntax SPT chnum,src,delay,width,leading[,trailing]

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
src : Channel signal source. Integer expression.
1: Pulse signal source 1
2: Pulse signal source 2
delay : Pulse delay time. Numeric expression. 0 to pulse period-2E-8
seconds, setting resolution 2.5E-9 seconds. Initial setting 0 second.
Setting resolution becomes 1E-8 when leading > 8E-6 seconds or
trailing > 8E-6 seconds.
width : Pulse width. Numeric expression.1E-8 to pulse period-1E-8 seconds,
setting resolution 2.5E-9 seconds. Initial setting 1E-7 seconds.
Setting resolution becomes 1E-8 when leading > 8E-6 seconds or
trailing > 8E-6 seconds.
leading : Pulse leading time. Numeric expression. 8E-9 to 0.4 seconds, setting
resolution 2E-9 seconds. Initial setting 2E-8 seconds.
Setting resolution becomes 8E-9 when leading > 8E-6 seconds or
trailing > 8E-6 seconds.
trailing : Pulse trailing time. Numeric expression. 8E-9 to 0.4 seconds, setting
resolution 2E-9 seconds. Initial setting 2E-8 seconds.

Agilent B1500 Programming Guide, Edition 4 4-135


Command Reference
SPT?

Setting resolution becomes 8E-9 when leading > 8E-6 seconds or


trailing > 8E-6 seconds.
If no value is set for trailing, the leading value will be used for both
parameters.

Example OUTPUT @B1500;"SPT 101,1,0,5E-7,20E-9"


Statements
SPT?
This query command returns the pulse timing parameter of the specified SPGU
channel signal source.

Syntax SPT? chnum,src

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
src : Channel signal source. Integer expression.
1: Pulse signal source 1
2: Pulse signal source 2

Query Response delay,width,leading,trailing<CR/LF^EOI>


delay : returns the pulse delay time (seconds).
width : returns the pulse width (seconds).
leading : returns the pulse leading time (seconds).
trailing : returns the pulse trailing time (seconds).

Example OUTPUT @B1500;"SPT? 101,1"


Statements ENTER @B1500;A,B,C,D

SPUPD
The SPUPD command applies the setup of the specified SPGU channels.
The channel output is changed to the following value by this command. And the
waveform or pulse output is started by the SRP command.

• base value set by the SPV command, in PG mode


• initial value of waveform, in ALWG mode

4-136 Agilent B1500 Programming Guide, Edition 4


Command Reference
SPV

If a DC bias output channel is specified in the SPUPD command, the channel starts
the DC bias voltage output. And the output is not changed by the SRP command.

Syntax SPUPD chnum[,chnum...[,chnum[,chnum]]...]


A maximum of ten channels can be set.

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002.


If multiple chnums are specified, all outputs are started in the specified order. The
channel numbers 1 to 10 correspond to the channel numbers 101 to 1001
respectively. See Table 4-1 on page 4-13.

Example OUTPUT @B1500;"CN 101,102,201,202"


Statements OUTPUT @B1500;"SPUPD 101,102,201,202"
OUTPUT @B1500;"SRP"

SPV
This command sets the output voltage of the specified SPGU channel. Set for each
channel. For the parameters, see Figure 2-28 on page 2-52.

Execution The SPGU operating mode must be set to PG with the SIM 0 command.
Conditions

Syntax SPV chnum,src,base[,peak]

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
src : Channel signal source. Integer expression. Initial setting 1.
0: DC bias source
1: Pulse signal source 1
2: Pulse signal source 2
base : Pulse base voltage or DC output voltage. Numeric expression. -40 V to
40 V, setting resolution 1 mV. Initial setting 0 V.
peak : Pulse peak voltage. Numeric expression. -40 V to 40 V, setting
resolution 1 mV. Initial setting 0 V.
If no value is set for peak, the base value will be used for both
parameters.
The peak parameter has no effect on DC bias sources.

Agilent B1500 Programming Guide, Edition 4 4-137


Command Reference
SPV?

Example OUTPUT @B1500;"SPV 101,1,-0.5,0.5"


Statements
SPV?
This query command returns the voltage parameter of the specified SPGU channel
signal source.

Syntax SPV? chnum,src

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
src : Channel signal source. Integer expression.
0: DC bias source
1: Pulse signal source 1
2: Pulse signal source 2

Query Response base,peak<CR/LF^EOI>


base : pulse base voltage (V) or DC output voltage (V)
peak : pulse peak voltage (V) or DC output voltage (V)

Example OUTPUT @B1500;"SPV? 101,1"


Statements ENTER @B1500;A,B

*SRE
The *SRE command enables the specified bits of the status byte register for SRQ
(service requests), and masks (disables) the bits that are not specified.

Syntax *SRE bit

Parameters bit : Sum of the decimal values corresponding to the bits to be enabled.
Integer expression. 0 to 255. See Table 4-19.
For example, to enable Bit 0 and 4 for the SRQ, the bit value must be
17 (1+16).
If bit=0, all bits, except for Bit 6, will be masked (disabled for the
SRQ). You cannot mask bit 6.

Example OUTPUT @B1500;"*SRE 6"


Statements OUTPUT @B1500;"*SRE 32"

4-138 Agilent B1500 Programming Guide, Edition 4


Command Reference
*SRE?

Table 4-19 Status Byte Register

Decimal Value Bit Number Description

1 Bit 0 data ready


2 Bit 1 wait

4 Bit 2 not used

8 Bit 3 interlock open

16 Bit 4 set ready


32 Bit 5 error

64 Bit 6 RQS

128 Bit 7 not used

*SRE?
The *SRE? query command returns information about which bits of the status byte
register are enabled for the SRQ (service requests), and stores the results in the
output data buffer (query buffer).

Syntax *SRE?

Query Response enabled_bits<CR/LF^EOI>


enabled_bits are represented by the corresponding decimal values shown in Table
4-19. For example, if Bit 0, 3, and 4 are enabled for the SRQ, 25 (1 + 8 + 16) will be
returned.
If all bits, except for Bit 6, are masked, enabled_bits will be 0.

Example OUTPUT @B1500;"*SRE?"


Statements ENTER @B1500;A

SRP
The SRP command starts the SPGU output. If multiple outputs are defined, all
outputs are started in the order from lower to higher channel number 101 to 1002.
And all waveform or pulse outputs are started simultaneously.

Syntax SRP

Agilent B1500 Programming Guide, Edition 4 4-139


Command Reference
SSL

Example OUTPUT @B1500;"SRP"


Statements
SSL
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. The SCUU cannot be used with the HPSMU or when only one SMU is
connected.
Disables or enables the connection status indicator (LED) of the SCUU.

Syntax SSL chnum,mode

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : 0: Disables the indicator.
1: Enables the indicator. Initial setting.

Example OUTPUT @B1500;"SSL 9,0"


Statements

NOTE To use SCUU


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.

SSP
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. The SCUU cannot be used with the HPSMU or when only one SMU is
connected.
Controls the connection path of the SCUU. Switches the SCUU input resource
(MFCMU or SMU) to be connected to the SCUU output.
When the B1500 is turned on, the SCUU input to output connection is not made
(open). When the SCUU input to output connection is made, the measurement unit
output switch will be automatically set to ON.

4-140 Agilent B1500 Programming Guide, Edition 4


Command Reference
SSP

Syntax SSP chnum,path

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
path : Path connected to the SCUU output. 1 to 4. See Table 4-20.

Example OUTPUT @B1500;"SSP 9,4"


Statements

Remarks When the connection is changed from SMU to MFCMU, the SMU output will be set
as follows. The other setup parameters are not changed.
Output voltage 0V
Output range 100 V
Compliance 20 mA
Series resistance OFF
When the connection is changed from MFCMU to SMU, the SMU output will be set
as follows. The other setup parameters are not changed.
Output voltage 0V
Output range 20 V
Compliance 100 μA
Series resistance Condition before the connection is changed from SMU to
MFCMU
Table 4-20 SCUU Input Output Connection Control

SCUU output connection after the command


Command
CMUH/Force1/Sense1 CMUL/Force2/Sense2

SSP chnum, 1 Force1/Sense1 Open

SSP chnum, 2 Open Force2/Sense2

SSP chnum, 3 Force1/Sense1 Force2/Sense2


SSP chnum, 4 CMUH CMUL

Force1/Sense1 is connected to the SMU installed in the slot numbered slot-1.

Agilent B1500 Programming Guide, Edition 4 4-141


Command Reference
SSR

Force2/Sense2 is connected to the SMU installed in the slot numbered slot-2.


where, slot is the slot number given by chnum.

NOTE To use SCUU


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.

SSR
This command sets the connection mode of a SMU series resistor (approx. 1 MΩ)
for each channel.
If the output switch is opened, the SSR command just sets the mode, and the CN
command connects or disconnects the series resistor.
If the output switch is already closed, the SSR command connects the series resistor
to the SMU output. Then the output forces 0 V one moment.
A series resistor is mounted on each module. If you use a series resistor, the voltage
you set is applied to the near side of the series resistor. Thus, the voltage will be
divided by the series resistor and the device under test.

Execution The series resistor cannot be used for the measurements that use the high resolution
Conditions SMU (HRSMU) connected to the atto sense and switch unit (ASU) or the
measurements that use 1 A range of the high power SMU (HPSMU).
The channel must not be in the high voltage state (forcing more than ± 42 V, or
voltage compliance set to more than ± 42 V).

Syntax SSR chnum,mode

Parameters chnum : SMU channel number. Integer expression. 1 to 10 or 101 to 1001. See
Table 4-1 on page 4-13.
mode : Status of the series resistor. Integer expression.
0: Disconnect (initial setting).
1: Connect.

Example OUTPUT @B1500;"SSR 1,1"


Statements OUTPUT @B1500;"SSR 2,1"

4-142 Agilent B1500 Programming Guide, Edition 4


Command Reference
ST

ST
The ST command is used with the END command to store a program in the internal
program memory that can store 2,000 programs maximum, and a total of 40,000
commands.
The ST command indicates the start of the program, and assigns the program
number. If the assigned program number already exists, the B1500 deletes the old
program, and stores the new one.
The END command indicates the end of the program. If the END command is not
included, the B1500 stores the commands until the program memory is full.
Use the DO or RU command to execute stored programs.

Syntax STpnum[;command[;command...[;command]...];END
or
ST pnum
[command]
[command]
:
:
[command]
END

Parameters pnum : Program number. Integer expression. 1 to 2000.


command : Command stored in the internal program memory. Specify commands
according to normal syntax − no special syntax is necessary.
For the commands that cannot stored in the program memory, refer to Table 2-1 on
page 2-47.

Example Example 1:
Statements
OUTPUT @B1500;"ST1;CN1;DV1,0,5,1E-4;TI1,0;CL1"
OUTPUT @B1500;"END"
Example 2:
OUTPUT @B1500;"ST 1"
OUTPUT @B1500;"CN 1"
OUTPUT @B1500;"DV 1,0,5,1E-4"
OUTPUT @B1500;"TI 1,0"
OUTPUT @B1500;"CL 1"
OUTPUT @B1500;"END"

Agilent B1500 Programming Guide, Edition 4 4-143


Command Reference
*STB?

*STB?
The *STB? query command stores the decimal representation of the status byte in
the output data buffer (query buffer).
The *STB? command is functionally identical to the SPOLL command of BASIC,
however this command does not clear the status byte (the SPOLL command clears
the status byte).

Syntax *STB?

Example OUTPUT @B1500;"*STB?"


Statements ENTER @B1500;A

Query Response status_byte<CR/LF^EOI>


status_byte value is a decimal number that indicates which bits of the status byte are
ON (“1”). See Table 4-19.
For example, if status_byte is 40 (8 + 32), then Bit 3 and 5 are set to 1.

STGP
This command specifies the trigger output timing for the specified SPGU channel.
This setting applies commonly to all channels in the same SPGU module. See
“SPGU Module” on page 2-48 for details on the SPGU trigger.

Syntax STGP chnum,state

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.
state : Trigger output state. Integer expression. Initial setting 0.
0 trigger output disabled.
1 Output trigger signals synchronized to the pulses (PG mode), or to
the start of the ALWG sequence.
2 Output a trigger when the ALWG pattern changes, or at start of the
first pattern.
3 Output triggers at the start of every ALWG pattern.

Example OUTPUT @B1500;"STGP 101,1"


Statements

4-144 Agilent B1500 Programming Guide, Edition 4


Command Reference
STGP?

STGP?
This query command returns the trigger output state of the specified SPGU channel.

Syntax STGP? chnum

Parameters chnum : SPGU channel number. Integer expression. 1 to 10 or 101 to 1002. See
Table 4-1.

Query Response state<CR/LF^EOI>


0 Trigger output disabled.
1 Output trigger signals synchronized to the pulses (PG mode), or to the start of
the ALWG sequence.
2 Output a trigger when the ALWG pattern changes, or at start of the first pattern.
3 Output triggers at the start of every ALWG pattern.

Example OUTPUT @B1500;"STGP? 101"


Statements ENTER @B1500;A

TACV
This command forces AC voltage from the MFCMU, and returns the time data from
timer reset to the start of output.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
The FC command has been executed to set the frequency of the AC voltage.
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TACV chnum,voltage

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
voltage : Oscillator level of the output AC voltage (in V). Numeric expression.
0 (initial setting) to 0.25 V, 0.001 V step.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Agilent B1500 Programming Guide, Edition 4 4-145


Command Reference
TC

Example OUTPUT @B1500;"TACV 7,0.01"


Statements ENTER @B1500 USING "#,3X,13D,X";Time

TC
The TC command performs the high speed spot measurement by using the
MFCMU, and returns the measurement data. The command starts a measurement
regardless of the trigger mode (TM command) and the measurement mode (MM
command).
The MFCMU measures the primary parameter and the secondary parameter (for
example, Cp and G). Use the IMP command to select the measurement parameters.
See “IMP” on page 4-75.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
The IMP command has been executed.

Syntax TC chnum,mode[,range]

Parameters chnum : MFCMU measurement channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.
mode : Ranging mode. 0 (auto ranging. initial setting) or 2 (fixed range).
range : Measurement range. Needs to set when mode=2. Integer (0 or more).
50 Ω, 100 Ω, 300 Ω, 1 kΩ, 3 kΩ, 10 kΩ, 30 kΩ, 100 kΩ, and 300 kΩ
are selectable. See Table 4-9 on page 4-21. Available measurement
ranges depend on the output signal frequency set by the FC command.

Example OUTPUT @B1500;"TC 8,2,1000"


Statements ENTER @B1500 USING "#,3X,13D,X";Cdata
ENTER @B1500 USING "#,3X,13D,X";Gdata

4-146 Agilent B1500 Programming Guide, Edition 4


Command Reference
TDCV

TDCV
Forces DC voltage from the MFCMU or the SMU connected to the Force1/Sense1
terminals of the SCUU (SMU CMU unify unit), and returns the time data from timer
reset to the start of output.

Execution The CN/CNX command has been executed for the specified channel (MFCMU).
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TDCV chnum,voltage

Parameters chnum : MFCMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
voltage : DC voltage (in V). Numeric expression.
0 (initial setting) to ± 100 V.
Source module is automatically selected by the setting value. The
MFCMU is selected if voltage is ± 25 V or less (setting resolution:
0.001 V), or the SMU is selected if voltage is greater than ± 25 V
(setting resolution: 0.005 V).
The SMU will operate with the 100 V limited auto ranging and 20 mA
compliance settings.
If the output voltage is greater than ± 42 V, the interlock circuit must be
shorted.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"TDCV 7,1"


Statements ENTER @B1500 USING "#,3X,13D,X";Time

Agilent B1500 Programming Guide, Edition 4 4-147


Command Reference
TDI

TDI
Forces current and returns the time data from timer reset to the start of output. This
command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If the compliance value is greater than ± 42 V, the interlock circuit must be shorted.

Syntax TDI chnum,irange,current[,Vcomp[,polarity[,vrange]]]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
irange: Ranging type for current output. Integer expression. The output range
will be set to the minimum range that covers current value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-5 on page 4-17.
current: Output current (in A). Numeric expression. See Table 4-7 on page 4-19.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Vcomp: Voltage compliance value (in V). Numeric expression. See Table 4-7 on
page 4-19. If you do not specify this parameter, Vcomp is set to the
previous setting.
polarity: Polarity of voltage compliance. Numeric expression.
0: Auto mode (default setting). The compliance polarity is
automatically set to the same polarity as current, regardless of the
specified Vcomp. If current=0 A, the polarity is set to positive.
1: Manual mode. Uses the polarity of Vcomp you specified.
vrange: Voltage compliance ranging type. Integer expression. The compliance
range will be set to the minimum range that covers Vcomp value. For
the limited auto ranging, the instrument never uses the range less than
the specified range. See Table 4-4 on page 4-17.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"TDI 1,0,1E-6"


Statements ENTER @B1500 USING "#,3X,13D,X";Time

4-148 Agilent B1500 Programming Guide, Edition 4


Command Reference
TDV

TDV
Forces voltage and returns the time data from timer reset to the start of output. This
command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax TDV chnum,vrange,voltage[,Icomp[,polarity[,irange]]

Parameters chnum : SMU source channel number. Integer expression. 1 to 10 or 101 to


1001. See Table 4-1 on page 4-13.
vrange: Ranging type for voltage output. Integer expression. The output range
will be set to the minimum range that covers voltage value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-4 on page 4-17.
voltage: Output voltage (V). Numeric expression. See Table 4-6 on page 4-18.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Icomp: Current compliance value (in A). Numeric expression. See Table 4-6 on
page 4-18. If you do not set Icomp, the previous value is used. 0 A is
not allowed for Icomp.
polarity: Polarity of current compliance. Integer expression.
0: Auto mode (default setting). The compliance polarity is
automatically set to the same polarity as voltage, regardless of the
specified Icomp. If voltage=0 V, the polarity is set to positive.
1: Manual mode. Uses the polarity of Icomp you specified.
irange: Current compliance ranging type. Integer expression. The compliance
range will be set to the minimum range that covers Icomp value. For the
limited auto ranging, the instrument never uses the range less than the
specified range. See Table 4-5 on page 4-17.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"TDV 1,0,20,1E-6,0,15"


Statements ENTER @B1500 USING "#,3X,13D,X";Time

Agilent B1500 Programming Guide, Edition 4 4-149


Command Reference
TGMO

TGMO
The TGMO command selects the edge trigger or the gate trigger for the Step
Measurement Completion trigger output set by the TGP port,2,polarity,3
command. See Figure 4-2.
This command is available for the staircase sweep, multi channel sweep, and
MFCMU DC/AC/frequency sweep measurements.

Syntax TGMO mode

Parameters mode : Edge trigger or gate trigger. Integer expression.


1: Edge trigger (initial setting).
2: Gate trigger.

Example OUTPUT @B1500;"TGMO 2"


Statements

See Also “TGP” and “TGPC”

Figure 4-2 Trigger Output Example, Staircase Sweep Measurement, Negative Logic

Step delay time Source trigger delay


Delay time : Measurement
Hold time
XE

TGP t,2,p,1 Measurement Completion

Gate trigger TGP t,2,p,3 Step Measurement Completion

TGP t,2,p,2 Step Output Setup Completion

Source trigger delay

TGP t,2,p,1 Measurement Completion

Edge trigger TGP t,2,p,3 Step Measurement Completion

TGP t,2,p,2 Step Output Setup Completion

4-150 Agilent B1500 Programming Guide, Edition 4


Command Reference
TGP

TGP
The TGP command enables the trigger function for the terminal specified by the
port parameter. For the trigger function, refer to “Trigger Function” on page 2-63.

Syntax TGP port,terminal,polarity[,type]

Parameters port : Trigger port number. Integer expression. -1, -2, or 1 to 16.
-1: Ext Trig In terminal.
-2: Ext Trig Out terminal.
1 to 16: Port 1 to 16 of the digital I/O terminal.
terminal : Terminal type. Integer expression. 1 or 2.
1: Trigger input. Not available for port=-2.
2: Trigger output. Not available for port=-1.
polarity : Trigger logic. Integer expression. 1 or 2.
1: Positive logic.
2: Negative logic.
type : Trigger type. Integer expression. 0, 1, 2, or 3. Selects the function of the
trigger port. See Table 4-21.
If this parameter is not specified, type is set to 0.

Remarks The function of type=0 is effective for all trigger ports regardless of the type value.
Then the PA and WS commands are used for the Ext Trig In terminal, and the OS
command is used for the Ext Trig Out terminal. Also the PAX and WSX commands
are used for the trigger input ports set by the TGP command, and the OSX command
is used for the trigger output ports set by the TGP command.
type=1 to 3 is available for a port only. If you send the command with the same type
more than once, only the last command is effective. type=0 is set for another ports.
If you send the TGP command with terminal=1 and port=1 to 16, the signal level of
the trigger input terminal is set to physical high.
If you send the TGP command with terminal=2, the signal level of the trigger output
terminal is set to logical low.

Agilent B1500 Programming Guide, Edition 4 4-151


Command Reference
TGP

Table 4-21 Trigger Type

type terminal Description

0 1 When a trigger is received, the B1500 recovers from the wait state set by the PA,
PAX, WS, or WSX command.
2 The B1500 sends a trigger by the OS or OSX command.

1a 1 Start measurement trigger


When a trigger is received, the B1500 starts the measurement.
2 Measurement completion trigger
The B1500 sends a trigger after measurement.
2 1 Start step output setup trigger
When a trigger is received, the B1500 starts the output setup at each sweep step
or the pulsed output setup. This function is available for the staircase sweep,
multi channel sweep, pulsed spot, pulsed sweep, staircase sweep with pulsed
bias, and MFCMU DC/AC/frequency sweep measurements.
2 Step output setup completion trigger
The B1500 sends a trigger when the output setup is completed at each sweep step
or the pulsed output setup is completed. This function is available for the
staircase sweep, multi channel sweep, pulsed spot, pulsed sweep, staircase sweep
with pulsed bias, and MFCMU DC/AC/frequency sweep measurements.
3 1 Start step measurement trigger
When a trigger is received, the B1500 starts the measurement at each sweep step.
This function is available for the staircase sweep, multi channel sweep, and
MFCMU DC/AC/frequency sweep measurements.
2 Step measurement completion trigger
The B1500 sends a trigger after measurement at each sweep step. This function is
available for the staircase sweep, multi channel sweep, and MFCMU
DC/AC/frequency sweep measurements.
a. TM3 command must be entered to use this trigger type.

Example OUTPUT @B1500;"TGP 1,1,1,2"


Statements

See Also See Figure 4-2 on page 4-150 for a trigger output example and Figure 4-3 on page
4-154 for a trigger input example.

4-152 Agilent B1500 Programming Guide, Edition 4


Command Reference
TGPC

TGPC
The TGPC command clears the trigger setting of the specified ports.

Syntax TGPC [port[,port...[,port]...]]


A maximum of 18 ports can be set. If no port is specified, the TGPC command
clears the setting of all ports; Ext Trig In, Ext Trig Out, and digital I/O ports 1 to 16.

Parameters port : Trigger port number. Integer expression. -1, -2, or 1 to 16.
-1: Ext Trig In terminal.
-2: Ext Trig Out terminal.
1 to 16: Port 1 to 16 of the digital I/O terminal.

Remarks The TGPC command sets the trigger ports as shown below.
Ext Trig In Same as after TGP -1,1,2,0 command execution.
Ext Trig Out Same as after TGP -2,2,2,0 command execution.
Digital I/O Ports No trigger function is available. The ERS? and ERC commands
are available for the port control.
This is not same as the condition set by the *RST command that sets the ports as
shown below.
Ext Trig In Same as after TGP -1,1,2,1 command execution.
Ext Trig Out Same as after TGP -2,2,2,1 command execution.
Digital I/O Ports No trigger function is available. The ERS? and ERC commands
are available for the port control.

Example OUTPUT @B1500;"TGPC -1,-2,1,2"


Statements

See Also “TGP”

Agilent B1500 Programming Guide, Edition 4 4-153


Command Reference
TGSI

TGSI
The TGSI command selects Case 1 or Case 2 effective for the Start Step Output
Setup trigger input set by the TGP port,1,polarity,2 command.
This command is available for the staircase sweep, multi channel sweep, pulsed
spot, pulsed sweep, staircase sweep with pulsed bias, and MFCMU
DC/AC/frequency sweep measurements.

Syntax TGSI mode

Parameters mode : Case 1 or Case 2. Integer expression. See Figure 4-3.


1: Case 1 (initial setting).
2: Case 2.
Case 1 waits for a trigger for the first sweep step, and does not wait for a trigger for
the source output after sweep.
Case 2 does not wait for a trigger for the first sweep step, and waits for a trigger for
the source output after sweep.

Example OUTPUT @B1500;"TGSI 2"


Statements

See Also “TGP” and “TGPC”

Figure 4-3 Trigger Input Example, Staircase Sweep Measurement, Negative Logic
Start Measurement TGP t,1,p,1

Start Step Measurement TGP t,1,p,3

Case 1
Start Step Output Setup TGP t,1,p,2
Case 2
Delay time or more
Case 1: With trigger for
first sweep step
Hold time (Case 2)
or more (Case 1) Case 2: With trigger for
output after sweep

: Measurement

Measurement trigger delay

4-154 Agilent B1500 Programming Guide, Edition 4


Command Reference
TGSO

TGSO
The TGSO command selects the edge trigger or the gate trigger for the Step Output
Setup Completion trigger output set by the TGP port,2,polarity,2 command. See
Figure 4-2 on page 4-150
This command is available for the staircase sweep, multi channel sweep, pulsed
spot, pulsed sweep, staircase sweep with pulsed bias, and MFCMU
DC/AC/frequency sweep measurements.

Syntax TGSO mode

Parameters mode : Edge trigger or gate trigger. Integer expression.


1: Edge trigger (initial setting).
2: Gate trigger.

Example OUTPUT @B1500;"TGSO 2"


Statements

See Also “TGP” and “TGPC”

TGXO
The TGXO command selects the edge trigger or the gate trigger for the
Measurement Completion trigger output set by the TGP port,2,polarity,1
command. See Figure 4-2 on page 4-150

Syntax TGXO mode

Parameters mode : Edge trigger or gate trigger. Integer expression.


1: Edge trigger (initial setting).
2: Gate trigger.

Example OUTPUT @B1500;"TGXO 2"


Statements

See Also “TGP” and “TGPC”

Agilent B1500 Programming Guide, Edition 4 4-155


Command Reference
TI

TI
The TI command performs the high speed spot measurement, and returns the
measurement data. The command starts a current measurement regardless of the
SMU operation mode, trigger mode (TM command), and measurement mode (MM
command).

Execution The CN/CNX command has been executed for the specified channel.
Conditions

Syntax TI chnum[,range]

Parameters chnum : SMU measurement channel number. Integer expression. 1 to 10 or 101


to 1001. See Table 4-1 on page 4-13.
range : Measurement range or ranging type. Integer expression. See Table 4-3
on page 4-15.
If you select the fixed range, the instrument performs measurement by using the
specified range.
For the auto or limited auto ranging, the measurement range will be set to the
minimum range that covers the measured values. However, the instrument never
uses the range less than the specified range for the limited auto ranging.
If you do not specify the range parameter for voltage output channels, the channel
uses the minimum range that covers the compliance value.
The range parameter is meaningless for current output channels. The measurement
ranging type is always same as the output ranging type.

Example OUTPUT @B1500;"TI 1"


Statements ENTER @B1500 USING "#,3X,13D,X";Idata

NOTE To use 1 pA range


The measurement channel connected to the ASU (Atto Sense and Switch Unit)
supports the 1 pA range. To use the 1 pA range, set the 1 pA fixed range or the 1 pA
limited auto ranging.
To enable the 1 pA range for the auto ranging mode, execute the SAR command.

4-156 Agilent B1500 Programming Guide, Edition 4


Command Reference
TM

TM
The TM command specifies how events are effective for the following actions:
• Releasing the B1500 from the paused status set by the PA or PAX command
• Starting the measurement except for high speed spot measurement (when the
B1500 is not in the paused status set by the PA, PAX, WS, or WSX command)

Syntax TM mode

Parameters mode : Event mode. Integer expression. See below.

mode Events

1 XE command and GPIB GET (Group Execute Trigger,


TRIGGER command in HP BASIC). Initial setting.

2 XE command

3 XE command and external trigger

4 XE command and MM command (automatic trigger after


the MM command execution)

To enable the trigger function set by the TGP port,terminal,polarity,1 command,


the mode value must be 3.

Remarks In the TM3 event mode, if the B1500 is not in the wait status set by the PA, PAX,
WS, or WSX command, the B1500 can start the measurement by an external trigger
input. After measurement, the B1500 sends a trigger to a trigger output terminal. In
the initial setting, you can use the Ext Trig In and Out terminals. To use the digital
I/O port, enter the TGP command to set the trigger input or output terminal.
To set the trigger logic (initial setting: negative), send the TGP command for the
trigger input terminal.

Example OUTPUT @B1500;"TM 1"


Statements OUTPUT @B1500;"TM 3"

See Also “PA”, “PAX”, “TGP”, “TGPC”, “WS”, and “WSX”

Agilent B1500 Programming Guide, Edition 4 4-157


Command Reference
TMACV

TMACV
This command monitors the MFCMU AC voltage output signal level, and returns
the measurement data.

Execution The CN/CNX command has been executed for the specified channel.
Conditions

Syntax TMACV chnum,mode[,range]

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Ranging mode. Integer expression. 0 or 2.
0: Auto ranging. Initial setting.
2: Fixed range.
range : Measurement range. This parameter must be set if mode=2. See Table
4-11 on page 4-22.

Example OUTPUT @B1500;"TMACV 9,0"


Statements ENTER @B1500 USING "#,3X,13D,X";Aclevel

4-158 Agilent B1500 Programming Guide, Edition 4


Command Reference
TMDCV

TMDCV
This command monitors the MFCMU DC bias output, and returns the measurement
data.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax TMDCV chnum,mode[,range]

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Ranging mode. Integer expression. 0 or 2.
0: Auto ranging. Initial setting.
2: Fixed range.
range : Measurement range. This parameter must be set if mode=2. See Table
4-12 on page 4-22.

Example OUTPUT @B1500;"TMDCV 9,0"


Statements ENTER @B1500 USING "#,3X,13D,X";Dcbias

TSC
The TSC command enables or disables the time stamp function.

Execution Time stamp function is not available for the following measurement modes:
Conditions
• Quasi-pulsed spot measurement (MM 9)
• Linear search measurement (MM 14)
• Binary search measurement (MM 15)
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TSC mode

Agilent B1500 Programming Guide, Edition 4 4-159


Command Reference
TSQ

Parameters mode : Time stamp function mode. Integer expression.

mode Description

0 Disables the time stamp function. Initial setting.


1 Enables the time stamp function.

When the function is enabled, the B1500 returns the time data with the
measurement data. The time data is the time from timer reset to the start
of measurement. Refer to “Data Output Format” on page 1-25.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"TSC 1"


Statements
TSQ
The TSQ command returns the time data from when the TSR command is sent until
this command is sent. The time data will be put in the data output buffer as same as
the measurement data.
This command is effective for all measurement modes, regardless of the TSC
setting.
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TSQ

Example OUTPUT @B1500;"TSQ"


Statements ENTER @B1500 USING "#,3X,13D,X";Time
PRINT "Time=";Time;"s"

TSR
This command clears the timer count.
This command is effective for all measurement modes, regardless of the TSC
setting.
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

4-160 Agilent B1500 Programming Guide, Edition 4


Command Reference
*TST?

Syntax TSR

Example OUTPUT @B1500;"TSR"


Statements

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

*TST?
This query command performs the self-test and self-calibration, and returns the
execution results. After this command, read the results soon.
Module condition after this command is the same as the condition by the CL
command.

Execution No SMU may be in the high voltage state (forcing more than ± 42 V, or voltage
Conditions compliance set to more than ± 42 V).
Before this command, open the measurement terminals.

Syntax *TST? [slot[,option]]

Parameters slot : Slot number where the module under self-test and self-calibration has
been installed. 1 to 10. Or 0 or 11. Integer expression.
0: All modules and mainframe. Default setting.
11: Mainframe.
option : Execution option. Integer expression. 0 or 1.
0: Returns the pass/fail result.
1: Performs the self-test and returns the result. Default setting.
The *TST? slot,0 command just returns the pass/fail result of the latest
*TST?/CA/*CAL? command or the auto calibration.
The *TST? 0,0 command returns the memorized latest pass/fail result of all
modules.
If slot specifies the slot that installs no module, this command causes an error.

Remarks If a SMU connected to SCUU fails this command, the SCUU cannot be controlled.
And the SSP and SSL commands are not available.

Agilent B1500 Programming Guide, Edition 4 4-161


Command Reference
TTC

If the MFCMU connected to SCUU fails this command, all modules connected to
SCUU cannot be used.
Failed modules are disabled, and can only be enabled by the RCV command. To
recover the modules connected to SCUU, recover MFCMU and SMU in this order.

Query Response results<CR/LF^EOI>


results returns the sum of the following values corresponding to the failures.

results Description results Description

0 Passed. No failure detected. 32 Slot 6 module failed.

1 Slot 1 module failed. 64 Slot 7 module failed.

2 Slot 2 module failed. 128 Slot 8 module failed.

4 Slot 3 module failed. 256 Slot 9 module failed.


8 Slot 4 module failed. 512 Slot 10 module failed.

16 Slot 5 module failed. 1024 Mainframe failed.

Example OUTPUT @B1500;"*TST?"


Statements ENTER @B1500;A

TTC
The TTC command performs the high speed spot measurement by using the
MFCMU, and returns the measurement data and the time data from timer reset to the
start of measurement. The command starts a current measurement regardless of the
trigger mode (TM command) and the measurement mode (MM command).
The MFCMU measures the primary parameter and the secondary parameter (for
example, Cp and G). Use the IMP command to select the measurement parameters.
See “IMP” on page 4-75.

Execution The CN/CNX command has been executed for the specified channel.
Conditions
The IMP command has been executed.
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TTC chnum,mode[,range]

4-162 Agilent B1500 Programming Guide, Edition 4


Command Reference
TTI

Parameters chnum : MFCMU measurement channel number. Integer expression. 1 to 10 or


101 to 1001. See Table 4-1 on page 4-13.
mode : Ranging mode. 0 (auto ranging. initial setting) or 2 (fixed range).
range : Measurement range. Needs to set when mode=2. Integer (0 or more).
50 Ω, 100 Ω, 300 Ω, 1 kΩ, 3 kΩ, 10 kΩ, 30 kΩ, 100 kΩ, and 300 kΩ
are selectable. See Table 4-9 on page 4-21. Available measurement
ranges depend on the output signal frequency set by the FC command.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"IMP 101"


Statements OUTPUT @B1500;"TTC 8,2,1000"
ENTER @B1500 USING "#,3X,13D,X";Time
ENTER @B1500 USING "#,3X,13D,X";Cdata
ENTER @B1500 USING "#,3X,13D,X";Ddata
PRINT "Data=";Cdata*1000000;" uF, D=";Ddata;
", at ";Time;" s"

TTI
The TTI command performs the high speed spot measurement, and returns the
measurement data and the time data from timer reset to the start of measurement.
The command starts a current measurement regardless of the SMU operation mode,
trigger mode (TM command), and measurement mode (MM command).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TTI chnum[,range]

Parameters chnum : SMU measurement channel number. Integer expression. 1 to 10 or 101


to 1001. See Table 4-1 on page 4-13.
range : Measurement range or ranging type. Integer expression. See Table 4-3
on page 4-15.
If you select the fixed range, the instrument performs measurement by using the
specified range.

Agilent B1500 Programming Guide, Edition 4 4-163


Command Reference
TTV

For the auto or limited auto ranging, the measurement range will be set to the
minimum range that covers the measured values. However, the instrument never
uses the range less than the specified range for the limited auto ranging.
If you do not specify the range parameter for voltage output channels, the channel
uses the minimum range that covers the compliance value.
The range parameter is meaningless for current output channels. The measurement
ranging type is always same as the output ranging type.

NOTE To use 1 pA range


The measurement channel connected to the ASU (Atto Sense and Switch Unit)
supports the 1 pA range. To use the 1 pA range, set the 1 pA fixed range or the 1 pA
limited auto ranging.
To enable the 1 pA range for the auto ranging mode, execute the SAR command.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"TTI 1"


Statements ENTER @B1500 USING "#,3X,13D,X";Time
ENTER @B1500 USING "#,3X,13D,X";Idata
PRINT "Data=";Idata*1000;"mA, at";Time;"s"

TTV
The TTV command performs the high speed spot measurement, and returns the
measurement data and the time data from timer reset to the start of measurement.
The command starts a voltage measurement regardless of the SMU operation mode,
trigger mode (TM command), and measurement mode (MM command).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
This command is not effective for the 4 byte binary data output format (FMT3 and
FMT4).

Syntax TTV chnum[,range]

Parameters chnum : SMU measurement channel number. Integer expression. 1 to 10 or 101


to 1001. See Table 4-1 on page 4-13.

4-164 Agilent B1500 Programming Guide, Edition 4


Command Reference
TV

range : Measurement range or ranging type. Integer expression. See Table 4-2
on page 4-14.
If you select the fixed range, the instrument performs measurement by using the
specified range.
For the auto or limited auto ranging, the measurement range will be set to the
minimum range that covers the measured values. However, the instrument never
uses the range less than the specified range for the limited auto ranging.
If you do not specify the range parameter for current output channels, the channel
uses the minimum range that covers the compliance value.
The range parameter is meaningless for voltage output channels. The measurement
ranging type is always same as the output ranging type.

Remarks To read the time data with the best resolution (100 μs), the timer must be cleared
every 100 sec or less for the FMT1, 2, or 5 data output format, or
every 1000 sec or less for the FMT 11, 12, 15, 21, 22, or 25 data output format.

Example OUTPUT @B1500;"TTV 1"


Statements ENTER @B1500 USING "#,3X,13D,X";Time
ENTER @B1500 USING "#,3X,13D,X";Vdata
PRINT "Data=";Vdata*1000;"mV, at";Time;"s"

TV
The TV command performs the high speed spot measurement, and returns the
measurement data. The command starts a voltage measurement regardless of the
SMU operation mode, trigger mode (TM), and measurement mode (MM).

Execution The CN/CNX command has been executed for the specified channel.
Conditions

Syntax TV chnum[,range]

Parameters chnum : SMU measurement channel number. Integer expression. 1 to 10 or 101


to 1001. See Table 4-1 on page 4-13.
range : Measurement range or ranging type. Integer expression. See Table 4-2
on page 4-14.
If you select the fixed range, the instrument performs measurement by using the
specified range. For the auto or limited auto ranging, the measurement range will be
set to the minimum range that covers the measured values. However, the instrument
never uses the range less than the specified range for the limited auto ranging.

Agilent B1500 Programming Guide, Edition 4 4-165


Command Reference
UNT?

If you do not specify the range parameter for current output channels, the channel
uses the minimum range that covers the compliance value.
The range parameter is meaningless for voltage output channels. The measurement
ranging type is always same as the output ranging type.

Example OUTPUT @B1500;"TV 1"


Statements ENTER @B1500 USING "#,3X,13D,X";Vdata

UNT?
This command returns the model and revision numbers of mainframe and modules.

Syntax UNT? [mode]

Parameters mode : Integer expression. 0 (returns information for all modules, default
setting) or 1 (returns information for mainframe and all modules).

Query Response [FrameModel,FrameRevision;]Slot1Model,Slot1Revision;


.......Slot9Model,Slot9Revision;Slot10Model,Slot10Revisi
on<CR/LF^EOI>

Example DIM A$[50]


Statements OUTPUT @B1500;"UNT?"
ENTER @B1500;A$

VAR
This command defines the Agilent B1500 internal variable, and sets the value. The
variable name is automatically assigned by using the parameters you specify.

Syntax VAR type,n,value

Parameters type : Variable type. Integer expression. 0 or 1.


0: Integer variable. Variable name will be %In.
1: Real variable. Variable name will be %Rn.
n: Number n added to the variable name. Integer expression. 0 to 99.
value : Value entered in the variable. Numeric value. The value must be 6
digits or less. Available values are as follows:
For integer variables: -999999 to 999999
For real variables: -9999.9 to 9999.9

4-166 Agilent B1500 Programming Guide, Edition 4


Command Reference
VAR?

Example OUTPUT @B1500;"ST1;CN1;DV1,0,%R99,1E-4;TI1,0"


Statements OUTPUT @B1500;"END"
OUTPUT @B1500;"VAR 1,99,2.5"
This example sets 2.5 to the real variable %R99.

VAR?
Returns the value of the variable set by the VAR command.

Syntax VAR? type,n

Parameters type : Variable type. Integer expression. 0 or 1.


0: Integer variable. For the variable %In.
1: Real variable. For the variable %Rn.
n: Number n added to the variable name. Integer expression. 0 to 99.

Query Response value<CR/LF^EOI>

Example OUTPUT @B1500;"VAR? 1,99"


Statements ENTER @B1500;A$
This example reads the %R99 real variable value.

WACV
This command sets the AC level sweep source used for the AC level sweep
measurement (MM23). The sweep source will be the MFCMU.

Execution The CN/CNX command has been executed for the specified channel.
Conditions

Syntax WACV chnum,mode,start,stop,step

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. 1 to 4.

1: Linear sweep (single stair, start to stop.)

2: Log sweep (single stair, start to stop.)

3: Linear sweep (double stair, start to stop to start.)

Agilent B1500 Programming Guide, Edition 4 4-167


Command Reference
WAT

4: Log sweep (double stair, start to stop to start.)


start, stop : Start or stop value of the AC level sweep (in V). Numeric expression.
0 (initial setting) to 0.250 V, 0.001 V step.
step : Number of steps for staircase sweep. Numeric expression. 1 to 1001.

Example OUTPUT @B1500;"WACV 9,1,0.001,0.100,100"


Statements
WAT
This command sets the source wait time and the measurement wait time as shown in
Figure 4-4. The wait time is given by the following formula:
wait time = N × initial wait time + offset
where initial wait time is the time the Agilent B1500 initially sets and you cannot
change. The initial source wait time is not same as the initial measurement wait
time. The SMU wait time settings are effective for all SMUs.

Figure 4-4 Source/Measurement Wait Time


Measurement wait time

Source wait time

Delay time
: Measurement
Hold time Step delay time
Time

Syntax WAT type,N[,offset]

Parameters type Type of the wait time. Integer expression. 1 or 2.


1: SMU source wait time (before changing the output value).
2: SMU measurement wait time (before starting the measurement).
3: MFCMU measurement wait time (before starting the measurement).
N Coefficient for initial wait time. Numeric expression.
0 to 10, resolution 0.1. Initial setting is 1.

4-168 Agilent B1500 Programming Guide, Edition 4


Command Reference
WDCV

offset Offset for the wait time. Numeric expression.


0 to 1 sec, resolution 0.0001. Default setting is 0.

NOTE The wait time can be ignored if it is shorter than the delay time.

NOTE It is not easy to determine the best wait time. If you specify it too short, the
measurement may start before device characteristics stable. If too long, time will be
wasted.
The initial wait time may be too short for measurements of high capacitance or slow
response devices. Then set the wait time longer.
For measurements of low capacitance or fast response devices, if measurement
speed has top priority or is more important than reliability and accuracy, set the wait
time shorter.

Example OUTPUT @B1500;"WAT 1,.7"


Statements OUTPUT @B1500;"WAT 2,0,.01"

WDCV
This command sets the DC bias sweep source used for the DC bias sweep
measurement (MM18). The sweep source will be the MFCMU, or the SMU that can
be connected to the Force1/Sense1 terminals of the SCUU (SMU CMU unify unit).

Execution The CN/CNX command has been executed for the specified channel.
Conditions
If you want to apply DC voltage over ± 25 V, the SCUU must be connected
correctly. The SCUU can be used with the MFCMU and two SMUs (MPSMU or
HRSMU). The SCUU cannot be used if the HPSMU is connected to the SCUU or if
the number of SMUs connected to the SCUU is only one.
If the output voltage is greater than ± 42 V, the interlock circuit must be shorted.

Syntax WDCV chnum,mode,start,stop,step

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression.

1: Linear sweep (single stair, start to stop.)

2: Log sweep (single stair, start to stop.)

Agilent B1500 Programming Guide, Edition 4 4-169


Command Reference
WFC

3: Linear sweep (double stair, start to stop to start.)

4: Log sweep (double stair, start to stop to start.)


start, stop : Start or stop value of the DC bias sweep (in V). Numeric expression.
start and stop must have the same polarity for log sweep.
0 (initial setting) to ± 25 V (MFCMU) or ± 100 V (with SCUU)
With the SCUU, the source module is automatically selected by the
setting value. The MFCMU is used if the start and stop values are
below ± 25 V (setting resolution: 0.001 V), or the SMU is used if they
are greater than ± 25 V (setting resolution: 0.005 V).
The SMU will operate with the 100 V limited auto ranging and 20 mA
compliance settings.
step : Number of steps for staircase sweep. Numeric expression. 1 to 1001.

Example OUTPUT @B1500;"WDCV 8,1,5,-5,101"


Statements
WFC
This command sets the frequency sweep source used for the frequency sweep
measurement (MM22). The sweep source will be the MFCMU.

Execution The CN/CNX command has been executed for the specified channel.
Conditions

Syntax WFC chnum,mode,start,stop,step

Parameters chnum : MFCMU channel number. Integer expression. 1 to 10 or 101 to 1001.


See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. 1 to 4.

1: Linear sweep (single stair, start to stop.)


2: Log sweep (single stair, start to stop.)

3: Linear sweep (double stair, start to stop to start.)

4: Log sweep (double stair, start to stop to start.)


start, stop : Start or stop value of the frequency sweep (in Hz). Numeric expression.
See Table 4-10 on page 4-22.
1000 (1 kHz, initial setting) to 5000000 Hz (5 MHz).

4-170 Agilent B1500 Programming Guide, Edition 4


Command Reference
WI

Setting resolution: 1 mHz (1 kHz to), 10 mHz (10 kHz to), 100 mHz
(100 kHz to), 1 Hz (1 MHz to 5 MHz).
step : Number of steps for staircase sweep. Numeric expression. 1 to 1001.

Example OUTPUT @B1500;"WFC 9,1,100000,5000000,50"


Statements
WI
The WI command specifies the staircase sweep current source and its parameters.
This command also clears the WV, WSV, WSI, and WNX command settings.
This command setting is cleared by the WV command.

Syntax • For Staircase Sweep Measurement:


WI chnum,mode,range,start,stop,step[,Vcomp[,Pcomp]]
• For Staircase Sweep with Pulsed Bias Measurement:
WI chnum,mode,range,start,stop,step[,Vcomp]

Parameters chnum : SMU sweep source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
mode : Sweep mode. Integer expression. Only linear sweep (mode=1 or 3) is
available for the staircase sweep with pulsed bias.

1: Linear sweep (single stair, start to stop.)

2: Log sweep (single stair, start to stop.)

3: Linear sweep (double stair, start to stop to start.)

4: Log sweep (double stair, start to stop to start.)


range : Ranging type for staircase sweep current output. Integer expression.
See Table 4-5 on page 4-17.
For the linear sweep, the B1500 uses the minimum range that covers
both start and stop values to force the staircase sweep current.
For the log sweep, the B1500 uses the minimum range that covers the
output value, and changes the output range dynamically.
For the limited auto ranging, the instrument never uses the range less
than the specified range.

Agilent B1500 Programming Guide, Edition 4 4-171


Command Reference
WM

start, stop : Start or stop current (in A). Numeric expression. See Table 4-7 on page
4-19. start and stop must have the same polarity for log sweep.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
step : Number of steps for staircase sweep. Numeric expression. 1 to 1001.
Vcomp : Voltage compliance (in V). Numeric expression. See Table 4-7.
If you do not set Vcomp, the previous value is used. If Vcomp value is
greater than ± 42 V, the interlock circuit must be shorted.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Vcomp. If the output value is 0,
the polarity is set to positive.
If you set Pcomp, the maximum Vcomp value for the module is
allowed, regardless of the output range setting.
For the log sweep and without Pcomp, set the value available for the
minimum range that covers start and stop values.
Pcomp : Power compliance (in W). Numeric expression. Resolution: 0.001 W. If
the Pcomp value is not entered, the power compliance is not set.
0.001 to 2 for MPSMU/HRSMU, or 0.001 to 20 for HPSMU

Example OUTPUT @B1500;"WI 1,1,11,0,0.1,100,10,1"


Statements OUTPUT @B1500;"WI 2,2,15,1E−6,0.1,100"

WM
The WM command enables or disables the automatic abort function for the staircase
sweep sources and the pulsed sweep source. The automatic abort function stops the
measurement when one of the following conditions occurs:

• Compliance on the measurement channel


• Compliance on the non-measurement channel
• Overflow on the AD converter
• Oscillation on any channel
This command also sets the post measurement condition for the sweep sources.
After the measurement is normally completed, the staircase sweep sources force the
value specified by the post parameter, and the pulsed sweep source forces the pulse
base value.

4-172 Agilent B1500 Programming Guide, Edition 4


Command Reference
WMACV

If the measurement is stopped by the automatic abort function, the staircase sweep
sources force the start value, and the pulsed sweep source forces the pulse base
value after sweep.

Syntax WM abort[,post]

Parameters abort : Automatic abort function. Integer expression.


1: Disables the function. Initial setting.
2: Enables the function.
post : Source output value after the measurement is normally completed.
Integer expression.
1: Start value. Initial setting.
2: Stop value.
If this parameter is not set, the sweep sources force the start value.

Output Data The B1500 returns the data measured before an abort condition is detected. Dummy
data 199.999E+99 will be returned for the data after abort.

Example OUTPUT @B1500;"WM 2"


Statements OUTPUT @B1500;"WM 2,2"

WMACV
This command enables or disables the automatic abort function for the AC level
sweep measurement (MM23). The automatic abort function stops the measurement
when one of the following conditions occurs.

• NULL loop unbalance condition


• IV amplifier saturation condition
• Overflow on the AD converter
This command also sets the post measurement condition of the MFCMU. After the
measurement is normally completed, the MFCMU forces the value specified by the
post parameter.
If the measurement is stopped by the automatic abort function, the MFCMU forces
the start value.

Syntax WMACV abort[,post]

Agilent B1500 Programming Guide, Edition 4 4-173


Command Reference
WMDCV

Parameters abort : Automatic abort function. Integer expression. 1 or 2.


1: Disables the function. Initial setting.
2: Enables the function.
post : AC level value after the measurement is normally completed. Integer
expression. 1 or 2.
1: Start value. Initial setting.
2: Stop value.
If this parameter is not set, the MFCMU forces the start value.

Output Data The B1500 returns the data measured before an abort condition is detected. Dummy
data 199.999E+99 will be returned for the data after abort.

Example OUTPUT @B1500;"WMACV 2"


Statements OUTPUT @B1500;"WMACV 2,2"

WMDCV
This command enables or disables the automatic abort function for the DC bias
sweep measurement (MM18) and the pulsed bias sweep measurement (MM20). The
automatic abort function stops the measurement when one of the following
conditions occurs:

• NULL loop unbalance condition


• IV amplifier saturation condition
• Overflow on the AD converter
This command also sets the post measurement condition of the MFCMU. After the
measurement is normally completed, the DC bias sweep source forces the value
specified by the post parameter, and the pulsed bias sweep source forces the pulse
base value.
If the measurement is stopped by the automatic abort function, the DC bias sweep
source forces the start value, and the pulsed bias sweep source forces the pulse base
value after sweep.

Syntax WMDCV abort[,post]

Parameters abort : Automatic abort function. Integer expression.


1: Disables the function. Initial setting.

4-174 Agilent B1500 Programming Guide, Edition 4


Command Reference
WMFC

2: Enables the function.


post : Source output value after the measurement is normally completed.
Integer expression.
1: Start value. Initial setting.
2: Stop value.
If this parameter is not set, the MFCMU forces the start value.

Output Data The B1500 returns the data measured before an abort condition is detected. Dummy
data 199.999E+99 will be returned for the data after abort.

Example OUTPUT @B1500;"WMDCV 2"


Statements OUTPUT @B1500;"WMDCV 2,2"

WMFC
This command enables or disables the automatic abort function for the frequency
sweep measurement (MM22). The automatic abort function stops the measurement
when one of the following conditions occurs.

• NULL loop unbalance condition


• IV amplifier saturation condition
• Overflow on the AD converter
This command also sets the post measurement condition of the MFCMU. After the
measurement is normally completed, the MFCMU forces the value specified by the
post parameter.
If the measurement is stopped by the automatic abort function, the MFCMU forces
the start value.

Syntax WMFC abort[,post]

Parameters abort : Automatic abort function. Integer expression. 1 or 2.


1: Disables the function. Initial setting.
2: Enables the function.
post : Signal frequency value after the measurement is normally completed.
Integer expression. 1 or 2.
1: Start value. Initial setting.

Agilent B1500 Programming Guide, Edition 4 4-175


Command Reference
WNU?

2: Stop value.
If this parameter is not set, the MFCMU forces the start value.

Output Data The B1500 returns the data measured before an abort condition is detected. Dummy
data 199.999E+99 will be returned for the data after abort.

Example OUTPUT @B1500;"WMFC 2"


Statements OUTPUT @B1500;"WMFC 2,2"

WNU?
The WNU? query command returns the number of sweep steps specified by the
sweep command (WI, WV, PWI or PWV), and stores the results in the output data
buffer (query buffer).

Execution If you want to know the number of steps for a pulsed sweep, you must execute an
Conditions “MM 4” command before using this command, otherwise the number of steps for
the staircase sweep is reported.

Syntax WNU?

Query Response number_of_sweep_steps<CR/LF^EOI>

Example OUTPUT @B1500;"WNU?"


Statement ENTER @B1500;A

WNX
The WNX command specifies the staircase sweep source (synchronous sweep
source) that will be synchronized with the staircase sweep source (primary sweep
source) set by the WI or WV command.
You can use the maximum of ten sweep sources. There is no restrictions for the
output mode (voltage or current) of the sweep sources. If the output voltage is
greater than ± 42 V, the interlock circuit must be shorted.

Execution Available only for the multi channel sweep measurement (MM 16).
Conditions
This command must be entered after the WI or WV command that clears the WNX
command setting.

Syntax WNX N,chnum,mode,range,start,stop[,comp[,Pcomp]]

4-176 Agilent B1500 Programming Guide, Edition 4


Command Reference
WNX

Parameters N: Sweep source number. Integer expression. 2 to 10. Sweep sources start
output simultaneously or in number order. See Remarks below.
chnum : SMU sweep source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.
mode : Sweep source type. Integer expression. 1 or 2.
1: Voltage sweep source.
2: Current sweep source.
Sweep mode, linear or log, is set by the WI or WV command.
range : Ranging type for synchronous sweep output. Integer expression.

• For voltage source (mode=1): See Table 4-4 on page 4-17.


The B1500 usually uses the minimum range that covers both start
and stop values to force the staircase sweep voltage. However, if
you set Pcomp and if the following formulas are true, the B1500
changes the output range dynamically (20 V range or above). Range
changing may cause 0 V output in a moment. For the limited auto
ranging, the instrument never uses the range less than the specified
range.

• comp > maximum current for the output range


• Pcomp/output value > maximum current for the output range
• For current source (mode=2): See Table 4-5 on page 4-17.
For the linear sweep, the B1500 uses the minimum range that
covers both start and stop values to force the staircase sweep
current.
For the log sweep, the B1500 changes the output range
dynamically.
For the limited auto ranging, the instrument never uses the range
less than the specified range.
start, stop : Start or stop value (in V or A). Numeric expression.

• For voltage source (mode=1): See Table 4-6 on page 4-18.


0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
• For current source (mode=2): See Table 4-7 on page 4-19.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU

Agilent B1500 Programming Guide, Edition 4 4-177


Command Reference
WNX

start and stop must have the same polarity for log sweep.
Sweep mode, linear or log, and the number of sweep steps are set by the
WI or WV command.
comp : Compliance (in A or V). Numeric expression. If you do not set comp,
the previous value is used.
If you set Pcomp, the maximum comp value for the module is allowed,
regardless of the output range setting.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified comp. If the output value is 0,
the polarity is set to positive.
• For voltage source (mode=1): See Icomp in Table 4-6 on page 4-18.
• For current source (mode=2): See Vcomp in Table 4-7 on page 4-19.
For the log sweep and without Pcomp, set the value available for
the minimum range that covers start and stop values.
Pcomp : Power compliance (in W). Numeric expression. Resolution: 0.001 W. If
the Pcomp value is not entered, the power compliance is not set.
0.001 to 2 for MPSMU/HRSMU, or 0.001 to 20 for HPSMU

Remarks To set multiple sweep sources, enter the WI or WV command at first, and enter the
WNX command once or more. Then the N value and the chnum value must be
unique for each WNX command. If you set the value used to the previous command,
the previous command setting is cleared, and the last command setting is effective.
Sweep sources simultaneously start output by a trigger such as the XE command.
However, if a sweep source sets power compliance or forces logarithmic sweep
current, the sweep sources start output in the order specified by the N value. Then
the first output is forced by the channel set by the WI or WV command.
If you use multiple measurement channels, the channels that use the high-speed A/D
converter with the fixed ranging mode start measurement simultaneously, then other
channels start measurement in the order defined in the MM command.

Example OUTPUT @B1500;"WNX 2,3,1,12,0,3,1E-3,2E-3"


Statements
OUTPUT @B1500;"WNX 3,4,2,0,1E-3,1E-2,3"

4-178 Agilent B1500 Programming Guide, Edition 4


Command Reference
WS

WS
The WS command causes the B1500 to enter a wait state until the B1500 receives an
external trigger from the Ext Trig In terminal. To set the trigger logic (initial setting:
negative), send the TGP command for the Ext Trig In terminal.
To end a wait state before the trigger, execute the AB or *RST command.

Syntax WS [mode]

Parameters mode : Waiting mode. Integer expression. 1 or 2. If this parameter is not


specified, mode is set to 1.
1: Continues the operation if an external trigger was already received.
Otherwise, the B1500 immediately goes into a wait state for an external
trigger.
2: In any condition, the B1500 immediately goes into a wait state for an
external trigger.

Remarks The B1500 checks its trigger flag to confirm the present trigger status, received or
none. To clear the trigger flag:

• Enter the *RST or device clear command (HP BASIC CLEAR statement).
• Enter the TM3 command.
• Enter the TM1, TM2, or TM4 command to change the mode from TM3.
• Enter the OS command.
• Trigger the B1500 to start measurement via the Ext Trig In terminal.
• Trigger the B1500 to recover from wait state set by the WS command via the
Ext Trig In terminal.

Example OUTPUT @B1500;"WS 2"


Statements
WSI
The WSI command specifies the staircase sweep current source (synchronous sweep
source) that will be synchronized with the staircase sweep current source (primary
sweep source) set by the WI command, or the pulsed sweep current source (primary
sweep source) set by the PWI command.

Execution Available for the staircase sweep (MM 2), pulsed sweep (MM 4), or staircase sweep
Conditions with pulsed bias (MM5) measurement.

Agilent B1500 Programming Guide, Edition 4 4-179


Command Reference
WSI

This command must be entered after the WI or PWI command that clears the WSI
command setting. The WV and PWV command also clears the WSI setting.

Syntax WSI chnum,range,start,stop[,Vcomp[,Pcomp]]

Parameters chnum : SMU synchronous sweep source channel number. Integer expression. 1
to 10 or 101 to 1001. See Table 4-1 on page 4-13.
range : Ranging type for synchronous sweep current output. Integer
expression. See Table 4-5 on page 4-17.
For the linear sweep, the B1500 uses the minimum range that covers
both start and stop values to force the staircase sweep current.
For the log sweep, the B1500 uses the minimum range that covers the
output value, and changes the output range dynamically.
Sweep mode, linear or log, is set by the WI or PWI command.
For the limited auto ranging, the instrument never uses the range less
than the specified range.
start, stop : Start or stop current (in A). Numeric expression. See Table 4-7 on page
4-19. start and stop must have the same polarity for log sweep. Sweep
mode, linear or log, and the number of sweep steps are set by the WI or
PWI command.
0 to ± 0.1 for MPSMU/HRSMU, or 0 to ± 1 for HPSMU
Vcomp : Voltage compliance (in V). Numeric expression. See Table 4-7 on page
4-19. If you do not set Vcomp, the previous value is used. If Vcomp
value is greater than ± 42 V, the interlock circuit must be shorted.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Vcomp. If the output value is 0,
the compliance polarity is positive.
If you set Pcomp, the maximum Vcomp value for the module is
allowed, regardless of the output range setting.
For the log sweep and without Pcomp, set the value available for the
minimum range that covers start and stop values.
Pcomp : Power compliance (in W). Numeric expression. Resolution: 0.001 W. If
the Pcomp value is not entered, the power compliance is not set.
0.001 to 2 for MPSMU/HRSMU, or 0.001 to 20 for HPSMU

4-180 Agilent B1500 Programming Guide, Edition 4


Command Reference
WSV

Example OUTPUT @B1500;"WSI 1,16,0,4E-5"


Statements
OUTPUT @B1500;"WSI 2,0,1E-3,1E-2,5,5E-2"

WSV
The WSV command specifies the staircase sweep voltage source (synchronous
sweep source) that will be synchronized with the staircase sweep voltage source
(primary sweep source) set by the WV command, or the pulsed sweep voltage
source (primary sweep source) set by the PWV command.

Execution Available for the staircase sweep (MM 2), pulsed sweep (MM 4), or staircase sweep
Conditions with pulsed bias (MM5) measurement.
This command must be entered after the WV or PWV command that clears the
WSV command setting. The WI and PWI command also clears the WSV setting.

Syntax WSV chnum,range,start,stop[,Icomp[,Pcomp]]

Parameters chnum : SMU synchronous sweep source channel number. Integer expression. 1
to 10 or 101 to 1001. See Table 4-1 on page 4-13.
range : Ranging type for synchronous sweep voltage output. Integer
expression. See Table 4-4 on page 4-17.
The B1500 usually uses the minimum range that covers both start and
stop values to force the staircase sweep voltage. However, if you set
Pcomp and if the following formulas are true, the B1500 changes the
output range dynamically (20 V range or above). Range changing may
cause 0 V output in a moment. For the limited auto ranging, the
instrument never uses the range less than the specified range.

• Icomp > maximum current for the output range


• Pcomp/output voltage > maximum current for the output range
start, stop : Start or stop voltage (in V). Numeric expression. See Table 4-6 on page
4-18. start and stop must have the same polarity for log sweep. Sweep
mode, linear or log, and the number of sweep steps are set by the WV
or PWV command. If the output voltage is greater than ± 42 V, the
interlock circuit must be shorted.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
Icomp : Current compliance (in A). Numeric expression. See Table 4-6 on page
4-18. If you do not set Icomp, the previous value is used.

Agilent B1500 Programming Guide, Edition 4 4-181


Command Reference
WSX

Compliance polarity is automatically set to the same polarity as the


output value, regardless of the specified Icomp. If the output value is 0,
the compliance polarity is positive.
If you set Pcomp, the maximum Icomp value for the module is allowed,
regardless of the output range setting.
Pcomp : Power compliance (in W). Numeric expression. Resolution: 0.001 W. If
the Pcomp value is not entered, the power compliance is not set.
0.001 to 2 for MPSMU/HRSMU, or 0.001 to 20 for HPSMU

Example OUTPUT @B1500;"WSV 1,0,1,100,0.01,1"


Statements OUTPUT @B1500;"WSV 2,12,0,10"

WSX
The WSX command causes the B1500 to enter a wait state until the B1500 receives
an external trigger from a trigger input terminal specified by the port parameter. To
set the trigger logic (initial setting: negative), send the TGP command for the
specified terminal. To end a wait state before the trigger, execute the AB or *RST
command.

Syntax WSX port[,mode]

Parameters port : External trigger input port number. Integer expression. -1, or 1 to 16.
-1: Ext Trig In terminal.
1 to 16: Port 1 to 16 of the digital I/O terminal.
To use a digital I/O port, send the TGP command. The port value must
be same as the port value set to the TGP command.
mode : Waiting mode. Integer expression. 1 or 2. If this parameter is not
specified, mode is set to 1.
1: Continues the operation if an external trigger was already received.
Otherwise, the B1500 immediately goes into a wait state for an external
trigger.
2: In any condition, the B1500 immediately goes into a wait state for an
external trigger.

Remarks The B1500 checks its trigger flag to confirm the present trigger status, received or
none. To clear the trigger flag:

4-182 Agilent B1500 Programming Guide, Edition 4


Command Reference
WT

• Enter the *RST or device clear command (HP BASIC CLEAR statement).
• Enter the TM3 command.
• Enter the TM1, TM2, or TM4 command to change the mode from TM3.
• Enter the OS command.
• Trigger the B1500 to start measurement via the trigger input terminal.
• Trigger the B1500 to recover from wait state set by the WS command via the
trigger input terminal.

Example OUTPUT @B1500;"WSX 2"


Statements
WT
The WT command sets the hold time, delay time, and step delay time for the
staircase sweep or multi channel sweep measurement. This command is also used to
set the step source trigger delay time effective for the step output setup completion
trigger and the step measurement trigger delay time effective for the start step
measurement trigger. For the trigger function, refer to “Trigger Function” on page
2-63.
If you do not enter this command, all parameters are set to 0.
This command setting is ignored by the following measurement mode.

• Pulsed spot measurements


• Pulsed sweep measurements
• Staircase sweep with pulsed bias measurements

Syntax WT hold,delay[,Sdelay[,Tdelay[,Mdelay]]]

Parameters hold : Hold time (in seconds) that is the wait time after starting the sweep
measurement and before starting the delay time for the first step.
0 to 655.35, with 10 ms resolution. Numeric expression.
delay : Delay time (in seconds) that is the wait time after starting to force a step
output and before starting a step measurement.
0 to 65.535, with 0.1 ms resolution. Numeric expression.
Sdelay : Step delay time (in seconds) that is the wait time after starting a step
measurement and before starting to force the next step output value.
0 to 1.0, with 0.1 ms resolution. Numeric expression.

Agilent B1500 Programming Guide, Edition 4 4-183


Command Reference
WTACV

If this parameter is not set, Sdelay will be 0.


If Sdelay is shorter than the measurement time, the B1500 waits until
the measurement completes, then forces the next step output.
Tdelay : Step source trigger delay time (in seconds) that is the wait time after
completing a step output setup and before sending a step output setup
completion trigger.
0 to delay, with 0.1 ms resolution. Numeric expression.
If this parameter is not set, Tdelay will be 0.
Mdelay : Step measurement trigger delay time (in seconds) that is the wait time
after receiving a start step measurement trigger and before starting a
step measurement.
0 to 65.535, with 0.1 ms resolution. Numeric expression.
If this parameter is not set, Mdelay will be 0.

Example OUTPUT @B1500;"WT 5,0.1,0.1,0.1,0.1"


Statements OUTPUT @B1500;"WT 5,0.2"

WTACV
This command sets the hold time, delay time, and step delay time for the AC level
sweep measurement (MM23). This command is also used to set the step source
trigger delay time effective for the step output setup completion trigger and the step
measurement trigger delay time effective for the start step measurement trigger. For
the trigger function, refer to “Trigger Function” on page 2-63. If you do not enter
this command, all parameters are set to 0.

Syntax WTACV hold,delay[,Sdelay[,Tdelay[,Mdelay]]]

Parameters hold : Hold time (in seconds) that is the wait time after starting measurement
and before starting delay time for the first step.
0 (initial setting) to 655.35, with 10 ms resolution. Numeric
expression.
delay : Delay time (in seconds) that is the wait time after starting to force a step
output and before starting a step measurement.
0 (initial setting) to 655.35, with 0.1 ms resolution. Numeric
expression.

4-184 Agilent B1500 Programming Guide, Edition 4


Command Reference
WTDCV

Sdelay : Step delay time (in seconds) that is the wait time after starting a step
measurement and before starting to force the next step output.
0 (initial setting) to 1, with 0.1 ms resolution. Numeric expression. If
this parameter is not set, Sdelay will be 0. If Sdelay is shorter than the
measurement time, the B1500 waits until the measurement completes,
then forces the next step output.
Tdelay : Step source trigger delay time (in seconds) that is the wait time after
completing a step output setup and before sending a step output setup
completion trigger.
0 (initial setting) to delay or 65.535, with 0.1 ms resolution. Numeric
expression. If this parameter is not set, Tdelay will be 0.
Mdelay : Step measurement trigger delay time (in seconds) that is the wait time
after receiving a start step measurement trigger and before starting a
step measurement.
0 (initial setting) to 65.535, with 0.1 ms resolution. Numeric
expression. If this parameter is not set, Mdelay will be 0.

Example OUTPUT @B1500;"WTACV 5,0.1,0.1,0.1,0.1"


Statements OUTPUT @B1500;"WTACV 5,0.2"

WTDCV
This command sets the hold time, delay time, and step delay time for the DC bias
sweep measurement (MM18). This command is also used to set the step source
trigger delay time effective for the step output setup completion trigger and the step
measurement trigger delay time effective for the start step measurement trigger. For
the trigger function, refer to “Trigger Function” on page 2-63. If you do not enter
this command, all parameters are set to 0.

Syntax WTDCV hold,delay[,Sdelay[,Tdelay[,Mdelay]]]

Parameters hold : Hold time (in seconds) that is the wait time after starting measurement
and before starting delay time for the first step.
0 to 655.35, with 10 ms resolution. Numeric expression.
delay : Delay time (in seconds) that is the wait time after starting to force a step
output and before starting a step measurement.
0 to 65.535, with 0.1 ms resolution. Numeric expression.

Agilent B1500 Programming Guide, Edition 4 4-185


Command Reference
WTFC

Sdelay : Step delay time (in seconds) that is the wait time after starting a step
measurement and before starting to force the next step output.
0 to 1, with 0.1 ms resolution. Numeric expression.
If this parameter is not set, Sdelay will be 0.
If Sdelay is shorter than the measurement time, the B1500 waits until
the measurement completes, then forces the next step output.
Tdelay : Step source trigger delay time (in seconds) that is the wait time after
completing a step output setup and before sending a step output setup
completion trigger.
0 to delay, with 0.1 ms resolution. Numeric expression.
If this parameter is not set, Tdelay will be 0.
Mdelay : Step measurement trigger delay time (in seconds) that is the wait time
after receiving a start step measurement trigger and before starting a
step measurement.
0 to 65.535, with 0.1 ms resolution. Numeric expression.
If this parameter is not set, Mdelay will be 0.

Example OUTPUT @B1500;"WTDCV 5,0.1,0.1,0.1,0.1"


Statements OUTPUT @B1500;"WTDCV 5,0.2"

WTFC
This command sets the hold time, delay time, and step delay time for the frequency
sweep measurement (MM22). This command is also used to set the step source
trigger delay time effective for the step output setup completion trigger and the step
measurement trigger delay time effective for the start step measurement trigger. For
the trigger function, refer to “Trigger Function” on page 2-63. If you do not enter
this command, all parameters are set to 0.

Syntax WTFC hold,delay[,Sdelay[,Tdelay[,Mdelay]]]

Parameters hold : Hold time (in seconds) that is the wait time after starting measurement
and before starting delay time for the first step.
0 (initial setting) to 655.35, with 10 ms resolution. Numeric
expression.
delay : Delay time (in seconds) that is the wait time after starting to force a step
output and before starting a step measurement.

4-186 Agilent B1500 Programming Guide, Edition 4


Command Reference
WV

0 (initial setting) to 655.35, with 0.1 ms resolution. Numeric


expression.
Sdelay : Step delay time (in seconds) that is the wait time after starting a step
measurement and before starting to force the next step output.
0 (initial setting) to 1, with 0.1 ms resolution. Numeric expression. If
this parameter is not set, Sdelay will be 0. If Sdelay is shorter than the
measurement time, the B1500 waits until the measurement completes,
then forces the next step output.
Tdelay : Step source trigger delay time (in seconds) that is the wait time after
completing a step output setup and before sending a step output setup
completion trigger.
0 (initial setting) to delay or 65.535, with 0.1 ms resolution. Numeric
expression. If this parameter is not set, Tdelay will be 0.
Mdelay : Step measurement trigger delay time (in seconds) that is the wait time
after receiving a start step measurement trigger and before starting a
step measurement.
0 (initial setting) to 65.535, with 0.1 ms resolution. Numeric
expression. If this parameter is not set, Mdelay will be 0.

Example OUTPUT @B1500;"WTFC 5,0.1,0.1,0.1,0.1"


Statements OUTPUT @B1500;"WTFC 5,0.2"

WV
The WV command specifies the staircase sweep voltage source and its parameters.
This command also clears the WI, WSI, WSV, and WNX command settings.
This command setting is cleared by the WI command. If the output voltage is greater
than ±42 V, the interlock circuit must be shorted.

Syntax • For Staircase Sweep Measurement:


WV chnum,mode,range,start,stop,step[,Icomp[,Pcomp]]
• For Staircase Sweep with Pulsed Bias Measurement:
WV chnum,mode,range,start,stop,step[,Icomp]

Parameters chnum : SMU sweep source channel number. Integer expression. 1 to 10 or 101
to 1001. See Table 4-1 on page 4-13.

Agilent B1500 Programming Guide, Edition 4 4-187


Command Reference
WV

mode : Sweep mode. Integer expression. Only linear sweep (mode=1 or 3) is


available for the staircase sweep with pulsed bias.

1: Linear sweep (single stair, start to stop.)

2: Log sweep (single stair, start to stop.)

3: Linear sweep (double stair, start to stop to start.)

4: Log sweep (double stair, start to stop to start.)


range : Ranging type for staircase sweep voltage output. Integer expression.
See Table 4-4 on page 4-17.
The B1500 usually uses the minimum range that covers both start and
stop values to force the staircase sweep voltage. However, if you set
Pcomp and if the following formulas are true, the B1500 uses the
minimum range that covers the output value, and changes the output
range dynamically (20 V range or above). Range changing may cause
0 V output in a moment. For the limited auto ranging, the instrument
never uses the range less than the specified range.

• Icomp > maximum current for the output range


• Pcomp/output voltage > maximum current for the output range
start, stop : Start or stop voltage (in V). Numeric expression. See Table 4-6 on page
4-18. start and stop must have the same polarity for log sweep.
0 to ± 100 for MPSMU/HRSMU, or 0 to ± 200 for HPSMU
step : Number of steps for staircase sweep. Numeric expression. 1 to 1001.
Icomp : Current compliance (in A). Numeric expression. See Table 4-6 on page
4-18. If you do not set Icomp, the previous value is used.
Compliance polarity is automatically set to the same polarity as the
output value, regardless of the specified Icomp. If the output value is 0,
the compliance polarity is positive.
If you set Pcomp, the maximum Icomp value for the module is allowed,
regardless of the output range setting.
Pcomp : Power compliance (in W). Numeric expression. Resolution: 0.001 W. If
the Pcomp value is not entered, the power compliance is not set.
0.001 to 2 for MPSMU/HRSMU, or 0.001 to 20 for HPSMU

4-188 Agilent B1500 Programming Guide, Edition 4


Command Reference
WZ?

Example OUTPUT @B1500;"WV 1,2,12,1E-6,10,100,0.1,1"


Statements OUTPUT @B1500;"WV 2,1,0,0,20,101"

WZ?
This query command immediately confirms all channel output, and returns the
status 0 if it is within ± 2 V or 1 if it is more than ± 2 V.

Syntax WZ? [timeout]

Parameters timeout : Timeout. Numeric expression.


0 to 655.35 sec, with 0.01 sec resolution.
With timeout parameter, this command waits until all channel output
becomes within ± 2 V or until the specified timeout elapses, and returns
0 or 1.
The WZ? 0 command has the same effect as the WZ? command.

Query Response state<CR/LF^EOI>


0: All channel output is within ± 2 V.
1: Any output channel applies more than ± 2 V.

Example OUTPUT @B1500;"WZ? 5.0"


Statement ENTER @B1500;A

XE
The XE command triggers the B1500 to start measurement, or causes the B1500 to
recover from the wait state set by the PA command. This command is not available
for the high-speed spot measurement.

NOTE After measurement, the measurement data will be entered to the output data buffer.
For data output format, refer to “Data Output Format” on page 1-25.

Execution The following execution conditions are for you who use the XE command to start
Conditions measurement. There is no execution condition when you use the XE command to
recover from the wait state.

• If any channel is set to the high voltage state (forcing more than ± 42 V, or
voltage compliance set to more than ± 42 V) after the trigger (XE), the interlock
terminal must be shorted.

Agilent B1500 Programming Guide, Edition 4 4-189


Command Reference
XE

• The following commands must be entered before the XE command.

Measurement Mode Commands

Spot CN, MM, DV or DI


Staircase sweep CN, MM, WV or WI
Pulsed spot CN, MM, PT, PV or PI
Pulsed sweep CN, MM, PT, PWV or PWI
Staircase sweep with pulsed bias CN, MM, PT, WV or WI, PV or PI
Quasi-pulsed spot CN, MM, BDV
Sampling CN, MM, MCC, ML, MT, MSC, MI,
MV, MSP
Quasi-static CV CN, MM, QST, QSV
Liner search CN, MM, LSV or LSI, LGV or LGI
Binary search CN, MM, BSV or BSI, BGV or BGI
Multi channel sweep CN, MM, WI or WV, WNX
Spot C CN, MM, IMP, FC, ACV, DCV
DC bias sweep CN, MM, IMP, FC, ACV, WDCV
AC level sweep CN, MM, IMP, FC, DCV, WACV
Frequency sweep CN, MM, IMP, DCV, ACV, WFC
Pulsed spot C CN, MM, IMP, FC, ACV, PTDCV,
PDCV
Pulsed sweep CV CN, MM, IMP, FC, ACV, PTDCV,
PWDCV
C-t sampling CN, MM, IMP, FC, ACV, MDCV,
MTDCV

Syntax XE

Example OUTPUT @B1500;"XE"


Statement

4-190 Agilent B1500 Programming Guide, Edition 4


5 Error Messages
Error Messages

This chapter lists the error code of the Agilent B1500.


If error occurs, find solutions in this section and solve problems. However, if
problems still remain, perform self-test.
If the Agilent B1500 fails self-test, contact your nearest Agilent Technologies
Service Center.
If errors occur, error codes are stored in the error buffer. To read the error code and
the error message, use the “ERRX?”/“ERR?”/“EMG?” command. The output of the
error codes is in the order that they occurred.
The “ERR?”/“EMG?” command supports the error codes 0 to 999.

5-2 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

Operation Error
100 Undefined GPIB command.
Send the correct command.
102 Incorrect numeric data syntax.
Correct the data syntax.
103 Incorrect terminator position.
Correct the command syntax. The number of parameters will be
incorrect.
104 Incorrect serial data syntax.
120 Incorrect parameter value.
Correct the parameter value.
121 Channel number must be 1 to 10.
Correct the channel number. The channel number must be 1 to 10 for
Agilent B1500.
122 Number of channels must be corrected.
Check the MM, FL, CN, CL, IN, DZ, or RZ command, and correct the
number of channels.
123 Compliance must be set correctly.
Incorrect compliance value was set. Set the compliance value correctly.
124 Incorrect range value for this channel.
Check the range value available for the channel, and correct the range
value.
125 Search goal value must be less than compliance value.
126 Pulse base and peak must be same polarity.
The polarity of the base and peak values must be the same in the PI
command. Also the polarity of the base, start, and stop values must be
the same in the PWI command.

Agilent B1500 Programming Guide, Edition 4 5-3


Error Messages
Operation Error

130 Start and stop must be same polarity.


For a log sweep, the polarity of the start and stop values must be the
same in the WV, WI, WSV, WSI, or WNX command. Also, 0 is not
allowed for the start and stop values.
150 Command input buffer is full.
Agilent B1500 can receive 256 characters maximum including the
terminator at one time.
151 This command is not allowed to this channel.
152 Cannot use failed module.
The channel number specifying the module failed the self-test or
calibration. Specify another module that passed the self-test or
calibration. For the service purpose, execute the RCV command to
enable the module.
153 No module for the specified channel.
Module is not installed in the slot specified by the channel number.
160 Incorrect ST execution.
The internal memory programming can be started by the ST command
and completed by the END command. Do not enter the ST command
between the ST command and the END command.
161 Incorrect END execution.
The internal memory programming can be started by the ST command
and completed by the END command. Do not send the END command
before starting the programming.
162 Incorrect command for program memory.
Specified command cannot be stored in the program memory. For the
incorrect commands, see Programming Guide.
170 Incorrect usage of internal variable.
The internal variable must be %In for integer data, or %Rn for real
data. where n is an integer, 0 to 99. Use %In for the integer type
command parameters; and use %Rn for the real type command
parameters. For the internal variables, see the VAR command of
Programming Guide.

5-4 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

171 Internal variable is not allowed.


The internal variables %In and %Rn are not available for the ACH,
VAR, and VAR? commands. Do not use the internal variables for the
commands.
200 Channel output switch must be ON.
To enter the specified command, set the channel output switch to ON.
201 Compliance must be set.
To change the source output mode (voltage or current), set the
compliance value.
202 Interlock circuit must be closed.
To set the output voltage or the voltage compliance to more than ±42 V
(high voltage state), close the interlock circuit. If the interlock circuit is
opened in the high voltage state, outputs of all units will be set to 0 V.
203 Cannot enable channel.
The channel output switch cannot be set to ON in the high voltage state.
Set the output voltage or the voltage compliance to ±42 V or less to set
the switch to ON.
204 Cannot disable channel.
The channel output switch cannot be set to OFF in the high voltage
state. Set the output voltage or the voltage compliance to ±42 V or less
to set the switch to OFF. Or send the CL command with no parameter to
set switches of all channels to OFF immediately.
205 DZ must be sent before RZ.
The RZ command is effective for the channels set to 0 V output by the
DZ command.
206 Do not specify the channel recovered by RZ.
Specify the channels that have not been recovered yet by the RZ
command after the DZ command. The RZ command cannot be
executed if the specified channels include a channel that has already
been recovered by the RZ command.
210 Ext trigger could not start measurement.
External trigger cannot start measurement because of busy condition.

Agilent B1500 Programming Guide, Edition 4 5-5


Error Messages
Operation Error

211 TM1 must be sent to use GET.


Send the TM1 command to use the GPIB GET command (TRIGGER
statement in HP BASIC).
212 Compliance must be set correctly.
Compliance was not set or an incorrect compliance value was set in the
DV, DI, PV, PI, PWV, PWI, TDV, TDI, LSV, LSI, LSSV, LSSI, BSV,
BSI, BSSV, or BSSI command. Set the compliance value correctly.
213 Cannot perform self-test or calibration.
Self-test and calibration cannot be performed in the high voltage state.
Set the output voltage or the voltage compliance to ±42 V or less to
perform the self-test or calibration.
214 Send MM before measurement trigger.
Before sending the measurement trigger, the MM command must be
sent to set the measurement mode.
217 Self-test is not defined for this module.
220 Send WV or WI to set primary sweep source.
Before triggering the staircase sweep measurement, triggering the
staircase sweep with pulsed bias measurement, or sending the WSV,
WSI, or WNX command to set the synchronous sweep source, send the
WV or WI command to set the primary sweep source.
221 Send PWV or PWI to set pulse sweep source.
Before triggering the pulsed sweep measurement, or sending the WSV
or WSI command to set the synchronous sweep source, send the PWV
or PWI command to set the pulse sweep source.
222 Send PV or PI to set pulse source.
Before triggering the staircase sweep with pulsed bias measurement,
send the PV or PI command to set the pulse source.
223 Compliance must be set correctly.
Compliance was not set or an incorrect compliance value was set in the
WV, WI, WSV, WSI, WNX, or BDV command. Set the compliance
value correctly.

5-6 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

224 Sweep and sync output modes must be the same.


The primary sweep channel and the synchronous sweep channel must
be different, and they must be set to the same output mode (voltage or
current).
225 Send WSV, WSI, or WNX to get sync sweep data.
If you enable data output of the synchronous sweep source, do not
forget to set the synchronous sweep source by the WSV, WSI, or WNX
command. For data output, see the FMT command of Programming
Guide.
226 Set linear sweep for MM4 or MM5.
Only the linear sweep is available for the PWV or PWI command for
the pulsed sweep measurement (MM4) or the WV or WI command for
the staircase sweep with pulsed bias measurement (MM5).
227 Sweep measurement was aborted.
Sweep measurement was aborted by the automatic abort function or the
power compliance.
228 Pulse period is not set for pulse measurements.
230 Pulse source must be set.
To perform the pulsed spot measurement (MM3), send the PV or PI
command to set the pulse source.
231 Compliance must be set correctly.
Compliance was not set or an incorrect compliance value was set in the
PV, PI, PWV, or PWI command. Set the correct compliance value
effective for the pulse output.
238 Too large pulse width (max. 2 s).
The maximum value of the pulse width is 2 s. And the available value
depends on the pulse period value. See the PT command of
Programming Guide.
239 Pulse width must be 0.5 ms or more.
Set the pulse width to 0.5 ms or more. See the PT command of
Programming Guide.

Agilent B1500 Programming Guide, Edition 4 5-7


Error Messages
Operation Error

240 Enter QSV to set QSCV sweep source.


The QSV command must be entered to set the sweep source of the
quasi-static CV measurement.
241 QSR range value must be -9 to -14.
The range values available for the QSR command are -9 to -14. Set
one of the available values.
242 QSCV measurement was aborted.
Quasi-static CV measurement was aborted by the automatic abort
function.
243 Enter MM13 before QSZ.
Before the QSZ command, the MM13 command must be entered to set
the measurement mode.
244 Set a longer integration time to QST.
The integration time is too short to perform the offset measurement. Set
a longer value to the integration time parameter of the QST command.
245 Specify a higher measurement range to QSR.
Too large offset current was measured. Specify the next higher
measurement range to the QSR command.
246 QSV mode value must be 1 or 3.
The mode values available for the QSV command are 1 (single linear)
and 3 (double linear). Set one of the available values.
247 Dedicated channel must be specified by QSO.
Specify the dedicated channel to the QSO command. It must be the
channel other than the measurement channel set by the MM13
command or the sweep output channel set by the QSV command.
253 Program memory is full.
Maximum of 2000 programs or 40000 commands can be stored in the
program memory. See the ST command of Programming Guide.
254 Invalid input for a memory program.
The GPIB GET command (TRIGGER statement in HP BASIC) and an
external trigger input are not allowed in a memory program (between
the ST and END commands).

5-8 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

255 Maximum nesting level is eight.


Nesting (one program calling another) of a memory program must be
eight levels or less.
260 Data output buffer is full.
Maximum 34034 measurement data items can be stored in the data
output buffer.
270 Search source channel must be set.
Before triggering the search measurement or sending the LSSV, LSSI,
BSSV, or BSSI command to set the synchronous search source, send
the LSV, LSI, BSV, or BSI command to set the primary search source.
271 Search monitor channel must be set.
Before triggering the search measurement, send the LGV, LGI, BGV, or
BGI command to set the search monitor channel.
273 Search and sync output modes must be the same.
The primary search source channel and the synchronous source channel
must be different, and they must be set to the same output mode
(voltage or current).
274 Search sync source is overflow.
Set the search sources so that the same output range is set to both
primary and synchronous search sources.
275 Search target must be compliance value or less.
The search target value must be less than or equal to the compliance
value of the search monitor channel. Correct the search target value or
the compliance value.
276 Start and stop must be different.
Set different values for the search start and stop values.
277 Step must be output resolution or more.
Set the search step value to the output resolution or more.
278 Search and sync channels must be different.
Set the search source and the synchronous source to different channels.

Agilent B1500 Programming Guide, Edition 4 5-9


Error Messages
Operation Error

279 Search monitor mode must be compliance side.


Send the LGI/BGI command to set the voltage source search monitor
channel, or send the LGV/BGV command to set the current source
search monitor channel.
280 Send WDCV to set CV sweep source.
Before triggering the multi frequency CV measurement, send the
WDCV command to set the DC voltage sweep source.
281 Send PDCV to set CV pulse source.
Before triggering the pulsed spot C measurement, send the PDCV
command to set the pulsed voltage source.
282 Send PWDCV to set CV pulse sweep source.
Before triggering the pulsed CV measurement, send the PWDCV
command to set the pulsed voltage sweep source.
283 Set linear sweep for MM20.
Only the linear sweep is available for the PWDCV command for the
pulsed CV measurement (MM20).
284 Improper setting of CMU frequency and pulse width.
Pulse width value is out of the range for the CMU output frequency. Set
both frequency value and pulse width value properly.
290 Send WFC to set Cf sweep source.
Before triggering the Cf sweep measurement, send the WFC command
to set the frequency sweep source (oscillator).
301 Line power failure.
303 Excess voltage in MPSMU.
Voltage that exceeds maximum voltage at the present current range was
detected by a MPSMU. All output switches were set to OFF.
304 Ground unit abuse is detected.
305 Excess current in HPSMU.
Current that exceeds maximum current at the present voltage range was
detected by a HPSMU. All output switches were set to OFF.

5-10 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

307 Unsupported module.


This module is not supported by this firmware revision. Until you
update the firmware, use Agilent B1500 with this module removed.
310 Interlock open operation error. Initialized.
Initialization was automatically performed because the B1500 failed to
set its output to 0 V when the interlock circuit was opened in the high
voltage condition. Any module may be defective. Perform self-test.
311 ASU control cable was connected/disconnected.
The B1500 must be turned off when the Atto Sense and Switch Unit
(ASU) is connected/disconnected.
312 SCUU control cable was connected/disconnected.
The B1500 must be turned off when the SMU CMU Unify Unit
(SCUU) is connected/disconnected.
320 Excess current in CMU.
Current that exceeds maximum current at the present voltage range was
detected by the CMU. The output switch was set to OFF.
321 This command is not available for CMU.
CMU was specified for the SMU dedicated command. Specify SMU.
322 This command is not available for SMU.
SMU was specified for the CMU dedicated command. Specify CMU.
323 Use SSP instead of CN for SCUU modules.
It is not necessary to specify the modules connected to the SMU CMU
Unify Unit (SCUU) in the CN command. The output switches will be
controlled by the SSP command.
330 Turn on again to detect source channel.
SCUU might be disconnected/connected on the power on condition.
Restart the B1500 to detect and enable the channel.
331 Turn on again to detect synchronous channel.
SCUU might be disconnected/connected on the power on condition.
Restart the B1500 to detect and enable the channel.

Agilent B1500 Programming Guide, Edition 4 5-11


Error Messages
Operation Error

332 Turn on again to detect measurement channel.


SCUU might be disconnected/connected on the power on condition.
Restart the B1500 to detect and enable the channel.
333 Turn on again to detect search source.
SCUU might be disconnected/connected on the power on condition.
Restart the B1500 to detect and enable the channel.
334 Turn on again to detect search sync source.
SCUU might be disconnected/connected on the power on condition.
Restart the B1500 to detect and enable the channel.
335 Turn on again to detect search monitor channel.
SCUU might be disconnected/connected on the power on condition.
Restart the B1500 to detect and enable the channel.
603 Sweep and pulse channels must be different.
Set the sweep source and the pulse source to different channels for the
staircase sweep with pulsed bias measurement (MM5).
610 Quasi-pulse source channel must be set.
Before triggering the quasi-pulsed spot measurement, send the BDV
command to set the quasi-pulse source.
620 TGP specified incorrect I/O port.
Specify trigger input for the Ext Trig In port, or trigger output for the
Ext Trig Out port by the TGP command. See the TGP command of
Programming Guide.
621 Specify trigger input port for PAX/WSX.
No trigger input port was specified for the PAX or WSX command.
Specify the trigger input port, or set the port as the trigger input port.
See the TGP command of Programming Guide to set trigger port.
622 Specify trigger output port for OSX.
No trigger output port was specified for the OSX command. Specify the
trigger output port, or set the port as the trigger output port. See the
TGP command of Programming Guide to set trigger port.
630 Incorrect polarity of search step value.
For the linear search measurement. The step value must be positive if
start<stop, or negative if start>stop.

5-12 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

631 Number of search steps must be 1001 or less.


For the linear search measurement. The number of search steps
between start and stop must be 1001 or less. This means the |step| value
must be |stop-start|/1001 or more.
632 Search measurement was aborted.
Search measurement was aborted by the automatic abort function.
640 Search limits must be range/20000 or more.
For the binary search measurement. The limit value for the search
target must be range/20000 or more. where range means the
measurement range actually used for the measurement.
650 Data format must be ASCII to get time data.
The time stamp function is not available for the binary data output
format. To use the time stamp function, set the data output format to
ASCII.
655 Cannot connect/disconnect series resistor.
The series resistor status cannot be changed in the high voltage state.
Set the output voltage or the voltage compliance to ±42 V or less to
connect or disconnect the series resistor.
656 Series resistor must be OFF for 1 A range.
The series resistor cannot be set to ON for the measurement channels or
the output channels that use 1 A range.
657 Series resistor cannot be used with ASU.
The series resistor is not available for the channel connected to the Atto
Sense and Switch Unit (ASU).
660 Sampling measurement was aborted.
Sampling measurement was aborted by the automatic abort function.
661 Negative hold time is only valid for I/V-t linear sampling with interval
< 2 ms.
662 Sampling interval for I/V-t log sampling must be 2 ms or longer.
663 Number of samples does not have to exceed 100001.

Agilent B1500 Programming Guide, Edition 4 5-13


Error Messages
Operation Error

664 Base and bias must be same polarity for I mode.


The base and bias values of the MI command must be the same
polarity.
670 Specified channel does not have ASU.
Specify the module that can be used with the ASU.
671 SSP is not available for this channel.
SSP command is available only for the CMU. Specify the slot number
that the CMU has been installed.
680 CMU correction mode must be manual.
To perform the CMU correction by using the ADJ? command, set the
CMU correction mode to manual by using the ADJ command.
681 CMU correction mode must be off.
682 Invalid standard is specified as CMU correction.
683 Frequency index is not available for CMU correction.
684 AC Voltage is 0 mV.
685 CMU correction is not complete.
2000 SPGU module does not exist.
The SPGU channel number must be specified correctly.
2001 SPGU channel does not exist.
The SPGU channel number must be specified correctly.
2002 SPGU signal source does not exist.
The SPGU signal source number must be specified correctly.
2003 SPGU operation mode must be PG. (SIM 0).
2004 SPGU operation mode must be ALWG (SIM 1).
2051 Over voltage emergency occurred.
All modules stopped their output and opened their output relay.
2052 Over current emergency occurred.
All modules stopped their output and opened their output relay.

5-14 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

2053 High temperature emergency occurred.


All modules stopped their output and opened their output relay.
2054 Over voltage H/W SRQ detected.
Specified module stopped the output and opened the output relay.
2055 Over current H/W SRQ detected.
Specified module stopped the output and opened the output relay.
2056 High temperature H/W SRQ detected.
Specified module stopped the output and opened the output relay.
2101 Specified load impedance is out of absolute limits.
Set the appropriate impedance value to SER.
2103 Specified period is out of absolute limits.
Set the appropriate pulse period value to SPPER.
2104 Specified trigger count is out of absolute limits.
Set the appropriate count value to SPRM.
2105 Specified load voltage is out of range.
Set the appropriate voltage to SPV or ALW.
2106 Specified load voltage of added amplitude is out of range.
Set the appropriate voltage to SPV for setting the 3-level pulse output.
2107 Specified voltage is out of absolute limits (can't achieve amplitude).
Set the appropriate voltage to SPV. It must be the voltage which can be
applied under the present load impedance condition.
2108 Specified transition time is out of absolute limits.
Set the appropriate value of leading time or trailing time to SPT.
2111 Leading/0.8 must be within Width value.
Set the appropriate value to SPT. The pulse width value must be more
than leading time/0.8 value.
2112 Delay + Width + Trail/0.8 must be within Period value.
Set the appropriate value to SPT. The pulse period value must be more
than delay time+pulse width+trailing time/0.8 value.

Agilent B1500 Programming Guide, Edition 4 5-15


Error Messages
Operation Error

2113 Specified pulse delay is out of absolute limits.


Set the appropriate delay time value to SPT.
2114 Specified pulse width is out of absolute limits.
Set the appropriate pulse width value to SPT.
2115 Specified duration is out of absolute limits.
Set the appropriate duration value to SPRM.
2121 Delay + Width must be within Period value (ODSW Timing).
Set the appropriate value to ODSW. The period value must be more
than delay+width value.
2122 Specified ODSW delay timing parameter out of absolute limits.
Set the appropriate delay value to ODSW.
2123 Specified ODSW width timing parameter out of absolute limits.
Set the appropriate width value to ODSW.
2131 Delay + Interval * N must be within Period value (ADC Timing).
Set the appropriate value to CORRSER?. The period value must be
more than delay+interval×count value.
2132 Specified delay for DUT impedance measurement out of absolute
limits.
Set the appropriate delay time value to CORRSER?.
2133 Specified interval for DUT impedance measurement out of absolute
limits.
Set the appropriate interval value to CORRSER?.
2134 Specified count for DUT impedance measurement out of absolute
limits.
Set the appropriate count value to CORRSER?.
2151 ALWG Sequence Data is not ready.
Sequence data must be set by using ALS before starting the output.
2152 Specified ALWG Sequence Data size is out of absolute limits.
Set the appropriate sequence data to ALS. Too large data was specified.

5-16 Agilent B1500 Programming Guide, Edition 4


Error Messages
Operation Error

2153 Specified pattern index of ALWG Sequence Data is out of absolute


limits.
Set the appropriate sequence data to ALS. The pattern index in the
sequence data must be the index of a pattern defined in the pattern data.
2154 Specified repeat count of ALWG Sequence Data is out of absolute
limits.
Set the appropriate sequence data to ALS. The repeat count in the
sequence data must be 1 to 1048576.
2155 ALWG Pattern Data is not ready.
Pattern data must be set by using ALW before starting the output.
2156 Specified ALWG Pattern Data size is out of absolute limits.
Set the appropriate pattern data to ALW. Too large data was specified.
2157 Specified interval time of ALWG Pattern is out of absolute limits.
Set the appropriate pattern data to ALW. The incremental time value in
the pattern data must be 10 ns to 671.088630 ms in 10 ns resolution.
2158 Specified output voltage of ALWG Pattern Data is out of absolute
limits.
Set the appropriate pattern data to ALW. The output level value in the
pattern data must be 0 to ± 40 V in 1 mV resolution.

Agilent B1500 Programming Guide, Edition 4 5-17


Error Messages
Self-test/Calibration Error

Self-test/Calibration Error
When the Agilent B1500 fails the self-test or self-calibration, the Agilent B1500
returns the following error code and error message.
In the error code, N indicates the slot number. If the module is installed in slot 1, and
it fails the function test, the error code will be 1760.
700 CPU failed NVRAM read/write test.
701 CPU failed FPGA read/write test.
702 CPU failed H-RESOLN ADC end signal test.
703 CPU failed H-RESOLN ADC start signal test.
704 CPU failed emergency status signal test.
705 CPU failed SRQ status signal test.
706 CPU failed high voltage status signal test.
707 CPU failed low voltage status signal test.
708 CPU failed DAC settling status signal test.
709 CPU failed measure ready status signal test.
710 CPU failed set ready status signal test.
711 CPU failed measure end status signal test.
712 CPU failed measure trigger signal test.
713 CPU failed pulse trigger signal test.
714 CPU failed abort trigger signal test.
715 CPU failed DAC set trigger signal test.
720 H-RESOLN ADC is not installed.
721 H-RESOLN ADC failed ROM/RAM test.
722 H-RESOLN ADC failed B-COM offset DAC test.
723 H-RESOLN ADC failed sampling ADC test.
724 H-RESOLN ADC failed integrating ADC test.
725 H-RESOLN ADC failed bus function test.

5-18 Agilent B1500 Programming Guide, Edition 4


Error Messages
Self-test/Calibration Error

740 GNDU failed calibration.


935 CMU FPGA version mismatch.
2400 SPGU module is in TEST FAIL state.
2401 Digital H/W function test failed.
2402 CPLD access function test failed.
2403 CPLD version check test failed.
2404 CPLD revision check test failed.
2405 FPGA configuration test failed.
2406 FPGA access function test failed.
2407 FPGA version check test failed.
2408 FPGA revision check test failed.
2409 DCM function test failed.
2410 CONVEND interrupt function test failed.
2411 EMG interrupt function test failed.
2412 10 MHz clock test failed.
2413 FPGA SYNC SEL pin control function test failed.
2414 FPGA SYNC FB pin control function test failed.
2415 FPGA SYNC IN pin control function test failed.
2416 IDELAY function test failed.
2417 NVRAM access function test failed.
2418 ADC function test failed.
2419 SDRAM access function test failed.
2430 Module EEPROM CRC data is invalid.
2431 Module EEPROM CRC data of module data ID is invalid.
2432 Module EEPROM CRC data of format revision data is invalid.
2433 Module EEPROM CRC data of analog reference data is invalid.
2434 Module EEPROM CRC data of timing calibration data is
invalid.
2435 Module EEPROM CRC data is skew calibration data invalid.

Agilent B1500 Programming Guide, Edition 4 5-19


Error Messages
Self-test/Calibration Error

2450 Internal ADC function test failed.


2451 0.5 Vref Internal ADC function test failed.
2452 4.5 Vref Internal ADC function test failed.
2453 Power Amp initial test failed.
2454 Filter & Amp test failed.
2455 Internal temperature test failed.
2456 Internal output resistance test failed.
2481 Invalid frame configuration.
2482 Frame has no modules.
2483 PLL not locked in slave module.
2484 Reference line is not connected.
2485 Sync line is not connected.
2486 Interrupt line is not available.
2487 Module service request assertion test failed.
2488 Module service request detection test failed.
2489 Emergency interrupt is not available.
2500 SPGU calibration failed.
2501 Power Amp idling calibration failed.
2502 DAC output level calibration failed.
N760 SMU failed function test.
N761 SMU failed VF/VM function test.
N762 SMU failed IF/IM function test.
N763 SMU failed loop status test.
N764 SMU failed temperature sensor test.
N765 SMU failed CMR amplifier calibration.
N766 SMU failed CMR amplifier adjustment.
N767 SMU failed CMR 100 V range full output test.
N768 SMU failed VF/VM calibration.

5-20 Agilent B1500 Programming Guide, Edition 4


Error Messages
Self-test/Calibration Error

N769 SMU failed VM offset calibration.


N770 SMU failed VM gain calibration.
N771 SMU failed VF offset calibration.
N772 SMU failed VF gain calibration.
N773 SMU failed VF gain calibration at 20 V range.
N774 SMU failed VF filter offset calibration.
N775 SMU failed H-SPEED ADC self-calibration.
N776 SMU failed H-SPEED ADC VM offset calibration.
N777 SMU failed H-SPEED ADC VM gain calibration.
N778 SMU failed IF/IM calibration.
N779 SMU failed calibration bus test.
N780 SMU failed IM offset calibration.
N781 SMU failed IM gain calibration.
N782 SMU failed IF offset calibration.
N783 SMU failed IF gain calibration.
N784 SMU failed IDAC filter offset calibration.
N785 SMU failed oscillation detector test.
N786 SMU failed I bias test.
N787 SMU failed common mode rejection test.
N789 SMU failed high voltage detector test.
N790 SMU failed zero voltage detector test.
N791 SMU failed V hold test.
N792 SMU failed V switch test.
N800 CMU failed NULL DC offset adjustment.
N801 CMU failed NULL DC offset measurement.
N802 CMU failed VRD DC offset adjustment.
N803 CMU failed VRD heterodyne offset adjustment.
N804 CMU failed NULL gain/phase adjustment.

Agilent B1500 Programming Guide, Edition 4 5-21


Error Messages
Self-test/Calibration Error

N805 CMU failed MODEM offset adjustment.


N806 CMU failed relative Z adjustment.
N807 CMU failed Vch full scale measurement.
N808 CMU failed nominal gain measurement
N809 CMU failed extent range X3 adjustment.
N810 CMU failed range resistor 50ohm adjustment.
N811 CMU failed range resistor 1kohm adjustment.
N812 CMU failed range resistor 10kohm adjustment.
N813 CMU failed range resistor 100kohm adjustment.
N814 CMU failed relative Z calculation.
N820 CMU failed correction.
N830 CMU failed configuration test.
N831 SCUU failed SCUU configuration test.
N832 SCUU failed SMU configuration test.
N833 SCUU failed CMU configuration test.
N834 CMU failed digital function test.
N835 CMU failed CPLD test.
N836 CMU failed FPGA test.
N837 CMU failed EEPROM test.
N838 CMU failed PLL1/PLL2 test.
N839 CMU failed PLL DET low state test.
N840 CMU failed PLL DET high state test.
N841 CMU failed PLL1 lock test
N842 CMU failed PLL2 lock test.
N843 CMU failed PLL2 lock test.
N844 CMU failed Hcur DC and VRD ADC test.
N845 CMU failed DC offset test.
N846 CMU failed DC bias 0V test.

5-22 Agilent B1500 Programming Guide, Edition 4


Error Messages
Self-test/Calibration Error

N847 CMU failed DC bias -25V test.


N848 CMU failed DC bias +25V test.
N849 CMU failed PLL0 test.
N850 CMU failed PLL0 lock test.
N851 CMU failed PLL0 lock test.
N852 CMU failed DDS test.
N853 CMU failed DDS1 test.
N854 CMU failed DDS2 test.
N855 CMU failed VRD normalizer test.
N856 CMU failed RA1 test.
N857 CMU failed RA2 test.
N858 CMU failed ExR test.
N859 CMU failed R_LPF2 f1 test.
N860 CMU failed MODEM DAC test.
N861 CMU failed N_II_DAC test.
N862 CMU failed N_QI_DAC test.
N863 CMU failed N_IQ_DAC test.
N864 CMU failed N_QQ_DAC test.
N865 CMU failed TRD normalizer test.
N866 CMU failed NA1 test.
N867 CMU failed NA2 test.
N868 CMU failed NA3 test.
N869 CMU failed N_LPF1 f2 test.
N870 CMU failed N_LPF1 f3 test.
N871 CMU failed N_LPF1 f4 test.
N872 CMU failed N_LPF1 f5 test.
N873 SCUU failed EEPROM test.
N874 SCUU failed output relay test.

Agilent B1500 Programming Guide, Edition 4 5-23


Error Messages
Self-test/Calibration Error

N875 SCUU failed control test.


N876 SCUU failed CG2 test.
N877 SCUU failed LRL test.
N880 CMU failed Hcur AC and VRD Fm test.
N881 CMU failed SA/RA 32mV test.
N882 CMU failed SA/RA 64mV test.
N883 CMU failed SA/RA 125mV test.
N884 CMU failed SA/RA 250mV test.
N885 CMU failed ExR test.
N886 CMU failed Bias_chg test.
N887 CMU failed R_LPF2/R_HPF_vs test.
N888 CMU failed VRD IF test.
N889 CMU failed IRM local 0deg test.
N890 CMU failed IRM local 90deg test.
N891 CMU failed S_LPF1 f1 120kHz test.
N892 CMU failed S_LPF1 f2 500kHz test.
N893 CMU failed S_LPF1 f3 2MHz test.
N894 CMU failed S_LPF1 f4 5MHz test.
N895 CMU failed TRD MODEM test.
N896 CMU failed VG local 90deg test.
N897 CMU failed VG local 0deg test.
N898 CMU failed NA4 test.
N899 CMU failed NA5 X1/4 test.
N900 CMU failed NA5 X1/8 test.
N901 CMU failed N_LPF2 f2 500kHz test.
N902 CMU failed N_LPF2 f3 5MHz test.
N903 CMU failed MODEM PSD test.
N904 CMU failed PSD 0deg test.

5-24 Agilent B1500 Programming Guide, Edition 4


Error Messages
Self-test/Calibration Error

N905 CMU failed PSD 90deg test.


N906 CMU failed Rr/Rf 100ohm test.
N907 CMU failed Rr/Rf 1kohm test.
N908 CMU failed Rr/Rf 10kohm test.
N909 CMU failed Rr/Rf 100kohm test.
N910 CMU failed TRD IVAmp test.
N911 CMU failed N_HPF1/N_LPF1 10kHz test.
N912 CMU failed N_HPF1/N_LPF1 200kHz test.
N913 CMU failed N_HPF1/N_LPF1 1MHz test.
N914 CMU failed N_HPF1/N_LPF1 2MHz test.
N915 CMU failed N_HPF1/N_LPF1 5MHz test.
N916 CMU failed NA1 test.
N917 CMU failed NA2 test.
N918 CMU failed NA3 test.
N919 CMU failed IV saturation detector test.
N920 CMU failed normal status test.
N921 CMU failed normal status test.
N922 CMU failed IV saturation status test.
N923 CMU failed IV saturation status test.
N924 CMU failed unbalance detector test.
N925 CMU failed normal status test.
N926 CMU failed normal status test.
N927 CMU failed unbalance status test.
N928 CMU failed unbalance status test.
N929 CMU failed over current detector test.
N930 CMU failed normal status test.
N931 CMU failed normal status test.
N932 CMU failed over current status test.

Agilent B1500 Programming Guide, Edition 4 5-25


Error Messages
Self-test/Calibration Error

N933 CMU failed over current status test.

5-26 Agilent B1500 Programming Guide, Edition 4

You might also like