Contents
HP E1429A/B Digitizer User’s Manual
Contents
HP E1429A/B Digitizer User’s Manual
1
Download from Www.Somanuals.com. All Manuals Search And Download.
Contents
HP E1429A/B Digitizer User’s Manual
3
Download from Www.Somanuals.com. All Manuals Search And Download.
4
HP E1429A/B Digitizer User’s Manual
Contents
Download from Www.Somanuals.com. All Manuals Search And Download.
Contents
HP E1429A/B Digitizer User’s Manual
5
Download from Www.Somanuals.com. All Manuals Search And Download.
Appendix A. Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
A24 Register Table
6
HP E1429A/B Digitizer User’s Manual
Contents
Download from Www.Somanuals.com. All Manuals Search And Download.
Example Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
Contents
HP E1429A/B Digitizer User’s Manual
7
Download from Www.Somanuals.com. All Manuals Search And Download.
8
HP E1429A/B Digitizer User’s Manual
Contents
Download from Www.Somanuals.com. All Manuals Search And Download.
Certification
Hewlett-Packard Company certifies that this product met its published specifications at the time of shipment from the factory. Hewlett-
Packard further certifies that its calibration measurements are traceable to the United States National Institute of Standards and Technol-
ogy (formerly National Bureau of Standards), to the extent allowed by that organization’s calibration facility, and to the calibration
facilities of other International Standards Organization members.
Warranty
This Hewlett-Packard product is warranted against defects in materials and workmanship for a period of three years from date of ship-
ment. Duration and conditions of warranty for this product may be superseded when the product is integrated into (becomes a part of)
other HP products. During the warranty period, Hewlett-Packard Company will, at its option, either repair or replace products which
prove to be defective.
For warranty service or repair, this product must be returned to a service facility designated by Hewlett-Packard (HP). Buyer shall pre-
pay shipping charges to HP and HP shall pay shipping charges to return the product to Buyer. However, Buyer shall pay all shipping
charges, duties, and taxes for products returned to HP from another country.
HP warrants that its software and firmware designated by HP for use with a product will execute its programming instructions when
properly installed on that product. HP does not warrant that the operation of the product, or software, or firmware will be uninterrupted
or error free.
Limitation Of Warranty
The foregoing warranty shall not apply to defects resulting from improper or inadequate maintenance by Buyer, Buyer-supplied prod-
ucts or interfacing, unauthorized modification or misuse, operation outside of the environmental specifications for the product, or im-
proper site preparation or maintenance.
The design and implementation of any circuit on this product is the sole responsibility of the Buyer. HP does not warrant the Buyer’s
circuitry or malfunctions of HP products that result from the Buyer’s circuitry. In addition, HP does not warrant any damage that oc-
curs as a result of the Buyer’s circuit or any defects that result from Buyer-supplied products.
NO OTHER WARRANTY IS EXPRESSED OR IMPLIED. HP SPECIFICALLY DISCLAIMS THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Exclusive Remedies
THE REMEDIES PROVIDED HEREIN ARE BUYER’S SOLE AND EXCLUSIVE REMEDIES. HP SHALL NOT BE LIABLE
FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER BASED ON CON-
TRACT, TORT, OR ANY OTHER LEGAL THEORY.
Notice
The information contained in this document is subject to change without notice. HEWLETT-PACKARD (HP) MAKES NO WAR-
RANTY OF ANY KIND WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR-
RANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. HP shall not be liable for errors contained
herein or for incidental or consequential damages in connection with the furnishing, performance or use of this material. This docu-
ment contains proprietary information which is protected by copyright. All rights are reserved. No part of this document may be photo-
copied, reproduced, or translated to another language without the prior written consent of Hewlett-Packard Company. HP assumes no
responsibility for the use or reliability of its software on equipment that is not furnished by HP.
Restricted Rights Legend
The Software and Documentation have been developed entirely at private expense. They are delivered and licensed as "commercial
computer software" as defined in DFARS 252.227-7013 (Oct 1988), DFARS 252.211-7015 (May 1991) or DFARS 252.227-7014
(Jun 1995), as a "commercial item" as defined in FAR 2.101(a), or as "Restricted computer software" as defined in FAR 52.227-19
(Jun 1987) (or any equivalent agency regulation or contract clause), whichever is applicable. You have only those rights provided for
such Software and Documentation by the applicable FAR or DFARS clause or the HP standard software agreement for the product involved.
HP E1429A/B 20 MSa/s 2-Channel Digitizer User’s Manual
Edition 2
Copyright © 1993 Hewlett-Packard Company. All Rights Reserved.
HP E1429A/B 20 MSa/s 2-Channel Digitizer User’s Manual
9
Download from Www.Somanuals.com. All Manuals Search And Download.
Documentation History
All Editions and Updates of this manual and their creation date are listed below. The first Edition of the manual is Edition 1. The Edi-
tion number increments by 1 whenever the manual is revised. Updates, which are issued between Editions, contain replacement pages
to correct or add additional information to the current Edition of the manual. Whenever a new Edition is created, it will contain all of
the Update information for the previous Edition. Each new Edition or Update also includes a revised copy of this documentation his-
tory page.
Edition 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . March 1993
Edition 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . June 1993
Safety Symbols
Instruction manual symbol affixed to prod-
Alternating current (AC).
Direct current (DC).
uct. Indicates that the user must refer to the
manual for specific WARNING or CAU-
TION information to avoid personal injury
or damage to the product.
Indicates hazardous voltages.
Indicates the field wiring terminal that must
be connected to earth ground before operat-
ing the equipment—protects against electri-
cal shock in case of fault.
Calls attention to a procedure, practice, or
condition that could cause bodily injury or
death.
WARNING
CAUTION
Calls attention to a procedure, practice, or con-
dition that could possibly cause damage to
equipment or permanent loss of data.
Frame or chassis ground terminal—typi-
cally connects to the equipment’s metal
frame.
or
WARNINGS
The following general safety precautions must be observed during all phases of operation, service, and repair of this product.
Failure to comply with these precautions or with specific warnings elsewhere in this manual violates safety standards of design,
manufacture, and intended use of the product. Hewlett-Packard Company assumes no liability for the customer’s failure to
comply with these requirements.
Ground the equipment: For Safety Class 1 equipment (equipment having a protective earth terminal), an uninterruptible safety earth
ground must be provided from the mains power source to the product input wiring terminals or supplied power cable.
DO NOT operate the product in an explosive atmosphere or in the presence of flammable gases or fumes.
For continued protection against fire, replace the line fuse(s) only with fuse(s) of the same voltage and current rating and type.
DO NOT use repaired fuses or short-circuited fuse holders.
Keep away from live circuits: Operating personnel must not remove equipment covers or shields. Procedures involving the removal
of covers or shields are for use by service-trained personnel only. Under certain conditions, dangerous voltages may exist even with the
equipment switched off. To avoid dangerous electrical shock, DO NOT perform procedures involving cover or shield removal unless
you are qualified to do so.
DO NOT operate damaged equipment: Whenever it is possible that the safety protection features built into this product have been im-
paired, either through physical damage, excessive moisture, or any other reason, REMOVE POWER and do not use the product until
safe operation can be verified by service-trained personnel. If necessary, return the product to a Hewlett-Packard Sales and Service Of-
fice for service and repair to ensure that safety features are maintained.
DO NOT service or adjust alone: Do not attempt internal service or adjustment unless another person, capable of rendering first aid
and resuscitation, is present.
DO NOT substitute parts or modify equipment: Because of the danger of introducing additional hazards, do not install substitute
parts or perform any unauthorized modification to the product. Return the product to a Hewlett-Packard Sales and Service Office for
service and repair to ensure that safety features are maintained.
10 HP E1429A/B 20 MSa/s 2-Channel Digitizer User’s Manual
Download from Www.Somanuals.com. All Manuals Search And Download.
Declaration of Conformity
according to ISO/IEC Guide 22 and EN 45014
Manufacturer’s Name:
Hewlett-Packard Company
Loveland Manufacturing Center
Manufacturer’s Address:
815 14th Street S.W.
Loveland, Colorado 80537
declares, that the product:
Product Name:
Model Number:
Product Options:
20MS a/s Digitizer
HP E1429A
All
conforms to the following Product Specifications:
Safety:
EMC:
IEC 1010-1 (1990) Incl. Amend 1 (1992)/EN61010-1 (1993)
CISPR 11:1990/EN55011 (1991): Group1 Class A
IEC 801-2:1991/EN50082-1 (1992): 4kVCD, 8kVAD
IEC 801-3:1984/EN50082-1 (1992): 3 V/m
IEC 801-4:1988/EN50082-1 (1992): 1kV Power Line
Supplementary Information: The product herewith complies with the requirements of the Low Voltage Directive
73/23/EEC and the EMC Directive 89/336/EEC.
Tested in a typical configuration in an HP C-Size VXI mainframe.
March 1, 1993
Jim White, QA Manager
European contact: Your local Hewlett-Packard Sales and Service Office or Hewlett-Packard GmbH, Department
ZQ/Standards Europe, Herrenberger Straße 130, D-7030 Böblingen, Germany (FAX +49-7031-143143).
HP E1429A/B 20 MSa/s 2-Channel Digitizer User’s Manual 11
Download from Www.Somanuals.com. All Manuals Search And Download.
Notes
12 HP E1429A/B 20 MSa/s 2-Channel Digitizer User’s Manual
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started
Chapter Contents
This chapter covers the features, configuration, and programming
procedures for the HP E1429A/B 2-Channel, 20 MSa/s Digitizer. The main
sections of this chapter include:
• HP E1429A/B Features and VXIbus Configuration . . . . . . . 13
• Preparation for Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
• Introductory Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Sending the *IDN? Command . . . . . . . . . . . . . . . . . . . . . . 20
Digitizer Self-Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Resetting and Clearing the Digitizer . . . . . . . . . . . . . . . . . 23
Querying the Digitizer Configuration . . . . . . . . . . . . . . . . 25
• Instrument and Programming Languages . . . . . . . . . . . . . . . 28
• Introduction to Programming. . . . . . . . . . . . . . . . . . . . . . . . . 33
• Where to go Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
HP E1429A/B Features and VXIbus Configuration
The HP E1429A/B is a 2-Channel, 20 MSample/second digitizer. The
HP E1429A/B digitizers are VXI message-based instruments, but can also
be programmed at the register level (register programming is covered in
Appendix C). The features of the HP E1429A and HP E1429B are the same,
except that the HP E1429B also has VXI Local bus data transfer capability.
This manual covers the use of both digitizers.
Front Panel Figure 1-1 describes the front panels of the HP E1429A/B digitizers.
Description
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 13
Figure 1-1. The HP E1429A/B Digitizer
Download from Www.Somanuals.com. All Manuals Search And Download.
14 Getting Started
Chapter 1
HP E1429A/B Table 1-1 lists the digitizer’s VXIbus device information and factory
settings. Appendix A has the complete list of HP E1429A/B operating
specifications.
VXIbus
Configuration
Table 1-1. HP E1429A/B VXIbus Configuration
VXIbus Device Information
Device type: message-based servant
C-size (1 slot)
Connectors: P1 and P2
Addressing modes: A16/A24
Data transfer modes: D08/D16/D32 slave
A24 size: 4096 bytes
Dynamically Configurable
Non-interrupter/non-interrupt handler
VXIbus Revision Compliance: 1.4
SCPI Revision: 1992.0
See side of module for power/cooling requirements
HP E1429A/B Factory Settings
Parameter
Logical Address
Servant Area
Setting
40
0 (not used)
3
Bus Request Level
Input signals (DC and AC) which may be connected to this module are
likely to include occasional overvoltage transients. These
overvoltages may be caused by motor inductances, switching circuits,
lightning, etc.
If the input signal is likely to exhibit transients greater than 800 Vpk,
add external transient suppression circuitry to reduce transients to
800 Vpk or less.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 15
Caution
The 800 Vpk level is a product safety test specification and
does not assure correct product operation if 800 Vpk transients
have been applied. To maintain product functionality and
performance, do not exceed ±42 Vpk on the single-ended
inputs, or ±102.4 Vpk on the differential inputs.
Preparation for Use
This section contains configuration information specific to the
HP E1429A/B digitizer.
Note
For more (VXIbus) system configuration information, refer to the C-Size
VXIbus Systems “Installation and Getting Started Guide".
The Digitizer The HP E1429A/B digitizer logical address is used:
Logical Address
• to place the digitizer in the servant area of a commander
(e.g. HP E1406 Command Module, embedded controller, or another
instrument).
• to address the digitizer (see “Addressing the Digitizer” or “ Using
an Embedded Controller” later in this chapter.)
Assigning the Digitizer In a VXIbus system, every device must be in the servant area of a
commander (with the exception of the top-level comander).
to a Commander
Note the following when assigning the digitizer to a commander:
• A commander’s servant area is defined as:
Servant area = (logical address + 1) through (logical address +
servant area switch setting)
• The HP E1429A/B digitizer is a message-based device. If an
embedded controller and an HP E1406 Command Module are part of
your VXIbus system, put the digitizer in the servant area of the
controller. This enables you to program the digitizer at higher speeds
across the VXIbus backplane, rather than over the Hewlett-Packard
Interface Bus (HP-IB*) via the Command Module.
* HP-IB is Hewlett-Packard’s implementation of IEEE Std. 488.1-1978
Download from Www.Somanuals.com. All Manuals Search And Download.
16 Getting Started
Chapter 1
• If your system uses an external controller and the HP E1406
Command Module, put the digitizer in the servant area of the
Command Module. This enables the module to function as the
HP-IB interface to the digitizer.
The HP E1406 Command Module has a factory set logical address of
0 and a servant area switch setting of 255. Using the factory settings,
it is not necessary to change the logical address of the digitizer (40)
to place it in the servant area of the Command Module.
• If the digitizer is used with the HP E1485 Digital Signal Processing
(DSP) module, the digitizer must be in the servant area of the DSP
module.
The digitizer’s logical address switch is shown in Figure 1-2.
Figure 1-2. HP E1429A/B Logical Address Switch Location
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 17
Note
The digitizer’s servant area switches are not used and should be left in their
factory-set (0) position.
The Digitizer Bus The bus request level is a priority at which the HP E1429A/B digitizer can
request the use of the VME (VXI Data Transfer) Bus.
Request Level
Bus Request Level
Guidelines
• There are four bus request lines (BG0 - BG3) from which one is
selected (Figure 1-2). Bus request line 3 has the highest priority, bus
request line 0 has the lowest priority. It is not necessary to change
the bus request level setting (BG3) on the digitizer.
• More information on the Data Transfer Bus can be found in the
C-Size VXIbus Systems “Installation and Getting Started Guide”.
Installing the The HP E1429A/B digitizer can be installed in any mainframe slot except
slot 0. However, in applications where the HP E1429B is generating data
Digitizer
over the Local bus, install the digitizer in the left slot adjacent to the
module(s) receiving the data. Figure 1-3 shows the installation of a sample
Local bus configuration.
Figure 1-3. Installing the HP E1429B Digitizer in a Local Bus Configuration
Download from Www.Somanuals.com. All Manuals Search And Download.
18 Getting Started
Chapter 1
Note
For compliance with European EMC standards EN 55011 and
EN 50082-1, backplane connector shields are included with each
HP E1429A/B digitizer ordered. The shields need only be installed in the
VXI mainframe if it is necessary to comply with these standards.
Addressing the Devices in the Series C mainframe and in the servant area of the HP E1406
Command Module are located by an HP-IB address. The HP-IB address is a
Digitizer over HP-IB
combination of the controller’s interface select code, the Command
Module’s primary HP-IB address, and the device’s secondary HP-IB
address. An address in this form appears as:
70905
Interface Select Code (7): Determined by the address of the HP-IB
interface card in the controller. In most Hewlett-Packard controllers, this
card has a factory set address of 7, including the HP 82335 HP-IB Interface
Card (this card was used with an HP Vectra AT compatible personal
computer to create the C programs on the example programs disk).
Primary HP-IB Address (09): This is the address of the HP-IB port on the
Command Module. Valid addresses are 0 to 30. The Command Module has
a factory set address of 9.
Secondary HP-IB Address (05): This address is derived from the logical
address of the digitizer by dividing the logical address by 8. Thus, for the
HP E1429A/B digitizer factory set logical address of 40, the secondary
address is 05.
Addressing the As a message-based device, the HP E1429A/B digitizer can easily be
programmed across the VXIbus backplane from a HP E1499A V/382
embedded controller. The select code of the VXI interface board in
embedded controllers is typically 16. Since no secondary HP-IB address is
required when programming over the backplane, the logical address of the
HP E1429A/B digitizer is combined with the VXI interface select code:
Digitizer using an
Embedded
Controller
1640 (for device logical address 40; range = 01 to 99)
If the digitizer’s logical address is changed to a value greater than 99, the
address becomes:
160xxx
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 19
Introductory Programs
The introductory programs in this section include:
• Sending the *IDN? Command
• Digitizer Self-Test
• Resetting the digitizer and clearing the status registers
• Querying the digitizer configuration
HP BASIC and C language versions of the introductory programs follow. C
language versions of these and all programs in the manual are contained on
the following disk which ships with the manual:
• HP E1429A/B Example Programs: C Language
3.5" 720 KByte disk (HP E1429-10302)
Other than the introductory programs and selected programs throughout the
manual, the program listings show only the digitizer commands.
Sending the *IDN? The following programs are a fast method for determining if the digitizer is
set to the intended address and is communicating with the computer. The
programs send the *IDN? command which returns:
Command
HEWLETT-PACKARD,E1429A,0,A.02.00
HP BASIC
10 !Send the *IDN? command, enter and display the result.
20 DIM Message$[80]
30 OUTPUT 70905;"*IDN?"
40 ENTER 70905;Message$
50 PRINT Message$
60 END
IDN.C
/* IDN.C - This program sends the *IDN? command to the digitizer as a */
/* way to determine if the computer is communicating with the digitizer */
/* Include the following header files */
#include <stdio.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
#define ADDR 70905 /* I/O path from the PC to the digitizer */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
20 Getting Started
Chapter 1
/****************************************************************************/
void main(void)
{
/* Run the program */
char
message[80];
intlength = 80;
IOOUTPUTS(ADDR, "*IDN?", 5);
/* send *IDN? command */
IOENTERS(ADDR, message, &length); /* enter *IDN? response */
printf("%s\n", message);
/* print*IDN? response */
}
Digitizer Self-Test The digitizer self-test is executed with the command:
*TST?
The digitizer parameters tested include:
• internal interrupt lines
• measurement range integrity
• measurement RAM integrity
• battery charge
• timebase integrity
The self-test takes approximately 30 seconds to complete. Upon completion,
one of the self-test codes listed in Table 1-2 is returned.
Table 1-2. HP E1429A/B Self-Test Codes.
Self-Test Code
Description
0
1
Test passed
Test failed. An error message describes the failure.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 21
Caution
Executing the self-test erases the readings in the digitizer’s
non-volatile memory.
If the self-test fails, the command:
DIAGnostic:TEST?
can be executed to obtain additional information on the failure. Note that
DIAGnostic:TEST can return a string up to 40 characters.
HP BASIC
10 !Send the self-test command, enter and display the result.
20 DIM Message$[256],Diagnostic$[40]
30 OUTPUT 70905;"*TST?"
40 ENTER 70905;Rslt
50 IF Rslt <>0 THEN
60
70
REPEAT
OUTPUT 70905;"SYST:ERR?"
80
90
ENTER 70905;Code,Message$
PRINT Code,Message$
100
110
120
130
UNTIL Code =0
OUTPUT 70905;"DIAG:TEST?"
ENTER 70905;Diagnostic$
PRINT Diagnostic$
140 END IF
150 PRINT Rslt
160 END
SLFTST.C
/* SLFTST.C - This program performs a self-test on the digitizer and prints */
/* out the resulting self-test code */
/* Include the following header files */
#include <stdio.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
#define ADDR 70905L
Continued on Next Page
/* I/O path from the PC to the digitizer, via the E1406 */
Download from Www.Somanuals.com. All Manuals Search And Download.
22 Getting Started
Chapter 1
/****************************************************************************/
void main(void)
{
/* Run the program */
char
message[256], diagnostic[80];
intlength = 256;
float
tst;
IOOUTPUTS(ADDR, "*TST?", 5);
IOENTER(ADDR, &tst);
/* send the self-test command */
/* enter the code */
printf("%d\n\n", (int) tst);
/* display the code */
if (tst != 0)
{
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, message, &length);
/* query error register */
/* enter error message */
printf("Error: %s\n\n", message);
/* print error message */
IOOUTPUTS(ADDR, "DIAG:TEST?", 10);
IOENTERS(ADDR, diagnostic, &length);
/* get diagnostic information */
/* on self-test error */
printf("Diagnostic information: %s\n", diagnostic);
}
}
Resetting and The commands used to reset and clear the digitizer are:
Clearing the
*RST
*CLS
Digitizer
*OPC? (OPeration Complete) is often executed after *RST and *CLS to
allow the reset and clear to complete before program execution continues.
Resetting the digitizer sets it to its power-on configuration, and clearing the
digitizer clears its status registers. Additional information on the status
registers is located in Chapter 3.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 23
HP BASIC
10 !Assign an I/O path between the computer and digitizer.
20 ASSIGN @A_d TO 70905
30 COM @A_d
40 !Call the subprogram
50 Rst_cls
60 END
70
!
80 SUB Rst_cls
90 Rst_cls: !subprogram which resets and clears the digitizer.
100
110
120
COM @A_d
OUTPUT @A_d;"*RST;*CLS;*OPC?" !reset and clear
ENTER @A_d;Complete
130 SUBEND
RSTCLS.C
/* RSTCLS.C - This program resets the digitizer and clears its status register */
/* Include the following header files */
#include <stdio.h>
#include <cfunc.h>
#define ADDR 70905L
/* Function Prototypes */
void rst_clr(void);
/* This file is from the HP-IB Command Library Disk */
/* I/O path from PC to the digitizer, via the E1406 */
/****************************************************************************/
void main(void)
/* Run the program */
{
rst_clr();
}
/* Reset and clear the digitizer */
/****************************************************************************/
void rst_clr(void)
{
IOOUTPUTS(ADDR, "*RST;*CLS", 9);
/* reset and clear the digitizer*/
}
Download from Www.Somanuals.com. All Manuals Search And Download.
24 Getting Started
Chapter 1
Querying the After resetting the digitizer or cycling power, the digitizer parameters are
set to their power-on values. These values are listed in Appendix B, Table
B-2. You can determine the digitizer’s reset settings or its current
configuration using the command:
Digitizer
Configuration
*LRN?
The data returned by *LRN? is a semicolon (;) separated list of each
parameter setting.
HP BASIC
10 !Assign an I/O path between the computer and the A/D.
20 ASSIGN @A_d TO 70905
30 !Call the subprogram
40 Lrn_conf(@A_d)
50 END
60
!
70 SUB Lrn_conf(@A_d)
80 Lrn_conf: !subprogram which queries the digitizer configuration
90
DIM Lrn$[2000]
INTEGER I
OUTPUT @A_d;"*LRN?"
ENTER @A_d;Lrn$
Lrn$=Lrn$&";"
100
110
120
130
140
150
160
170
180
REPEAT
I=POS(Lrn$,";")
PRINT Lrn$[1;I-1]
Lrn$=Lrn$[I+1]
UNTIL Lrn$=""
190 SUBEND
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 25
LRN.C
This program uses a 2,000 element character array. To prevent stack
overflow errors when compiling and running this program using
Microsoft® QuickC©, change the stack size using the /F option of the
“qcl” command. An example of how this program might be compiled is:
qcl /AL /F 8192 b:\lrn.c c:\qc2\lib\clhpib.lib
/* LRN.C - This program queries the digitizer’s reset conditions */
/* Include the following header files */
#include <stdio.h>
#include <string.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
/* I/O path from PC to the digitizer, via the E1406 */
#define ADDR 70905L
/****************************************************************************/
void main(void)
{
/* Run the program */
char static *codes[] = {"*RST","*LRN?;*OPC?"};
char lrndata[2000], *prt, ch;
int loop,
length = 2000;
/* Execute each command group using a loop */
for (loop = 0; loop < (sizeof(codes) / sizeof(char*)); loop++ )
IOOUTPUTS( ADDR, codes[loop], strlen(codes[loop]));
/* Enter data returned by *LRN into string */
IOENTERS(ADDR, lrndata, &length);
/* Start line counter */
loop = 1;
/* Separate *LRN? data into tokens delimited by ";". Read and */
/* print the first *LRN? data point */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
26 Getting Started
Chapter 1
prt = strtok(lrndata,";");
printf("\n\t%s",prt);
/* Print out each (*LRN? data) token */
while (prt != NULL)
{
prt = strtok(NULL,";");
/* Exit when data returned by *OPC? (1) is reached */
if (atoi(prt) == 1)
break;
/* Print one user screen’s worth of *LRN? data, have user */
/* press ’Enter’ to see the next screen of data */
if (loop >= 23)
{
printf("\n\nPress \’Enter\’ to continue");
scanf("%c", &ch);
fflush(stdin);
loop = 0;
}
printf("\n\t%s",prt);
loop ++;/* increment counter */
}
}
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 27
Instrument and Programming Languages
The purpose of this manual is to teach you how to use the HP E1429A/B
digitizer. To do this, the manual uses block diagrams, flowcharts, and
example programs. In most cases, the manual’s example programs list only
the digitizer’s SCPI commands. The I/O (input/output) constructs depend on
the programming language you use.
SCPI Programming SCPI (Standard Commands for Programmable Instruments) is an
ASCII-based instrument command language designed for test and
measurement instruments. The message-based digitizer has an on-board
microprocessor which interprets the ASCII command strings and returns
ASCII formatted results.
Command Listings The typical format of commands listed in the command reference and
throughout this manual is:
TRIGger[:STARt]:TIMer1 <period>
To aid in learning the digitizer command set, all headers are included
in the example programs; however, the headers are abbreviated. In an
example program, the previous statement with a period parameter of
10 µs would appear as:
TRIG:STAR:TIM1 10E-6
Note
Chapter 4 contains more information on the structure and execution of SCPI
commands.
Coupled Commands Some of the digitizer SCPI commands are functional or value coupled.
Functionally coupled commands are those that for one command to have
affect, another command must be set to a particular value. Value coupled
commands are those where changing the value of one command, changes
the value of the others.
Download from Www.Somanuals.com. All Manuals Search And Download.
28 Getting Started
Chapter 1
Coupled commands can cause “Settings conflict” errors when the program
executes. When a coupled command is executed, the command setting is
evaluated by the digitizer processor. If the setting causes an illegal digitizer
configuration, a "Settings conflict" error occurs. The error message lists the
conflicting settings, and then reports the values set by the digitizer processor.
The "Comments" section of each command reference entry (Chapter 4)
indicates if a command is coupled, and if it is, what the coupling constraints
are.
How to Execute To prevent possible "Settings conflict" errors, coupled commands must be
contiguous and executed in the same program statement. This is done by
placing the commands in the same program line, or for HP BASIC
programs, by suppressing the EOL terminator until the last (coupled)
command has been sent.
Coupled Commands
To send multiple commands in a single line or in a single statement, the
commands are linked with a semicolon (;) and a colon (:). This is illustrated
in the following lines:
OUTP:EXT1:STAT ON;:TRIG:SOUR EXT1;:OUTP:EXT1:STAT OFF
or
OUTP:EXT1:STAT ON;
:TRIG:SOUR EXT1;
:OUTP:EXT1:STAT OFF
Notice that the semicolon (;) and colon (:) link commands within different
subsystems. Only a semicolon (;) is required to link commands at the same
level within the same subsystem.
Sending the commands as shown prevents "Settings conflict" errors. The
command settings are not evaluated until the EOL terminator is received
after the last command. If these commands were sent individually (an EOL
terminator after each command), a "Settings conflict" error would occur
because of the coupling between OUTP:EXT1:STAT ON and TRIG:SOUR
EXT1.
Terminating A SCPI command string is terminated with a line feed (LF) and/or with an
End Or Identify (EOI) message. The carriage return (CR) is ignored.
Commands
Suppressing the Suppressing the end-of-line (EOL) terminator on a command line allows
coupled commands to be sent on separate lines, yet as a single program
statement. In HP BASIC programs, the EOL terminator is suppressed by
End-Of-Line
Terminator
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 29
placing a semicolon ( ; ) following the quotation mark ( " ) which closes the
command string:
OUTPUT 70905;"OUTP:EXT1:STAT ON;";
OUTPUT 70905;":TRIG:SOUR EXT1;";
OUTPUT 70905;":OUTP:EXT1:STAT OFF"
Since the last command is the end of the command string, the EOL
terminator is not suppressed.
Note
In the C language programs contained in this manual, there is no end-of-line
terminator to suppress as the commands are executed as elements of an
array.
C Language The C language versions of the example programs (disk P/N E1429-10301)
were written for the HP 82335 HP-IB Interface Card using the HP-IB
Command Library for C. Unless otherwise noted, the library functions used
in the programs are compatible with the ANSI C standard.
Programs
The following section identifies the system on which the programs were
written, shows how to compile and link the programs, and describes the
structure of an example program.
System Configuration The C programs were developed on the following system:
Controller:
HP Vectra 386/25 personal computer
(386 processor operated at 25 MHz)
HP-IB Interface Card:
HP 82335 HP-IB Interface with
Command Library
Mainframe:
HP 75000 Series C
Slot0/Resource Manager:
HP E1406 Command Module
HP E1429A/B Logical Address: 40
Instrument Language:
SCPI
Download from Www.Somanuals.com. All Manuals Search And Download.
30 Getting Started
Chapter 1
C Compilers Used The C Language programs were compiled (and tested) using the following
compilers:
• Microsoft® QuickC© Version 2.0
• Borland Turbo C++© Version 1.0
Compiling and Linking To run a C program, you must compile and link the program to make an
executable file. To compile and link a program:
the Programs
• Be sure the necessary paths have been added to the
AUTOEXEC.BAT file for the compilers to find the library and
header files (see the appropriate C Language manual to set the
proper paths).
• Link the appropriate HP-IB C library (located on the HP-IB
Command Library disk that came with the HP-IB Interface Card).
Use the following libraries:
– Microsoft® QuickC©: clhpib.lib
– Turbo C++©: tchhpib.lib
• If NOT compiling in the Large/Huge memory model, include the
“cfunc.h” header file (located on the HP-IB Command Library disk)
in the program.
Command Line Compiling
To compile and link the programs from the DOS command line using the
Large memory model, execute the following from the directory containing
“qcl” or “tcc”.
• Microsoft® QuickC©:
qcl /AL <path \program name > <path \clhpib.lib >
e.g. qcl /AL b:\input.c c:\qc2\lib\clhpib.lib
• Turbo C++©:
tcc -ml <path \program name > <path \tchhpib.lib >
e.g. tcc -ml b:\input.c c:\tc\lib\tchhpib.lib
Change the “/AL” and “-ml” parameters to the appropriate types when
compiling in the smaller memory models (see your C language manual for
the parameter type). For some programs executed under the Microsoft®
QuickC© environment, if may be necessary to change the stack size using
the /F option of the ’qcl’ command.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 31
Once compiled and linked, an executable file (.EXE) and object file (.OBJ)
are created in the current directory. You execute the program by typing and
entering the file name (with the .EXE extension).
Compiling in the Integrated Environment
You can compile, link, and run your C programs from the Microsoft®
QuickC© or Turbo C++© integrated environments. To do so, add:
program_name.C
CLHPIB.LIB
to the program list (under the "Make" menu) in the Microsoft® QuickC©
environment. Under ’Environment’ in the "Options" menu, include paths to
the header files and external CLHPIB.LIB library. For example:
Include Files Directory: [c:\qc2\include]
Library Files Directory: [c:\qc2\lib]
In the Turbo C++© environment, add the items:
program_name.C
TCHHPIB.LIB
to the project (under the "Project" menu). Under ’Directories ...’ in the
"Options" menu, include paths to the header files and external
TCHHPIB.LIB library. For example:
Include Directories
C:\TC\INCLUDE
Library Directories
C:\TC\LIB
C Program Format The general format of the C language programs on the example programs
disk is shown in the program listings at the end of this chapter. Generally,
the program flow is:
• reset and clear the digitizer
• configure the digitizer
• check for configuration errors
• trigger the digitizer and retrieve the readings
Download from Www.Somanuals.com. All Manuals Search And Download.
32 Getting Started
Chapter 1
Introduction to Programming
The SCPI commands used to program the digitizer are separated into two
groups: common commands and subsystem commands. Common
commands begin with an asterisk, and include commands such as *RST,
*CLS, *OPC?. Chapter 4 contains a complete listing of the digitizer’s
common commands.
Subsystem commands are those commands which configure the digitizer.
Each subsystem is a set of commands that roughly corresponds to a
functional block inside the digitizer. Figure 1-4 identifies the SCPI
subsystems used with the digitizer.
* Arm source
* Arm count
* Arm delay
* Trigger source
* Trigger count
* Sample rate
* Non-volatile memory enable
* Digitizer reading format
* Enable input
* Reference oscillator source
* Pre- and post-arm reading count
* Measurement range
* Input impedance
* Input filter
* Abort measurements
* Retrieve readings
other subsystems
CONFigure
MEASure
CALibration
DIAGnostic
OUTPut
* Initiate measurements
* VME bus data transfers
* Local bus data transfers
STATus
SYSTem
Figure 1-4. HP E1429A/B Digitizer Command Subsystems
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 1
Getting Started 33
Using the MEASure Each time the digitizer takes a reading, it does so from a configuration
based on parameters set by the digitizer subsystems (Figure 1-4). The
easiest way to set these parameters is with the MEASure or CONFigure
command.
and CONFigure
Commands
MEASure[<chan >]:ARRay[:VOLTage][:DC]? (<size >)
[,<expected value >[,<resolution >]] [,(@<input port >)]
CONFigure[<chan >]:ARRay[:VOLTage][:DC] (<size >)
[,<expected value >[,<resolution >]] [,(@<input port >)]
< chan > is the digitizer channel (1 or 2) configured. This parameter is
optional. If a channel is not specified, channel 1 is assumed.
(< size >) is the total number of pre-arm and post-arm readings (samples)
taken each time an arm signal occurs. Note the space between the command
header and the <size > parameter.
<expected value > is the amplitude (range) of the signal to be measured.
This optional parameter is used to set the digitizer measurement range. If an
expected value is not specified, the digitizer defaults to the 1V range.
<resolution > is the reading resolution and is determined from the expected
value. There is a fixed resolution for each measurement range (Table 3-2).
If a specified resolution is greater that what is available for that range
(expected value), an error occurs.
(@<input port>) is the channel input port (single ended or differential) to
which the input signal is applied. Readings can be taken on only one input
port per channel at a time.
Table 1-3 lists some of the commands and their settings that are equivalent
to the values set by MEASure and CONFigure.
When MEASure? or CONFigure is executed, many of the digitizer
parameters are set to their reset values (see Appendix B,
Table B-2 for a complete listing of reset values). The parameters specified
within the MEASure or CONFigure command are then set accordingly.
This prevents "Settings conflict" errors from occurring due to previous
digitizer configurations.
Download from Www.Somanuals.com. All Manuals Search And Download.
34 Getting Started
Chapter 1
Table 1-3. Digitizer Configuration using MEASure? and CONFigure
Parameter
Command
Setting
Reference
Oscillator Source
SENSe<chan>:ROSCillator:SOURce
<source>
INTernal (the digitizer’s internal 20 MHz oscillator)
Input Port
SENSe<chan>:FUNCtion "<function>
<port>"
"VOLT <port>" (where <port> is set by the
(@<input port>) parameter of MEASure? or CONFigure)
Measurement
range
SENSe<chan>:VOLTage:DC:RANGe
<range>
set according to the <expected value> parameter of
MEASure? or CONFigure
Input Impedance
INPut<port>:IMPedance <impedance>
50Ω (when <port> is 1 or 2)
10 MHz Input
Filter
INPut<port>:FILTer:LPASs:STATe <mode> ON
Input State
Arm Source
INPut<port>:STATe <mode>
ON (for all ports)
ARM:STARt:SOURce<n > <source >
IMMediate (for n = 1)
HOLD (for n = 2)
Arm Count
Arm Delay
ARM:STARt:COUNt
ARM:STARt:DELay
1
0
Trigger Source
TRIGger:STARt:SOURce <source>
TIMer1
0
Pre-arm Readings SENSe<chan>:SWEep:OFFSet:POINts
<count>
Trigger Count
TRIGger:STARt:COUNt <number>
<number> is set to the (<size>) parameter of MEASure? or
CONFigure
SENSe<chan>:SWEep:POINts <number>
TRIGger:STARt:TIMer1 <period>
Sample Rate
(single)
50 ns
Sample Rate
(dual)
TRIGger:STARt:TIMer2 <period>
100 ns
Output State
OUTPut:ECLTrg<n >:STATe <mode >
OUTPut:TTLTrg<n >:STATe <mode >
OUTPut:EXTernal1:STATe <mode >
OFF
OFF
OFF
Output Feed
OUTPut:ECLTrg<n >:FEED <source >
OUTPut:TTLTrg<n >:FEED <source >
OUTPut:EXTernal1:FEED <source >
"TRIGger:STARt" (ECLTrg0) "EXTernal1" (ECLTrg1)
"ARM:STARt"
"TRIGger:STARt"
VME Bus Mode
VME Bus Feed
VINStrument:CONFigure:VME:MODE
<mode>
OFF
VINStrument:CONFigure:VME:FEED
<source >
"MEMory:BOTH32"
OFF
Local Bus Mode
(HP E1429B only)
VINStrument:CONFigure:LBUS:MODE
<mode>
Local Bus Feed
VINStrument:CONFigure:LBUS:FEED
<source>
"MEMory:BOTH"
ASCii, 9
(HP E1429B only)
Reading Format
Data label
FORMat[:DATA] <type>[,<length>]
DIAGnostic:CHANnel[<chan >]:LABel
<label >
0
0
(channel 1)
(channel 2)
Chapter 1
Getting Started 35
Download from Www.Somanuals.com. All Manuals Search And Download.
Programming The recommended sequence for programming the digitizer is shown in
Figure 1-5. Note that CONFigure sets many digitizer parameter values that
Sequence
usually do not have to be changed with "lower-level" subsystem commands.
The lower-level commands are used when you want to set a value different
from the value set by CONFigure.
CONFigure
MEASure
command
command
INPut
subsystem
commands
SENSe
subsystem
commands
ARM and TRIGger
subsystem
commands
OUTPut
subsystem
commands
VINStrument
subsystem
commands
FORMat
subsystem
commands
INITiate and
FETCh or READ
subsystems
Figure 1-5. HP E1429A Programming Sequence
36 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
Configuring the Digitizer channels 1 and 2 share the digitizer’s arming and triggering
circuitry and memory. Thus, the arming and triggering configuration and
Channels
the number of readings set for one channel applies to the other channel as
well. When the digitizer is armed and triggered, both channels sample and
store their readings in memory simultaneously.
How to Make This section explains when to use MEASure or CONFigure to configure the
digitizer. It also shows you how to make measurements when the
configuration has been modified with lower-level commands.
Measurements
Using MEASure
MEASure is used in applications where the digitizer parameters set by the
command are acceptable, and the data is to be retrieved immediately after
the readings are taken. MEASure is equivalent to executing the command
sequence:
ABORt;:CONFigure;:INITiate:IMMediate;:FETCh?
The following programs execute the MEASure command as shown below:
MEAS1:ARR:VOLT? (10),5,(@3)
MEASure configures the digitizer as follows:
channel:
1
number of readings: 10
expected value:
input port:
5V
3
The remainder of the digitizer parameters are set as indicated in Table 1-3.
Because the readings are taken immediately, variations to the digitizer
configuration are limited to the parameters within the MEASure command
(number of readings, expected value, resolution, input port).
HP BASIC
10 DIM Readings(1:10)
20 OUTPUT 70905;"*RST;*CLS;*OPC?"
30 ENTER 70905;Ready
40 OUTPUT 70905;"MEAS1:ARR:VOLT? (10),5,(@3)"
50 ENTER 70905;Readings(*)
60 PRINT Readings(*)
70 END
Chapter 1
Getting Started 37
Download from Www.Somanuals.com. All Manuals Search And Download.
MEAS.C
/* MEAS.C - This program demonstrates how to take readings using the */
/* digitizer’s MEASure command. In this program, MEASure configures the */
/* digitizer to take 10 readings on the 5V range, using the differential */
/* input port. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
/* I/O path from PC to the digitizer, via the E1406 */
#define ADDR 70905L
/* Function Prototypes */
void rst_clr(void);
void ad_meas(void);
void check_error(char *func_tion);
/****************************************************************************/
void main(void)
{
/* run the program */
rst_clr();
ad_meas();
/* reset the digitizer */
/* function which configures the digitizer and makes */
/* the measurement */
}
/****************************************************************************/
void ad_meas(void)
{
int i = 0, readings = 10;
float *rdgs;
/* dynamically allocate memory for readings */
rdgs = malloc(10 * sizeof(float));
Continued on Next Page
38 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
/* Use the MEASure command to configure the digitizer and to take */
/* the readings */
IOOUTPUTS(ADDR, "MEAS1:ARR:VOLT? (10),5,(@3)", 27);
/* Send (27) characters */
IOENTERA(ADDR, rdgs, &readings);
/* Read readings from MEASure command */
for (i = 0; i < readings; i++)
{
printf("\nReading %d = %f", i, *rdgs++);
}
free (rdgs - readings);
}
/****************************************************************************/
void rst_clr(void)
{
/* Reset and clear the A/D */
IOOUTPUTS(ADDR, "*RST;*CLS", 9);
/* Send (9) characters */
}
Using CONFigure When an application requires a configuration different from that available
with MEASure, CONFigure is used. CONFigure does not take readings
after setting the configuration. Thus, any of the low-level commands (Table
1-3) can be used to change selected parameters before a measurement is
made.
Assume an application requires the following configuration:
• 10 pre-arm and 10 post arm readings
• 1V range
• single ended input
MEASure cannot be used since it sets the pre-arm reading count to 0. By
using CONFigure, the low-level command:
SENSe[<chan >]:SWEep:OFFSet:POINts <count >
can be used to set the desired number of pre-arm readings:
Chapter 1
Getting Started 39
Download from Www.Somanuals.com. All Manuals Search And Download.
CONF1:ARR:VOLT (20),1,(@1)
SENS1:SWE:OFFS:POIN -10
Taking Readings After To take readings, the digitizer must be triggered. The MEASure command
automatically triggers the digitizer after setting the configuration.
Using CONFigure
When CONFigure is used, the digitizer must be triggered using the READ?
command or INITiate[:IMMediate] and
FETCh[<chan >]? commands as shown.
CONF1:ARR:VOLT (20),1,(@1)
SENS1:SWE:OFFS:POIN -10
READ? (readings are sent to the digitizer output buffer from memory)
or
CONF1:ARR:VOLT (20),1,(@1)
SENS1:SWE:OFFS:POIN -10
INIT:IMM (readings are stored in memory)
FETC?(readings are retrieved from memory)
READ? is equivalent to executing ABORt +INITiate:IMMediate +FETCh?.
ABORt stops any measurement or VME or Local bus transfer before
proceeding with INITiate. With READ?, the readings pass directly through
digitizer memory to the device’s output buffer.
INITiate places the digitizer in the wait-for-arm state. FETC? waits for the
readings to complete and then retrieves (fetches) the readings from memory
and places them into the output buffer.
HP BASIC
10 DIM Readings(1:20)
20 OUTPUT 70905;"*RST;*CLS;*OPC?"
30 ENTER 70905;Ready
40 OUTPUT 70905;"CONF1:ARR:VOLT (20),1,(@1)"
50 OUTPUT 70905;" SENS1:SWE:OFFS:POIN -10"
60 OUTPUT 70905;"READ?"
70 ENTER 70905;Readings(*)
80 PRINT Readings(*)
90 END
40 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
CONF.C
/* CONF.C - This program demonstrates how to use the CONFigure command and */
/* low-level digitizer commands to configure the digitizer. INITialize and */
/* FETCh? are used to trigger the digitizer and retrieve the readings from */
/* digitizer memory. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
/* I/O path from the PC to the digitizer */
#define ADDR 70905L
/* Function Prototypes */
void rst_clr(void);
void ad_conf(void);
void ad_fetch(void);
void check_error(char *func_tion);
/****************************************************************************/
void main(void)
/* run the program */
{
rst_clr();
ad_conf();
ad_fetch();
}
/* reset the digitizer */
/* send commands which configure the digitizer */
/* send command which retrieves the digitizer readings */
/****************************************************************************/
void ad_conf(void)
{
int length = 0, loop = 0;
/* use the "set_commands" array to configure digitizer channel 1 */
char static *set_commands[] =
{"CONF1:ARR:VOLT (20),1,(@1)",
/* set 20 readings, 1V range, */
/* S/E input port 1 */
"SENS1:SWE:OFFS:POIN -10",
"INIT"};
/* set 10 pre-arm readings */
/* place digitizer in */
/* wait-for-arm state */
Continued on Next Page
Chapter 1
Getting Started 41
Download from Www.Somanuals.com. All Manuals Search And Download.
length = (sizeof(set_commands) / sizeof(char*));
/* Execute each command using a loop */
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR, set_commands[loop], strlen(set_commands[loop]));
}
/* function call to check for digitizer configuration errors */
check_error("ad_conf");
}
/****************************************************************************/
void ad_fetch(void)
{
char go;
int i = 0, readings = 20;
float *rdgs;
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(float));
/* fetch (retrieve) and print readings */
IOOUTPUTS(ADDR, "FETC1?", 6);
IOENTERA(ADDR, rdgs, &readings);
for (i = 0; i < readings; i++)
{
printf("\nReading %d = %f", i, *rdgs++);
}
free(rdgs - readings);
}
/****************************************************************************/
void rst_clr(void)
{
/* Reset and clear the digitizer */
Continued on Next Page
42 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
IOOUTPUTS(ADDR, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *func_tion)
{
char
into[161];
intlength = 160;
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in function %s\n\n", into, func_tion);
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
}
exit(1);
}
}
Querying As you configure the digitizer it is often useful to determine command
settings programmatically. This can be done by adding a question mark (?)
Command Settings
at the end of any SCPI command header (except the MEASure command),
and then sending the command without parameters. The following programs
query the parameters of the CONFigure command. Assuming the
CONFigure command was executed as indicated in program CONF.C, the
following query response is returned:
"ARR (20),1.000000,0.000500,(@1)"
where:
(20)
= reading count (size parameter)
1.000000 = expected value
0.000500 = reading resolution
(@1)
= input port
Chapter 1
Getting Started 43
Download from Www.Somanuals.com. All Manuals Search And Download.
HP BASIC
QUERY.C
10 DIM Setting$[1000]
20 OUTPUT 70905;"CONF?"
30 ENTER 70905;Setting$
40 PRINT Setting$
!query CONFigure command
50 END
/* This program queries HP E1429 settings */
/* Include the necessary header files */
#include <stdio.h>
#include <string.h>
#include <cfunc.h>
/* from HP-IB command library */
/* Define E1429 HP-IB address macro */
#define ADDR 70905L
/* Function prototypes */
void query(void);
/* I/O path between the PC and the digitizer */
void main(void)
{
query();
}
/* function call to query HP E1429 parameters */
/****************************************************************************/
void query(void)
{
char *gets();
char qry_cmd[80];
char qry_resp[80];
int length = 80;
/* query command array */
/* query response array */
/* Query user for digitizer query command */
printf("\nEnter query command: ");
gets(qry_cmd);
/* get input string (query command) */
Continued on Next Page
44 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
IOOUTPUTS(ADDR, qry_cmd, strlen(qry_cmd));
IOENTERS(ADDR, qry_resp, &length);
printf("\n%s = %s", qry_cmd, qry_resp);
}
Checking for Errors
The following HP BASIC program shows the lines and subprogram which
can be added to HP BASIC programs to check for errors. Line 140 clears
the digitizer standard event status register. Lines 150 and 160 unmask the
appropriate bits in the digitizer’s status byte register and standard event
status register.
When an error occurs, the subprogram "Errmsg" reads the digitizer error
queue and displays the code and message. Note that line 310 is used as an
"end of statement" should a syntax error occur among coupled commands.
Otherwise, line 320 would serve as the end of statement and the ABORT
command would be ignored by the digitizer parser.
Note
An alternative HP BASIC error checking program can be found in the
"C-Size VXIbus Systems Installation and Getting Started Guide".
HP BASIC
1
2
3
!This program represents one method that can be used to
!check for programming errors in HP BASIC programs.
!
10 !Assign I/O path between the computer and HP E1429A/B.
20 ASSIGN @A_d TO 70905
30 COM @A_d
40 !Define branch to be taken when an HP E1429A/B error occurs.
50 !Enable HP-IB interface to generate an interrupt when an error
60 !occurs.
70 ON INTR 7 CALL Errmsg
80 ENABLE INTR 7;2
90 !Clear all bits in the standard event status register, unmask the
100 !standard event status group summary bit in the HP E1429A/B status byte
110 !register (decimal weight 32), unmask the query error, device
120 !dependent error, execution error, and command error bits
130 !(decimal sum 60) in the HP E1429A/B standard event status register.
Continued on Next Page
Chapter 1
Getting Started 45
Download from Www.Somanuals.com. All Manuals Search And Download.
140 OUTPUT @A_d;"*CLS"
150 OUTPUT @A_d;"*SRE 32"
160 OUTPUT @A_d;"*ESE 60"
170 !
180 !Subprogram calls would be here
190 !
200 WAIT .1 !allow error branch to occur before turning intr off
210 OFF INTR 7
220 END
230 !
240 SUB Errmsg
250 Errmsg: !Subprogram which displays HP E1429 programming errors
260
270
280
290
300
310
320
330
340
350
360
370
380
COM @A_d
DIM Message$[256]
!Read digitizer status byte register and clear service request bit
B =SPOLL(@A_d)
!End of statement if error occurs among coupled commands
OUTPUT @A_d;""
OUTPUT @A_d;"ABORT" !abort digitizer activity
REPEAT
OUTPUT @A_d;"SYST:ERR?" !read digitizer error queue
ENTER @A_d;Code,Message$
PRINT Code,Message$
UNTIL Code=0
STOP
390 SUBEND
ERRORCHK.C
/* ERRORCHK.C - This program contains the C function used by the example */
/* programs to check for digitizer configuration errors. When an error */
/* occurs, the function reads the digitizer’s error buffer and prints the */
/* error messages until all of the errors have been read. */
/* Include the following header files */
#include <stdio.h>
#include <cfunc.h>
#define ADDR 70905L
/* Function Prototype */
void check_error(void);
/* This file is from the HP-IB Command Library Disk */
/* I/O path from PC to the digitizer, via the HP E1406 */
Continued on Next Page
46 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
/****************************************************************************/
void main(void)
{
check_error();
}
/* call error check function */
/****************************************************************************/
void check_error(void)
{
char into[161];
int
length = 160;
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("%s\n\n", into);
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
}
exit(1);
}
}
Digitizer/ If the digitizer’s access light remains on while programming the digitizer
over HP-IB, it may be due to a deadlock between the digitizer and the
HP E1406 Command Module. If such a deadlock occurs and you cannot
access the Command Module, send the following command sequence:
Command Module
Deadlock
ABORT 7
ABORT 7
CLEAR 70905 (selected device clear)
Chapter 1
Getting Started 47
Download from Www.Somanuals.com. All Manuals Search And Download.
Where to go Next
• For additional progamming examples:
Chapter 2: Using the Digitizer
• For the digitizer description of operation:
Chapter 3: Understanding the Digitizer
• For information on the digitizer command set:
Chapter 4: Command Reference
• For the digitizer operating specifications:
Appendix A: Specifications
• For a listing of the digitizer error messages:
Appendix B: Useful Tables
• For register programming information:
Appendix C: Register Programming
48 Getting Started
Chapter 1
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer
Chapter Contents
This chapter contains example programs that show you how to use the
digitizer. The programs, which demonstrate the various features of the
digitizer, are presented in the same sequence as the features are covered in
Chapter 3 - "Understanding the Digitizer". The examples in this chapter
include:
• Configuring the Digitizer Input . . . . . . . . . . . . . . . . . . . . . . . 50
• Taking a Burst of Readings . . . . . . . . . . . . . . . . . . . . . . . . . . 51
• Level Arming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
• Pre- and Post-Arm Readings . . . . . . . . . . . . . . . . . . . . . . . . . 53
• Specifying a Sample Rate . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
• Dual Rate Sampling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
• Using Multiple Digitizers . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
• Using the Packed Data Format . . . . . . . . . . . . . . . . . . . . . . . 59
• VME Bus Data Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
VME_REAL.C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
VME_•SEG1.C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
• VME Bus Data Transfers Using an Embedded
Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
SEGTST16.CPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
SEGTST32.CPP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
• Local Bus Data Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
LOCAL_AD.C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
LBUS2PST.C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
LBUSAUTO.C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
• Using the Digitizer Status Registers . . . . . . . . . . . . . . . . . . . 101
Using the Programs Each example program listed in this chapter (and on the example programs
disk) begins with the CONFigure command, and then uses lower-level
digitizer commands (Chapter 1, Table 1-3) to customize the configuration.
Using this format, the programs can easily be modified to match your
application.
The Programming Each example in this chapter lists only the digitizer’s SCPI commands, with
the exception of the VME and Local bus data transfer programs. The I/O
(input/output) constructs of the programming language you use need to be
added to the programs. Note that the example programs disk (HP P/N
E1429-10302) contains copies of the programs compiled and tested using
Borland Turbo C++ © Version 1.0 and Microsoft® QuickC© Version 2.0.
The program name is shown prior to the program listing in the chapter.
Language
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 49
Configuring the Digitizer Input
This program demonstrates the commands used to configure the digitizer’s
input section. The program sets up the digitizer to take 10 readings on the
1V range of the digitizer’s single ended input port. This includes:
• enabling/disabling the input ports
• setting the input impedance
• switching the 10 MHz filter into the signal path.
• setting the signal range
INPUT.C
*RST;*CLS
/* reset and clear the digitizer */
CONF1:ARR:VOLT (10),(@1) /* set 10 readings on channel 1, input port 1 */
INP3:STAT OFF
INP1:IMP 50
/* disable differential port 3 */
/* set input impedance to 50 ohms */
/* switch 10 MHz filter into signal path */
/* set 1V range */
INP1:FILT ON
SENS1:VOLT:RANG 1
READ?
/* initialize digitizer, fetch readings */
/* retrieve the readings from the digitizer */
Comments 1. Digitizer INPut Commands. The CONFigure command sets most of the
(INPut) subsystem parameters to the same values as set by the INP
commands listed in the program. The INPut commands were executed to
show the context in which they are used.
2. Disabling an Input Port. When taking readings, it is not necessary to
disable the channel’s input port that is not being used (INP3:STAT OFF). It
was done in this program to show the versatility of the digitizer.
3. Digitizer Measurement Range. In this program, the measurement range
is specified with the SENSe:VOLTage:RANGe command, rather than with
the expected value parameter of the CONFigure command. For most
applications, however, it is easier to specify an expected value.
SENSe:VOLTage:RANGe can be used to change the signal range without
changing the entire digitizer configuration with CONFigure.
Download from Www.Somanuals.com. All Manuals Search And Download.
50 Using the Digitizer
Chapter 2
Taking a Burst of Readings
This program demonstrates:
• how to set the arm count for multiple bursts of (post-arm) readings
• how to set the arm source to VXI backplane trigger line ECLTRG0
and use the HP E1406 Command Module to apply arming pulses to
the trigger line.
ARMCNT.C
/* digitizer commands */
*RST;*CLS
/* reset and clear the digitizer */
/* set 10 readings, 1V range, S/E input */
/* port 1*/
CONF1:ARR:VOLT (10), 1,(@1)
ARM:SOUR1 ECLT0
ARM:COUN 3
/* arm source is ECLTRG0 trigger line */
/* set arm count for 3 bursts */
OUTP:ECLT0:STAT ON
INIT
/* enable line ECLTRG0 - Command Module */
/* place digitizer in wait-for-arm state */
/* send arming pulse - Command Module commands*/
OUTP:ECLT0:IMM
/* ask for next pulse */
OUTP:ECLT0:IMM
/* ask for next pulse */
OUTP:ECLT0:IMM
/* digitizer command */
FETC1?
/* apply a pulse to ECLTRG0 */
/* apply a 2nd pulse to ECLTRG0 */
/* apply a 3rd pulse to ECLTRG0 */
/* retrieve digitizer readings */
Comments 1. Arm and Trigger Counts. The arm count is the number of reading
bursts or arm signals the digitizer is to accept before the digitizer returns to
the idle state. When the digitizer receives an arm, it takes a reading each
time a trigger is received, and continues to take readings until the trigger
count is reached. Notice the CONFigure command specifies (10) readings
(trigger count = 10). Therefore, with an arm count of three, 30 readings are
taken before the digitizer returns to the idle state.
2. Additional Information. Digitizer arming and triggering is covered in
Chapter 3 - "Understanding the Digitizer".
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 51
Level Arming
This program demonstrates:
• how to set the arm source such that the digitizer is armed when the
input signal enters a specified voltage range (window) from a level
outside the range.
• how to set the arm slope such that an arm occurs when the input
signal enters the arm window from either a positive-going or
negative-going direction.
• how to set the voltage levels which define the arm window.
For this example, the arm signal should be applied to the HI input of port 3,
with the LO input of port 3 grounded.
ARMLEVEL.C
*RST;*CLS
/* reset and clear the digitizer */
/* set 10 readings on Diff port 3 */
/* set arm source 1 to level arming */
/* disable arm source 2 */
CONF1:ARR:VOLT (10),10,(@3)
ARM:SOUR1 INT1
ARM:SOUR2 HOLD
ARM:SLOP1 EITH
/* arm when signal enters window from */
/* either direction */
ARM:LEV1:POS 4
ARM:LEV1:NEG 6
ARM:COUN 2
INIT
/* set arm window lower boundary */
/* set arm window upper boundary */
/* set two measurement bursts */
/* put digitizer in wait-for-arm state */
/* retrieve readings after arms occur */
FETCH?
Comments 1. The Arm Window. The arming window set by this program is +4V to
+6V on the digitizer’s 10V range. The upper boundary of the window (6V)
is set with the ARM:LEVel1:NEGative command. This means when a
NEGative-going input signal reaches 6V, the digitizer is armed. Similarly,
the lower boundary (4V) of the window is set with the
ARM:LEVel1:POSitive command. Thus, when a POSitive-going input
signal reaches 4V, the digitizer is armed. Because the NEGative-going level
is greater than the POSitive-going level, the digitizer is armed each time (up
to the arm count) the signal enters the window.
2. Additional Information. Level arming is covered in detail in Chapter 3,
in the section "Arming and Triggering".
Download from Www.Somanuals.com. All Manuals Search And Download.
52 Using the Digitizer
Chapter 2
Pre- and Post-Arm Readings
This program demonstrates:
• how to program the digitizer to take a minimum of 100 pre-arm
readings and 100 post-arm readings.
• how to set the arm source to an external signal applied to the "Ext 1"
BNC.
PREPOST.C
*RST;*CLS
/* reset and clear the digitizer */
CONF1:ARR:VOLT (200),2,(@3)
/* set 200 readings total, 2V range, */
/* Diff input port 3*/
ARM:SOUR1 EXT
SENS1:SWE:OFFS:POIN -100
INIT
/* arm source is front panel "Ext 1" BNC */
/* set 100 pre-arm readings */
/* put digitizer in wait-for-arm state */
/* retrieve pre- and post-arm readings */
FETCH?
Comments 1. Pre-arm and Post-arm Reading Count. When measurements consist of
pre- and post-arm readings, there must be at least three pre-arm readings
and seven post-arm readings specified. Note that pre-arm readings are
preceded by a minus (-) sign.
2. Total Reading Count. The size parameter of the CONFigure command
specifies the total number of readings (pre- and post-arm).
SENS1:SWE:OFFS:POIN specifies the number of pre-arm readings. The
number of post-arm readings in this program is then (200) - 100 = 100. The
total reading count can be changed without re-sending the CONFigure
command by using the TRIGger:STARt:COUNt command or
SENSe:SWEep:POINts command.
3. Pre-arm Readings. Pre-arm readings start when the digitizer receives the
INITiate[:IMMediate] command. Pre-arm readings continue until an arm is
received. Arms are ignored until the pre-arm reading count is reached. If the
pre-arm count is exceeded before the arm occurs, the last
SENSe:SWEep:OFFSet:POINts number of readings taken are stored in
memory.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 53
Specifying a Sample Rate
This program demonstrates:
• how to set the digitizer trigger (sample) source
• how to set the sample rate
In this example, a 1 kHz square wave is sampled at a rate which includes
the 11th harmonic. All samples are post-arm.
SAMPLE.C
*RST;*CLS
/* reset and clear the digitizer */
/* set 50 readings, 10V range */
/* arm when put in wait-for-arm state */
/* set trigger source to timer 1 */
/* set sample period to 20 us */
CONF1:ARR:VOLT (50),10,(@3)
ARM:SOUR1 IMM
TRIG:SOUR TIM
TRIG:TIM1 20E-6
READ?
/* put digitizer in wait-for-arm state */
/* and retrieve the readings */
Comments 1. Sample Period and Sample Count. The period at which to sample a 1
kHz signal and include the 11th harmonic is determined by:
period = 1 / 4(f ) = 1 / 4(11 kHz) = 22.7 µs
c
where f is the frequency of the 11th harmonic (11 kHz). Because of the
c
trigger source used in this program (TIMer), the sample periods available
are 1, 2, 4, through 1E8, 2E8, 4E8 multiples of the reference clock (the
internal 20 MHz oscillator set by the CONFigure command). Therefore,
given the 22.7 µs sample period calculated, the actual sample period used is
20 µs.
The number of samples to take is computed by:
sample count = signal period (fundamental)/actual sample period
= .001/.000020 = 50
Download from Www.Somanuals.com. All Manuals Search And Download.
54 Using the Digitizer
Chapter 2
2. Specifying the Sample Count. The sample count (i.e. trigger count) is
specified by the size parameter (50) of the CONFigure command. This is
the most convenient way to specify the sample count since size is a required
parameter of CONFigure. TRIGger:STARt:COUNt can be used to
set/change the sample count without also changing the entire configuration
with CONFigure.
3. Additional Information. Additional information on trigger sources and
sample rates is found in Chapter 3 - "Understanding the Digitizer", and in
Chapter 4 - "Command Reference".
Dual Rate Sampling
This program demonstrates:
• how to set up the digitizer’s dual rate sampling function whereby
pre-arm and post-arm readings are taken at different sample rates.
• how level arming can be used with dual rate sampling
The digitizer pre-arm samples at 50 ns until the level of the input signal on
channel 1 reaches 5V. At 5V, the digitizer is armed and post-arm samples at
10 ms.
DUALSAMP.C
*RST;*CLS
/* clear and reset the digitizer */
/* set 20 readings, 10V range */
/* set arm source 1 for level arming */
/* disable arm source 2 */
CONF1:ARR:VOLT (20),10,(@3)
ARM:SOUR1 INT1
ARM:SOUR2 HOLD
ARM:SLOP1 POS
ARM:LEV1:POS 5
SENS:SWE:OFFS:POIN -10
TRIG:SOUR DTIM
TRIG:TIM1 50E-9
TRIG:TIM2 10E-3
INIT
/* arm on increasing input signal */
/* arm at 5V (10V range) */
/* set 10 pre-arm readings */
/* set dual rate sampling */
/* set sample rate for pre-arm readings */
/* set sample rate for post-arm readings */
/* put digitizer in wait-for-arm state */
/* retrieve readings */
FETCH?
Comments 1. Dual Rate Sampling Periods. The dual rate sampling trigger source
DTIMer uses the internal timer sources. Thus, one sample period must equal
the reference period. In this program, the digitizer’s internal
20 MHz oscillator is the reference source. Therefore, one sample rate must
be 50 ns (1 / 20 MHz).
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 55
2. Pre- and Post-Arm Sample Rates. With dual rate sampling, pre-arm
and post-arm readings occur at different sample rates. It is recommended
that pre-arm readings use the faster of the two sample rates. The reason is
once the arm is received, one addtional sample at the pre-arm rate must
occur before the post-arm rate is used.
3. Dual Rate Sampling Reference Sources. The reference sources
available with trigger source DTIMer are:
INTernal - the digitizer’s internal 20 MHz oscillator (default source)
CLK10 - the VXIbus system’s 10 MHz clock
ECLTrg0 - the VXI backplane ECLTrg0 trigger line
ECLTrg1 - the VXI backplane ECLTrg1 trigger line
EXTernal2 - the digitizer’s front panel "Ext 2" BNC port
When using any of these references, one of the two sample rates must be set
to the reference period. Also, the reference used must be specified with the
SENSe:ROSCillator:SOURce command, and if the source is ECLTrg0/1 or
EXTernal2, the frequency of the reference must be specified with the
SENSe:ROSCillator:EXTernal:FREQuency command.
4. Other Dual Rate Sampling Sources. When the dual rate sampling
source is DECLtrg, ECLTrg0 paces the pre-arm readings and ECLTrg1
paces the post-arm readings. The sample rates are determined entirely by
the source(s) driving the trigger lines. When the dual rate sampling source is
DEXTernal, front panel port "Ext 1" paces the pre-arm readings and port
"Ext 2" paces the post-arm readings. The sample rates are determined
entirely by the source(s) driving the ports.
5. Additional Information. More information on dual rate sampling is
found in Chapter 3 - "Understanding the Digitizer".
Using Multiple Digitizers
This program demonstrates:
• how to route the internal reference clock from one digitizer to a
second digitizer, and how to configure the digitizers such that they
are armed simultaneously.
Download from Www.Somanuals.com. All Manuals Search And Download.
56 Using the Digitizer
Chapter 2
MULT_AD.C
/* digitizer 1 */
CONF1:ARR:VOLT (10),1,(@1)
/* set 10 readings, 1V range, on */
/* channel 1, S/E input port 1 */
SENS:ROSC:SOUR INT
/* reference source is internal */
/* 20 MHz oscillator */
OUTP:ECLT0:FEED ’SENS:ROSC’ /* route reference oscillator */
/* clock signal to ECLT0 */
OUTP:ECLT0:STAT ON
ARM:SOUR1 TTLT0
TRIG:SOUR TIM
/* enable routing of the signal */
/* arm source is TTLT0 trigger line */
/* trigger source is period derived */
/* from the TRIG:TIM command */
TRIG:TIM1 20E-6
/* set sample period to 20 us */
SENS2:FUNC ’VOLT4’
SENS2:VOLT:RANG 5
/* set up input port 4 on channel 2 */
/* set voltage range on channel 2 */
/* the arm and trigger sources are */
/* the same as for channel 1 */
/* digitizer 2 */
CONF1:ARR:VOLT (10),1,(@1)
SENS:ROSC:SOUR ECLT0
/* set 10 readings, 1V range, on */
/* channel 1, S/E input port 1 */
/* reference oscillator source is */
/* ECLT0 trigger line */
SENS:ROSC:EXT:FREQ 20E6
ARM:SOUR1 TTLT0
/* specify frequency of clock signal */
/* arm source is TTLT0 trigger line */
TRIG:SOUR TIM
/* trigger source is period derived */
/* from the TRIG:TIM command */
TRIG:TIM1 20E-6
/* set sample period to 20 us */
SENS2:FUNC ’VOLT4’
SENS2:VOLT:RANG 5
/* set up input port 4 on channel 2 */
/* set voltage range on channel 2 */
/* the arm and trigger sources are */
/* the same as for channel 1 */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 57
/* digitizer commands */
INIT
INIT
/* put digitizer 1 in wait-for-arm state */
/* put digitizer2 in wait-for-arm state */
/* Command Module commands */
OUTP:TTLT0:STAT ON
/* enable line TTLT0 */
"Press Enter (return) to arm the digitizers"
OUTP:TTLT0:IMM
/* apply a pulse to TTLT0 */
/* digitizer commands */
FETC1?
/* retrieve readings from digitizer1, channel 1 */
/* retrieve readings from digitizer1, channel 2 */
/* retrieve readings from digitizer2, channel 1 */
/* retrieve readings from digitizer2, channel 2 */
FETC2?
FETC1?
FETC2?
Comments 1. Synchronizing Digitizers. By routing (OUTPut) the reference clock
from one digitizer to all digitizers in the system, the sample rate is derived
from the same reference. Digitizer samples can then be taken at precise
intervals of each other.
2. Input Channels. In this program, samples are taken on the single ended
and differential inputs of two digitizers, for a total of four channels. When
sampling, either the channel’s single ended input or the differential inputs
can be used. You cannot use both sets of inputs simultaneously on a single
channel.
3. CONFiguring Channels Independently. In this program, the digitizers’
single ended input ports (channel 1) and differential input ports (channel 2)
are set to two different signal ranges. This was done using
SENSe:FUNCtion to select the port and SENSe:VOLTage[:DC]:RANGe to
set the range. CONFigure was not used since executing
CONF2:ARR:VOLT (10),5,(@3) would not only set the range on channel
2, but would also change the settings made following the first CONFigure
(CONF1) command.
4. Routing/Sourcing Signals. If a digitizer trigger port (e.g. "Ext 1", "Ext
2") or a VXI backplane trigger line (ECLTrg<n >, TTLTrg<n >) is the
source of a reference signal, arm signal or trigger signal, then that port or
line cannot be used to route (OUTPut) a synchronization signal.
5. Retrieving Readings. When readings are retrieved from digitizer
memory using the FETCh? command, each channel’s readings must be
retrieved separately. That is, channel 1’s readings must be fetched and then
channel 2’s must be fetched, or vice versa. However, VME bus data
transfers (retrievals) allow both channels’ readings to be retrieved
simultaneously. The "VME Bus Data Transfers" examples in this chapter
show how this is done.
Download from Www.Somanuals.com. All Manuals Search And Download.
58 Using the Digitizer
Chapter 2
6. Additional Information. Additional information on using arming,
triggering, and reference signals to synchronize other digitizers can be
found in Chapter 3 - "Understanding the Digitizer". Additional information
on the CONFigure command can be found in
Chapter 1 - "Getting Started".
Using the Packed Data Format
This program demonstrates:
• how to specify the digitizer’s packed data format
• how to remove the ANSI/IEEE Standard 488.2-1987 Definite Length
Arbitrary Block header which preceeds the data
• how to assign a label to identify a set of readings
• how to convert the readings to voltages
The program takes 20 post-arm samples which are returned in the digitizer’s
packed data format. For completeness, the entire C language version of the
program is listed. (The program is also contained on the example programs
disk - HP E1429-10302).
PACKED.C
/* PACKED.C - This program takes 20 post-arm samples and returns the readings */
/* in the digitizer’s packed data format. A label identifying the readings */
/* is assigned to the four least significant bits. The arbitrary block header */
/* preceding the readings is removed and the packed data is coverted to the */
/* measured voltages. The program features the FORMat and READ? commands. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
/* I/O path from PC to the digitizer, via the HP E1406 */
#define ADDR 70905L
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 59
/* Function Prototypes */
void rst_clr(void);
void ad_confread(void);
void check_error(char *func_tion);
/****************************************************************************/
void main(void)
{
/* run the program */
rst_clr();
/* reset the digitizer */
ad_confread();
/* function which configures the digitizer */
/* and takes the readings */
}
/****************************************************************************/
void ad_confread(void)
{
int length = 0, loop = 0, i = 0, swap = 0, bytes = 0, label = 0;
int *rdgs;
char lf_remove[1];
/* use the "set_commands" array to configure single ended input port */
/* 1 on digitizer channel 1 */
char static *set_commands[] =
{"CONF1:ARR:VOLT (20),1,(@1)", /* set 20 readings, 1V range */
"FORM PACK",
"DIAG:CHAN:LAB 1"};
/* set packed reading format */
/* add label to each reading */
length = (sizeof(set_commands) / sizeof(char*));
/* Execute each command using a loop */
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR, set_commands[loop], strlen(set_commands[loop]));
}
/* function call to check for digitizer configuration errors */
check_error("ad_confread");
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(int));
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
60 Using the Digitizer
Chapter 2
/* set number of bytes placed in memory, and number of bytes read */
swap = sizeof(int); /* place 2 bytes/reading in memory */
bytes = 20 * swap; /* read 40 bytes */
IOOUTPUTS(ADDR, "READ?", 5); /* retrieve the readings */
IOENTERAB(ADDR, rdgs, &bytes, swap);
/* enter the readings and */
/* remove the block header */
/* Remove line feed which trails the last data byte */
length = 1;
IOENTERS(ADDR, lf_remove, &length);
/* print label */
label = (rdgs[0] & 0x000F);
printf("\nLabel #: %d", label);
/* convert and print each reading as a voltage */
for (i = 0; i < 20; i++)
{
rdgs[i] /= 16;
/* remove label from each reading */
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0005));
}
free(rdgs);
}
/****************************************************************************/
void rst_clr(void)
{
/* Reset and clear the digitizer */
IOOUTPUTS(ADDR, "*RST;*CLS", 9);
}
/* Send (9) characters */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 61
/****************************************************************************/
void check_error(char *func_tion)
{
char into[161];
intlength = 160;
IOOUTPUTS(ADDR, "SYST:ERR?", 9); /* Query error register */
IOENTERS(ADDR, into, &length);
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in function %s\n\n", into, func_tion);
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
}
exit(1);
}
}
Comments 1. Packed Reading Format. Packed digitizer readings are signed, 16-bit
numbers preceded by the ANSI/IEEE Standard 488.2-1987 Definite Length
Arbitrary Block header. Packed readings are always a number between
-1.0230 (-2046) and +1.0235 (2047), and must be converted to voltages by
the user.
2. Line Feed Following Packed Readings. Packed readings preceded by
the arbitrary block header are also followed by a line feed (LF) character.
When readings are retrieved from the digitizer, the LF remains in the output
buffer. If the line feed is not removed with an additional "IOENTERS"
statement, error -410 "Query INTERRUPTED" occurs the next time data is
read from the digitizer.
3. Channel Labels. A numeric label identifying a set of readings can be
specified using the four least significant bits of each reading. The label,
which is any number from 0 to 15, is assigned using the
DIAGnostic:CHANnel<chan >:LABel command. The label is included with
the reading bits when data is returned in the PACKed,16 format. The
assigned label is ignored when the data format is ASCii,9 or REAL,64. If no
label is assigned, the four least significant bits of the reading are ’0’s. See
"How Readings are Stored" in Chapter 3 for more information.
Download from Www.Somanuals.com. All Manuals Search And Download.
62 Using the Digitizer
Chapter 2
4. Packed Reading Conversion Formula. The equation for converting
packed readings to voltages is:
reading
= (reading
/ 16) * reading resolution
voltage
packed
The reading resolutions, which are a function of the signal range, are listed
in Chapter 3 in the section "Converting Packed Readings".
VME Bus Data Transfers
The following programs demonstrate:
• how post-arm readings are transferred from the digitizer’s A/D
converter directly to the VME bus (VME_REAL.C)
• how segmented readings (pre- and post-arm) are transferred from the
digitizer’s A/D converter directly to the VME bus (VME_SEG1.C)
• how segmented, 32-bit readings (channel 2 and channel 1 combined)
are transferred from the A/D converter to the VME bus
The system configuration on which programs VME_REAL.C and
VME_SEG1.C were developed is listed on page 1-10.
VME_REAL.C
/* VME_REAL.C - This program reads data directly from the digitizer’s A/D */
/* converter and places it on the VME (VXI data transfer) bus. Each time the */
/* digitizer’s data register is accessed, a measurement is triggered and the */
/* reading is transferred to the VME bus during the same reading cycle. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library */
/* I/O path between the digitizer and PC */
#define ADDR 70905L
#define CMD_MOD 70900L /* I/O path between the digitizer and the Command Module */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 63
/* Function prototypes */
long get_base_addr(void);
void rst_clr(void);
void ad_conf(void);
void mem_read(long base_addr);
void check_error(char *function);
/****************************************************************************/
void main(void)
{
long base_addr;
/* variable for digitizer A24 base address */
rst_clr();
/* reset and clear the digitizer */
base_addr = get_base_addr();
/* function call to calculate and */
/* return digitizer A24 base address */
/* function call to configure the digitizer */
/* function call which reads the data register */
ad_conf();
mem_read(base_addr);
}
/****************************************************************************/
void ad_conf(void)
{
int length = 0, loop = 0;
/* use the "set_commands" array to configure digitizer channel 1 */
char static *set_commands[] =
{"CONF1:ARR:VOLT (100),1,(@1)",
"TRIG:STAR:SOUR VME",
"VINS:CONF:VME:MODE GEN",
"VINS:CONF:VME:FEED ’CONV:CHAN1’",
"INIT"};
/* set 100 readings, on S/E port 1 */
/* trigger source is reads of data register */
/* enable data transfer over the VME bus */
/* set real time data transfer */
/* place the digitizer in the wait-for-arm state */
length = (sizeof(set_commands) / sizeof(char*));
/* Execute each command using a loop */
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR, set_commands[loop], strlen(set_commands[loop]));
}
/* function call to check for digitizer configuration errors */
check_error("ad_conf");
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
64 Using the Digitizer
Chapter 2
/****************************************************************************/
void mem_read(long base_addr)
{
int readings = 100, i = 0;
float *rdgs;
char rd_mem[80];
/* command string variable */
/* dynamically allocate memory for readings */
rdgs = malloc(100 * sizeof(float));
/* Create the (HP E1406 Command Module) command string which reads the data register */
sprintf(rd_mem, "DIAG:PEEK? %ld, %d", base_addr+0x0C,16);
/* Send DIAG:PEEK? command which accesses the data register */
/* and triggers measurements, and then retrieve measurements */
for (i = 0;i < readings; i++)
{
IOOUTPUTS(CMD_MOD, rd_mem, strlen(rd_mem));
IOENTER(CMD_MOD, &rdgs[i]);
}
/* Print a subset of the readings */
for (i = 0;i < 20;i++)
{
rdgs[i] /= 16;
/* remove label from reading */
if (rdgs[i] >= 2047 ||rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0005));
}
free(rdgs);
}
/****************************************************************************/
long get_base_addr(void)
{
/* digitizer logical address */
long logical_addr = (ADDR - 70900L) * 8;
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 65
/* base address of (A24) offset register in A16 address space */
long base_addr = (0x1FC000 + (logical_addr * 64)) + 6;
float a24offst;
char rd_addr[80];
/* A24 offset from A16 offset register */
/* command string variable */
/* Create the command string which reads the A24 base address */
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
/* Read value from offset register */
IOENTER(CMD_MOD, &a24offst);
/* Multiply offset value by 256 for 24-bit address value */
a24offst *= 256.;
return (long)a24offst;
}
/****************************************************************************/
void rst_clr(void)
/****************************************************************************/
void check_error(char *func_tion)
Comments 1. VME Data Transfer Modes. There are two modes of VME data
transfers: real time and post measurement. In a real time data transfer
(shown in this program) accessing the digitizer’s data register triggers a
measurement and returns the A/D reading directly to the VME bus in the
same measurement cycle. The reading(s) is also stored in digitizer memory.
In a post measurement transfer, each data register access transfers a A/D
reading from digitizer memory to the VME bus.
2. Locating the Data Register. Access to the data register is through its
address which is mapped by the HP E1406 Command Module into A24
address space. The data register has an offset of 12 (0C ) which is added to
16
the A24 base address to form the complete register address. In the program,
the C function long get_base_addr(void) determines the A24 base address
by reading the digitizer’s offset register in A16 address space. Detailed
information on locating the data register can be found in Chapter 3 under
the section "VME Bus Data Transfers".
3. VME Bus Data Format. Data is transferred over the VME bus in the
digitizer’s packed data format. Readings are 16-bits or 32-bits depending on
the source specified by the
VINStrument[:CONFigure]:VME:FEED <source > command. The source
parameters are listed in Chapter 3 under the section "Setting the VME bus
Transfer Mode".
Download from Www.Somanuals.com. All Manuals Search And Download.
66 Using the Digitizer
Chapter 2
4. System Configuration. The system configuration on which the program
VME_REAL.C was developed is listed on page 1-10.
VME_SEG1.C
/* VME_SEG1.C - This program demonstrates how to transfer segmented readings */
/* over the VME bus. The program sets up 2 bursts (segments) of 10 pre-arm */
/* and 10 post-arm readings. A reading is taken each time the digitizer’s */
/* data register is accessed, and is transferred real time, over the VME bus. */
/* Before the next burst is taken, bit 1 of (offset) register 43h is */
/* monitored to determine when the next segment of readings can be taken. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
/* I/O path from the PC to the digitizer */
#define ADDR 70905L
#define CMD_MOD 70900L /* Path from the PC to the Command Module */
/* Function Prototypes */
long get_base_addr(void);
void rst_clr(void);
void ad_conf(void);
void ad_read(long base_addr);
void check_error(char *func_tion);
/****************************************************************************/
void main(void)
{
/* run the program */
long base_addr;
/* variable for digitizer A24 base address */
clrscr();
rst_clr();
/* reset the digitizer */
base_addr = get_base_addr();
/* function call to get digitizer */
/* A24 base address */
ad_conf();
ad_read(base_addr);
/* function call which configures the digitizer */
/* function call which reads the digitizer */
/* data register */
}
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 67
/****************************************************************************/
void ad_conf(void)
{
int length = 0, loop = 0;
/* use the "set_commands" array to configure digitizer channel 1 */
char static *set_commands[] =
{"CONF1:ARR:VOLT (20),5,(@3)",
"ARM:STAR:SOUR IMM",
/* set 20 readings per burst, 5V range */
/* set arm source immediate */
/* set 2 bursts (arms) */
"ARM:STAR:COUN 2",
"TRIG:STAR:SOUR VME",
"SENS:SWE:OFFS:POIN -10",
"VINS:CONF:VME:MODE GEN",
/* Data register access triggers readings */
/* set 10 pre-arm readings */
/* enable VME bus data transfers */
"VINS:CONF:VME:FEED ’CONV:CHAN1’", /* real time data transfer */
"INIT"};
/* put digitizer in wait-for-arm state */
length = (sizeof(set_commands) / sizeof(char*));
/* Execute each command using a loop */
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR, set_commands[loop], strlen(set_commands[loop]));
}
/* function call to check for digitizer configuration errors */
check_error("ad_conf");
}
/****************************************************************************/
void ad_read(long base_addr)
{
int i, readings = 20, index = 0, loop = 0;
float *rdgs, bit;
char read_str[80], bit_str[80];
/* command string variables */
/* dynamically allocate memory for readings */
rdgs = malloc(40 * sizeof(float));
/* Create the command string which reads the data register */
sprintf(read_str, "DIAG:PEEK? %ld, %d", base_addr+0x0C,16);
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
68 Using the Digitizer
Chapter 2
/* Create the command string which reads bit 1 */
sprintf(bit_str, "DIAG:PEEK? %ld, %d", base_addr+0x43,8);
/* Send DIAG:PEEK? to access the data register 20 times. */
while (loop < 2)
{
/* two bursts (segments) */
for (i = index;i < readings; i++)
{
IOOUTPUTS(CMD_MOD, read_str, strlen(read_str));
IOENTER(CMD_MOD, &rdgs[i]);
}
/* Check bit 1 of offset register 43h before proceeding with */
/* the next segment. */
do /* decimal value of bit 1 */
{
IOOUTPUTS(CMD_MOD, bit_str, strlen(bit_str));
IOENTER(CMD_MOD, &bit);
} while ((int)bit & 2 == 0);
index +=20;
readings +=20; /* increment readings for next segment */
loop++; /* increment loop */
/* increment index for next segment */
}
/* Convert to voltages and print the readings */
for (i = 0;i < 20; i++)
{
rdgs[i] /= 16;
/* remove label from reading */
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("Reading overrange");
else
printf ("%.6E", (rdgs[i] * 0.0025));
rdgs[i+20] /= 16;
if (rdgs[i+20] >= 2047 || rdgs[i+20] <= -2046)
printf("\t\tReading overrange\n");
else
printf("\t\t%.6E\n", (rdgs[i+20] * 0.0025));
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 69
free(rdgs);
}
/****************************************************************************/
long get_base_addr(void)
{
/* digitizer logical address */
long logical_addr = (ADDR - 70900L) * 8;
/* base address of (A24) offset register in A16 address space */
long base_addr = (0x1FC000 + (logical_addr * 64)) + 6;
float a24offst;
/* A24 offset from A16 offset register */
char rd_addr[80]; /* command string variable */
/* Create the command string which reads the A24 base address */
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
/* Read value from offset register */
IOENTER(CMD_MOD, &a24offst);
/* Multiply offset value by 256 for 24-bit address value */
a24offst *= 256.;
return (long)a24offst;
}
/****************************************************************************/
void rst_clr(void)
{
/* Reset and clear the digitizer */
IOOUTPUTS(ADDR, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *func_tion)
{
char
into[161];
intlength = 160;
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
70 Using the Digitizer
Chapter 2
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in function %s\n\n", into, func_tion);
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
}
exit(1);
}
}
Comments 1. Segmented Readings. Multiple bursts of pre-arm and post-arm readings
segment memory (see Figure 3-13). When transferring segmented readings
over the VME bus real time or post measurement, a partition window must
be accounted for. A partition window is the period during which the
digitizer configures each segment for data transfer. The partition window is
monitored by bit 1 of digitizer offset register 43 , and by bit 9 of the
16
condition register in the Operation Status Group (Figure 3-13). A
low-to-high transition of the bit indicates the next segment can be
transferred.
2. Monitoring the Partition Window. It is only necessary to monitor the
partition window bits when the digitizer readings are segmented and the
data register is accessed at speeds available through an embedded controller.
Monitoring bit 1 of offset register 43 is faster than using SCPI commands
16
to monitor bit 9 of the condition register.
3. Locating the Registers. Access to the data register and offset register
43 is through their addresses which are mapped by the HP E1406
16
Command Module or the system resource manager into A24 address space.
The data register offset (12 or 0C ) and Offset register 43 (67 ) is
10
16
16
10
added to the A24 base address to form the complete register addresses. In
the program, the C function long get_base_addr(void) determines the A24
base address by reading the digitizer’s offset register in A16 address space.
Detailed information on locating the data and offset 43 registers can be
16
found in Chapter 3 under the section "VME Bus Data Transfers".
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 71
VME Bus Data Transfers Using an Embedded Controller
The following programs transfer data over the VME bus using the following
system configuration:
• Controller: RadiSys® EPC®-7 Embedded Controller
• Runtime library: Standard Instrument Control Library (SICL) for
DOS
• Compiler:
Borland© C++ (.CPP)
These programs are also contained on the C language example programs
disk (HP E1429-10302).
SEGTST16.CPP This program transfers 16-bit readings (real time) from the channel 1 A/D
converter to the VME bus.
The include files and structure definitions used in this this program are
listed following the SEGTST16.CPP and SEGTST32.CPP program listings.
// Options|Compiler|CodeGeneration|Model: Set to Large
// Options|Directories|Include Directories: Add C:\EPCONNEC\INCLUDE
// Options|Directories|Library Directories: Add C:\EPCONNEC\LIB
// Project Items: INST.CPP, E1429.CPP, SEGTST16.CPP, BSICL.LIB, EPCMSC.LIB
#include <stdlib.h>
#include <stdio.h>
#include "e1429.h"
#define BUFLEN 200
extern int ierrno;
int Measure(E1429 *Dig);
int ReadData(E1429 *Dig);
/* *********************** Main *********************** */
void main(void) {
int Errors;
E1429 *Dig;
Errors = 0;
ierrno = 0;
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
72 Using the Digitizer
Chapter 2
Dig = new E1429;
if (!Dig->IsValid()) {
printf("Digitizer could not be opened (%s).\n",
igeterrstr(igeterrno()));
if (Dig != NULL)
delete Dig;
Dig = NULL;
exit(1);
}
Errors += Measure(Dig);
if (!Errors)
Errors += ReadData(Dig);
delete Dig;
exit(0);
}
/* ********************** Measure ********************* */
int Measure(E1429 *Dig) {
int Errors;
char Buf[BUFLEN+1], **Com;
static char *Commands[] = {
"*RST",
"CONF1:ARR:VOLT (20), 5, (@3)",
"ARM:STAR:SOUR IMM",
"ARM:STAR:COUN 2",
"TRIG:STAR:SOUR VME",
"SENS:SWE:OFFS:POIN -10",
"VINS:CONF:VME:MODE GEN",
"VINS:CONF:VME:FEED ’CONV:CHAN1’",
"INIT",
NULL
};
for (Com = Commands; *Com != NULL; Com++)
Dig->SendMessage(*Com);
Errors = 0;
while (Dig->GetErrorMessage(Buf,BUFLEN) != NULL) {
printf("%s\n",Buf);
Errors++;
}
return Errors;
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 73
/* ********************* ReadData ********************* */
int ReadData(E1429 *Dig) {
int SegCnt, ReadCnt;
WORD *Readings, *Reading, *Reading2;
const static NReadings = 20, NSegments = 2;
const static float Scale = 0.0025 / 16.0;
Reading = Readings = (WORD *)
malloc(NSegments * NReadings * sizeof(WORD));
for (SegCnt = 0; SegCnt < NSegments; SegCnt++) {
while ((Dig->bGet(67) & 2) == 0);
Dig->MGetDataReg((UWORD *) Reading,NReadings);
Reading += NReadings;
}
printf(" **** Channel 1 ****\n");
printf("
Seg 1 Seg 2\n");
printf(" ---------- ----------\n");
Reading = Readings;
Reading2 = Readings + NReadings;
for (ReadCnt = 1; ReadCnt <= NReadings; ReadCnt++)
printf("%2d%+10.4f%+10.4f\n",ReadCnt,Scale * *Reading++,Scale * *Reading2++);
printf("\n");
free(Readings);
return 0;
}
SEGTST32.CPP This program transfers 32-bit readings (real time) from the channel 2 and
channel 1 A/D converters to the VME bus. In a 32-bit transfer, the upper
16-bits are the reading from channel 2 and the lower 16-bits are the reading
from channel 1 (Figure 3-11).
The include files and structure definitions used in this this program are
listed following the program listing.
Download from Www.Somanuals.com. All Manuals Search And Download.
74 Using the Digitizer
Chapter 2
// Options|Compiler|CodeGeneration|Model: Set to Large
// Options|Directories|Include Directories: Add C:\EPCONNEC\INCLUDE
// Options|Directories|Library Directories: Add C:\EPCONNEC\LIB
// Project Items: INST.CPP, E1429.CPP, SEGTST32.CPP, BSICL.LIB, EPCMSC.LIB
#include <stdlib.h>
#include <stdio.h>
#include "e1429.h"
#define BUFLEN 200
extern int ierrno;
int Measure(E1429 *Dig);
int ReadData(E1429 *Dig);
/* *********************** Main *********************** */
void main(void) {
int Errors;
E1429 *Dig;
Errors = 0;
ierrno = 0;
Dig = new E1429;
if (!Dig->IsValid()) {
printf("Digitizer could not be opened (%s).\n",
igeterrstr(igeterrno()));
if (Dig != NULL)
delete Dig;
Dig = NULL;
exit(1);
}
Errors += Measure(Dig);
if (!Errors)
Errors += ReadData(Dig);
delete Dig;
exit(0);
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 75
/* ********************** Measure ********************* */
int Measure(E1429 *Dig) {
int Errors;
char Buf[BUFLEN+1], **Com;
static char *Commands[] = {
"*RST",
"CONF1:ARR:VOLT (20), 5, (@3)",
"CONF2:ARR:VOLT (20), 5, (@4)",
"ARM:STAR:SOUR IMM",
"ARM:STAR:COUN 2",
"TRIG:STAR:SOUR VME",
"SENS:SWE:OFFS:POIN -10",
"VINS:CONF:VME:MODE GEN",
"VINS:CONF:VME:FEED ’CONV:BOTH32’",
"INIT",
NULL
};
for (Com = Commands; *Com != NULL; Com++)
Dig->SendMessage(*Com);
Errors = 0;
while (Dig->GetErrorMessage(Buf,BUFLEN) != NULL) {
printf("%s\n",Buf);
Errors++;
}
return Errors;
}
/* ********************* ReadData ********************* */
int ReadData(E1429 *Dig) {
int SegCnt, ReadCnt;
LONG *Readings, *Reading, *Reading2;
const static NReadings = 20, NSegments = 2;
const static float Scale = 0.0025 / 16.0;
Reading = Readings = (LONG *)
malloc(NSegments * NReadings * sizeof(LONG));
for (SegCnt = 0; SegCnt < NSegments; SegCnt++) {
while ((Dig->bGet(67) & 2) == 0);
Dig->MGetLongDataReg((ULONG *) Reading,NReadings);
Reading += NReadings;
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
76 Using the Digitizer
Chapter 2
printf(" **** Channel 1 **** **** Channel 2 ****\n");
printf(" Seg 1 Seg 2 Seg 1 Seg 2\n");
printf(" ---------- ---------- ---------- ----------\n");
Reading = Readings;
Reading2 = Readings + NReadings;
for (ReadCnt = 1; ReadCnt <= NReadings; ReadCnt++) {
printf("%2d%+10.4f%+10.4f %+10.4f%+10.4f\n",ReadCnt,
Scale*LOWORD(*Reading), Scale*LOWORD(*Reading2),
Scale*HIWORD(*Reading), Scale*HIWORD(*Reading2)
);
Reading++;
Reading2++;
}
printf("\n");
free(Readings);
return 0;
}
SEGTST16.CPP The following files are used with programs SEGTST16.CPP and
SEGTST32.CPP:
and
SEGTST32.CPP
• INST.H
#include Files
• INST.CPP
• E1429.H
• E1429.CPP
INST.H
#ifndef INST_DEFD
#define INST_DEFD
#include <sicl.h>
#define BYTE char
#define WORD short int
#define LONG long
#define UBYTE unsigned char
#define UWORD unsigned short int
#define ULONG unsigned long
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 77
#define LOWORD(lWord) ((WORD)(lWord))
#define HIWORD(lWord) ((WORD)((LONG)(lWord) >> 16))
class RegInst {
static RegInst *MappedInst;
int Valid;
int Mapped;
int MapSpace;
unsigned int PageStart, PageCount;
UBYTE *SuggestedAddr;
protected:
INST Inst;
UBYTE *BaseAddr;
void Unmap(void);
public:
RegInst(UWORD lAddr = 0);
~ RegInst(void);
int
IsValid(void) { return (this != NULL && Valid); }
INST GetInstID(void) { return Inst; }
void SetMapping(int mapSpace, unsigned int pageStart, unsigned int pageCount,
UBYTE *suggestedAddr);
void Map(void);
UBYTE bGet(UWORD offset) { if (!Mapped) Map(); return ibpeek((UBYTE *)
(BaseAddr+offset)); }
void bSet(UWORD offset, UBYTE value = 0) { if (!Mapped) Map(); ibpoke((UBYTE *)
(BaseAddr+offset),value); }
UWORD wGet(UWORD offset) { if (!Mapped) Map(); return iwpeek((UWORD *)
(BaseAddr+offset)); }
void wSet(UWORD offset, UWORD value = 0) { if (!Mapped) Map(); iwpoke((UWORD *)
(BaseAddr+offset),value); }
void wMGet(UWORD offset, UWORD *dest, ULONG count) {
if (!Mapped) Map(); iwpopfifo(Inst,(UWORD *) (BaseAddr+offset),dest,count,1);
}
void wMSet(UWORD offset, UWORD *src, ULONG count) {
if (!Mapped) Map(); iwpushfifo(Inst,(UWORD *) (BaseAddr+offset),src,count,1);
}
void lMGet(UWORD offset, ULONG *dest, ULONG count) {
if (!Mapped) Map(); ilpopfifo(Inst,(ULONG *) (BaseAddr+offset),dest,count,1);
}
void lMSet(UWORD offset, ULONG *src, ULONG count) {
if (!Mapped) Map(); ilpushfifo(Inst,(ULONG *) (BaseAddr+offset),src,count,1);
}
};
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
78 Using the Digitizer
Chapter 2
class MessInst : public RegInst {
public:
MessInst(WORD lAddr) : RegInst(lAddr) { }
void Clear(void) { iclear(Inst); }
void SendMessage(const char *message);
char *ReceiveMessage(char *message, int maxLen = 80);
char *GetErrorMessage(char *message, int maxLen = 80);
};
#endif
INST.CPP
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "inst.h"
#define BUFLEN 200
/* ************************** RegInst ************************** */
RegInst *RegInst::MappedInst = NULL;
RegInst::RegInst(UWORD lAddr) {
char Buf[32];
BaseAddr = NULL;
MapSpace = 0;
PageStart = 0;
PageCount = 0;
sprintf(Buf,"vxi,%u",lAddr);
Valid = ((Inst = iopen(Buf)) != NULL) ? 1 : 0;
Mapped = 0;
}
RegInst::~ = RegInst(void) {
if (Inst != NULL) {
Unmap();
iclose(Inst);
}
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 79
void RegInst::SetMapping(int mapSpace, unsigned int pageStart, unsigned int
pageCount, UBYTE *suggestedAddr) {
int WasMapped;
if (this != NULL) {
WasMapped = Mapped;
if (Mapped)
Unmap();
MapSpace
= mapSpace;
PageStart = pageStart;
PageCount = pageCount;
SuggestedAddr = suggestedAddr;
if (WasMapped)
Map();
}
}
void RegInst::Map(void) {
if (this != NULL) {
Valid = 0;
if (Inst != NULL) {
MappedInst->Unmap();
BaseAddr = imap(Inst,MapSpace,PageStart,PageCount,SuggestedAddr);
if (BaseAddr != NULL) {
MappedInst = this;
Valid = 1;
Mapped = 1;
}
}
}
}
void RegInst::Unmap(void) {
if (this != NULL) {
Valid = 0;
if (Inst != NULL) {
if (this == MappedInst) {
iunmap(Inst,BaseAddr,MapSpace,PageStart,PageCount);
MappedInst = NULL;
}
Valid = 1;
}
BaseAddr = NULL;
Mapped = 0;
}
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
80 Using the Digitizer
Chapter 2
/* ************************* MessInst ************************** */
void MessInst::SendMessage(const char *message) {
unsigned long ActualLen;
char Buf[BUFLEN+1];
strcpy(Buf,message);
strcat(Buf,"\n");
iwrite(Inst,Buf,strlen(Buf),0,&ActualLen);
}
char *MessInst::ReceiveMessage(char *message, int maxLen) {
int Reason;
unsigned long ActualLen;
char *SPtr, Buf[BUFLEN+1];
iread(Inst,message,maxLen,&Reason,&ActualLen);
message[ActualLen] = ’\0’;
SPtr = message + strlen(message) - 1;
while (SPtr >= message && *SPtr == ’\n’)
*SPtr-- = ’\0’;
while (Reason == I_TERM_MAXCNT)
iread(Inst,Buf,BUFLEN,&Reason,&ActualLen);
return message;
}
char *MessInst::GetErrorMessage(char *message, int maxLen) {
char *MPtr;
SendMessage("SYST:ERR?");
ReceiveMessage(message,maxLen);
MPtr = (atoi(message)) ? message : NULL;
return MPtr;
}
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 81
E1429.H
#ifndef E1429_DEFD
#define E1429_DEFD
#include "inst.h"
class E1429 : public MessInst {
int MemoryMode;
public:
E1429(WORD lAddr = 40);
void SetDataReg(UWORD value) { wSet(0x0c,value); }
UWORD GetDataReg(void) { return wGet(0x0c); }
void MGetDataReg(UWORD *dest, ULONG count) { wMGet(0x0c,dest,count); }
ULONG GetLongDataReg(void); // Cannot use lGet here because of ilpeek problem
void MGetLongDataReg(ULONG *dest, ULONG count) { lMGet(0x0c,dest,count); }
};
#endif
E1429.CPP
#include <stdlib.h>
#include "e1429.h"
E1429::E1429(WORD lAddr) : MessInst(lAddr) {
SetMapping(I_MAP_EXTEND,0,1,NULL);
Map();
}
ULONG E1429::GetLongDataReg(void) {
ULONG Result;
lMGet(0x0c,&Result,1);
return Result;
}
Download from Www.Somanuals.com. All Manuals Search And Download.
82 Using the Digitizer
Chapter 2
Local Bus Data Transfers
The following programs demonstrate:
• how readings are transferred over the Local bus from a single
digitizer to the HP E1488 memory card (LOCAL_AD.C)
• how readings in digitizer memory are transferred over the Local bus
from two digitizers to the HP E1488 memory card (LBUS2PST.C)
• how readings from two digitizer A/Ds are transferred over the Local
bus to the HP E1488 memory card (LBUSAUTO.C)
For completeness, the entire C language versions of these programs are
listed. The programs are also contained on the example programs disk
(HP p/n E1429-10302).
LOCAL_AD.C This program transfers readings from both digitizer channels to the
HP E1488 memory card. The readings are tranferred directly from the
digitizer A/Ds.
/* LOCAL_AD.C - This program demonstrates a Local bus data transfer */
/* directly (real time) from the HP E1429B digitizer A/Ds to the E1488A memory */
/* card. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
/* I/O path from the PC to the digitizer */
#define ADDR 70905L
#define ADDR_MEM 70903L /* I/O path from the PC to the memory card */
/* Function Prototypes */
void rst_clr(long address);
void configure(void);
void initiate(void);
void check_error(char *array, long address);
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 83
/****************************************************************************/
void main(void)
{
/* run the program */
rst_clr(ADDR);
/* reset the digitizer */
rst_clr(ADDR_MEM);
configure();
initiate();
/* reset the memory card */
/* configure the digitizer and the memory card */
/* initiate the digitizer and memory card; */
/* retrieve the readings from the memory card */
}
/****************************************************************************/
void configure(void)
{
int length = 0, loop = 0;
/* use the "digitizer" array to configure the digitizer for readings on */
/* each channel’s (HI) differential input */
char static *digitizer[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel 1 input port 3 */
"CONF2:ARR:VOLT (10),5,(@4)",
"VINS:LBUS:RES",
/* configure channel 2, port 4 */
/* reset the Local bus chip */
"VINS:LBUS:MODE GEN",
"VINS:LBUS:FEED ’CONV:BOTH’"};
/* set Local bus mode to GENerate */
/* set Local bus feed (direct from A/D)
/* use the "memory" array to configure the memory card */
char static *memory[] =
{"FORM:DATA PACK",
"TRAC:DEL:ALL",
"TRAC:DEF SET2, 40",
"VINS:LBUS:RES",
/* set packed data format */
/* delete all readings on memory card */
/* store readings (40 bytes) in "SET2" */
/* reset the Local bus chip */
"VINS:LBUS:MODE CONS", /* set Local bus mode to consume */
"STAT:OPC:INIT OFF"}; /* execute *OPC? after INIT is parsed */
/* Execute each command in "digitizer" */
length = (sizeof(digitizer) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR, digitizer[loop], strlen(digitizer[loop]));
}
/* Execute each command in "memory" */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
84 Using the Digitizer
Chapter 2
length = (sizeof(memory) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_MEM, memory[loop], strlen(memory[loop]));
}
/* check for configuration errors */
check_error("digitizer", ADDR);
check_error("memory", ADDR_MEM);
}
/****************************************************************************/
void initiate(void)
{
int i = 0, readings = 20, swap = 0, bytes = 0, length = 1, *rdgs;
float rdy;
char lf_remove[1];
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(float));
swap = sizeof(int);
/* allocate computer memory for reading storage */
/* each reading in memory is two bytes */
bytes = 20 * swap;
/* read 40 bytes (2 channels, 10 readings per channel) */
IOOUTPUTS(ADDR_MEM, "INIT", 4);
/* initiate the memory card */
IOOUTPUTS(ADDR_MEM, "*OPC?", 5); /* wait for INIT to parse before continuing */
IOENTER(ADDR_MEM, &rdy);
/* enter *OPC? response from memory card */
IOOUTPUTS(ADDR, "INIT", 4);
/* initiate the digitizer */
IOOUTPUTS(ADDR, "*OPC?", 5); /* allow readings to complete before */
/* retrieving them from the memory card */
IOENTER(ADDR, &rdy);
/* enter *OPC? response from digitizer */
IOOUTPUTS(ADDR_MEM, "TRAC:DATA? SET2", 15); /* retrieve readings from memory card
IOENTERAB(ADDR_MEM, rdgs, &bytes, swap); /* enter readings and remove block header */
*/
/* remove line feed which trails the last data byte */
IOENTERS(ADDR_MEM, lf_remove, &length);
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 85
/* convert and display the readings; readings are in the sequence */
/* channel 2 reading 1, channel 1 reading 1, channel 2 reading 2, */
/* channel 1 reading 2, and so on */
for (i = 0; i < readings; i++)
{
rdgs[i] /= 16;
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0025));
}
free(rdgs);
}
/****************************************************************************/
void rst_clr(long address)
{
/* Reset and clear the digitizer and memory card */
IOOUTPUTS(address, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *array, long address)
{
char
into[161];
intlength = 160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in array %s\n\n", into, array);
length = 160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
}
exit(1);
}
}
Download from Www.Somanuals.com. All Manuals Search And Download.
86 Using the Digitizer
Chapter 2
Comments 1. Digitizer Configuration. Both channel’s HI differential inputs (ports 3
and 4) are CONFigured for 10 readings on the 5V range. Two readings
(channel 1 and channel 2) are taken on each sample trigger. The sample
rate, as set by the CONFigure command, is 50 ns (20 MHz). Thus, data is
transferred at a rate of 40 MSamples (80 MBytes)/second.
Before setting the digitizer’s Local bus configuration the Local bus chip is
reset. Next, the Local bus mode is set to GENerate and the feed (data
source) is set to CONVerter:BOTH.
2. Post-Arm Readings. When transferring readings over the Local bus
from the digitizer A/D, all readings must be post-arm.
3. Initiating the Digitizer. After the memory card is configured, it is
INITiated first so that it is ready to receive the digitizer readings. When the
digitizer is INITiated, *OPC? is used to allow the readings to complete and
be transferred before they are retrieved from the memory card.
4. Reading Sequence and Format. When this program executes, the
readings are transferred to the memory card and later displayed in the
following sequence:
channel 2 reading 1
channel 1 reading 1
channel 2 reading 2
channel 1 reading 2
.
.
.
The memory card was set up to store the readings in the digitizer’s packed
data format. The packed readings are signed, 16-bit numbers preceded by
the ANSI/IEEE Standard 488.2-1987 Definite Length Arbitrary Block
header. Packed readings are always numbers between -1.0230 (-2046) and
+1.0235 (2047). To convert the readings to voltages, each reading is divided
by 16 to remove the data label bits (0 - 3), and is multipled by 0.0025 which
is the reading resolution for the 5V range.
5. Additional Information. Additional information on Local bus operation
and on the Local bus commands can be found in Chapter 3 - "Understanding
the Digitizer", and in Chapter 4 - "Command Reference."
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 87
LBUS2PST.C This program transfers readings in digitizer memory from two digitizers to
the HP E1488 memory card. The program shows how the digitizers are used
in the Local bus GENerate and APPend modes.
/* LBUS2PST.C - This program demonstrates how to transfer readings in */
/* digitizer memory from multiple digitizers to the E1488 memory card. The */
/* leftmost digitizer is set to GENerate mode and the inner digitizer is set */
/* to the APPend mode. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
#define ADDR_G 70905L
#define ADDR_A 70906L
#define ADDR_MEM 70903L
/* I/O path from the PC to the generator digitizer */
/* I/O path from the PC to the appender digitizer */
/* I/O path from the PC to the memory card */
/* Function Prototypes */
void rst_clr(long address);
void configure(void);
void initiate(void);
void check_error(char *func_tion, long address);
/****************************************************************************/
void main(void)
{
/* run the program */
rst_clr(ADDR_G);
/* reset generator digitizer */
rst_clr(ADDR_A);
rst_clr(ADDR_MEM);
configure();
/* reset appender digitizer */
/* reset memory card */
/* configure the digitizers and the memory card */
/* initiate the digitizers and the memory card; */
/* retrieve the readings from the memory card */
initiate();
}
/****************************************************************************/
void configure(void)
{
int length = 0, loop = 0;
/* use the "digitizer1" array to configure the generator digitizer */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
88 Using the Digitizer
Chapter 2
char static *digitizer1[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel, 1 input port 3 */
/* reset the Local bus chip */
/* set Local bus mode to GENerate */
/* set Local bus feed */
"VINS:LBUS:RES",
"VINS:LBUS:MODE GEN",
"VINS:LBUS:FEED ’MEM:CHAN1’"};
/* use the "digitizer2" array to configure the appender digitizer */
char static *digitizer2[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel, 1 input port 3 */
/* reset the Local bus chip */
/* set Local bus mode to APPend */
/* set Local bus feed */
"VINS:LBUS:RES",
"VINS:LBUS:MODE APP",
"VINS:LBUS:FEED ’MEM:CHAN1’"};
/* use the "memory" array to configure the memory card */
char static *memory[] =
{"FORM:DATA PACK",
"TRAC:DEL:ALL",
"TRAC:DEF SET1, 40",
"VINS:LBUS:RES",
/* set packed data format */
/* delete all readings on memory card */
/* store readings (40 bytes) in "SET1" */
/* reset the Local bus chip */
"VINS:LBUS:MODE CONS",
"STAT:OPC:INIT OFF"};
/* set Local bus mode to consume */
/* execute *OPC? after INIT is parsed */
/* Execute each command in "digitizer1" using a loop */
length = (sizeof(digitizer1) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_G, digitizer1[loop], strlen(digitizer1[loop]));
}
/* Execute each command in "digitizer2" using a loop */
length = (sizeof(digitizer2) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_A, digitizer2[loop], strlen(digitizer2[loop]));
}
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 89
/* Execute each command in "memory" */
length = (sizeof(memory) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_MEM, memory[loop], strlen(memory[loop]));
}
/* check for digitizer and memory card configuration errors */
check_error("digitizer1", ADDR_G);
check_error("digitizer2", ADDR_A);
check_error("memory", ADDR_MEM);
}
/****************************************************************************/
void initiate(void)
{
int i = 0, readings = 20, swap = 0, bytes = 0, length = 1, *rdgs;
float rdy;
char lf_remove[1];
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(float));
swap = sizeof(int);
bytes = 20 * swap;
/* allocate computer memory for reading storage */
/* each reading in memory is two bytes */
/* read 40 bytes */
IOOUTPUTS(ADDR_MEM, "INIT", 4);
/* initiate the memory card */
IOOUTPUTS(ADDR_MEM, "*OPC?", 5); /* wait for INIT to parse before continuing */
IOENTER(ADDR_MEM, &rdy);
/* enter *OPC? response from memory card */
/* initiate the appender digitizer */
IOOUTPUTS(ADDR_A, "INIT", 4);
IOOUTPUTS(ADDR_G, "INIT", 4);
IOOUTPUTS(ADDR_G, "*OPC?", 5);
/* initiate the generator digitizer */
/* allow the readings to complete before */
/* retrieving them from the memory card */
/* enter *OPC? response from the digitizer */
IOENTER(ADDR_G, &rdy);
IOOUTPUTS(ADDR_MEM, "TRAC:DATA? SET1", 15); /* retrieve readings from memory
card */
IOENTERAB(ADDR_MEM, rdgs, &bytes, swap); /* enter readings and remove block header
*/
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
90 Using the Digitizer
Chapter 2
/* remove line feed which trails the last data byte */
IOENTERS(ADDR_MEM, lf_remove, &length);
/* convert and display the readings; the generator digitizer readings */
/* occur first, followed by the appender digitizer readings */
for (i = 0; i < readings; i++)
{
rdgs[i] /= 16;
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0025));
}
free(rdgs);
}
/****************************************************************************/
void rst_clr(long address)
{
/* Reset and clear the instruments */
IOOUTPUTS(address, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *array, long address)
{
char
into[161];
intlength = 160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 91
while (atoi(into) != 0)
{
printf("Error %s in %s\n\n", into, array);
length =160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
}
exit(1);
}
}
Comments 1. GENerator Digitizer Configuration. Channel 1 of the GENerator
digitizer is CONFigured for 10 readings on the 5V range.
Before setting the digitizer’s Local bus configuration, the Local bus chip is
reset. Next, the Local bus mode is set to GENerate and the feed (data
source) is set to MEMory:CHANnel1.
2. APPender Digitizer Configuration. Channel 1 of the APPender
digitizer is CONFigured for 10 readings on the 5V range.
For all digitizer’s doing Local bus transfers, the Local bus chip must be
reset first. Next, the Local bus mode is set to APPend and the feed (data
source) is set to MEMory:CHANnel1.
3. Pre- and Post-Arm Readings. When the Local bus data source is
MEMory: ..., the readings are transferred over the Local bus from digitizer
memory rather than directly from the A/D. In this case, pre- and post-arm
readings are allowed prior to the Local bus transfer.
4. Initiating the Digitizers. After the memory card is configured, the card
is INITiated first so that it is ready to receive the digitizer readings. In a
configuration with multiple digitizers in the APPend mode, the APPender
digitizer(s) is (are) INITiated next. Because CONFigure sets the arm source
to IMMediate, INITiating the (APPender) digitizer causes it to take its
readings. After the APPender is INITiated the GENerator digitizer is
INITiated. *OPC? is used to allow the GENerator readings to complete and
be transferred before they are retrieved from the memory card.
Note that the APPender digitizers must have finished taking data before the
GENerator is finished. All APPenders must be ready to pipeline the
GENerator’s data at the time the data is sent.
Download from Www.Somanuals.com. All Manuals Search And Download.
92 Using the Digitizer
Chapter 2
5. Reading Sequence and Format. When this program executes, the
readings are transferred to the memory card and later displayed in the
following sequence:
GENerator digitizer reading 1
GENerator digitizer reading n
.
.
APPender digitizer reading 1
APPender digitizer reading n
The memory card was set up to store the readings in the digitizer’s packed
data format. The packed readings are signed, 16-bit numbers preceded by
the ANSI/IEEE Standard 488.2-1987 Definite Length Arbitrary Block
header. Packed readings are always numbers between -1.0230 (-2046) and
+1.0235 (2047). To convert the readings to voltages, each reading is divided
by 16 to remove the data label bits (0 - 3), and is multipled by 0.0025 (the
reading resolution for the 5V range).
6. Additional Information. Additional information on Local bus operation
and on the Local bus commands can be found in Chapter 3 - "Understanding
the Digitizer", and in Chapter 4 - "Command Reference."
LBUSAUTO.C This program transfers readings over the Local bus from two digitizer A/Ds
to the HP E1488 memory card. The program shows how the digitizers are
used in the Local bus GENerate and INSert modes. The program is similar
to the previous program; however, rather than INITiate each digitizer
individually, the INSerter digitizer INITiates the GENerator digitizer once
the INSerter digitizer readings are complete.
/* LBUSAUTO.C - This program demonstrates how to transfer readings over the */
/* Local bus from two digitizer A/Ds to the HP E1488 memory card. The leftmost */
/* digitizer is set to the GENerate mode and the inner digitizer is set to the */
/* INSert mode. The generator digitizer is armed from the TTLT0 trigger line */
/* when the inserter digitizer has completed its measurements. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 93
#define ADDR_G 70905L
#define ADDR_I 70906L
#define ADDR_MEM 70903L
#define CMD_MOD 70900L
/* I/O path from the PC to the generator digitizer */
/* I/O path from the PC to the inserter digitizer */
/* I/O path from the PC to the memory card */
/* I/O path from the PC to the Command Module */
/* Function Prototypes */
void rst_clr(long address);
long get_base_addr(void);
void configure(void);
void initiate(long base_addr);
void check_error(char *func_tion, long address);
/****************************************************************************/
void main(void)
{
/* run the program */
long base_addr;
/* variable for A24 base address */
clrscr();
rst_clr(ADDR_G);
rst_clr(ADDR_I);
rst_clr(ADDR_MEM);
/* reset the generator digitizer */
/* reset the inserter digitizer */
/* reset memory card */
base_addr = get_base_addr(); /* get digitizer A24 base address */
configure();
/* configure the digitizers and memory card*/
initiate(base_addr);
/* initiate the digitizers and memory card; */
/* retrieve the readings from the memory card */
}
/****************************************************************************/
void configure(void)
{
int length = 0, loop = 0;
/* use the "digitizer1" array to configure the generator digitizer */
char static *digitizer1[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel, 1 input port 3 */
/* set arm source */
/* set arm delay */
/* reset the Local bus chip */
/* set Local bus mode to GENerate */
"ARM:STAR:SOUR TTLT0",
"ARM:STAR:DEL 50E-6",
"VINS:LBUS:RES",
"VINS:LBUS:MODE GEN",
"VINS:LBUS:FEED ’CONV:CHAN1’"}; /* set Local bus feed */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
94 Using the Digitizer
Chapter 2
/* use the "digitizer2" array to configure the inserter digitizer */
char static *digitizer2[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel, 1 input port 3 */
"OUTP:TTLT0:FEED ’READY’",
"OUTP:TTLT0:STAT ON",
"VINS:LBUS:RES",
/* feed ready signal to next digitizer */
/* enable ready signal feed */
/* reset the Local bus chip */
/* set Local bus mode to INSert */
"VINS:LBUS:MODE INS",
"VINS:LBUS:FEED ’CONV:CHAN1’"}; /* set Local bus feed */
/* use the "memory" array to configure the memory card */
char static *memory[] =
{"FORM:DATA PACK",
"TRAC:DEL:ALL",
"TRAC:DEF SET1, 40",
"VINS:LBUS:RES",
/* set packed data format */
/* delete all readings on memory card */
/* store readings (40 bytes) in "SET1" */
/* reset the Local bus chip */
"VINS:LBUS:MODE CONS",
"STAT:OPC:INIT OFF"};
/* set Local bus mode to consume */
/* execute *OPC? after INIT is parsed */
/* Execute each command in "digitizer1" using a loop */
length = (sizeof(digitizer1) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_G, digitizer1[loop], strlen(digitizer1[loop]));
}
/* Execute each command in digitizer2 using a loop */
length = (sizeof(digitizer2) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_I, digitizer2[loop], strlen(digitizer2[loop]));
}
/* Execute each command in "memory" */
length = (sizeof(memory) / sizeof(char*));
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 95
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_MEM, memory[loop], strlen(memory[loop]));
}
/* check for digitizer configuration errors */
check_error("digitizer1", ADDR_G);
check_error("digitizer2", ADDR_I);
check_error("memory", ADDR_MEM);
}
/****************************************************************************/
void initiate(long base_addr)
{
int i = 0, readings = 20, swap = 0, bytes = 0, length = 1, *rdgs;
int bit_reg = 0;
float rdy, bit_pat = 0;
char lf_remove[1], command[80];
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(float));
swap = sizeof(int);
bytes = 20 * swap;
/* allocate computer memory for reading storage */
/* each reading in memory is two bytes */
/* read 40 bytes */
/* create DIAG:PEEK? command which reads the generator digitizer’s */
/* arm source register */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x49,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set arm source 1 slope to positive */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF7);
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x49,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOOUTPUTS(ADDR_MEM, "INIT", 4);
/* initiate the memory card */
IOOUTPUTS(ADDR_MEM, "*OPC?", 5); /* wait for INIT to parse before continuing */
IOENTER(ADDR_MEM, &rdy);
/* enter *OPC? response from memory card */
/* initiate the generator digitizer */
IOOUTPUTS(ADDR_G, "INIT", 4);
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
96 Using the Digitizer
Chapter 2
IOOUTPUTS(ADDR_I, "INIT", 4);
IOOUTPUTS(ADDR_G, "*OPC?",5);
IOENTER(ADDR_G, &rdy);
/* initiate the inserter digitizer */
/* wait for generator digitizer to finish */
IOOUTPUTS(ADDR_MEM, "TRAC:DATA? SET1", 15); /* retrieve readings from memory card
IOENTERAB(ADDR_MEM, rdgs, &bytes, swap); /* enter readings and remove block header
*/
*/
/* remove line feed which trails the last data byte */
IOENTERS(ADDR_MEM, lf_remove, &length);
/* convert and display readings; the inserter digitizer readings */
/* occur first, followed by the generator digitizer readings */
for (i = 0; i < readings; i++)
{
rdgs[i] /= 16;
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0025));
}
free(rdgs);
}
/****************************************************************************/
long get_base_addr(void)
{
/* base address of generator digitizer’s (A24) offset register in A16 */
/* address space */
long base_addr = (0x1FC000 + (40 * 64)) + 6; /* generator digitizer logical address is 48 */
float a24offst;
/* A24 offset from A16 offset register */
char rd_addr[80]; /* command string variable */
/* Create the command string which reads the A24 base address from the offset register */
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 97
/* Read value from offset register */
IOENTER(CMD_MOD, &a24offst);
/* Multiply offset value by 256 for 24-bit address value */
a24offst *= 256.;
return (long)a24offst;
}
/****************************************************************************/
void rst_clr(long address)
{
/* Reset and clear the instruments */
IOOUTPUTS(address, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *array, long address)
{
char
into[161];
intlength = 160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in %s\n\n", into, array);
length = 160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
}
exit(1);
}
}
Download from Www.Somanuals.com. All Manuals Search And Download.
98 Using the Digitizer
Chapter 2
Comments 1. GENerator Digitizer Configuration. Channel 1 of the GENerator
digitizer is CONFigured for 10 readings on the 5V range. The arm source is
set to TTLT0. This VXI backplane trigger line is controlled by the INSerter
digitizer which feeds its READy signal to arm the GENerator digitizer after
its readings are complete. An arm delay of 50 µs is specified to allow for the
INSerter digitizer to switch to the pipeline mode after its readings are
complete (see the "Insert" mode description under "Local Bus Modes" in
Chapter 3).
The INSerter digitizer’s READy signal goes high when the readings are
complete and the digitizer enters the idle state. In order for the GENerator
digitizer to arm on the low-to-high transition, the GENerator digitizer must
be set to accept a positive slope. This is done by writing to the digitizer’s
Arm Source register and setting the slope bit from negative (1) to positive
(0).
The digitizer’s Local bus configuration begins by resetting the Local bus
chip. The Local bus mode is set to GENerate and the feed (data source) is
set to CONVerter:CHANnel1.
2. INSerter Digitizer Configuration. Like the GENerator digitizer, the
INSerter digitizer is CONFigured for 10 readings on the 5V range. The
INSerter digitizer’s arm source and trigger source are INTernal. The
INSerter digitizer transfers (feeds) its READy signal to the GENerator
digitizer over the VXI backplane TTLT0 trigger line.
Again, the digitizer’s Local bus configuration begins by resetting the Local
bus chip. The Local bus mode is set to INSert and the feed (data source) is
set to CONVerter:CHANnel1.
3. Digitizer Sample Rates. The maximum Local bus transfer rate is 80
MBytes/second which is equivalent to 40 MSamples/second. The sample
rate for both digitizers as set by the CONFigure command is 50 ns
(20 MHz). Thus, data is transferred from the two digitizers at a rate of 40
MSamples (80 MBytes)/second.
4. Initiating the Digitizers. After the memory card is configured, the card
is INITiated first so that it is ready to receive the digitizer readings. In a
configuration with multiple digitizers in the INSert mode, the GENerator
digitizer is INITiated next so that it is waiting for an arm signal to begin
taking measurements. When the INSerter is INITiated it takes its readings
and then arms the GENerator digitizer. *OPC? is used to allow the
GENerator readings to complete and be transferred before they are retrieved
from the memory card.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 99
5. Reading Sequence and Format. When this program executes, the
readings are transferred to the memory card and later displayed in the
following sequence:
INSerter digitizer reading 1
INSerter digitizer reading n
.
.
GENerator digitizer reading 1
GENerator digitizer reading n
The memory card stores the readings in the digitizer’s packed data format.
Packed readings are signed, 16-bit numbers preceded by the ANSI/IEEE
Standard 488.2-1987 Definite Length Arbitrary Block header. Packed
readings are always numbers between -1.0230 (-2046) and +1.0235 (2047).
To convert the readings to voltages, each reading is divided by 16 to remove
the data label bits (0 - 3), and is multipled by 0.0025 which is the reading
resolution for the 5V range.
6. Additional Information. Additional information on Local bus operation
and on the Local bus commands can be found in Chapter 3 - "Understanding
the Digitizer", and in Chapter 4 - "Command Reference." Information on
the digitizer’s Arm Source register can be found in Appendix C - "Register
Programming."
Download from Www.Somanuals.com. All Manuals Search And Download.
100 Using the Digitizer
Chapter 2
Using the Digitizer Status Registers
This program demonstrates:
• how to use the condition register, transition filter, enable register,
and status byte to determine when events monitored by the condition
register occur.
One of the conditions monitored by the operation status group’s condition
register is when the digitizer receives an arm signal. When armed, a
high-to-low transition of the wait-for-arm bit (bit 6) in the condition register
occurs. In this program, the digitizer is set to arm when the input signal on
the differential input reaches 3V. When the level is reached and the arm
occurs, the user is notified that the digitizer is armed and is ready to sample.
STATUS.C
CONF1:ARR:VOLT (1),5,(@3)
ARM:STAR:SOUR INT1
ARM:STAR:SLOP1 POS
ARM:STAR:LEV1:POS 3
TRIG:STAR:SOUR HOLD
STAT:OPER:PTR 0
/* set 1 reading, 5V range */
/* arm on input signal level */
/* arm on positive-going signal */
/* arm at 3V level */
/* set trigger source to hold */
/* prevent any positive transitions */
/* from causing summary bit to set OPER */
/* set event register bit on */
STAT:OPER:NTR 64
STAT:OPER:ENAB 64
INIT
/* negative transition of bit 6 */
/* enable summary bit to set OPER */
/* bit in status register */
/* put digitizer in wait-for-arm state */
print message "waiting for input signal to reach arm level"
loop
*STB?
/* read status byte */
enter byte
is byte < 128. ?
/* check if OPER bit in status byte is cleared (0) */
end loop
print message "digitizer armed; press Enter (return) to trigger the reading"
TRIG:IMM
FETC1?
/* issue a single trigger */
/* retrieve reading */
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 2
Using the Digitizer 101
Comments 1. Setting the Transition Filter. When the digitizer is INITiated, a
low-to-high transition of bit 6 in the condition register occurs indicating the
digitizer is in the wait-for-arm state. When an arm is received, a high-to-low
transition of bit 6 occurs. The power-on/reset setting of the transition filter
allows the positive transition to be recognized and the negative transition to
be ignored. Because the application is interested in the high-to-low
transition, the transition filter is set for a negative transition of bit 6
(STATus:OPERation:NTRansition 64), and to ignore the positive transition
(STATus:OPERation:PTRansition 0).
2. Setting the Enable Register. When the high-to-low transition occurs, the
"event" is recorded by setting (to ’1’) a corresponding bit in the event
register. (Event register bits are set from low-to-high regardless of the
transition recognized by the transition filter.)
In order for the controller/computer to know that the event has occurred, the
enable register is set such that the arm event sets a bit in the status byte
(STATus:OPERation:ENABle 64).
3. Reading the Status Byte. Once the program initiates the digitizer (INIT
command), the program continually monitors the digitizer status byte using
*STB?. When the arm event occurs, bit 7 in the status byte is set. (Status
byte bits are also set from low-to-high regardless of the transition
recognized by the transition filter.) This signals the controller/computer that
the event occurred. At this point, the program exits the loop and then
prompts the user to press ’Enter’ which then triggers the digitizer
(TRIGger:IMMediate).
Additional information on the digitizer status groups and on using the
registers in the groups can be found in Chapter 3 - "Understanding the
Digitizer".
Download from Www.Somanuals.com. All Manuals Search And Download.
102 Using the Digitizer
Chapter 2
Chapter 3
Understanding the Digitizer
Chapter Contents
This chapter contains the HP E1429 Digitizer description of operation.
Where applicable, the chapter relates the digitizer’s SCPI commands to the
digitizer hardware they control. The main sections of the chapter include:
• HP E1429A Digitizer Block Diagram. . . . . . . . . . . . . . . . . . 103
• The Message and Register Interfaces . . . . . . . . . . . . . . . . . . 105
• The Digitizer Input Section . . . . . . . . . . . . . . . . . . . . . . . . . . 106
• Arming and Triggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
• The Analog-to-Digital Converter . . . . . . . . . . . . . . . . . . . . . 129
• Data Flow, Storage, and Conversions . . . . . . . . . . . . . . . . . . 129
• Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
• VME Bus Data Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
• Local Bus Data Transfers. . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
• The Digitizer Status Registers . . . . . . . . . . . . . . . . . . . . . . . . 165
• Saving Digitizer Configurations . . . . . . . . . . . . . . . . . . . . . . 174
HP E1429 Digitizer Block Diagram
The HP E1429 Digitizer block diagram is shown in Figure 3-1. Channels 1
and 2 have their own input section and their own 12-bit,
20 MSample/second analog-to-digital (A/D) converter. The message
interface, register interface, trigger/timebase section, and memory are
common to both channels.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 103
Figure 3-1. HP E1429 Digitizer Block Diagram
Download from Www.Somanuals.com. All Manuals Search And Download.
104 Understanding the HP E1429 Digitizer
Chapter 3
The Message and Register Interfaces
The HP E1429 digitizer can be programmed as a message-based device or
as a register-based device (Appendix C). When the digitizer functions as a
message-based device, the processor within the message interface (Figure
3-1) converts SCPI (ASCII) command strings to register reads and writes
through the register interface. When the digitizer functions as a
register-based device, command opcodes are written directly to the digitizer
registers from the register interface.
Digitizer Command Figure 3-2 shows the command paths used when programming the digitizer
as a message-based device or as a register-based device.
Paths
Figure 3-2. HP E1429 Digitizer Command Paths
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 105
The Digitizer Input Section
The HP E1429 2-channel digitizer has single-ended and differential input
ports on each channel. Each input port has a BNC connector and is DC
coupled. A detailed block diagram of the input section is shown in Figure
3-3. Only one channel is shown since both are identical.
Figure 3-3. HP E1429 Digitizer Input Section
SCPI Command The digitizer’s input section including the input state, input impedance, and
low-pass filtering is controlled by the SCPI INPut subsystem. The input port
Control
is selected by the SENSe[<chan >]:FUNCtion subsystem. The input signal
range is controlled by the SENSe[<chan >]:VOLTage subsystem. The
commands in these subsystems are listed below.
INPUT[<port >]
:FILTer
[:LPASs]
[:STATE] <mode >
:IMPedance <impedance >
[:STATe] <mode >
Download from Www.Somanuals.com. All Manuals Search And Download.
106 Understanding the HP E1429 Digitizer
Chapter 3
[SENSe[<chan >]]
:FUNCtion "<function >"
[SENSe[<chan >]]
:VOLTage
[:DC]
:RANGE <range >
Note
Each command in these subsystems is covered in detail in Chapter 4 -
"Command Reference".
Each input parameter setting is unique to each port. The settings are
"remembered" so that changes made to one port do not affect the changes
made previously to the other port. However, the signal range set (or
changed) for one port applies to the other port as well.
Selecting the Input Port The digitizer input channels are numbered 1 and 2. The input ports on each
channel are:
• channel 1
– port 1 - singled-ended input
– port 3 - differential input
• channel 2
– port 2 - single-ended input
– port 4 - differential input
The active input port is specified by the (@<input port >) parameter of the
CONFigure and MEASure commands, and by [<port >] in the other
digitizer commands. In those commands, [<port >] is optional as indicated
by the brackets []. If a port number is not specified, port 1 (channel 1) is
assumed.
The active input port is also selected with the command:
[SENSe[<chan >]]:FUNCtion "<function >"
The "<function >" settings are:
VOLTage[:DC]1port 1 (channel 1)
VOLTage[:DC]2port 2 (channel 2)
VOLTage[:DC]3port 3 (channel 1)
VOLTage[:DC]4port 4 (channel 2)
Readings are taken on only one input port per channel.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 107
Enabling the Input Each input port has a relay that is used to enable and disable the input. This
relay is controlled by the command:
INPut[<port >][:STATe] <mode >
The <mode > settings are:
Ports
ON - the input is enabled.
OFF - the input is disabled. For the single ended input, the port is set to a
high impedance.
At power-on or following a reset, each input port is enabled (<mode > is
ON). However, the port used for the measurement is specified by the
(@<input port >) parameter of CONFigure/MEASure, or by [SENSe[<chan
>]]:FUNCtion.
Setting the Input The impedance of the single-ended input port can be set to 50Ω or 75Ω. The
impedance is set with the command:
INPut[<port >]:IMPedance <impedance >
The <impedance > settings are:
Impedance
50 - sets single ended input impedance to 50Ω
75 - sets single ended input impedance to 75Ω
At power-on or following a reset, the impedance is set to 50Ω. The
impedance of the differential input ports is 1 MΩ and is not programmable.
The Inverting and Non-inverting Differential Input Ports
The non-inverting (HI) and inverting (LO) differential input ports can be
used singly (the non-used port should be grounded), or together such that
the difference (algebraic sum) of two signals is supplied to the digitizer. If a
single input is applied to the inverting (LO) port, the reading is inverted.
Enabling the 10 MHz Each digitizer channel has a 10 MHz, 2-pole bessel filter that can be
switched into the signal path of the single-ended or differential input. The
filter is enabled/disabled with the command:
Input Filter
INPut[<port >]:FILTer[:LPASs][:STATe] <mode >
Download from Www.Somanuals.com. All Manuals Search And Download.
108 Understanding the HP E1429 Digitizer
Chapter 3
The <mode > settings are:
ON - 10 MHz filter is switched to the signal path.
OFF - 10 MHz filter is removed from the signal path.
Enabling the filter reduces the noise on the input signal. Disabling the filter
allows sub-sampling applications over the digitizer’s 50 MHz bandwidth.
The filter mode of one input port is independent of the filter mode of the
channel’s other port. At power-on or following a reset, the filter is disabled
on all input ports. CONFigure and MEASure enable the filter on the
specified port.
Setting the Signal The digitizer’s input signal range is specified in terms of an expected
reading value or as an explicit range value. The commands used for each
method are as follows:
Range
MEASure[<chan >]:ARRay[:VOLTage][:DC]? (<size >)
[,<expected value >[,<resolution >]] [,(@<input port >)]
CONFigure[<chan >]:ARRay[:VOLTage][:DC] (<size >)
[,<expected value >[,<resolution >]] [,(@<input port >)]
[SENSe[<chan >]]:VOLTage[:DC]:RANGe <range >
Changing Ranges With MEASure or CONFigure, if the <expected value > specified is within
98% of the maximum signal that can be measured on the nearest
measurement range (Table 3-1), that range is selected. If the <expected
value > is greater than 98%, the next higher range is selected. For example,
if the <expected value > is 5.1V, the 10V range is selected since 5.1V is
greater than 98% of 5.1175V.
Specifying a signal range with the SENSe:VOLTage command that is
within a given measurement range (Table 3-1), sets that range. If a signal
range is specified that is outside a given measurement range, the next higher
range is selected. For example, if a <range > of .52 is specified, the 1V
range is selected since .52 is outside the -0.5115 to 0.51175 measurement
range.
The Digitizer Attenuators
The input section of the HP E1429 digitizer has three sets of attenuators
(Figure 3-3):
20 dB input attenuator (differential inputs only)
20 dB post attenuator (differential inputs only)
6 dB and 14 dB internal attenuators
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 109
The attenuators used are based on the expected value or range specified.
Table 3-1 shows the attenuators used as a function of the expected value and
range.
Table 3-1. HP E1429 Digitizer Measurement Ranges
Input Port
<expected
value>
Range
setting
Measurement
Range
20 dB
Input
20 dB
Post
Internal Attenuators
6 dB
14 dB
(MEAS/CONF) <range>
Attenuator Attenuator
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
3,4
0.10235
-0.10230 to 0.10235
-0.2046 to 0.2047
-0.5115 to 0.51175
-1.0230 to 1.0235
-2.0460 to 2.0470
-5.115 to 5.1175
-10.230 to 10.235
-20.460 to 20.470
-51.150 to 51.175
-102.30 to 102.35
off
off
off
off
off
off
on
on
on
on
off
off
off
on
on
on
on
on
on
on
off
on
off
off
on
off
off
on
off
on
off
off
on
off
off
on
off
off
on
on
±0.1
0.2047
±0.2
0.51175
±0.5
1.0235
±1.0
2.047
±2.0
3,4
5.1175
±5.0
3,4
10.235
±10.0
3,4
20.470
±20.0
3,4
51.175
±50.0
3,4
102.35
±100.0
Using the Single-Ended Input 1V Range
When taking readings of low-level signals on the single-ended input,
selecting the 1V range ensures the most accurate readings. This is achieved
through a path directly to the A/D, which bypasses the attenuators and
amplifier which can add noise and distortion to the signal (Figure 3-3).
The single-ended input 1V range can be set by specifying an
<expected value > of 1V in the MEASure or CONFigure command, or by
specifying a range of 1V in the SENSe:VOLTage command:
SENS:VOLT:RANG 1
Download from Www.Somanuals.com. All Manuals Search And Download.
110 Understanding the HP E1429 Digitizer
Chapter 3
Arming and Triggering
The HP E1429 digitizer uses the SCPI Arm-Trigger configuration shown in
Figure 3-4. This section describes the Arm-Trigger state sequence and
identifies the different ways to arm and trigger the digitizer.
Figure 3-4. HP E1429 Digitizer State Diagram
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 111
The ARM-TRIG The state diagram of Figure 3-4 shows that the digitizer operates within four
states: idle, initiated, wait-for-arm, and wait-for-trigger. The path through
the states depends upon whether pre-arm sampling is part of the
measurement configuration.
State Diagram
Both paths begin with the digitizer in the idle state. The digitizer enters the
idle state when power is applied, or following a reset or an ABORt. This is
the state in which the digitizer is configured using CONFigure and its
low-level commands.
Note
When configuring the digitizer’s arming and triggering hardware the
configuration applies to both digitizer channels. Thus, both channels enter
the same Arm-Trigger state at the same time. In arming and triggering
commands where a channel can be specified such as
SENSe[<chan >]:SWEep:OFFSet:POINts <count >
the configuration of the last channel specified (or implied) overrides the
previous configuration of both channels.
The Pre-Arm Path The digitizer is capable of pre-arm and post-arm sampling. If pre-arm
samples (readings) have been specified
(SENSe[<chan >]:SWEep:OFFSet:POINts <count >) in addition to
post-arm samples, the digitizer moves to the wait-for-trigger state when
INITiate[:IMMediate] is executed and begins sampling. The digitizer
continues to (pre-arm) sample until the pre-arm reading count is reached
and until the digitizer receives an arm signal. When the arm is received, the
digitizer begins post-arm sampling as triggers are received. The digitizer
continues to (post-arm) sample until the total number of samples (pre- and
post-arm) specified by TRIGger[:STARt]:COUNt <count > is reached.
Once the trigger count is reached, the digitizer determines if the arm count
has been reached. If it has not, the digitzer remains initiated and repeats the
path until the arm count is reached.
The Post-Arm Path When only post-arm samples are specified, the digitizer moves to the
wait-for-arm state when INITiate[:IMMediate] is executed. The digitizer
moves to the wait-for-trigger state when an arm signal is received. The
digitizer remains in the wait-for-trigger state until the number of samples
specified by TRIGger[:STARt]:COUNt <count > is reached. Once the
trigger count is reached, the digitizer determines if the arm count has been
reached. If it has not, the digitizer remains initiated and repeats the path
until the arm count is reached.
Download from Www.Somanuals.com. All Manuals Search And Download.
112 Understanding the HP E1429 Digitizer
Chapter 3
Arming the Digitizer Before the digitizer takes a sample it must be "armed", which means it must
be in the wait-for-trigger state. Figure 3-5 shows the digitizer arming and
triggering sources.
Figure 3-5. HP E1429 Digitizer Arming and Triggering
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 113
The digitizer hardware associated with arming the digitizer is controlled by
the SCPI ARM subsystem. The commands in this subsystem include:
ARM
[:STARt|SEQuence[1]]
:COUNt <count >
:DELay <period >
[:IMMediate]
:LEVel[<chan >]
:NEGative <voltage >
:POSitive <voltage >
:SLOPe[<n >] <edge >
:SOURce[<n >] <source >
Note
Each command in this subsystem is covered in detail in Chapter 4 -
"Command Reference".
ARM Subsystem The following information summarizes each command in the ARM
subsystem.
Overview
Setting the Arm Source The arm source specifies the signal(s) which arms the digitizer. The source
is specified with the command:
ARM[:STARt]:SOURce[<n >] <source >
Up to two arm sources ([<n >] = 1|2) can be specified. ARM:SOUR1
specifies the first source. ARM:SOUR2 specifies the second source. The
first event to occur on either source arms the digitizer. The digitizer arm
source(s) can be selected from the following:
• BUS - HP-IB Group Execute Trigger (GET) commmand or the
*TRG common command.
• ECLTrg0/ECLTrg1 - the VXIbus ECLTrg0 or ECLTrg1 trigger lines.
• TTLTrg<n > - the VXIbus TTLTrg0 through TTLTrg7 trigger lines.
• EXTernal1 - the "Ext 1" BNC input port.
• INTernal1 - arms when the signal level on channel 1 meets the
conditions specified by ARM:LEVel1.
• INTernal2 - arms when the signal level on channel 2 meets the
conditions specified by ARM:LEVel2.
Download from Www.Somanuals.com. All Manuals Search And Download.
114 Understanding the HP E1429 Digitizer
Chapter 3
• HOLD - disables either ARM:SOURce1 or ARM:SOURce2. This is
the reset source for ARM:SOURce2.
• IMMediate - arms the digitizer immediately after
INITiate[:IMMediate] is received. This choice is only valid for
ARM:SOURce1. If IMMediate is specified, HOLD must be
specified for ARM:SOURce2. IMMediate is the reset value for
ARM:SOURce1.
Note
An active reference oscillator is required for the digitizer to recognize and
accept an arm signal from any source.
Setting the Arm Signal When the arm source is INTernal1, INTernal2, or EXTernal1, the digitizer
arms on a specified level of a positive-going or negative-going input signal.
For these sources, the digitizer must be informed of the slope on which to
arm (positive-going, negative-going, or either (for INTernal<n >)). This is
done with the command:
Slope
ARM[:STARt]:SLOPe[<n >] <edge >
The <edge > settings are:
POSitive - arm on a positive-going edge of the input signal.
NEGative - arm on a negative-going edge of the input signal.
EITHer - arm on either edge of the input signal (INTernal<n > sources only).
The command is used with the arm source and arm level commands as
shown:
!set arm source to INT1 or INT2
ARM[:STARt]:SOURce[<n >] <source >
!set positive or negative transition
ARM[:STARt]:SLOPe[<n >] <edge >
!set arm input voltage level
ARM[:STARt]:LEVel[<chan >]:POSitive <voltage >
or
ARM[:STARt]:LEVel[<chan >]:NEGative <voltage >
The arm slope command allows you to specify a positive transition, a
negative transition, or either transition. When a positive transition is
specified, the digitizer is armed when the increasing signal on the channel
reaches the specified level. When a negative transition is specified, the
digitizer is armed when the decreasing signal on the channel reaches the
specified level. When "EITHer" is specified, the digitizer is armed when the
input signal enters or exits the defined window. Refer to Figure 3-6.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 115
Note
For arm source TTLTRG<n >, the digitizer arms on the negative-going
edge of the signal. For arm source ECLTrg<n >, the digitizer arms on the
positive-going edge. These sources are not affected by the
ARM:STARt:SLOPe command.
Arm Window The boundaries of the window are set by the voltage levels of
ARM[:STARt]:LEVel:POSitive and ARM[:STARt]:LEVel:NEGative.
When ARM[:STARt]:LEVel:POSitive specifies a level that is greater than
ARM[:STARt]:LEVel:NEGative, the digitizer is armed when the input
signal exits the defined window. When ARM[:STARt]:LEVel:POSitive
specifies a level that is less than ARM[:STARt]:LEVel:NEGative, the
digitizer is armed when the input signal enters the defined window.
Boundaries
Figure 3-6. Arm Window Boundaries
Setting the Arm Level When the arm source is INTernal1 or INTernal2, the level of the input
signal at which the digitizer becomes armed is set with the commands:
ARM[:STARt]:LEVEL[<n >]:NEGative <voltage >
This command sets the voltage level on the specified channel that, when
reached by a negative-going input signal, arms the digitizer.
ARM[:STARt]:LEVEL[<n >]:POSitive <voltage >
This command sets the voltage level on the specified channel that, when
reached by a positive-going input signal, arms the digitizer.
Download from Www.Somanuals.com. All Manuals Search And Download.
116 Understanding the HP E1429 Digitizer
Chapter 3
The Arm Level Range
When setting the input voltage level which arms the digitizer, the levels are
restricted to the current signal range as set by the expected value parameter
of the CONFigure or MEASure command, or as set by the
SENSE:VOLTage:RANGE command. Table 3-1 lists the digitizer’s signal
ranges.
Note
When level arming, arms that occur because of multiple passes through the
arm level are ignored until the trigger count is reached.
Setting the Arm Delay There is an inherent delay of typically 230 ns plus an amount of sample
period uncertainty from when an arm is received, to when the arm is
accepted. When the digitizer is taking only post-arm readings, a delay in
addition to the inherent delay can be specified with the command:
ARM[:STARt]:DELay <period >
The range for <period > is based on the frequency of the reference clock. If
T is the reference period, then the arm delay period is expressed as:
0 to 65534T in steps of T
66540T to 655350T in steps of 10T
Using the digitizer’s internal 20 MHz reference, this is:
0 to 3.27 ms
3.32ms to 32.76 ms
Note
Appendix A - "Specifications" contains additional information on the
inherent arm delay.
Setting the Arm Count The arm count is the number of reading cycles (bursts) the digitizer will
take on each channel before it returns to the idle state. The arm count is
specified with the command:
ARM[:STARt]:COUNt <count >
The range for <count > is:
1 through 65,535 or INFinity (post-arm readings only)
1 through 128 (pre-arm and post-arm readings)
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 117
When only post-arm readings are specified, an error will occur when the
total number of readings (ARM:COUNt * TRIGger:COUNt) is greater than
524,288 readings. However, an error will not occur if the arm count or
trigger count is set to INFinity, or if the readings are going the VME bus or
Local bus directly from the A/D converter.
When pre-arm readings are included in a measurement sequence with an
arm count > 1, digitizer memory is segmented. When memory is segmented,
the maximum number of arms is 128 and the maximum number of pre-arm
and post-arm readings per arm is 524,288 / (number of arms rounded up to a
power of 2).
Note
If the arm count is set to INFinity, use the ABORt command to return the
digitizer to the idle state.
Arm Rate When the arm count is greater than one and the sample rate is derived from
the digitizer’s internal oscillator, the next arm occurs 0.5 µs after the last
reading in the burst. This rate will vary with other references.
Immediate Arming Once the digitizer has been placed in the wait-for-arm state with the
INITiate command, the digitizer can be armed immediately with the
following command, regardless of the arm source:
ARM[:STARt][:IMMediate]
ARM:IMM is also the only way to arm the digitizer when the arm source is
HOLD and the digitizer is in the wait-for-arm state.
ARM:IMM decrements the arm count by 1, and any programmed delay
(other than the inherent delay) is ignored.
ARM Synchronization As indicated in the block diagram of Figure 3-5, the arm signal can be
"routed" to the following locations:
Signals
"Ext 1" BNC port
ECLTRG trigger lines
TTLTRG trigger lines
Download from Www.Somanuals.com. All Manuals Search And Download.
118 Understanding the HP E1429 Digitizer
Chapter 3
This allows the digitizer to synchronize other digitizers or events. The
commands used to output the arm signal are:
OUTPut:EXTernal[1]:FEED <source >
• <source > = "ARM[:STARt|SEQuence[1]]"
The "Ext 1" BNC port goes low when the arm occurs.
• <source > = "RFTRigger"
Outputs the arm signal to the "Ext 1" BNC port after the specified
arm delay has occurred.
OUTPut:ECLTrg<n >:FEED <source >
• <source > = "EXTernal[1]"
Outputs the same signal currently specified by the
OUTPut:EXTernal[1]:FEED command, however, with the polarity
inverted.
OUTPut:TTLTrg<n >:FEED <source >
• <source > = "ARM[:STARt|SEQuence[1]]"
Outputs the arm signal to the specified TTLTRG trigger line as it is
received.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 119
Routing the Signal to a Source
The arm signal can be routed to the locations described above, provided the
port or trigger line is not also used as an input for a reference clock source,
arm source, or trigger source. Summarized below are the external sources
available to the digitizer:
External reference clock sources: "Ext 2" BNC port, ECLTRG<n > trigger
line
External arm sources: "Ext 1" BNC port, ECLTRG<n > trigger line,
TTLTRG<n >* trigger line
External trigger sources: "Ext 1" BNC port, "Ext 2" port, ECLTRG<n >
trigger line, TTLTRG<n >* trigger line
If one of these ports or trigger lines is an input source, then that same port
or line cannot be used to route (OUTPut) the signal.
Enabling the Synchronization Signal
In order for the arm synchronization signal to be routed to the "Ext 1" port
or to an ECLTRG or TTLTRG trigger line, the routing must be enabled.
This is done with the commands:
OUTPut:EXTernal[1][:STATe] <mode >
OUTPut:ECLTrg<n >[:STATe] <mode >
OUTPut:TTLTrg<n >[:STATe] <mode >
For each command, the <mode > settings are:
ON - enables the port or trigger line to route the signal.
OFF - disables the port or trigger line from routing the signal.
Multiple TTLTRG trigger lines are individually enabled or disabled by
executing the OUTP:TTLT<n >:STAT command for each line.
Note
The TTLTRG trigger lines are not independent with regard to the
synchronization signal supplied by FEED. This means that all TTLTRG
trigger lines enabled by OUTP:TTLT<n >:STAT will carry the same
synchronization pulse.
Download from Www.Somanuals.com. All Manuals Search And Download.
120 Understanding the HP E1429 Digitizer
Chapter 3
Triggering the After the digitizer is armed it enters the wait-for-trigger state. Thus, when
trigger signals are received, the digitizer samples the inputs on its channels
Digitizer
(Figure 3-5). The hardware associated with triggering the digitizer is
controlled by the SCPI TRIGger subsystem, and by selected commands in
the SENSe subsystem. The commands used in those subsystems include:
TRIGger
[:STARt|SEQuence[1]]
:COUNt <count >
[:IMMediate]
:SOURce <source >
:TIMer1 <period >
:TIMer2 <period >
[SENSe[<chan >]]
:SWEep
:OFFSET
:POINts <count >
:POINts <count >
TRIGger and SENSe The following information summarizes each command in the TRIGger
subsystem and the two commands from the SENSe subsystem. The
Command Reference (Chapter 4) contains detailed information on the
parameter settings and on reset conditions.
Subsystems Overview
Setting the Trigger The trigger source specifies the signal which triggers the digitizer to take a
reading. The source is specified with the command:
TRIGger[:STARt]:SOURce <source >
The <source > parameters are:
Source
• BUS - HP-IB Group Execute Trigger (GET) commmand or the
*TRG common command.
• ECLTrg0/ECLTrg1 - the VXIbus ECLTRG0 or ECLTRG1 trigger
lines.
• TTLTrg<n > - the VXIbus TTLTRG0 through TTLTRG7 trigger
lines.
• EXTernal1 - the "Ext 1" input port.
• EXTernal2 - the "Ext 2" input port.
• HOLD - suspend triggering.
• TIMer - sample rate is specified by the TRIGger:STARt:TIMer1
command. The rate is derived from a reference specified by the
SENSe:ROSCillator subsystem. TIMer is the default trigger source.
• VME - sample and/or transfer data from memory to the VME (VXI
data transfer) bus when the data register at offset 12
( 0C ) in A24 address space is accessed.
16
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 121
The Sample Period The sample period is the interval at which the digitizer takes readings. The
sample period is derived from a reference which can be the digitizer’s
internal 20 MHz oscillator, or a reference from an external source (see "The
Digitizer Reference Clock").
Setting the Sample When the trigger source is TIMer, the sample period is set with the
command:
Period
TRIGger[:STARt]:TIMer1 <period >
The TIMer trigger source derives the sample period from the reference
source (see "The Digitizer Reference Clock"). The period is a 1, 2, 4, 10, 20,
40 through 1E8, 2E8, 4E8 multiple of the reference source. Programmed
sample periods that are not an exact 1, 2, 4, ... multiple are rounded to the
nearest multiple of the source. If the digitizer cannot produce a sample rate
that is within 1% of the specified sample rate, bit 2 of the Questionable
Signal Status Group condition register is set.
The sample period required can be determined two ways. First, to take a
given number of samples of a signal with frequency (f), the sample period is
computed as:
<period > = signal period / number of samples
The reference is then divided by a value (N) which gives the sample period.
For example, assuming the digitizer’s 20 MHz oscillator is used and given
the following:
input signal frequency = 1 kHz
number of samples = 100
then the <period > specified by TRIG:STAR:TIM1 is:
1 ms / 100 = 10 µs
Download from Www.Somanuals.com. All Manuals Search And Download.
122 Understanding the HP E1429 Digitizer
Chapter 3
To get the 10 µs sample period (100 kHz rate), the digitizer processor
divides the reference by 200 (N):
20 MHz / N = 20 MHz / 200 = 100 kHz
1 / 100 kHz = 10 µs
Oversampling The Nyquist criteria states that the sample rate must be at least 2 times the
maximum frequency component of the input signal. To limit aliasing, it is
recommended that a sample rate 4 times or greater the maximum frequency
component be used. For example, to oversample at a frequency four times
or 10 times the maximum frequency component, the sample period is
computed as:
<period > = 1 / 4(f )
c
<period > = 1 / 10(f )
c
The minimum number of samples (i.e. <size > or TRIGger:STARt:COUNt)
to take is determined by:
sample count = signal period (fundamental) / [1 / 4(f )] or [1 / 10(f )]
c
c
Dual Rate Sampling TheHP E1429 digitizer’s dual rate sampling feature allows pre-arm
readings and post-arm readings to occur at different sample rates. The
following trigger sources specify dual rate sampling:
• DECLtrg - VXIbus trigger line ECLTRG0 paces pre-arm readings,
ECLTRG1 paces post arm readings.
• DEXTernal - input port "Ext 1" paces pre-arm readings, input port
"Ext 2" paces post-arm readings.
• DTIMer - TRIGger[:STARt]:TIMer1 paces pre-arm readings,
TRIGger[:STARt]:TIMer2 paces post-arm readings.
When the dual rate sampling trigger source is DTIM, one sample rate must
equal the reference period. For example, if the digitizer’s 20 MHz oscillator
is used, one sample rate must be 50 ns. Similarly, if VXI CLK10 is used,
one sample rate must be 100 ns (1/10 MHz). If the reference source for
DTIM is ECLT0, ECLT1, or EXT2, one rate must be equal to the reference
period. The other rate can be any other valid sample rate given the reference
source.
When the dual rate sampling trigger source is DECL or DEXT, both
sampling rates can be any periods you choose.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 123
Note
It is recommended that pre-arm readings use the faster of the two sample
rates. One additional sample pulse at the pre-arm rate, after the arm occurs,
is required for the sample rate to change. The digitizer does not sample on
this additional pulse. Post-arm sample pulses may be ignored depending on
how fast they occur following the rate change. Refer to Appendix A -
"Specifications", for additional information on dual rate sampling
characteristics.
The Digitizer When the digitizer trigger source is TIMer or DTIM (dual rate sampling),
the sample (reading) rate is derived from a reference clock (Figure 3-5). The
commands used to select the clock source and its frequency are part of the
SENSe subsystem:
Reference Clock
SENSe[<chan >]
:ROSCillator
:EXTernal
:FREQuency <frequency >
:SOURce <source >
Setting the Reference The reference source is set with the command:
Source
SENSe[<chan >]:ROSCillator:SOURce <source >
The reference sources are:
• CLK10 - the VXIbus 10 MHz clock.
• ECLTrg0 - the VXIbus ECLTRG 0 trigger line.
• ECLTrg1 - the VXIbus ECLTRG 1 trigger line.
• EXTernal2 - the digitizer’s Ext 2 BNC port.
• INTernal - the digitizer’s internal 20 MHz oscillator. This is the
default source.
Specifying the External When the trigger source is TIMer or DTIM, and the clock source is one of
the following:
Reference Frequency
ECLTrg0
ECLTrg1
EXTernal2
the digitizer processor must be informed of the reference frequency in order
for TRIGger:STARt:TIMer1 or TRIGger:STARt:TIMer2 to generate the
correct sample rate. This is done with the command:
SENSe[<chan >]:ROSCillator:EXTernal:FREQuency <frequency >
Download from Www.Somanuals.com. All Manuals Search And Download.
124 Understanding the HP E1429 Digitizer
Chapter 3
Note
An active reference clock (oscillator) is required for the digitizer to
recognize and accept arm signals.
Setting the Trigger The trigger count is the total number of readings (pre- and post-arm) per
arm event. The trigger count is normally set by the <size > parameter of the
CONFigure and MEASure commands. However, when you want to change
the total reading count without entirely re-configuring the digitizer, the
reading count (trigger count) can be set with either of the following
commands:
Count
TRIGger[:STARt]:COUNt <count >
SENSe[<chan >]:SWEep:POINts <count >
Setting the Pre-Arm Pre-arm readings are samples the digitizer takes before an arm signal is
accepted. Pre-arm readings start after the digitizer receives the
INITiate[:IMMediate] command. Readings continue until the pre-arm
reading count is reached, and until the arm is received. The command which
sets the minimum number of pre-arm readings is:
Reading Count
SENSe[<chan >]:SWEep:OFFSet:POINts <count >
<count > is specified as a negative number. You must specify at least three
pre-arm readings and seven post-arm readings. Refer to the SENSe
subsystem in Chapter 4 - "Command Reference" for more details on setting
the pre-arm reading count.
If the pre-arm reading count is reached and the arm has not occurred, the
readings continue and overwrite previous readings. When the arm occurs,
the most recent number of <count> readings are stored in memory. If an
arm occurs before the pre-arm reading count is reached, the arm is ignored
and error -212 "Arm ignored" is generated.
Sending an Immediate In some applications the user may want to manually issue a sample trigger.
This is accomplished with the command:
Trigger
TRIGger[:STARt][:IMMediate]
When the digitizer is armed (wait-for-trigger state), executing
TRIG:STAR:IMM takes a reading regardless of the specified trigger source.
The trigger count is decremented by 1 and the selected trigger source
remains unchanged. TRIG:STAR:IMM is often used with
TRIG:SOUR:HOLD to suspend triggering until the trigger is issued by
TRIG:STAR:IMM.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 125
Trigger The trigger and reference clock signals can be "routed" to the following
locations:
Synchronization
Signals
"Ext 1" BNC port
ECLTRG trigger line
This allows the digitizer to synchronize other digitizers or events. The
commands used to output the trigger and reference signals are:
OUTPut:ECLTrg<n >:FEED <source >
• <source > = "TRIGger[:STARt|SEQuence[1]]"
Outputs a trigger signal to the ECLT<n > trigger line each time a
convert pulse is sent to the A/D converter.
• <source > = "SENSe[1|2]:ROSCillator"
The significant edge of an ECL signal is the rising edge. Therefore,
the ECLTrg <n > trigger line goes high with the falling edge of an
external reference signal, and goes high with the rising edge of
reference sources ECLTrg<n > and CLK10.
• <source > = "EXTernal[1]"
Outputs the same signal currently specified by the
OUTPut:EXTernal[1]:FEED command; however, the polarity is
inverted.
Download from Www.Somanuals.com. All Manuals Search And Download.
126 Understanding the HP E1429 Digitizer
Chapter 3
OUTPut:EXTernal[1]:FEED <source >
• <source > = "TRIGger[:STARt|SEQuence[1]]"
Outputs a trigger signal to the "Ext 1" BNC port each time a convert
pulse is sent to the A/D converter.
• <source > = "SENSe[1|2]:ROSCillator"
The significant edge of a TTL signal is the falling edge. Therefore,
the output goes low with the falling edge of an external reference
signal, and goes low with the rising edge of reference sources
ECLTrg<n > and CLK10.
• <source > = "SENSe:SWEep:OFFSet:POINts"
The normally high output port goes low after the pre-arm reading
count has been reached.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 127
OUTPut:TTLTrg<n >:FEED <source >
• <source > = "READy"
The level on the selected TTLTRG trigger line goes low while the
trigger system is initiated. The line goes high after the readings
complete, and then goes low again for the next burst of readings.
When taking post-arm readings only, the signal returns high when the arm
count and trigger count are both satisfied.
Routing the Signal to a Source
The trigger signal can be routed to the locations described above, provided
the port or trigger line is not also used as an input for a reference clock
source, arm source, or trigger source. Summarized are the external sources
available to the digitizer:
External reference clock sources: "Ext 2" BNC port, ECLTrg<n > trigger
line
External arm sources: "Ext 1" BNC port, ECLTrg<n > trigger line,
TTLTrg<n > trigger line
External trigger sources: "Ext 1" BNC port, "Ext 2" port, ECLTrg<n >
trigger line, TTLTrg<n > trigger line
If one of these ports or trigger lines is a source, then that same port or line
cannot be used to route (OUTPut) the signal.
Download from Www.Somanuals.com. All Manuals Search And Download.
128 Understanding the HP E1429 Digitizer
Chapter 3
Enabling the Synchronization Signal
In order for the trigger or clock synchronization signals to be routed to the
"Ext 1" BNC port or to an ECLTRG or TTLTRG trigger line, the routing
must be enabled. This is done with the commands:
OUTPut:EXTernal[1][:STATe] <mode >
OUTPut:ECLTrg<n >[:STATe] <mode >
OUTPut:TTLTrg<n >[:STATe] <mode >
For each command, the <mode > settings are:
ON - enables the port or trigger line to route the signal.
OFF - disables the port or trigger line from routing the signal.
Note
The ECLTRG trigger lines are independent with regard to the
synchronization signal supplied by FEED. This means that trigger lines
ECLT0 and ECLT1 (when enabled) can carry different synchronization
pulses.
The Analog-to-Digital Converter
Each channel on the HP E1429 digitizer has a 12-bit, 20 MSample/second
analog-to-digital (A/D) converter. A paper describing the A/D converter,
which was developed by Hewlett-Packard Laboratories, is available from
the following:
Jewett, R., et al., "A 12b 20MS/s Ripple-through ADC", ISSCC DIGEST
OF TECHNICAL PAPERS, pp. 34-35, Feb. 1992.
Data Flow, Storage, and Conversions
This section of the chapter covers the data flow from the A/D to digitizer
memory and to the VME (VXI data transfer) bus. A block diagram of the
data flow is shown in Figure 3-7.
Digitizer Data Flow The HP E1429 digitizer takes readings (samples) on both channels
simultaneously, even if an input signal is applied to only one channel. Each
12-bit reading is combined into a single 24-bit number which is sent to the
data processor. The processor converts the readings from ECL levels to
TTL levels.
Readings are stored and retrieved from memory as single 24-bit numbers
(see "How Readings are Stored"). Each 12-bit reading sent to the VME
(VXI data transfer) bus directly from the A/D or from memory is expanded
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 129
to 16-bits. When both channels readings are selected, the data is expanded
to 32-bits; 16-bits per reading.
Similarly, readings sent to the Local bus from either the A/D or memory are
expanded to 16- or 32-bits, depending on whether one or two channels is
selected. The readings are transferred eight bits at a time, however.
Figure 3-7. HP E1429 Digitizer Data Flow
How Readings are The digitizer can store 512K (524,288) readings from each channel in
memory. The readings, which are taken simultaneously, are stored as a
single 24-bit number. A "pair" of readings stored in a single memory
location is shown in Figure 3-8.
Stored
Data is not available to the user in the internal storage (12-bit) format
shown. Instead, readings retrieved from memory are expanded to 16- or
32-bits (see "Retrieving Readings from Memory").
Assigning a Data Label When a digitizer reading is expanded to 16- or 32-bits as it is retrieved from
memory, the four least significant bits are normally set to ’0’s. You can
assign the bits a decimal value from 0 to 15 using the command:
DIAGnostic:CHANnel[<chan >]:LABel <label >
Assigning a data label allows you to identify the channel from which the
readings came. The assigned lable appears in the four least significant bits
of each reading when the readings are retrieved in the digitizer’s
PACKed,16 data format. The label is ignored if the data format is ASCii,9
or REAL,64.
Download from Www.Somanuals.com. All Manuals Search And Download.
130 Understanding the HP E1429 Digitizer
Chapter 3
Figure 3-8. HP E1429 Digitizer Reading Storage
Segmented Memory The HP E1429 digitizer is capable of pre-arm and post-arm readings.
Pre-arm readings are taken after the digitizer is INITiated and before an arm
is received. Post-arm readings are taken after an arm is received. When
multiple reading sequences consist of pre- and post-arm readings, digitizer
memory is partioned into segments (Figure 3-9).
When the reading sequence consists of pre-arm and post-arm readings, the
number of segments is equal to the arm count. The maximum number of
segments (arm count) under these conditions is 128.
Figure 3-9. When the Digitizer Segments Memory
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 131
Figure 3-10 shows the relationship between pre- and post-arm readings and
memory segments.
Figure 3-10. Memory Segments with Pre - and Post-arm Readings
The MEMory The digitizer’s MEMory subsystem contains commands which enable
non-volatile memory and which query the charge on the battery maintaining
memory. The commands in the subsystem include:
Subsystem
MEMory
:BATTery
:CHARge?
[:STATe] <state >
Enabling Non-Volatile Digitizer memory is non-volatile when the battery maintaining memory is
enabled with the command:
Memory
MEMory:BATTery[:STATe] < state >
Download from Www.Somanuals.com. All Manuals Search And Download.
132 Understanding the HP E1429 Digitizer
Chapter 3
The <state > settings are:
ON - enables the battery; memory is non-volatile.
OFF - disables the battery; memory is lost when power is cycled
(factory setting).
If memory is to be battery-backed, the battery must be enabled before
readings are taken.
Cycling power or resetting the digitizer does not affect the battery state set
by MEMory:BATTery:STATe. Battery life is normally four years if it
remains enabled. Battery life can be extended to approximately seven years
if it is disabled when non-volatile memory is not required.
Determining the To ensure that the battery has sufficient charge to maintain memory, the
command:
Battery Charge
MEMory:BATTery:CHARge?
can be sent. This command returns a ’1’ if the battery has sufficient charge
to maintain memory. If the battery does not have sufficient charge, a ’0’ is
returned. Leaving the digitizer in the VXI mainframe with the power on will
not recharge the battery. A battery with insufficient charge must be
replaced.
Digitizer Data There are three digitizer data formats available when readings are taken
using MEASure or READ?, or when the readings are FETCh(ed)? from
memory. These formats are set using the FORMat subsystem which consists
of the command:
Formats
FORMat[:DATA] <type > [,<length >]
The formats available are:
<type > <length >
ASCii
9
PACKed
REAL
16
64
ASCii,9 format returns/retrieves data as comma (,) separated ASCII
numbers (Figure 3-11). This is the default format.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 133
PACKed,16 format returns signed, 16-bit numbers preceded by the
ANSI/IEEE Standard 488.2-1987 Definite Length Arbitrary Block header
(Figure 3-11). Packed readings always represent a value between -1.0225
and +1.0230 or an overrange value, and must be converted (by the user) to
the actual reading value (see "Packed Reading Conversions").
REAL,64 format returns/retrieves data as 64-bit REAL numbers also
preceded by the ANSI/IEEE Standard 488.2-1987 Definite Length Arbitrary
Block header (Figure 3-11). REAL,64 readings are converted by the
digitizer to the actual reading value. Thus, no further conversions are
required.
A line feed (LF) and End-Or-Identify (EOI) follow the last reading in all
formats.
The Definite Length In the definite length arbitrary block header:
Arbitrary Block Header
• # indicates the data is in an arbitrary block
• < non-zero digit > is a single digit number which shows the number
of digits contained in "digits". For example, if the "digits" value is
100 or 2000, the "non-zero digit" value is 3 or 4, respectively.
• < digits > is the number of 8-bit data bytes which follow the header.
• <8-bit data byte >are the digitizer readings. For the PACKed
format, each reading is two bytes. For the REAL,64 format, each
reading is eight bytes.
Following the last reading in each block is the line feed (LF) character. The
line feed must be read from the buffer to prevent error -410 "Query
INTERRUPTED" occurs the next time data is read from the digitizer.
Packed Reading When the packed reading format is specified with the FORMat command,
or when readings are read from memory and transferred to the VME bus or
Conversions
Local bus, the readings must be converted from signed, two’s complement
numbers to voltages. Additionally, when FETChing packed readings, the
definite length arbitrary block header must be removed. This section
explains how to separate the block header from the packed data, and how to
convert the data to voltages.
Download from Www.Somanuals.com. All Manuals Search And Download.
134 Understanding the HP E1429 Digitizer
Chapter 3
Removing the Arbitrary Following are two methods of removing the block data header. The first
method uses the HP BASIC programming language. The second method
uses a command from the HP 82335 HP-IB Command Library for C.
Block Header
HP BASIC Example
DIM Ndig$[1],Count$[9]!dimension parameters for header
Count$ = ""!set count to zeros
ASSIGN @X TO 70905;FORMAT OFF!return unformatted data
OUTPUT 70905;"FETC1?"!retrieve readings from channel 1
ENTER @X USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
!remove header preceding the data
ALLOCATE INTEGER Meas_data(1:VAL(Count$)/2)
!allocate an array to hold the data
ENTER @X;Meas_data(*)!read in the measurement data
ENTER 70905 USING "B";Junk!remove the line feed character
The parameters of the ENTER ... USING statement function as follows:
# - terminate ENTER on last ENTER item (EOI)
X - skip the # character of the header
K - enter the <non-zero digit > part of the header into the Ndig$ variable
K - enter the <digits > part of the header into the Count$ locations specified
B - retrieve one byte (the line feed) from the digitizer
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 135
C Language Example (16-bit readings)
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(int));
/* set number of bytes placed in memory, and number of bytes read */
swap = sizeof(int);/* place 2 bytes/reading in memory */
bytes = 20 * swap;/* read 40 bytes */
IOOUTPUTS(ADDR, "READ?", 5);/* retrieve the readings */
IOENTERAB(ADDR, rdgs, &bytes, swap);
/* enter the readings */
/* and remove the block header */
/* Remove line feed which trails the last data byte */
length = 1;
IOENTERS(ADDR, lf_remove, &length);
The command which removes the block header from the readings is
IOENTERAB. The parameters passed to IOENTERAB are:
ADDR - the address of the digitizer
rdgs - the array name which will store the readings
bytes - a variable specifying the maximum number of bytes to be read
swap - a variable specifying how the bytes are placed into memory
(2 bytes per reading)
Converting Packed The equation for converting packed readings is:
Readings
reading
= (reading
/ 16) * reading resolution
voltage
packed
Reading resolution is a function of the signal range. The resolutions for the
digitizer signal ranges are given in Table 3-2.
Table 3-2. Reading Resolutions for Packed Data Conversions
Signal Range
Resolution
Signal Range
Resolution
-0.1023 to 0.10235
-0.2046 to 0.2047
-0.5115 to 0.51175
-1.0230 to 1.0235
-2.0460 to 2.0470
0.00005
0.00010
0.00025
0.0005
-5.115 to 5.1175
-10.230 to 10.235
-20.460 to 20.470
-51.15 to 51.175
-102.30 to 102.35
0.0025
0.005
0.010
0.025
0.05
0.0010
Download from Www.Somanuals.com. All Manuals Search And Download.
136 Understanding the HP E1429 Digitizer
Chapter 3
Overrange Indications The digitizer indicates an overrange condition (input greater than the
selected range can measure) by returning the values shown in Table 3-3.
An amplifier overrange (single-ended or differential input) sets bit 0 in the
Table 3-3. Digitizer Overload Readings
Condition
Reading
A/D Code
A/D Overrange
(positive reading)
+9.900000E+037
+2047
A/D Overrange
-9.900000E+037
-9.900000E+037
-2046
-2048
(negative reading)
*S/E Input Amplifier
Overrange
or
Differential Input
Amplifier Overrange
*A single-ended input amplifier overrange occurs when the input
signal exceeds ± 5V.
A differential input amplifier overrange occurs on the 0.1V, 0.2V, 0.5V,
1V, 2V, and 5V ranges when the signal on the HI or LO input exceeds
±11V. An overrange occurs on the 10V, 20V, 50V, and 100V ranges
when the signal on the HI or LO input exceeds ±110V.
digitizer’s Questionable Signal Status Register. However, the overrange
does not generate an error message.
Retrieving Readings Each time the digitizer is INITiated it takes a new set of readings. Readings
are retrieved directly from the A/D converters or from digitizer memory
(Figure 3-11). Each new set of readings overwrites any readings currently in
memory. Retrieved readings are transferred over the VME (VXI data
transfer) bus or over the Local bus. The methods used to retrieve readings
are listed below, relative to their transfer rates.
• READ?
• FETCh?
(page 139)
(page 139)
• DIAGnostic:UPLoad:SADDress?
slowest
(page 141)
fastest
These methods are described in the following paragraphs. Table 3-4
summarizes the digitizer’s data transfer modes and transfer rates.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 137
Table 3-4. HP E1429A/B Data Transfer Methods and Rates
Transfer Method
Transfer Rate Transfer Mode* Reading
(approximate)
Type
Local Bus
80 MBytes/s
Real Time /
Post Measurement
Pre-arm /
Post-arm
Embedded Controller
(VME bus with SICL)
8 MBytes/s
80 KBytes/s
11 KBytes/s
Real Time /
Pre-arm /
Post-arm
Post Measurement
DIAGnostic:UPLoad:SADDress?
(VME bus)
Real Time /
Post Measurement
Pre-arm /
Post-arm
READ?/FETCh?
(VME bus)
Post Measurement
Pre-arm /
Post-arm
* Real time readings come directly from the A/D. Post measurement readings come from
memory. The transfer mode is set using the digitizer’s VINStrument:LBUS:FEED and
VINStrument:VME:FEED commands. See "‘VME Bus DataTransfers" and "Local Bus Data
Transfers" later in this chapter for more information.
Figure 3-11. Retrieving Readings from Digitizer Memory
Download from Www.Somanuals.com. All Manuals Search And Download.
138 Understanding the HP E1429 Digitizer
Chapter 3
Retrieving The most common method of retrieving readings from the digitizer is using
the READ? subsystem which consists of the command:
Readings Using
READ?
READ[<chan >]?
The <chan > parameters are:
1 - returns readings from channel 1 (default channel)
2 - returns readings from channel 2
READ? is equivalent to executing the following sequence of commands:
• ABORt - aborts the readings after the arm count and trigger count is
reached.
• INITiate - places the digitizer in wait-for-arm state.
• FETCh[<chan >]? - retrieves the readings from memory and places
them on the VME (VXI data transfer) bus.
As a result, READ? is used for applications that require readings to be
immediately available to a computer, rather than remaining in digitizer
memory.
Because each READ? initiates the digitizer, executing READ1? followed
by READ2? causes the digitizer to take two sets of measurements. If it is
necessary to obtain readings from both channels during the same period, use
INIT and FETCh? which are described in the next section.
Retrieving One method of retrieving readings from memory involves the digitizer’s
FETCh? command shown below. FETChing readings from memory places
them on the VME (VXI data transfer) bus
(Figure 3-11).
Readings Using
FETCh?
FETCh[<chan >]?
:COUNt?
:RECover?
FETChing Readings Recall that the HP E1429 digitizer samples both channels simultaneously
and stores the readings as a single 24-bit number (Figure 3-8). Using the
FETCh? command, each channel’s readings can be retrieved from memory
individually.
from Memory
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 139
The commands used to fetch (retrieve) readings from memory are:
FETCh[<chan >]?
If the <chan > parameter is ’1’ or is not specified, the readings (pre- and
post-arm) from channel 1 and from the most recent INITiate - ARM -
TRIGger sequence are retrieved. If the <chan > parameter is ’2’, the
readings from channel 2 are retrieved.
FETCh[<chan >]:RECover?
This command is used to retrieve readings from non-volatile
(battery-backed) memory following a power failure. The command is also
used to retrieve readings after a digitizer configuration change or reset.
Attempting to fetch (retrieve) readings using FETCh[<chan >]? following
any of these conditions would cause error 230 "Data corrupt or stale" to
occur.
If the <chan > parameter is ’1’ or is not specified, the readings from channel
1 are recovered. If the <chan > parameter is ’2’, the readings from channel 2
are recovered.
Determining the The number of readings that FETCh? retrieves can be determined two ways.
The first way is with the command:
Number of Readings
FETCh(ed)
FETCh[<chan >]:COUNt?
This command returns the total number of readings (pre- and post-arm) that
the FETCh? command will retrieve. Since both channels always take the
same number of readings, either channel can be specified.
The second way to determine the number of readings is to multiply the arm
count by the trigger count. These two counts can be obtained from the
queries:
ARM:STARt:COUNt?
(arm count)
(trigger count)
TRIGger:STARt:COUNt?
Separating Pre- and The number of pre-arm readings and the number of post-arm readings are
related to the total reading count as follows:
Post-Arm Readings
post-arm readings = total readings - pre-arm readings
The FETCh[< chan >]:COUNt? command and the ARM:STARt:COUNt?
and TRIGger:STARt:COUNt? queries described previously return the total
number of readings. The pre-arm count is determined by taking the absolute
value of the query:
Download from Www.Somanuals.com. All Manuals Search And Download.
140 Understanding the HP E1429 Digitizer
Chapter 3
SENSe[< chan>]:SWEep:OFFSet:POINts?
This command will return 0 if no pre-arm readings are specified, or a
negative number representing the number of pre-arm readings.
Note
If the digitizer measurement sequence is aborted (ABORt command), the
FETCh[<chan >]:COUNt? command is the only way to determine the
number of readings to be retrieved by FETCh?. If pre-arm readings are
included in the measurement sequence, there is no way to determine the
number of post-arm readings. The digitizer will attempt to return up to
TRIGger[:STARt]:COUNt readings.
Using A third method of retrieving readings from memory is using the
HP E1406 Command Module command:
DIAGnostic:UPLoad:
SADDress?
DIAGnostic:UPLoad:SADDress? <address >, <byte_count >
<address > is the address of the digitizer’s data register in A24 address
space. The data register’s offset in A24 space is 12 (0C ). The A24 base
16
address can be found as described in the section "Determining the A24 Base
Address" later in this chapter.
<byte_count > is the number of (reading) bytes to upload from the digitizer.
Because the HP E1405/06 Command Module is only capable of 8- and
16-bit data transfers over the VXI backplane, the byte_count parameter will
always be 2 (bytes) times the number of readings.
In systems using an HP E1405/06 Command Module and an external
controller, this command is the fastest method of transferring readings from
memory.
Note
Appendix C "Register-Based Programming" contains an example program
in which DIAGnostic:UPLoad:SADDress? is used to retrieve readings from
digitizer memory.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 141
Memory Management
In certain applications it may be necessary to retrieve a selected set of
readings from digitizer memory. This section explains where readings are
stored in memory and how to determine the memory addresses of any set of
readings.
The DIAGnostic This section introduces two commands used to locate and retrieve readings
from memory. These commands, which are part of the DIAGnostic
subsystem, are:
Subsystem
DIAGnostic
:FETCh[<chan >]? <start_addr >, <count >
:MEMory[<chan >]
:ADDResses?
DIAGnostic:FETCh? returns count number of readings starting at address
start_addr from channel chan. DIAGnostic:MEMory:ADDResses? returns
a list of 32-bit values containing memory address information for each
segment. The use of these commands is shown in the following paragraphs.
Locating Unsegmented Unsegmented readings (SENSe:SWEep:OFFSet:POINts 0) are always
contiguous and are stored at:
Readings
address location 524287 - (num_readings - 1)
where num_readings = ARM:COUN * TRIG:COUN + pad, and pad are
extra counts to make the total reading count divisible by 4. Therefore, the
first reading is stored at address location
524287 - (num_readings - 1).
As an example, assume ARM:COUN 3 and TRIG:COUN 53. Then:
num_readings = 3 * 53 + 1 = 160
(1 is the pad count added to the total reading count)
first data point address = 524287 - (160 - 1) = 524128
This address, together with the count of 159 (3 53) are specified in the
*
DIAGnostic:FETch? command to retrieve the readings (from channel 1):
DIAG:FETC1? 524128,159
Download from Www.Somanuals.com. All Manuals Search And Download.
142 Understanding the HP E1429 Digitizer
Chapter 3
Locating Segmented For segmented readings (SENSe:SWEep:OFFSet:POINts ≤ -3), the
algorithm for locating the readings is similar to that for unsegmented
readings, but is slightly more complicated. The number of memory
segments is determined by the specified arm count (ARM:STARt:COUNt)
as shown in Table 3-5.
Readings
Table 3-5. Arm Count Vs. Memory Segments
ARM:STARt:COUNt
Number of
Memory
Maximum Readings
(TRIGger:STARt:COUNt)
Segments
1
1
2
524,288
262,144
131,072
65,536
32,768
16,384
8,192
2
3 - 4
4
5 - 8
8
9 - 16
17 - 32
33 - 64
65 - 128
16
32
64
128
4096
NOTE: If the non-volatile mode of memory is enabled
(MEMory:BATTery:STATe ON), then all of the maximum reading counts shown
above decrease by four. These four memory locations in each segment hold
the data necessary to recover all readings after a power failure.
The algorithm for determining where the first reading of each segment
begins is:
first reading in segment = ending segment address - (num_readings - 1)
where num_readings = TRIG:COUN + pad, and pad are extra counts to
make the total reading count divisible by 4. The memory partition
composed of num_readings is circular, and if large amounts of pre-arm data
(readings) are taken, the data keeps overwriting itself until the arm is
received and the post-arm count finishes. NOTE that the actual desired
starting point for retrieving data will be:
last_data_point_address - (TRIG_COUN - 1)
which in most cases will not be the starting address if the segment has
wrapped around at least once with pre-arm data. The digitizer firmware
keeps track of the last address used in each segment and automatically reads
the data in the proper order when a FETCh?, VME bus transfer, or Local
bus data transfer is performed.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 143
The DIAGnostic:MEMory:ADDResses? command returns a list of 32-bit
integers for each segment in memory. In each 32-bit list, bit 1 is the aborted
flag and bit 0 is the memory wrapped flag. Bit 31 through
bit 2 is the value of the address counter for that segment. Thus, to obtain the
memory address only, a divide by 4 (right shift of 2) of the 32-bit list must
be done. Since the address counter points to the memory location where the
next reading will be stored, the address should be decremented by 1 before
use.
As an example, assume: ARM:COUN 5; SENS:SWE:POIN -20;
TRIG:COUN 35
Because of the ARM:COUN specified memory is divided into eight
segments (Table 3-5), each of which could contain up to 65536 readings.
For ARM:COUN 5, only five of the eight possible segments will be used,
starting with the segment that begins at address 0 and ends at address 65535.
The ending address for each of the five segments can be calculated from the
equation:
ending segment address = segment_number * 65536 - 1
This yields the following ending addresses for the five segments:
segment 1 = 65535
segment 2 = 131071
segment 3 = 196607
segment 4 = 262143
segment 5 = 327679
Assume you want to read the data from segment number 4. Then, the
number of readings = 35 + 1 = 36 (padded to make divisable by 4). The
first reading in the segment is at address:
first address = ending segment address - (number of readings - 1)
262143 - (36 - 1) = 262108
If the readings in the memory segment did not wrap around, the address
262108 and count 35 would be specified in the DIAGnostic:FETCh?
command.
If, for example, readings in the segment did wrap around, then the starting
address specified in the DIAGnostic:FETCh? command will not be the first
address in the segment where a reading is stored. To determine the starting
address, use the DIAGnostic:MEMory:ADDRess? command and get the 32
bits representing the 4th segment (this would be the 13th through 16th bytes
in the block of data returned).
Download from Www.Somanuals.com. All Manuals Search And Download.
144 Understanding the HP E1429 Digitizer
Chapter 3
Assume that this 32-bit value is FFF81 . Bit 0 is high (’1’) indicating
16
readings have wrapped around the segment. Bit 1 is low (’0’), indicating
that this segment completed normally and was not aborted (by the user with
the ABORt command).
The address returned is divided by 4 so that the aborted and wrapped bits
are discarded, and the address counter value of 3FFE0 (262112 )
16
10
remains. To retrieve the most recent 35 readings (with a circular buffer size
of 36), the address of the first reading to retrieve is calculated as:
starting address = address counter value - TRIGger:COUNt +buffer size
262112
starting address = 262113
-
35
+
36
Therefore, the DIAGnostic:FETCh? command would be executed as:
DIAG:FETC1? 262113,35
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 145
VME Bus Data Transfers
Another method of transferring readings to the VME (VXI data transfer)
bus is with the digitizer’s VINStrument (Virtual INStrument) subsystem
and accessing the digitizer’s data register. This method, which combines
message-based (SCPI) programming and reading the data register directly,
is faster than the previous methods (READ?, FETCh?,
DIAGNostic:UPLoad:ADDRess?) in that readings can be retrieved from
the A/D converter or from memory in the A/D’s packed data format.
There are two modes of VME data transfers: real-time and post
measurement. In a real-time data transfer, reading the digitizer’s data
register triggers a measurement and returns the A/D reading to the VME bus
in the same measurement cycle. In a post measurement data transfer,
reading the register transfers a A/D reading from digitizer memory to the
VME bus.
How to select the transfer mode is covered in the section "Setting the VME
bus Transfer Mode". Examples of VME bus data transfers are listed in
Chapter 2 - "Using the Digitizer".
Locating the Data Access to the digitizer’s data register is through its address which is mapped
into A24 address space. At power-on, the system resource manager reads
Register
the digitizer’s device type register (in A16 address space) to determine the
amount of A24 memory the digitizer needs (which is 4096 bytes). The
resource manager allocates a block of A24 memory for the digitizer and
writes the A24 base (starting) address into the digitizer’s offset register
(also in A16 space).
Figure 3-12 is an example of how the digitizer registers are mapped into
A16 and A24 address space. Appendix C contains additional register
programming information.
Download from Www.Somanuals.com. All Manuals Search And Download.
146 Understanding the HP E1429 Digitizer
Chapter 3
Figure 3-12. Digitizer Registers in A16 and A24 Address Space
Note
The following information on determining the data register address is based
on the computer configuration shown in Figure 3-12, and on address
mapping as performed by the HP E1406 Command Module’s resource
manager. For configurations with embedded controllers or configurations
with a resource manager other than the HP E1406 Command Module, refer
to those manual(s) containing information on A24 address mapping.
Determining the A24 There are three ways to determine the digitizer’s A24 base address:
Base Address
1. Note the base address assigned by the resource manager at power-on.
The HP E1406 resource manager configuration sequence can be
monitored using an RS-232 terminal or printer. The "C-Size VXIbus
Systems Installation and Getting Started Guide" contains information
on connecting a terminal.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 147
2. Execute the following HP E1406 Command Module command:
VXI:CONFigure:DeviceLIST? <logical_address>
The C language example programs disk contains the program
Query.C. By changing the line:
#define ADDR 70905L (E1429 digitizer address)
to:
#define ADDR 70900L (E1406 address)
and entering the command:
VXI:CONF:DLIS? 40(or the current E1429 logical address)
a program string similar to the following is returned when the
program executes:
vxi:conf:dlis? 40 = +40,+0,+4095,+448,+1,+0,MSG,A24,
#H00220000, #H00001000,Ready,"","","",MBinstr INSTALLED AT
SECONDARY ADDR 5"
The hexadecimal number in bold is the digitizer’s A24 base address.
3. Read the digitizer’s offset register in A16 address space. As shown in
Figure 3-12, the Offset register is one of the digitizer’s configuration
registers.
In a system where the HP E1406 Command Module allocates address
space, the A16 base address of the configuration registers is
computed as:
1FC000 + (LADDR * 64)
16
16
2,080,768 + (LADDR * 64)
where 1FC000 is the starting location of the configuration register
16
addresses, LADDR is the digitizer’s logical address, and 64 is the
number of address bytes in A16 per VXI device.
The digitizer’s factory set logical address is 40. If this address is not
changed, the base address of the digitizer’s configuration registers in
A16 is:
Download from Www.Somanuals.com. All Manuals Search And Download.
148 Understanding the HP E1429 Digitizer
Chapter 3
1FC000 + (40 * 64)
16
16
1FC000 + A00 = 1FCA00
16
16
16
or decimal
2,080,768 + (40 * 64)
2,080,768 + 2560 = 2,083,328
Given the A16 base address and the "offset" of the Offset register (06
from Figure 3-12), the digitizer’s A24 base address can be
determined as shown in the program A24_READ.C.
/* A24_READ.C - This program reads the digitizer’s A24 base address. */
/* Include the following header files */
#include <stdio.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library */
#define CMD_MOD 70900L /* I/O path between the digitizer and the Command Module */
/* Function prototypes */
long get_base_addr(void);
/****************************************************************************/
void main(void)
{
long base_addr;/* variable for digitizer A24 base address */
base_addr = get_base_addr();/* function call to calculate and */
/* return digitizer A24 base address */
printf("\nA24 base address = %ld", base_addr);
}
/****************************************************************************/
long get_base_addr(void)
{
/* base address of (A24) offset register in A16 address space */
long base_addr = (0x1FC000 + (40 * 64)) + 6; /* digitizer logical address is 40 */
Continued on Next Page
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 3
Understanding the HP E1429 Digitizer 149
float a24offst;/* A24 offset from A16 offset register */
char rd_addr[80];/* command string variable */
/* Create the command string which reads the A24 base address from the offset register*/
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
/* Read value from offset register */
IOENTER(CMD_MOD, &a24offst);
/* Multiply offset value by 256 for 24-bit address value */
a24offst *= 256.;
return (long)a24offst;
}
Multiplying the value of the offset register (a24offst) by 256 (100 )
16
converts the 16-bit register value to a 24-bit address.
The Data Register The offset of the digitizer’s data register is 12 (0C ). The offset is added to
16
the A24 base address to form the complete register address:
Offset
00220000 + 0C = 0022000C
16
16
16
2,228,224 + 12 = 2,228,236
The offset of the data register can also be read with the SCPI command:
VINStrument[:CONFigure]:VME:SEND:ADDRess:DATA?
This command returns two values: A24,12. A24 indicates that the data
register is in A24 address space and 12 is the offset of the data register.
150 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
The VINStrument The commands within the VINStrument subsystem used for VME data
transfers are shown below:
Subsystem
VINStrument
[:CONFigure]
:VME
:FEED <source >
:MEMory
:INITiate
[:MODE] <mode >
:SEND
:ADDRess
:DATA?
VME Bus Transfer To configure the digitizer for VME bus data transfers:
Programming
• Use the CONFigure command and the low-level digitizer commands
to specify the number of readings, the expected value of the
readings, the input port, the arm source, etc.
Sequence
• Use the TRIGger:STARt:SOURce command to set the trigger source
to VME (for real time data transfers only).
• Use the VINStrument subsystem to set the VME bus transfer
mode and data source.
• Use the INITiate:IMMediate command to initiate reading transfers.
Setting the VME Bus The VME bus data transfer mode is set with the command:
Transfer Mode
VINStrument[:CONFigure]:VME[:MODE] <mode >
The <mode > parameters are:
GENerate - VME bus data transfers are enabled
OFF - VME bus data transfers are disabled. At power-on or following a
reset, the <mode > is OFF.
Note
When transferring data over the VME bus, the Local bus transfer mode
(HP E1429B) must be disabled. This is done with the command:
VINStrument[:CONFigure]:LBUS[:MODE] OFF
Chapter 3
Understanding the HP E1429 Digitizer 151
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the VME bus The source of the readings transferred over the VME bus is set with the
command:
Data Source
VINStrument[:CONFigure]:VME:FEED <source >
The <source > parameters are given below. Sources beginning with
"MEMory: " are the post measurement sources (modes), sources beginning
with "CONVerter: " are the real time sources (modes).
" MEMory:CHANnel1": Channel 1 memory is the data source for the
VME bus. One 16-bit reading is returned.
" MEMory:CHANnel2": Channel 2 memory is the data source for the
VME bus. One 16-bit reading is returned.
" MEMory:BOTH": Both channels of memory are the data source for the
VME bus. In this mode, channel 1 will be output the first time the data
register is accessed, channel 2 is output the second time the data register is
accessed. One 16-bit reading is returned with each access.
" MEMory:BOTH32": Both channels of memory are the data source for
the VME bus. In this mode, accessing the data register returns a 32-bit
number where the high order 16 bits are the channel 2 reading and the low
order 16 bits are the channel 1 reading (see Figure 3-11).
" CONVerter:CHANnel1": The channel 1 A/D converter is the data
source for the VME bus. One 16-bit reading is returned.
" CONVerter:CHANnel2": The channel 2 A/D converter is the data
source for the VME bus. One 16-bit reading is returned.
" CONVerter:BOTH": Accessing the data register triggers both A/D
converters at the same time, and one 16-bit reading (channel 1) is returned.
Accessing the data register a second time returns the second 16-bit reading
(channel 2), but does not trigger the A/Ds.
" CONVerter:BOTH32": Accessing the data register triggers both A/D
converters at the same time, and one 32-bit number is returned. The high
order 16 bits are the channel 2 reading, and the low order 16 bits are the
channel 1 reading (Figure 3-11).
If it is necessary to identify readings from channel 1 and channel 2, a data
label can be assigned to the readings as described in the section "Assigning
a Data Label" on page 130.
152 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Reading the Data As shown in Figure 3-12, the digitizer’s data register is mapped into the
HP E1406 Command Module’s A24 address space. A command used to
read the data register is the Command Module command:
Register
DIAGnostic:PEEK? <address >, <width >
<address >: the address (A24 base + offset) of the data register
<width >: the number of bits per digitizer reading. For the VME transfer
modes, width is 16 (bits) with the exception of modes "MEMory:BOTH32"
and "CONVerter:BOTH32", which are 32 bits. The HP E1406 Command
Module cannot do 32-bit transfers to/from the VME (VXI data transfer) bus.
However, 32-bit transfers at approximately 8 MByte/ second transfer rates
are possible using an embedded controller.
Note
Additional information on the Command Module’s DIAGnostic:PEEK?
command is located in the HP E1406 User’s Manual. Chapter 2 "Using the
Digitizer" contains examples of 16-bit and 32-bit data transfers using an
embedded PC.
VME Bus Data Format Data is transferred (real time or post measurement) over the VME bus in the
digitizer’s packed (A/D) format. Data in this format are left-justified, signed
2’s complement numbers . See "Packed Reading Conversions" on page 134
for information on converting the readings to voltages.
Segmented Reading Multiple arms (bursts) of pre-arm and post-arm readings segment digitizer
memory (Figure 3-13). Real time and post measurement transfers of
segmented readings are also achieved by reading the data register. For
high-speed configurations such as those which use an embedded controller,
the time at which post measurement readings can be retrieved and a delay
(partition window) while the digitizer sets up the next memory segment for
reading storage and retrieval must be accounted for (Figure 3-13). Post
measurement readings (either segmented or non-segmented) can be
Transfers
retrieved when bit 4 of the traffic register (base + 02 ) is set high (’1’). The
16
partition window delay is monitored by reading bit 1 of the arm status
register (base +43 , or by reading bit 9 (READy) of the digitizer’s
16)
transfers, monitoring either partition window bit is best accomplished when
the arm source is immediate (ARM:STARt:SOURce IMMediate).
Chapter 3
Understanding the HP E1429 Digitizer 153
Download from Www.Somanuals.com. All Manuals Search And Download.
To transfer segmented readings, the data register is accessed until each
reading (pre- and post-arm) in the segment is transferred. After the last
reading is transferred, bit 1 of the arm status register (base +43 or
16)
bit 9 of the condition register is monitored for a low to high transition.
When the bit is high (’1’), the next segment can be transferred.
Figure 3-13. Monitoring the Partition Window During Segmented Reading Transfers
Note
It is only necessary to monitor the partition window bit when the digitizer
readings are segmented and the data register is accessed at speeds available
through an embedded controller. Also, monitoring bit 1 of the arm status
register (base +43 is faster than using SCPI commands to monitor
16)
condition register bit 9.
Bit 4 of the traffic register (base +02 ) is monitored so that post
16
measurement readings, either segmented or non-segmented, can be
transferred immediately once all of the readings are available.
154 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Multiple VME Bus Data During real time data transfers, readings are taken directly from the A/D
converter and sent to the VME bus. These readings are also stored in
digitizer memory. Transferring (real time or post measurement) readings
from memory does not remove the readings from memory. As a result, a set
of readings can be transferred to the VME bus multiple times. The digitizer
is configured for an additional data transfer with the command:
Transfers
VINStrument[:CONFigure]:VME:MEMory:INITiate
Reading the data register after executing this command transfers the data to
the VME bus. If a subset of the total number of readings is transferred,
execute the ABORt command following the transfer to allow for additional
transfers. The digitizer should be configured with
VINStrument[:CONFigure]:VME:MEMory:INITiate for each subsequent
data transfer.
Chapter 3
Understanding the HP E1429 Digitizer 155
Download from Www.Somanuals.com. All Manuals Search And Download.
Local Bus Data Transfers
This section describes the use of the VXI backplane Local bus. The
HP E1429B digitizer uses the Local bus for high-speed (80 MBytes/second)
data transfers between two or more devices installed in adjacent mainframe
slots.
Local Bus The Local bus is a set of 12 signal lines on the backplane P2 connector. The
Local bus is segmented such that each device with Local bus capability has
Description
two interfaces, one to each of the modules in the physically adjacent slots. A
device may connect the bus segments together, or connect to each segment
independently. Figure 3-14 shows how the lines are used by the
HP E1429B digitizer.
Figure 3-14. Local Bus Signal Line Definitions
Data flows left to right over the Local bus through adjacent slots. The
following signal levels are allowed on the bus:
Analog low: ±5.5V, 50Ω
medium: ±16.0V, 500 mA
high: ±42.0V, 500 mA
Digital TTL: -0.5V to +5.5V, 200 mA
ECL: -5.46V to 0.0V, 50 mA
156 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
A Local bus key (Figure 1-1) prevents devices with incompatible Local bus
signal levels from being installed in adjacent slots.
How Data is Data is transferred over the Local bus in units of blocks and frames (Figure
3-15). A frame consists of a series of blocks, and each block is a stream of
data bytes generated by a single device. If only one device is generating
data, then the block size and frame size are the same.
Transferred
Figure 3-15. HP E1429B Local Bus Data Transfer Protocol
Handshake Protocol The LDAV8 and LREQ9 lines are used to handshake bytes of data across
the Local bus. Each data generating device asserts the LBLOCK11 flag with
the last data byte in the block. The device which generates the last block in
the frame asserts the LFRAME10 flag along with the LBLOCK11 flag.
Local Bus Modes There are several modes of operation used to generate or receive data over
the Local bus. The most common modes follow. The digitizer modes are
shown in bold and more information on these modes is contained in the
section "Setting the Local Bus Transfer Mode" on page 162.
Chapter 3
Understanding the HP E1429 Digitizer 157
Download from Www.Somanuals.com. All Manuals Search And Download.
Generate: In this mode, a device is sending data to the Local bus.
Consume: In this mode, a device is receiving data from the Local bus.
Pipeline: In this mode, a device is neither generating nor consuming data.
Data is passed through from the device on the left to the device on the right.
Append: In this mode, a device pipelines the data until the end-of-frame
flag is detected. When the flag is detected, the device appends its block of
data and sets new end-of-block and end-of-frame flags.
Insert: In this mode, the device places a block of data and an end-of-block
flag on the Local bus, and then pipelines data from the device on the left to
the device on the right.
Strip: In this mode, a device alternates between the pipeline and consume
modes. It removes a block of data from the beginning of each frame.
Eavesdrop: In this mode, a device is simultaneously consuming and
pipelining data. It copies each byte of data as it is passed along.
Transform: In this mode, a device generates and consumes data.
158 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Digitizer Local Bus The commands used to configure the HP E1429B digitizer for Local bus
data transfers are part of the VINStrument subsystem:
Commands
VINStrument
[:CONFigure]
:LBUS
:FEED <source >
:MEMory
:INITiate
[:MODE] <mode >
:RESet
:SEND
:POINts <count >
:AUTO <mode >
:TEST
:DATA <voltage_list >
Local Bus Transfer The programming sequence used for Local bus transfers depends on the
transfer configuration. The transfer configurations covered in this manual
include:
Configurations
• Single digitizer
– post measurement transfers from digitizer memory
– real time measurement transfers from the digitizer A/D
• Multiple digitizers and serial transfers
– post measurement transfers from digitizer memory
– real time measurement transfers from the digitizer A/D
• Multiple digitizers and interleaved transfers
– interleaved real time transfers from the digitizer A/D
The programming sequences for the first two configurations follow. Chapter
2 contains example programs using these sequences.
Note
Refer to Appendix D "Local Bus Interleaved Data Transfers" for
programming information on transferring data from multiple digitizers in an
interleaved sequence.
Chapter 3
Understanding the HP E1429 Digitizer 159
Download from Www.Somanuals.com. All Manuals Search And Download.
Single Digitizer In a single digitizer configuration, the digitizer is usually the data generator
and a device such as the HP E1488 memory card is the consumer. With this
configuration, the programming sequence is:
1. Use the CONFigure command and the low-level digitizer commands
to configure the digitizer for the required measurements.
2. Use the VINStrument subsystem to reset the digitizer’s Local bus
chip, to set the Local bus transfer mode (generate), and to set the
data source (post measurement or real time transfer).
VINStrument:CONFigure:LBUS:RESet
VINStrument:CONFigure:LBUS:MODE <mode>
VINStrument:CONFigure:LBUS:FEED <source >
3. Reset the consumer’s (i.e. memory card’s) Local bus chip and
configure the consumer to receive data.
4. Activate (initiate) the consumer.
5. Use INITiate:IMMediate to activate the digitizer and start reading
transfers.
Multiple Digitizers and In a configuration with two or more digitizers transferring data serially, the
leftmost digitizer is set to the generate mode and the succeeding digitizer(s)
is set to either the append mode or the insert mode. A device such as the
HP E1488 memory card is usually the consumer.
Serial Transfers
In a serial transfer, each digitizer transfers data from its memory or directly
from its A/D in sequence. For example, serial transfers from digitizers D -
1
D where D is in generator mode and D and D are in append mode
3
1
2
3
would appear as:
EOF EOB D D D
EOB D D D
EOB D D D -----> consumer
3
3
3
2
2
2
1
1
1
When D is in generator mode and D and D are in insert mode the
1
2
3
transfer sequence would appear as:
EOF EOB D D D
EOB D D D
EOB D D D -----> consumer
1
1
1
2
2
2
3
3
3
In these sequences, EOF is the end-of-frame flag, EOB is the end-of-block
flag, and D is either a two byte (one channel) or four byte (two channel)
n
reading. The procedure for a serial transfer is:
160 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
1. Use the CONFigure command and the low-level digitizer commands
to configure the digitizers for the required measurements.
2. Use the VINStrument subsystem to reset the leftmost digitizer’s
Local bus chip, to set the Local bus transfer mode to generate,
and to set the data source (post measurement or real time
transfer).
Use the VINStrument subsystem to reset the inner digitizer’s
Local bus chip, to set the Local bus transfer mode to append or
insert, and to set the data source (post measurement or real time
transfer).
VINStrument:CONFigure:LBUS:RESet
VINStrument:CONFigure:LBUS:MODE <mode>
VINStrument:CONFigure:LBUS:FEED <source >
Note that you must reset the Local bus chip of each appender or
inserter digitizer each time the generator digitizer’s Local bus mode
or data source is changed.
3. Reset the consumer’s (i.e. memory card’s) Local bus chip and
configure the consumer to receive data.
4. Activate (initiate) the consumer.
5. If the digitizer(s) is in the append mode, use INITiate:IMMediate to
activate the appender digitizer first. Then use INITiate:IMMediate to
activate the generator digitizer.
6. If the digitizer(s) is in the insert mode, use INITiate:IMMediate to
activate the generator digitizer first. Then use INITiate:IMMediate to
activate the inserter digitizer.
Digitizer The HP E1429B digitizer can be configured for measurements as required
with the following exceptions:
Configuration
Restrictions
• If the Local bus data source is the digitizer A/D (real time transfers),
only post-arm readings are allowed. This includes multiple arms
(bursts).
• When the Local bus mode is set to a mode other than OFF or
pipeline, the VME bus transfer mode must be disabled. This is done
with the command:
VINStrument[:CONFigure]:VME[:MODE] OFF
Chapter 3
Understanding the HP E1429 Digitizer 161
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the Local The Local bus transfer mode is set with the command:
Bus Transfer Mode
VINStrument[:CONFigure]:LBUS[:MODE] <mode >
The <mode > parameters are:
APPend: Local Bus data is received from the left, and passed on to the right
until an end of frame is detected. When end of frame is received from the
left side, all data from this module is appended, followed by an end of block
marker and a new end of frame. After sending the end of frame marker, the
module enters the paused state. This mode requires a module to the left that
is in GENerate mode. The mode is not active until either an INITiate
command or a VINStrument:LBUS:MEMory:INITiate command is sent.
GENerate: Local bus data originates in this module and is passed to the
right, followed by an end of frame marker. The mode is not active until
either an INITiate command or a VINStrument:LBUS:MEMory:INITiate
command is sent.
INSert: Local bus data is inserted onto the bus from this module. The
module will place its data out onto the Local bus with an end-of-block flag
at the end. The module will then pass through (pipeline) any data it receives
from the left, and will enter the paused state when an end-of-frame flag is
received from the left. This mode requires at least one module to the left
which is in GENerate mode. The mode is not active until either an INITiate
command or a VINStrument:CONFigure:LBUS:MEMory:INITiate
command is sent.
OFF: The Local bus interface is disabled immediately upon receipt of this
command. Local bus data is neither used nor passed through.
PIPeline: Local bus data is passed through and not altered. This mode
becomes effective immediately upon receipt of this command. Select this
mode when data should be transparently passed through the
HP E1429B. The module will remain in the PIPeline mode even after an
end-of-frame flag is received; therefore, it is necessary to change modes to
take the module out of PIPeline mode.
162 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the Local The source of the readings transferred over the Local bus is set with the
command:
Bus Data Source
VINStrument[:CONFigure]:LBUS:FEED <source >
The <source > parameters follow. Sources beginning with "MEMory: " are
the post measurement sources, sources beginning with "CONVerter:" are
the real time (A/D) sources. The Local bus data source is independent of
any Local bus transfer mode.
" MEMory:CHANnel1" : Channel 1 memory is the data source for the
Local bus. Two bytes per reading will be output to the bus.
" MEMory:CHANnel2" : Channel 2 memory is the data source for the
Local bus. Two bytes per reading will be output to the bus.
" MEMory:BOTH" : Both channels of memory are the data source for the
Local bus. In this mode, the channel 2 reading is output first, followed by
the channel 1 reading. With two bytes per reading, four bytes for each set of
readings will be output to the bus.
" CONVerter:CHANnel1" : The channel 1 A/D converter is the data
source for the Local bus. Two bytes per reading will be output to the bus.
" CONVerter:CHANnel2" : The channel 2 A/D converter is the data
source for the Local bus. Two bytes per reading will be output to the bus.
" CONVerter:BOTH" : Both A/D converters are the data source for the
Local bus. In this mode, the channel 2 reading is output first, followed by
the channel 1 reading. With two bytes per reading, four bytes for each set of
readings will be output to the bus.
Local Bus Data Format Data is transferred (real time or post measurement) over the Local bus in the
digitizer’s packed (A/D) format. Data is transferred one byte at a time in the
following sequence:
Two Channels: channel 2 MSByte
channel 2 LSByte
channel 1 MSByte
channel 1 LSByte
One Channel: channel n MSByte
channel n LSByte
Chapter 3
Understanding the HP E1429 Digitizer 163
Download from Www.Somanuals.com. All Manuals Search And Download.
Additionally, if the transfer configuration involves multiple digitizers,
appender digitizer readings will follow the generator digitizer readings.
Inserter digitizer readings will precede the generator digitizer readings.
Data in the packed format are left-justified, signed 2’s complement numbers
information on converting the readings to voltages.
Multiple Local Bus During real time data transfers, readings are taken directly from the A/D
converter and sent to the Local bus. These readings are also stored in
Data Transfers
digitizer memory. Transferring (real time or post measurement) readings
from memory does not remove the readings from memory. As a result, a set
of readings can be transferred over the Local bus multiple times. The
digitizer is configured for each additional data transfer with the command:
VINStrument[:CONFigure]:LBUS:MEMory:INITiate
Also, if a measurement is aborted with the ABORt command, the digitizer
should be configured with
VINStrument[:CONFigure]:LBUS:MEMory:INITiate for each subsequent
data transfer.
Note
Detailed information on the digitizers Local bus commands can be found in
Chapter 4 - "Command Reference".
164 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
The Digitizer Status Registers
This chapter describes the HP E1429 digitizer status system. Included is
information on the STATus subsystem commands, the status groups used by
the digitizer, the conditions monitored by each group, and information on
how to enable a condition to interrupt a computer.
The Status The commands included in the STATus subsystem are:
Subsystem
Commands
STATus
:OPC
:INITiate <state >
:OPERation|QUEStionable
[:CONDition]?
:ENABle <unmask >
[:EVENt]?
:NTRansition <unmask >
:PTRansition <unmask >
:PRESet
Status System Operating conditions within the digitizer are monitored by registers in
various status groups. The status groups implemented by the digitizer are:
Registers
• Questionable Signal Status Group
– condition register
– transition filter
– event register
– enable register
• Operation Status Group
– condition register
– transition filter
– event register
– enable register
• Standard Event Status Group
– standard event status register
– standard event status enable register
• Status Byte Status Group
– status byte register
– service request enable register
The relationship between the registers and filters in these groups is shown in
Figure 3-16.
Chapter 3
Understanding the HP E1429 Digitizer 165
Download from Www.Somanuals.com. All Manuals Search And Download.
Questionable Signal Status Group
Condition Register
STATus:QUEStionable:CONDition?
STATus:QUEStionable:NTRansition <unmask>
STATus:QUEStionable:PTRansition <unmask>
Transition Filter
Event Register
Enable Register
STATus:QUEStionable[:EVENt]?
STATus:QUEStionable:ENABle <unmask>
Status Byte
(Summary bit)
Standard Event Status Group
0
L
o
g
i
0
1
Event Register
1
*ESR?
2
2
c
a
l
QUES
QUES
MAV
Enable Register
*ESE <unmask>
MAV
ESB
ESB
X
(Summary bit)
RQS
O
R
Operation Status Group
OPER
OPER
*STB?
*SRE <unmask>
Condition Register
STATus:OPERation:CONDition?
SPOLL
STATus:OPERation:NTRansition <unmask>
STATus:OPERation:PTRansition <unmask>
Transition Filter
Event Register
Enable Register
STATus:OPERation[:EVENt]?
STATus:OPERation:ENABle <unmask>
(Summary bit)
Figure 3-16. HP E1429 Status Groups and Associated Registers.
166 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
The Questionable The digitizer’s Questionable Signal status group monitors overload
conditions, the frequency accuracy of the divide-by-n reference source, and
error conditions in non-volatile calibration memory.
Signal Status Group
The Condition Register Overload conditions, divide-by-n frequency accuracy, and non-volatile
calibration memory errors are monitored with the following bits in the
Condition register. All other bits are unused.
15 14 13 12 11 10
unused
9
8
7
6
5
4
3
2
1
0
CAL
unused
TIME
VOLT
VOLTage: Bit 0 is set (1) if an amplifier overrange (single-ended or
differential input) is detected during a measurement sequence. Otherwise,
the bit remains cleared (0).
TIME: Bit 2 is set (1) when the divide-by-n reference source cannot
generate a sample rate that is within 1% of the rate specified by
TRIG:TIMer1 or TRIG:TIMer2. Otherwise, the bit remains cleared (0).
CALibration: Bit 8 is set (1) when an error is detected in non-volatile
calibration memory.
Reading the Condition Register
The current state of bits 0, 2, and 8 can be determined by reading the
Condition register with the command:
STATus:QUEStionable:CONDition?
Bit 0 has a corresponding decimal value of 1, bit 2 has a decimal value of 4,
and bit 8 has a decimal value of 256. Reading the Condition register does
not affect the bit settings. The bits are cleared following a reset (*RST). Bit
8 CALibration will remain set, however; if the error condition persists.
The Transition Filter The Transition Filter specifies which type of bit transition in the Condition
register will set corresponding bits in the Event register. Transition filter
bits may be set for positive transitions ( 0 to 1), or negative transitions (1 to
0). The commands used to set the transitions are:
STATus:QUEStionable:NTRansition <unmask >
STATus:QUEStionable:PTRansition <unmask >
Chapter 3
Understanding the HP E1429 Digitizer 167
Download from Www.Somanuals.com. All Manuals Search And Download.
NTRansition sets the negative transition. For each bit unmasked, a 1-to-0
transition of that bit in the Condition register sets the associated bit in the
Event register.
PTRansition sets the positive transition. For each bit unmasked, a 0-to-1
transition of that bit in the Condition register sets the associated bit in the
Event register.
<unmask > is the decimal, hexadecimal (#H), octal (#Q), or binary (#B)
value of the Condition register bit to be unmasked. (The decimal values of
bits 0, 2, and 8 are 1, 4, and 256.)
The Event Register The Event register latches transition events from the Condition register as
specified by the Transition Filter. Bits in the Event register are latched and
remain set until the register is cleared by one of the following commands:
STATus:QUEStionable[:EVENt]?
*CLS
The Enable Register The Enable register specifies which bits in the Event register can generate a
summary bit which is subsequently used to generate a service request. The
digitizer logically ANDs the bits in the Event register with bits in the
Enable register, and ORs the results to obtain a summary bit.
The bits in the Enable register that are to be ANDed with bits in the Event
register are specified (unmasked) with the command:
STATus:QUEStionable:ENABle <unmask >
<unmask > is the decimal, hexadecimal (#H), octal (#Q), or binary (#B)
value of the Enable register bit to be unmasked. (The decimal values of bits
0, 2, and 8 are 1, 4, and 256.)
The Enable register is cleared at power-on, by specifying an <unmask >
value of 0, or by executing the STATus:PRESet command.
The Operation The Operation status group monitors current operating conditions within the
digitizer. The specific conditions include: CALibrating, MEASuring,
entering the wait-for-arm state, and execution of the INITiate[:IMMediate]
command.
Status Group
168 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
The Condition Register Calibration, waiting for an arm signal, execution of the INITiate:IMMediate
command, and memory partitioning are monitored with the following bits in
the Condition register. All other bits are unused.
15 14 13 12 11 10
unused
9
8
7
6
5
4
3
2
1
0
READY BUSY
ARM
unused
CAL
CALibrating: Bit 0 is set (1) during calibration. The bit is cleared (0)
otherwise.
Waiting for ARM: Bit 6 is set (1) when the digitizer enters the
wait-for-arm state. The bit is cleared (0) when a start arm is received or
when the measurements are aborted.
BUSY: Bit 8 is set (1) when the INITiate[:IMMediate] command is
executed. The bit is cleared (0) when the measurements are complete or
aborted, and the digitizer returns to the idle state.
READY: Bit 9 is set(1) when a digitizer memory segment is ready for data
storage. The bit is cleared (0) while the digitizer is partitioning the next
memory segment.
Reading the Condition Register
Bit settings in the Condition register can be determined with the command:
STATus:OPERation:CONDition?
Bits 0, 6, 8, and 9 have corresponding decimal values of 1, 64, 256, and 512.
Reading the Condition register does not affect the bit settings. The bits are
cleared following a reset (*RST).
The Transition Filter The Transition Filter specifies which type of bit transition in the Condition
register will set corresponding bits in the Event register. Transition filter
bits may be set for positive transitions ( 0 to 1), or negative transitions (1 to
0). The commands used to set the transitions are:
STATus:OPERation:NTRansition <unmask >
STATus:OPERation:PTRansition <unmask >
NTRansition sets the negative transition. For each bit unmasked, a 1-to-0
transition of that bit in the Condition register sets the associated bit in the
Event register.
PTRansition sets the positive transition. For each bit unmasked, a 0-to-1
transition of that bit in the Condition register sets the associated bit in the
Event register.
Chapter 3
Understanding the HP E1429 Digitizer 169
Download from Www.Somanuals.com. All Manuals Search And Download.
<unmask > is the decimal, hexadecimal (#H), octal (#Q), or binary (#B)
value of the Condition register bit to be unmasked. (Bits 0, 6, 8, and 9 have
corresponding decimal values of 1, 64, 256, and 512.)
The Event Register The Event register latches transition events from the Condition register as
specified by the Transition Filter. Bits in the Event register are latched and
remain set until the register is cleared by one of the following commands:
STATus:OPERation[:EVENt]?
*CLS
The Enable Register The Enable register specifies which bits in the Event register can generate a
summary bit which is subsequently used to generate a service request. The
digitizer logically ANDs the bits in the Event register with bits in the
Enable register, and ORs the results to obtain a summary bit.
The bits in the Enable register that are to be ANDed with bits in the Event
register are specified (unmasked) with the command:
STATus:OPERation:ENABle <unmask >
<unmask > is the decimal, hexadecimal (#H), octal (#Q), or binary (#B)
value of the Enable register bit to be unmasked. (Bits 0, 6, 8, and 9 have
corresponding decimal values of 1, 64, 256, and 512.)
The Enable register is cleared at power-on, by specifying an <unmask >
value of 0, or by executing the STATus:PRESet command.
The Standard Event The Standard Event status group monitors command execution errors,
programming errors, and the power-on state.
Status Group
The Standard Event The conditions monitored by the Standard Event Status register are
identified below.
Status Register
7
6
5
4
3
2
1
0
PON
unused
CME
EXE
DDE
QYE
unused
OPC
Power-on (PON): Bit 7 is set (1) when an off-to-on transition has occurred.
Command Error (CME): Bit 5 is set (1) when an incorrect command
header is received, or if an un-implemented common command is received.
Execution Error (EXE): Bit 4 is set (1) when a command parameter is
outside its legal range.
170 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Device Dependent Error (DDE): Bit 3 is set (1) when an error other than a
command error, execution error, or query error has occurred.
Query Error (QYE): Bit 2 is set (1) when the digitizer output queue is read
and no data is present, or when data in the output queue has been lost.
Operation Complete (OPC): Bit 0 is set (1) when the *OPC command is
received. *OPC is used to indicate when all pending (or previous) digitizer
commands have completed.
Note that bits 7, 5, 4, 3, 2, and 0 have corresponding decimal values of 128,
32, 16, 8, 4, and 1.
Reading the Standard Event Status Register
The settings of the Standard Event Status register can be read with the
command:
*ESR?
The bits are cleared at power-on, or by *ESR? or *CLS.
The Standard Event The Standard Event Status Enable register specifies which bits in the
Standard Event Status register can generate a summary bit which is
subsequently used to generate a service request. The digitizer logically
ANDs the bits in the Event register with bits in the Enable register, and ORs
the results to obtain a summary bit.
Status Enable Register
The bits in the Enable register that are to be ANDed with bits in the Event
register are specified (unmasked) with the command:
*ESE <unmask >
<unmask > is the decimal, hexadecimal (#H), octal (#Q), or binary (#B)
value of the Enable register bit to be unmasked. (Bits 7, 5, 4, 3, 2, and 0
have corresponding decimal values of 128, 32, 16, 8, 4, and 1.)
All unmasked bits in the Enable register can be determined with the
command:
*ESE?
The Standard Event Status Enable register is cleared at power-on, or with an
<unmask > value of 0.
Chapter 3
Understanding the HP E1429 Digitizer 171
Download from Www.Somanuals.com. All Manuals Search And Download.
The Status Byte The registers in the Status Byte Status Group enable conditions monitored
by the other status groups to generate a service request.
Status Group
The Status Byte The Status Byte register contains the summary bits of the Questionable
Signal Status Group (QUES), the Operation Status Group (OPER), and the
Standard Event Status Group (ESB). The register also contains the message
available bit (MAV) and the service request bit (RQS).
Register
7
6
5
4
3
2
1
0
OPER
RQS
ESB
MAV
QUES
unused
Questionable Signal Summary Bit (QUES): Bit 3 is set (1) when a
condition monitored by the Questionable Signal Status Group is present,
when the appropriate bit is latched into the group’s Event register, and when
the bit is unmasked by the group’s Enable register.
Message Available Bit (MAV): Bit 4 is set (1) when data, such as a query
response, is in the digitizer’s output queue.
Standard Event Summary Bit (ESB): Bit 5 is set (1) when a condition
monitored by the Standard Event Status Group is present and the
appropriate bit is set in the group’s Event register, and when the bit is
unmasked by the group’s Enable register.
Service Request Bit (RQS): Bit 6 is set (1) when any other bit in the Status
Byte register is set.
Operation Status Summary Bit (OPER): Bit 7 is set (1) when a condition
monitored by the Operation Status Group is present, when the appropriate
bit is latched into the group’s Event register, and when the bit is unmasked
by the group’s Enable register.
172 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Reading the Status Byte Register
The Status Byte register can be read with either of the following commands:
*STB?
SPOLL
Both commands return the decimal weighted sum of all set bits in the
register. The difference between the commands is that *STB? does not clear
bit 6 (RQS service request). The serial poll (SPOLL) does clear bit 6. All
bits in the Status Byte register with the exception of MAV are cleared with
the command:
*CLS
MAV is cleared when data is read from the output queue.
The Service Request The Service Request Enable register specifies which (status group)
summary bit(s) will send a service request message to the computer over
HP-IB. The bits are specified (unmasked) with the command:
Enable Register
*SRE <unmask >
All unmasked bits in the Enable register can be determined with the
command:
*SRE?
The Service Request Enable register is cleared at power-on, or by
specifying an <unmask > value of 0.
Presetting the Enable The Enable registers and Transition Filters in the Questionable Signal and
Operation Status Groups can be preset (initialized) with the command:
Register and Transition
Filter
STATus:PRESet
All bits in the Enable registers are masked (i.e. <unmask > is 0), and all bits
in the Condition registers set corresponding bits in the Event registers on
positive (0-to-1) transitions.
Chapter 3
Understanding the HP E1429 Digitizer 173
Download from Www.Somanuals.com. All Manuals Search And Download.
Synchronizing the One method of synchronizing the digitizer with other digitizer’s or with
other instruments is to determine when the digitizer parser is idle. This is
done using the command:
Digitizer
STATus:OPC:INITiate <state >
together with the commands:
*OPC
*OPC?
*WAI
The behavior of *OPC, *OPC?, and *WAI depends on the state set by
STATus:OPC:INITiate. When state is ON, sending *OPC, *OPC?, or
*WAI following INITiate:IMMediate,
VINStrument:CONFigure:VME:MEMory:INITiate, or
VINStrument:CONFigure:LBUS:MEMory:INITiate requires the digitizer to
complete all measurements or complete the VME or Local bus data transfer
before allowing further digitizer operations to continue. ON is the power-on
state.
When state is OFF, the execution of *OPC, *OPC?, or *WAI following the
above commands indicates the previous commands have executed and that
further operations (command execution) can resume without the digitizer in
the idle state. Digitizer commands that can be executed during this time are
identified in the command reference (Chapter 4) as being "executable when
initiated". Refer also to the command reference for detailed information on
*OPC, *OPC?, and *WAI.
Saving Digitizer Configurations
To minimize repeated programming, up to 10 digitizer configurations can
be saved and later recalled. The configuration saved is restored, with the
exception of the STATus subsystem parameters, the CALibration:SECure
command state, or any other parameters not affected by *RST.
A configuration is identified by a number from 0 thru 9. The
configuration(s) is saved until power is cycled.
174 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
How to Save and Digitizer configurations are saved and recalled with the commands:
Recall a
Configuration
*SAV <register>
*RCL <register>
where register is a number from 0 to 9. The following example shows how
a configuration can be saved and recalled.
CONF1:ARR:VOLT (10),10,(@3)
ARM:SOUR1 INT1
/* set 10 readings on (+) Diff port 3 */
/* set arm source 1 for level arming */
/* disable arm source 2 */
ARM:SOUR2 HOLD
ARM:SLOP1 EITH
/* arm when signal enters window from */
/* either direction */
ARM:LEV1:POS 4
ARM:LEV1:NEG 6
ARM:COUN 2
*SAV 0
/* set arm window lower boundary */
/* set arm window upper boundary */
/* set two reading bursts */
/* save the configuration in location 0 */
/* reset the digitizer */
*RST
*RCL 0
/* recall the configuration */
This program saves a configuration in register 0. The digitizer is then reset
in order to change the current configuration to the power-on configuration.
The configuration in register 0 is recalled which also leaves the digitizer in
the idle state. By placing the digitizer in the wait-for-arm state (with
READ? or INIT), readings are taken when the arm occurs and when trigger
signals are received.
Chapter 3
Understanding the HP E1429 Digitizer 175
Download from Www.Somanuals.com. All Manuals Search And Download.
Notes
176 Understanding the HP E1429 Digitizer
Chapter 3
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 4
Command Reference
Chapter Contents
This chapter describes the Standard Commands for Programmable
Instruments (SCPI) command set and the IEEE 488.2 Common
Commands for the HP E1429A/B 20 MSa/s 2-Channel Digitizer. Included
in this chapter are the following sections:
• Command Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
• SCPI Command Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
• SCPI Command Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . 180
• SCPI Command Execution . . . . . . . . . . . . . . . . . . . . . . . . . . 182
• SCPI Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . 184
• Common Command Reference . . . . . . . . . . . . . . . . . . . . . . . 298
• HP E1429 Command Quick Reference . . . . . . . . . . . . . . . . . 310
• SCPI Conformance Information . . . . . . . . . . . . . . . . . . . . . . 314
ABORt . . . . . . . . . . . . . . . . . . . . . . . . . . 185
ARM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
SENSitivity . . . . . . . . . . . . . . . . . . . 217
:ZERO . . . . . . . . . . . . . . . . . . . . . . . . 217
:SENSitivity. . . . . . . . . . . . . . . . . . . 217
:CHANnel[<chan>] . . . . . . . . . . . . . . . 217
:LABel . . . . . . . . . . . . . . . . . . . . . . 217
:FETCh?[<chan>]. . . . . . . . . . . . . . . . 218
:MEMory[<chan>]. . . . . . . . . . . . . . . . 220
:FILL . . . . . . . . . . . . . . . . . . . . . . . . 220
:ADDResses?. . . . . . . . . . . . . . . . . 220
:PEEK?. . . . . . . . . . . . . . . . . . . . . . . . 221
:POKE . . . . . . . . . . . . . . . . . . . . . . . . 222
:SGET?. . . . . . . . . . . . . . . . . . . . . . . . 223
:SPUT. . . . . . . . . . . . . . . . . . . . . . . . . 223
:TEST? . . . . . . . . . . . . . . . . . . . . . . . . 223
[:STARt|:SEQuence[1]] . . . . . . . . . . . 187
:COUNt . . . . . . . . . . . . . . . . . . . . . . 190
:DELay . . . . . . . . . . . . . . . . . . . . . . 191
[:IMMediate] . . . . . . . . . . . . . . . . . . 192
:LEVel[<chan>]. . . . . . . . . . . . . . . . 192
:NEGative . . . . . . . . . . . . . . . . . . 192
:POSitive . . . . . . . . . . . . . . . . . . . 193
:SLOPe[<n>]. . . . . . . . . . . . . . . . . . 194
:SOURce[<n>] . . . . . . . . . . . . . . . . 196
CALibration[<chan>] . . . . . . . . . . . . . . . 198
:COUNt?. . . . . . . . . . . . . . . . . . . . . . . 198
:DATA. . . . . . . . . . . . . . . . . . . . . . . . . 199
:DELay . . . . . . . . . . . . . . . . . . . . . . . . 201
:GAIN . . . . . . . . . . . . . . . . . . . . . . . . . 202
:SECure . . . . . . . . . . . . . . . . . . . . . . . 205
:CODE . . . . . . . . . . . . . . . . . . . . . . 205
:STATe . . . . . . . . . . . . . . . . . . . . . . 206
:STORe . . . . . . . . . . . . . . . . . . . . . . . 207
:AUTO. . . . . . . . . . . . . . . . . . . . . . . 208
:VALue . . . . . . . . . . . . . . . . . . . . . . . . 208
:ZERO . . . . . . . . . . . . . . . . . . . . . . . . 210
FETCh[<chan>]? . . . . . . . . . . . . . . . . . . 224
:COUNt?. . . . . . . . . . . . . . . . . . . . . . . 226
:RECover? . . . . . . . . . . . . . . . . . . . . . 227
FORMat . . . . . . . . . . . . . . . . . . . . . . . . . 228
[:DATA]. . . . . . . . . . . . . . . . . . . . . . . . 228
INITiate. . . . . . . . . . . . . . . . . . . . . . . . . . 230
[:IMMediate] . . . . . . . . . . . . . . . . . . . . 230
INPut[<port>] . . . . . . . . . . . . . . . . . . . . . 233
:FILTer . . . . . . . . . . . . . . . . . . . . . . . . 233
[:LPASs] . . . . . . . . . . . . . . . . . . . . . 233
[:STATe] . . . . . . . . . . . . . . . . . . . 233
:IMPedance . . . . . . . . . . . . . . . . . . . . 233
[:STATe] . . . . . . . . . . . . . . . . . . . . . . 234
CONFigure. . . . . . . . . . . . . . . . . . . . . . . 212
DIAGnostic. . . . . . . . . . . . . . . . . . . . . . . 216
:CALibration . . . . . . . . . . . . . . . . . . . . 216
:CONVerge? . . . . . . . . . . . . . . . . . . 216
:GAIN . . . . . . . . . . . . . . . . . . . . . . . 217
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 4
Command Reference 177
MEASure . . . . . . . . . . . . . . . . . . . . . . . . 236
:CONDition? . . . . . . . . . . . . . . . . . . 267
:ENABle . . . . . . . . . . . . . . . . . . . . . 267
[:EVENt]? . . . . . . . . . . . . . . . . . . . . 268
:NTRansition. . . . . . . . . . . . . . . . . . 269
:PTRansition . . . . . . . . . . . . . . . . . 269
:PRESet . . . . . . . . . . . . . . . . . . . . . . . 270
MEMory . . . . . . . . . . . . . . . . . . . . . . . . . 240
:BATTery . . . . . . . . . . . . . . . . . . . . . . 240
[:STATe] . . . . . . . . . . . . . . . . . . . . . 240
:CHARge? . . . . . . . . . . . . . . . . . . . 241
OUTPut . . . . . . . . . . . . . . . . . . . . . . . . . 242
:ECLTrg<n>.. . . . . . . . . . . . . . . . . . . . 242
:FEED . . . . . . . . . . . . . . . . . . . . . . . 242
[:STATe] . . . . . . . . . . . . . . . . . . . . . 243
:EXTernal[1]. . . . . . . . . . . . . . . . . . . . 244
:FEED . . . . . . . . . . . . . . . . . . . . . . . 244
[:STATe] . . . . . . . . . . . . . . . . . . . . . 246
:TTLTrg<n>. . . . . . . . . . . . . . . . . . . . . 246
:FEED . . . . . . . . . . . . . . . . . . . . . . . 246
[:STATe] . . . . . . . . . . . . . . . . . . . . . 248
SYSTem. . . . . . . . . . . . . . . . . . . . . . . . . 271
:ERRor? . . . . . . . . . . . . . . . . . . . . . . . 271
:VERSion? . . . . . . . . . . . . . . . . . . . . . 271
TRIGger . . . . . . . . . . . . . . . . . . . . . . . . . 274
[:STARt|:SEQuence[1]] . . . . . . . . . . . 274
:COUNt . . . . . . . . . . . . . . . . . . . . . . 274
[:IMMediate] . . . . . . . . . . . . . . . . . . 276
:SOURce. . . . . . . . . . . . . . . . . . . . . 276
:TIMer1 . . . . . . . . . . . . . . . . . . . . . . 278
:TIMer2 . . . . . . . . . . . . . . . . . . . . . . 280
READ[<chan>]?. . . . . . . . . . . . . . . . . . . 249
VINStrument . . . . . . . . . . . . . . . . . . . . . 285
[:CONFigure] . . . . . . . . . . . . . . . . . . . 285
:LBUS . . . . . . . . . . . . . . . . . . . . . . . 285
:FEED . . . . . . . . . . . . . . . . . . . . . 285
:MEMory . . . . . . . . . . . . . . . . . . . 286
:INITiate. . . . . . . . . . . . . . . . . . 286
[:MODE] . . . . . . . . . . . . . . . . . . . 287
:RESet. . . . . . . . . . . . . . . . . . . . . 288
:SEND. . . . . . . . . . . . . . . . . . . . . 289
:POINts . . . . . . . . . . . . . . . . . . 289
:AUTO . . . . . . . . . . . . . . . . . 290
[SENSe[<chan>]] . . . . . . . . . . . . . . . . . . 252
:FUNCtion. . . . . . . . . . . . . . . . . . . . . . 252
:ROSCillator . . . . . . . . . . . . . . . . . . . . 254
:EXTernal . . . . . . . . . . . . . . . . . . . . 254
:FREQuency . . . . . . . . . . . . . . . . 254
:SOURce. . . . . . . . . . . . . . . . . . . . . 255
:SWEep . . . . . . . . . . . . . . . . . . . . . . . 258
:OFFSet . . . . . . . . . . . . . . . . . . . . . 258
:POINts . . . . . . . . . . . . . . . . . . . . 258
:POINts . . . . . . . . . . . . . . . . . . . . . . 260
:VOLTage . . . . . . . . . . . . . . . . . . . . . . 262
[:DC] . . . . . . . . . . . . . . . . . . . . . . . . 262
:RANGe. . . . . . . . . . . . . . . . . . . . 262
:RESolution?. . . . . . . . . . . . . . . . 264
:TEST . . . . . . . . . . . . . . . . . . . . . . . 291
:DATA . . . . . . . . . . . . . . . . . . . . . 291
:VME. . . . . . . . . . . . . . . . . . . . . . . . 293
:FEED . . . . . . . . . . . . . . . . . . . . . 293
:MEMory . . . . . . . . . . . . . . . . . . . 294
:INITiate. . . . . . . . . . . . . . . . . . 294
[:MODE] . . . . . . . . . . . . . . . . . . . 295
:SEND. . . . . . . . . . . . . . . . . . . . . 296
:ADDRess . . . . . . . . . . . . . . . . 296
:DATA? . . . . . . . . . . . . . . . . 296
STATus . . . . . . . . . . . . . . . . . . . . . . . . . 266
:OPC. . . . . . . . . . . . . . . . . . . . . . . . . . 266
:INITiate . . . . . . . . . . . . . . . . . . . . . 266
:OPERation|:QUEStionable . . . . . . . . 267
:IDENtity? . . . . . . . . . . . . . . . . . . . . . . 297
Command Types
Commands are separated into two types: IEEE 488.2 Common Commands
and SCPI Commands.
Common The IEEE 488.2 standard defines the Common commands that perform
functions like reset, self-test, status byte query, etc. Common commands are
Command Format
four or five characters in length, always begin with the asterisk character
(*), and may include one or more parameters. The command keyword is
separated from the first parameter by a space character. Some examples of
Common commands are shown below:
*RST, *CLS, *ESE <unmask >, *OPC?, *STB?
Download from Www.Somanuals.com. All Manuals Search And Download.
178 Command Reference
Chapter 4
SCPI Command Format
The HP E1429 digitizer is programmed with SCPI commands. SCPI
commands are based on a hierarchical structure, also known as a tree
system. In this system, associated commands are grouped together under a
common node or root, thus, forming subtrees or subsystems. An example is
the digitizer’s ’ARM’ subsystem shown on the following page.
ARM
[:STARt | :SEQuence[1]]
:COUNt <number >
:DELay < period >
[:IMMediate]
:LEVel<n >
[no query]
:NEGative < voltage >
:POSitive < voltage >
:SLOPe[< n >] <edge >
:SOURce[< n >] <source >
ARM is the root keyword of the command; :STARt|SEQuence1 is the
second level keyword; :COUNt, :DELay, ... are third level keywords, and so
on.
Keyword Separator A colon (:) always separates one command keyword from a lower level
command keyword as shown below:
ARM:LEV:NEG 2
Abbreviated The command syntax shows most commands as a mixture of upper and
lower case letters. The upper case letters indicate the abbreviated spelling
Commands
for the command. For shorter program lines, send the abbreviated form. For
better program readability, you may want to send the entire command. The
digitizer will accept either the abbreviated form or the entire command.
For example, if a command’s syntax contains the keyword COUNt, then
COUN and COUNT are acceptable forms. Other forms of COUNt such as
COU will generate an error.
You can use upper or lower case letters. Therefore, COUNT, coun, or Coun
are all acceptable.
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 4
Command Reference 179
Implied (Optional) Implied or optional keywords are those which appear in square brackets
([ ]). The brackets are not part of the command syntax and must not be sent
to the digitizer. Consider the syntax ARM[:STARt]COUNt. Suppose you
send the following command:
Keywords
ARM:COUN 100
In this case, the digitizer responds as if you had executed the command as:
ARM:STAR:COUN 100
Variable Command Some commands will have what appears to be a variable syntax. For
example:
Syntax
OUTPut:ECLTrg<n >[:STATe] <mode >
In this command, <n > is replaced by a number. No space is left between the
keyword (ECLTrg) and the number because the number is part of the
keyword.
SCPI Command Parameters
The following information contains explanations and examples of the
parameter types found in this chapter.
Parameter Types,
Explanations, and
Examples
• Numeric
Accepts all commonly used decimal representations of numbers
including optional signs, decimal points, and scientific notation:
123, 123E2, -123, -1.23E2, .123, 1.23E-2, 1.23000E-01.
Special cases include MIN, MAX, and INFinity. The Comments
section within the Command Reference will state whether a
numeric parameter can also be specified in hex, octal, and/or binary:
#H7B, #Q173, #B1111011
• Boolean
Represents a single binary condition that is either true or false. Any
non-zero value is considered true:
ON, OFF, 1, 0
Download from Www.Somanuals.com. All Manuals Search And Download.
180 Command Reference
Chapter 4
• Discrete
Selects from a finite number of values. These parameters use
mnemonics to represent each valid setting. An example is the
TRIGger[:STARt]:SOURce <source> command where source can
be BUS, ECLTrg0, ECLTrg1,EXTernal1, EXTernal2, ...
• String
STRING PROGRAM DATA parameters are enclosed with single
quotation marks (’) or double quotation marks ("). Examples of
string program data parameters are those associated with the
OUTPut...FEED commands:
OUTPut:ECLTrg<n >:FEED <source >
OUTPut:EXTernal[1]:FEED <source >
OUTPut:TTLTrg<n >:FEED <source >
Some of the <source > parameters include:
"EXTernal[1]"
"SENSe[1|2]:ROSCillator"
"SENSe:SWEep:OFFSet:POINts"
As an example, the syntax for sending this type of command in an
HP BASIC program is:
OUTPUT 70905;"OUTP:ECLT0:FEED ’EXT’"
or
OUTPUT 70905;"OUTP:ECLT0:FEED ""EXT"""
In a C language program, the syntax is:
"OUTP:ECLT0:FEED ’EXT’"
or
"OUTP:ECLT0:FEED \"EXT\""
• Arbitrary Block Program Data
This parameter type is used to transfer a block of data in the form of
bytes. The block of data bytes is preceded by a header which
indicates the number of data bytes which follow. The syntax of the
block header is as follows:
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 4
Command Reference 181
Definite length block:
#<non-zero digit><digit(s)><data byte(s)>
Where the value of <non-zero digit> equals the number of
<digit(s)>. The value of <digit(s)> taken as a decimal integer
indicates the number of <data byte(s)> in the block.
Optional Command parameters shown within square brackets ([ ]) are optional. The
brackets are not part of the syntax and are not sent to the digitizer. If you do
not specify a value for an optional parameter, the instrument chooses a
default value.
Parameters
For example, consider the command
CONFigure[<chan >]:ARRay[:VOLTage][:DC] (<size >)
[,<expected value >[,<resolution >]] [,(@<input port >)]
If you send the command without specifying the expected value, resolution,
or input port parameters, the digitizer sets default values. Similarly, if chan
in the command keyword is not specified, the default channel 1 is used.
Querying Unless otherwise noted in the subsystem syntax, parameter settings can be
queried by adding a question mark (?) to the command. For example:
Parameter Settings
TRIG:SOUR HOLD
sets the trigger source to HOLD. The value can be queried by executing:
TRIG:SOUR?
The MINimum or MAXimum value of a parameter is determined by adding
the word MIN or MAX to the end of the query. See below.
SENS:SWE:OFFS:POIN? MIN
SENS:SWE:OFFS:POIN? MAX
The minimum and maximum values returned are based on the current
settings of other digitizer parameters.
SCPI Command Execution
The following information should be remembered when executing SCPI
commands.
Command Coupling Some of the digitizer SCPI commands are functional or value coupled.
Functionally coupled commands are those that for one command to have
affect, another command must be set to a particular value. A value coupled
command changes the settings of other commands.
Download from Www.Somanuals.com. All Manuals Search And Download.
182 Command Reference
Chapter 4
Command couplings can often result in “Settings conflict” errors when the
program executes. When a coupled command is executed, the command
setting is evaluated by the digitizer processor. If the setting causes an illegal
digitizer configuration, a "Settings conflict" error occurs. The error message
lists the conflicting settings, and then reports the values set by the digitizer
processor.
The "Comments" section of each command entry indicates if a command is
coupled, and if it is, what the coupling constraints are.
MIN and MAX When MINimum or MAXimum is a command parameter in a group of
coupled commands, that command should be the last command executed.
Unlike other parameters that are set when an end-of-line indication is
received, MIN and MAX are evaluated by the digitizer processor when the
command is parsed. Thus, the value of MIN or MAX is based on the values
of the other (coupled) commands at that time. For example, if the following
commands are sent:
Parameters in Coupled
Commands
ARM:COUN 1
TRIG:COUN MAX
ARM:COUN 128
A “Settings conflict” error will occur when ARM:COUN 128 is executed
because the trigger count value set by TRIG:COUN MAX (524,288) is based
upon the ARM:COUN 1 setting. For an arm count of 128, the maximum
trigger count allowed is 4,096. Because of these types of interactions, MIN
and MAX are not recommended for specifying a parameter value.
Executable When In the "Comments" section of each command listing is the item
"Executable when initiated: Yes/No". This identifies the command as
being executable when the digitizer is in the INITiated state as the result of
one of the following commands:
Initiated Commands
INITiate:IMMediate
VINStrument:CONFigure:VME:MEMory:INITiate
VINStrument:CONFigure:LBUS:MEMory:INITiate
Download from Www.Somanuals.com. All Manuals Search And Download.
Chapter 4
Command Reference 183
Linking Commands Linking commands means sending multiple commands in the same output
string. This is done to avoid "settings conflict" errors since (command)
coupling interactions are not resolved until the carriage return (CR) is
received.
Linking IEEE 488.2 Common Commands
Use a semicolon between the commands. For example:
*RST;*CLS;*OPC?
Linking Multiple SCPI Commands
A semicolon (;) is used to separate commands within the same subsystem
and saves typing. For example, sending this command message:
TRIG:SOUR TIM;TIM1 100E-9;COUN 100
Is the same as sending these three commands:
TRIG:SOUR TIM
TRIG:TIM1 100E-9
TRIG:COUN 100
When linking commands in different subsystems, a semicolon (;) and a
colon (:) are used. For example:
ARM:SOUR IMM;COUN10;:TRIG:SOUR TIM;TIM1 100E-9;COUN 30000
Command Choices Some commands are listed as two commands separated with a vertical bar
(“|”). This means that either command name can be used. For example, you
could use either “:STAR” or “:SEQ1” when
“[:STARt |SEQuence1]” is shown.
SCPI Command Reference
This section describes the SCPI commands for the HP E1429 Digitizer.
Commands are listed alphabetically by subsystem, and alphabetically within
each subsystem. A command guide is printed in the top margin of each
page. The guide indicates the first command listed on that page.
Download from Www.Somanuals.com. All Manuals Search And Download.
184 Command Reference
Chapter 4
ABORt
ABORt
The ABORt command removes the HP E1429 from the wait-for-trigger state and
places it in the idle state, irrespective of any other settings. Measurement is halted
and can only be restarted by another INITiate[:IMMediate] command.
There is no query form of this command.
Comments • ABORt does not affect any other settings of the HP E1429.
• Both measurement channels are aborted with this command.
• Local bus and VME bus data transfers are aborted.
• The Pending Operation Flag (as defined by IEEE-488.2) will be set false as a
consequence of entering the idle state. *OPC? will therefore return 1 after an
ABORt command.
• Executable when initiated: Yes
• Coupled Command: No
• If an ABORt or power failure occurs during a sequence of measurements, the
digitizer will return (FETCh?) or recover (FETCh:RECover?) between one and
TRIGger:STARt:COUNt number of readings. Because the digitizer processor
does not know when the arm occurs, the readings returned may be pre-arm only,
post-arm only, or a combination of both. If less than TRIGger:STARt:COUNt
readings have been taken, then that number of readings are returned. If at least
TRIGger:STARt:COUNt readings have been taken, then
TRIGger:STARt:COUNt readings are returned.
• Related Commands: INITiate, *OPC, *OPC?
• *RST Condition: After a *RST, the HP E1429 is placed in the trigger idle state,
as if ABORt had been executed.
Example Aborting a measurement
ABOR
Place HP E1429 in idle state
ABORt Subsystem
Command Reference 185
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM
The ARM command subsystem controls the third state in a four state measurement
process. The four states which occur during a successful reading are idle, initiated,
wait-for-arm, and wait-for-trigger. The last two states have event detection
associated with them which control when they exit the current state. These four
states are more fully described as follows:
• Idle -- In this state, the instrument is not sampling. This is the state where setting
changes are done via commands to the instrument. This state is exited when an
INITiate command is received. This state is returned to after a reset, after
successful completion of measurement, or after a measurement is aborted.
• Initiated -- Once the instrument is initiated with the INITiate command, it passes
through this state, and continues down to the wait-for-arm state if all readings are
post-arm and ARM:COUNt is not yet satisfied. If pre-arm readings are specified,
the digitizer passes through to the wait-for-trigger state.
• Wait-for-arm -- In this state, the instrument waits for the specified ARM event to
occur before progressing to the wait-for-trigger state to make a measurement.
• Wait-for-trigger -- In this state, the instrument waits for the specified trigger event
to occur, and when it occurs, a reading is taken. After a reading is taken, the
cumulative number of readings taken is compared to the count specified in
TRIGger:COUNt or SENSe:SWEep:POINts. When the count is reached, the state
is exited, otherwise, the instrument waits for another trigger and takes another
reading. Upon exit from this state, the instrument returns to the initiated state and
checks to see whether or not ARM:COUNt is satisfied. If the arm count is
reached, the instrument returns to the idle state. If not, another loop is executed by
entering the wait-for-arm state.
The following controls can be specified from the ARM subsystem:
• The event(s) which will cause the transition out of the wait-for-arm state
(ARM:SOURce1 and ARM:SOURce2). There is a rich set of event sources to
choose from, and when both sources are enabled (neither set to source HOLD), a
logical OR of the two sources occurs. The occurrance of the appropriate event on
either source will cause the HP E1429 to exit from the wait-for-arm state.
• The number of start arm events to occur before the digitizer returns to the idle
state (ARM:COUNt). Another way to think of this is the number of bursts of
readings which will occur.
186 Command Reference
ARM Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:COUNt
• The active edge for generation of an arm event (ARM:STARt:SLOPe<n >) on the
selected arm source (n = 1 or n = 2).
• The measurement signal level to attain before allowing a measurement to begin
(ARM:STARt:LEVel<n>). This is used with ARM:SOURce INTernal<n>. It is
also possible to create a window bounded by two levels (ARM:LEVel:POSitive
and ARM:LEVel:NEGative) such that arming occurs when the signal level either
exits or enters the defined window.
• The additional delay between the arm event and entry into the wait-for-trigger
state (ARM:DELay).
Subsystem ARM
[:STARt |:SEQuence[1]]
:COUNt <count>
Syntax
:DELay <period>
[:IMMediate]
[no query]
:LEVel<chan >
:NEGative <voltage>
:POSitive <voltage>
:SLOPe[<n>] <edge>
:SOURce[<n>] <source>
[:STARt]:COUNt
ARM[:STARt]:COUNt <count> specifies how many measurement cycles will
occur after an INITiate, before the trigger system returns to the idle state. Each
post-arm measurement cycle begins when the event specified by the active arm
source(s) occurs. Multiple readings may be taken during each cycle, as defined by
the TRIGger:STARt:COUNt or SENSe:SWEep:POINts commands.
ARM:STARt:COUNt values greater than 1 in conjunction with pre-arm readings is
a special case which causes memory to be partitioned. Partitioning is done because
a large number of pre-arm readings may be taken before the arming event, while a
smaller number of pre-arm readings will actually be kept for read back. Therefore,
for each ARM:STARt:COUNt specified, a separate circular buffer (partition) is set
up to hold the specified number of "desired total readings"
(TRIGger:STARt:COUNt). With this scheme, pre-arm data may overwrite itself
until the arming event occurs, at which time, the post-arm data count will be
completed by overwriting the oldest pre-arm data. Due to this complexity, the
ARM:COUNt for this type of measurement is restricted to a much lower value than
what can be specified if all data is post-arm only.
ARM Subsystem
Command Reference 187
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:COUNt
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
count
numeric
1 through 65535 |
MINimum|MAXimum|
9.9E+37|INFinity
none
MINimum selects 1 arm.
When only post-arm readings are specified, MAXimum is computed as:
524,288 / TRIGger:COUNt, up to a maximum of 65,535 arms . When
pre-arm readings have been specified, MAXimum selects 128 arms.
9.9E+37 is equivalent to INFinity.
Comments • Executable when initiated: No
• Coupled Command: Yes. This command is coupled to the total reading count
(TRIGger:STARt:COUNt). An error will result if TRIGger:STARt:COUNt is too
large for the specified ARM:STARt:COUNt. See the following table for the
relationship between ARM:STARt:COUNt and TRIG:STARt:COUNt.
• If the count is set to INFinity or 9.9E+37, the ABORt command must be used to
return the trigger system to the idle state.
• If pre-arm readings are specified (SENSe:SWEep:OFFSet:POINts < 0), then the
maximum number of arms is 128.
• When pre-arm readings are specified (SENSe:SWEep:OFFSet:POINts < 0), an
ARM:STARt:COUNt > 1 causes memory to be partitioned, and limits to be
placed on TRIGger:STARt:COUNt. See the following table for limits.
188 Command Reference
ARM Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:COUNt
ARM:STARt:COUNt
Number of
Memory
Maximum Readings
(TRIGger:STARt:COUNt)
Segments
1
1
2
524,288
262,144
131,072
65,536
32,768
16,384
8,192
2
3 - 4
4
5 - 8
8
9 - 16
17 - 32
33 - 64
65 - 128
16
32
64
128
4096
NOTE: If the non-volatile mode of memory is enabled
(MEMory:BATTery:STATe ON), then all of the maximum reading counts
shown above decrease by four. These four memory locations in each
segment hold the data necessary to recover all readings after a power
failure.
• Normally, when only post-arm readings are specified, an error will occur if
ARM:COUNt * TRIG:COUNt exceeds memory size, since post-arm data would
be overwritten if this were allowed. There are two exceptions to this rule.
a. The first exception is when the local bus is enabled (VINS:LBUS:MODE
GEN), and VINStrument:LBUS:FEED is the
A/D converter ("CONVerter:xxx"). In this case, an
ARM:COUNt * TRIG:COUNt greater than memory size is allowed.
Readings sent out directly over the local bus are also routed to memory at
the same time, and counts greater than memory size simply overwrite older
data in memory. Thus a FETCh? command will return a historical record of
what was sent over the local bus in the last "memory size" transfers. This
block of readings returned will be in chronological order, with the oldest
readings first and the most recent readings last.
b. The second exception is when either TRIGger:STARt:COUNt INF or
ARM:STARt:COUNt INF has been specified. It is assumed in this case
that the user knows data is being overwritten. After the ABORt is done to
stop the measurement, a FETCh? command would bring back the entire
memory contents, with the most recent readings at the end of the block of
data.
ARM Subsystem
Command Reference 189
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:DELay
• Related Commands: ABORt, INITiate:IMMediate, TRIGger:STARt:COUNt,
SENSe:SWEep:POINts, SENSe:SWEep:OFFSet:POINts
• *RST Condition: ARM:STARt:COUNt 1
Example Setting the arm count
ARM:COUN 10
Set 10 measurement cycles per INITiate
[:STARt]:DELay
ARM[:STARt]:DELay <period> specifies how long to delay entering the
wait-for-trigger state after the arming pulse is received and processed. Delays of
greater than 0 can be specified only if no pre-arm readings are being taken with the
post-arm readings (i.e. SENSe:SWEep:OFFSet:POINts is 0).
The delay time is generated using either the reference oscillator period or ten times
the reference oscillator period. If we designate the current reference oscillator
period as T, then the two ranges of delay can be expressed as:
0 to 65534T in steps of T
65540T to 655350T in steps of 10T
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
period
numeric
MINimum|MAXimum|
value(see below)
Seconds
MINimum selects 0 delay. MAXimum selects 655350 reference oscillator
periods delay.
The above values bound the valid range for period. The period value is
rounded to the nearest period that can be produced.
Comments • Executable when initiated: No
• Coupled Command: Yes. This command is coupled to
SENSe:SWEep:OFFSet:POINts and to SENSe:ROSCillator:SOURce.
• If pre-arm readings are specified, then delay will be forced to 0, regardless of
what value was specified for delay. A settings conflict error will also occur.
190 Command Reference
ARM Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt][:IMMediate]
• The actual delay time after receipt of arm event is not precisely the delay time
specified above. There is an inherent delay of typically 230 ns plus an amount of
sample period uncertainty. Refer to Appendix A - "Specifications" for additional
information on the inherent delay.
• Related Commands: TRIGger:STARt:COUNt, SENSe:SWEep:OFFSet:POINts
• *RST Condition: ARM:STARt:DELay 0
Example Setting the arming delay
ARM:DEL .001
Delay 1 millisecond after arm pulse before
arming the start trigger
[:STARt][:IMMediate]
ARM[:STARt][:IMMediate] will cause the start trigger to be armed immediately,
regardless of the selected ARM:STARt:SOURce. The selected
ARM:STARt:SOURce remains unchanged. The INITiate:IMMediate command
must have been sent before this command, otherwise error -212,"Arm ignored" will
occur.
There is no query form of this command.
Comments • Executable when initiated: Yes
• Coupled Command: No
• If the instrument is in the idle or wait-for-trigger states, the
ARM:STARt:IMMediate command will cause error -212,"Arm ignored" to be
generated.
• If ARM:STARt:COUNt is greater than 1, only a single measurement cycle is
affected by ARM:STARt:IMMediate; the count is decremented by one, and the
remaining ARM:STARt:COUNt cycles will be executed with the original arming
source active.
• When ARM:STARt:IMMediate is sent, any ARM:STARt:DELay is bypassed for
that arm only.
• Related Commands: INITiate:IMMediate, ARM:STARt:COUNt, TRIGger
subsystem
• *RST Condition: none
ARM Subsystem
Command Reference 191
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:LEVel[<chan>]:NEGative <voltage>
Example Arming for measurement
ARM:SOUR1 EXTernal
Set arming source1 to be the EXT1 BNC
connector
INITiate
Begin measurement, wait for arming pulse
ARM
Arm start trigger immediately, don’t wait
for external pulse
[:STARt]:LEVel[<chan>]:NEGative <voltage>
ARM[:STARt]:LEVel[<chan>]:NEGative <voltage> selects the input voltage
level which will arm a measurement cycle. The ARM:LEVel:NEGative setting is
used only when either of the ARM:STARt:SOURce(s) is set to INTernal1 or
INTernal2, and the corresponding ARM:STARt:SLOPe<n> setting is NEGative or
EITHer. The value programmed is retained (but not used) when other sources are
selected, or when the corresponding ARM:STARt:SLOPe<n > setting is POSitive.
The allowable levels depend on the measurement range as set by the
SENSe:VOLTage:RANGe command.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
chan
level
Type
numeric
numeric
1 | 2
none
Volts
-102.2418 to 102.2418
MINimum | MAXimum
Comments • Executable while initiated: No
• Coupled Command: Yes. The command is coupled to the
ARM[:STARt]:SLOPe, ARM[:STARt]:SOURce, and SENSe:VOLTage:RANGe
commands. The level value is limited to the range limits.
• When POSitive and NEGative voltage levels are specified, the levels must be
separated by an amount defined by:
(50 mV / 1.0235V) measurement range
*
This accounts for offset errors in the levels specified and enables the levels to be
detected.
• Related Commands: ARM:STARt:SOURce<n >,
ARM:STARt:SLOPe<n >
• *RST Condition: ARM:STARt:LEVel<n >:NEG -1.022418
192 Command Reference
ARM Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:LEVel[<chan>]:POSitive <voltage>
Example Setup to arm only when the signal on channel 2 falls through -0.48 volts.
ARM:SOUR1 INT2
ARM:SLOP1 NEG
ARM:LEV2:NEG -0.48
Set arming source 1 to arm when the
specified level is met on channel 2
The signal must fall through the level set by
ARM:LEVel2:NEG for arming to occur
Arm when the signal passes through the
-.48V level
[:STARt]:LEVel[<chan>]:POSitive <voltage>
ARM[:STARt]:LEVel[<chan>]:POSitive <voltage> selects the input voltage
level which will arm a measurement cycle. The ARM:LEVel:POSitive setting is
used only when either of the ARM:STARt:SOURce(s) is set to INTernal1 or
INTernal2, and the corresponding ARM:STARt:SLOPe<n> setting is POSitive or
EITHer. The value programmed is retained (but not used) when other sources are
selected, or when the corresponding ARM:STARt:SLOPe<n> setting is NEGative.
The allowable levels depend on the measurement range as set by the
SENSe:VOLTage:RANGe command.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
chan
level
Type
numeric
numeric
1 | 2
none
Volts
-102.2418 to 102.2418
MINimum | MAXimum
Comments • Executable while initiated: No
• Coupled Command: Yes. The command is coupled to the
ARM[:STARt]:SLOPe, ARM[:STARt]:SOURce, and SENSe:VOLTage:RANGe
commands. The level value is limited to the range limits.
ARM Subsystem
Command Reference 193
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:SLOPe[<n >]
• When POSitive and NEGative voltage levels are specified, the levels must be
separated by an amount defined by:
(50 mV / 1.0235V) measurement range
*
This accounts for offset errors in the levels specified, and enables arms at those
levels to be accepted.
• Related Commands: ARM:STARt:SOURce<n>, ARM:STARt:SLOPe<n>
• *RST Condition: ARM:STARt:LEVel<n >:POS 1.022418
Example Setup to arm when the signal on channel 1 goes outside of a the window
bounded by 0.5V and 0V.
ARM:SOUR1 INT1
ARM:LEV1:POS 0.50
ARM:LEV1:NEG 0
ARM:SLOP1 EITH
Set arming source 1 to be channel 1 level(s).
Specify that both ARM:LEVel1:POS and
ARM:LEVel1:NEG will be used to form a
window. If the signal rises above the 0.5
volt level (the POSitive slope level
specified), or falls below the 0 volt level (the
NEGative slope level specified), arming will
occur and the measurement will proceed.
[:STARt]:SLOPe[<n >]
ARM[:STARt]:SLOPe[<n >] <edge > selects which edge - POSitive, NEGative,
or EITHer on arming source <n > will cause the arm event to occur.
ARM:STARt:SLOPe is only active when either of the two arm sources is set to
EXTernal1, INTernal1, or INTernal2. The "EITHer" setting may be used only when
the corresponding ARM:STARt:SOURce is set to INTernal<n >. The "EITHer"
setting causes the window specified by ARM:STARt:LEVel<chan>:POSitive and
ARM:STARt:LEVel<chan>:NEGative to be in effect.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
n
numeric
discrete
1|2
none
none
edge
NEGative|POSitive|
EITHer
194 Command Reference
ARM Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:SLOPe[<n >]
Comments • Executable when initiated: No
• Coupled Command: Yes. A settings conflict error occurs if
ARM:STARt:SLOPe EITHer is set and ARM:STARt:SOURce EXTernal is
set.The EITHer setting is only valid when the associated ARM:STARt:SOURce is
set to INTernal<n >.
• ARM:STARt:SLOPe1 controls the slope on ARM:STARt:SOURce1 and
ARM:STARt:SLOPe2 controls the slope on ARM:STARt:SOURce2. Note that
’1’ and ’2’ refer to the arm source and not a channel number.
• When ARM:STARt:SLOPe is EITHer, having a value of
ARM:STARt:LEVel:POSitive greater than the value of
ARM:STARt:LEVel:NEGative will cause arming to occur when the signal exits
the defined window. If ARM:STARt:LEVel:NEGative is greater than
ARM:STARt:LEVel:POSitive, then an arm event will occur when the signal
enters into the defined window.
• The edge selected by ARM:STARt:SLOPe<n > is ignored when
ARM:STARt:SOURce<n > is set to any source other than EXTernal1, INTernal1,
or INTernal2. Other trigger sources have standardized active edges: NEGative for
TTLTrg<n> or POSitive for ECLTrg<n>.
• Related Commands: ARM:STARt:SOURce<n >, ARM:STARt:LEVel<chan
>:POSitive, ARM:STARt:LEVel<chan>:NEGative
• *RST Condition: ARM:STARt:SLOPe<n > POSitive
Example Setting the arm slope
ARM:SOUR1 EXT1
ARM:SLOP1 NEG
Set arming source1 to "Ext 1" BNC
Arm on the falling edge of source1
ARM Subsystem
Command Reference 195
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:SOURce[<n>]
[:STARt]:SOURce[<n>]
ARM[:STARt]:SOURce[<n >] <source > configures the arm system to respond to
the specified source(s). Unless one of the two sources is set to HOLD, both will be
active, and an occurrence of the selected event on either source will arm the system
for measurement.
The sources available are:
• BUS: The Group Execute Trigger (GET) HP-IB command or the IEEE-488.2
*TRG common command.
• ECLTrg0 and ECLTrg1: The VXIbus ECL trigger lines.
• TTLTrg0 through TTLTrg7: The VXIbus TTL trigger lines.
• EXTernal1: The HP E1429’s front panel "Ext 1" BNC connector.
• INTernal[1]: Arms the start trigger when the signal on channel 1 meets the
conditions specified by ARM:STARt:LEVel1.
• INTernal2: Arms the start trigger when the signal on channel 2 meets the
conditions specified by ARM:STARt:LEVel2.
• HOLD: Disable this arming source. If both sources are set to HOLD, then the
ARM:STARt:IMMediate command must be sent before measurements will
proceed.
• IMMediate: Arm the start trigger as soon as the INITiate:IMMediate command is
received. This choice is only valid for ARM:STARt:SOURce1, and requires that
ARM:STARt:SOURce2 be set to HOLD.
196 Command Reference
ARM Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
ARM[:STARt]:SOURce[<n>]
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
n
decimal
discrete
1|2
none
none
source
BUS|ECLTrg0|
ECLTrg1|IMMediate|
EXTernal1|INTernal[1]|
INTernal2|HOLD
TTLTrg0 to TTLTrg7
Choice IMMediate is only available for ARM:STARt:SOURce1.
Comments • Executable when initiated: No
• Coupled Command: Yes. The command is coupled to the
ARM[:STARt]:SLOPe[<n >], ARM[:STARt]:LEVel:NEGative, and
ARM[:STARt]:LEVel:POSitive commands.
• The active edge for the EXTernal1 source is specified by the
ARM:STARt:SLOPe[<n >] command.
• The active edge(s) for level detection (ARM:STARt:SOUR:LEVel<chan >) is
specified by the ARM:STARt:SLOPe[<n >] command.
• Related Commands: ARM:STARt:SLOPe[<n >],
ARM:STARt:LEVel[<chan >]
• *RST Condition: ARM:STARt:SOURce1 IMMediate, ARM:STARt:SOURce2
HOLD
Example Setting two arm start sources
ARM:SOUR1 EXT1
ARM:SOUR2 ECLT0
Set one arming source to be the front panel
"Ext 1" BNC.
Set the second arming source to be the
ECLTRG line.
ARM Subsystem
Command Reference 197
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]
The CALibration command subsystem is used in the calibration of the HP E1429.
The HP E1429 has commands to prevent and detect accidental or unauthorized
calibration of the instrument. The CALibration subsystem includes both these
security-related commands and the actual calibration commands.
Subsystem CALibration[<chan >]
:COUNt?
[query only]
[no query]
Syntax
:DATA<block data >
:DELay
:GAIN [<readings >[,<period >]]
:SECure
[no query]
:CODE <code >
:STATe <mode >[,<code >]
:STORe
[no query]
:AUTO <mode >
:VALue <number >
:ZERO [<readings>[,<period >,[<mode >]]] [no query]
:COUNt?
CALibration[<chan >]:COUNt? returns a number that shows how often the
HP E1429 has been calibrated. Since executing the CAL:GAIN, CAL:ZERO, or
CAL:STORe commands increments the number, the CALibration:COUNt?
command detects any accidental or unauthorized HP E1429 calibration.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
1 or 2
none
Comments • Executable when initiated: Yes
• Coupled Command: No
• Your HP E1429 was calibrated before it left the factory. Before using, read the
calibration count to determine its initial value.
• Both channels share the same counter, so it does not matter whether channel 1 or
channel 2 is specified; the same answer is returned for either.
• The HP E1429 stores the calibration number in its non-volatile calibration
memory which remains intact even with power off.
198 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:DATA
• Executing the CALibration:GAIN, or CALibration:ZERO commands with
calibration security disabled (CALibration:SECure:STATe OFF set) and with
CALibration:STORe:AUTO ON, increments the calibration number by one. With
CALibration:STORe:AUTO ON, a complete calibration of all input ranges
increments the number by several counts. It is possible by setting
CALibration:STORe:AUTO to OFF, to defer the storing of calibration constants
until explicitly told to do so by invoking the CALibration:STORe command.
• The count increments whenever either channel stores calibration data to memory.
The maximum value of the number is 2,147,483,647, after which it wraps around
to 0.
• Related commands: CALibration:SECure:STATe, CALibration:GAIN,
CALibration:ZERO, CALibration:STORe:AUTO, CALibration:STORe
• *RST Condition: unaffected
Example Querying the calibration count
CAL:COUN?
Query calibration count, the count is shared
by both channels
:DATA
CALibration[<chan >]:DATA <block data > manually sets or queries the
calibration constants. The query form of this command returns the calibration
constants in IEEE-488.2 definite length arbitrary block format. The command
(non-query) form is used to send calibration constants to the digitizer in indefinite or
definite length arbitrary block format. The new calibration constants take effect
immediately, but are not saved to non-volatile calibration memory unless the
CALibration:STORe command is executed.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
1 or 2
none
none
block data
IEEE 488.2
block data
-2046 to 2047
CALibration[<chan>] Subsystem
Command Reference 199
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:DATA
Comments • Executable when initiated: No
• Coupled Command: No
• Sending calibration constants with this command will cause the HP E1429 to
calibrate to these constants. A check is done on the values before usage and an
error (-222 "Data out of range") results if they are not within a valid range.
• It is possible with this command for the user to have tables of calibration
constants which are downloaded for usage whenever the load characteristics of
what is connected to the front panel of the HP E1429 change. The storage to, and
retrieval from memory of these tables would be under the control of the host
controller, external to the HP E1429.
• The query form of this command will return the calibration constants that the
digitizer is currently using; note that these may not be the same values which are
stored in non-volatile calibration memory unless the CALibration:STORe
command has been previously executed on these constants.
• Related commands: CALibration[<chan>]:STORe
• *RST Condition: none
Example 1 Sending an array of new cal constants (HP BASIC program)
ASSIGN @X TO 70905;FORMAT OFF
Turn format off for array data
OUTPUT 70905 USING "#,K";"CAL:DATA #3124"
Specify 124 bytes coming (62
constants)
OUTPUT @X;Array(*),CHR$(10),END
Send the array of calibration constants
Example 2 Querying the calibration constants on channel 2 (HP BASIC program)
DIM Ndig$[1],Count$[9]
ASSIGN @To TO 70905
Dimension parameters for header
I/O path to digitizer
ASSIGN @From TO 70905;FORMAT OFF I/O path from digitizer. Turn format off for
array data
OUTPUT @To;"FORM PACK"
OUTPUT @To;"CAL2:DATA?"
Set packed data format
Query for calibration data
ENTER @From USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
Strip the header preceeding the data
ALLOCATE INTEGER Cal_data(1:VAL(Count$)/2)
Allocate an array to hold the data
ENTER @From;Cal_data(*)
ENTER @To USING "B";Junk
Read in the calibration constants
Need to remove left over line feed
200 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:DELay
Each channel contains 62 calibration constants. The following list describes what
the constant is at each array index location. The array is assumed to start with index
number 0.
Index
Contents
offset for 1.0235V range
Index
Contents
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
gain lsb for single-ended .51175 V range
offset for differential .10235 V range
gain msb for differential .10235 V range
gain lsb for differential .10235 V range
offset for differential .2047 V range
gain msb for differential .2047 V range
gain lsb for differential .2047 V range
offset for differential .51175 V range
gain msb for differential .51175 V range
gain lsb for differential .51175 V range
offset for differential 1.0235 V range
gain msb for differential 1.0235 V range
gain lsb for differential 1.0235 V range
offset for differential 2.047 V range
gain msb for differential 2.047 V range
gain lsb for differential 2.047 V range
offset for differential 5.1175 V range
gain msb for differential 5.1175 V range
gain lsb for differential 5.1175 V range
offset for differential 10.235 V range
gain msb for differential 10.235 V range
gain lsb for differential 10.235 V range
offset for differential 20.47 V range
gain msb for differential 20.47 V range
gain lsb for differential 20.47 V range
offset for differential 51.175 V range
gain msb for differential 51.175 V range
gain lsb for differential 51.175 V range
offset for differential 102.35 V range
gain msb for differential 102.35 V range
gain lsb for differential 102.35 V range
0
1
2
3
4
5
6
7
8
9
A to D chip internal setting
A to D chip internal setting
A to D chip internal setting
A to D chip internal setting
A to D chip internal setting
linearity bit 5 left
linearity bit 5 right
linearity bit 6 left
linearity bit 6 right
10 linearity bit 7 left
11 linearity bit 7 right
12 linearity bit 8 left
13 linearity bit 8 right
14 linearity bit 9 left
15 linearity bit 9 right
16 linearity bit 10 left
17 linearity bit 10 right
18 gain msb
19 gain lsb
20 conversion delay adjust
21 trigger level negative
22 trigger level positive
23 offset for single-ended .10235 V range
24 gain msb for single-ended .10235 V range
25 gain lsb for single-ended .10235 V range
26 offset for single-ended .2047V range
27 gain msb for single-ended .2047 V range
28 gain lsb for single-ended .2047 V range
29 offset for single-ended .51175 V range
30 gain msb for single-ended .51175 V range
:DELay
CALibration[<chan >]:DELay will calibrate the delay constant for the A to D
converter. Both channels are calibrated with this command, regardless of which
<chan> value is specified. This calibration only needs to be done once or twice in
the lifetime of the instrument. Also, this calibration determines a nominal value for
convert time at room temperature (25 degrees C). It is, therefore, important that this
command be executed at an ambient temperature near 25 degrees C.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
1 or 2
none
CALibration[<chan>] Subsystem
Command Reference 201
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:GAIN
Comments • Executable when initiated: No
• Coupled Command: No
• Before executing this command, both channels must be set to the single-ended
setting and 1.0235 volt range. This can be accomplished by executing either
*RST or the combination of CONF:ARR:VOLT (1),1.0,(@1) with
CONF2:ARR:VOLT (1),1.0,(@2).
• This setting was calibrated before the HP E1429 left the factory. Under normal
conditions, it is not necessary to execute this command again. The symptom of
needing this calibration is that the fastest sample rate will appear to be 10 MHz
instead of 20 MHz, especially at higher ambient operating temperatures (such as
50 or 60 degrees C).
• Both channels are calibrated with a single call to this command, so a single call
will be sufficient to calibrate.
• If CALibration:STORe:AUTO is ON, then the new settings will be stored to
non-volatile calibration ram. Calibration security must also be turned off for the
new constants to be permanently stored in non-volatile calibration ram.
• CALibration:COUNt will be incremented with this command when the values are
stored to non-volatile calibration RAM.
• Related commands: CALibration:SECure:STATe, CALibration:STORe:AUTO,
CALibration:STORe
• *RST Condition: unaffected
Example Querying the calibration delay
CAL:DEL?
Query calibration delay, the delay is shared
by both channels
:GAIN
CALibration[<chan >]:GAIN [<readings >[,<period >[,<flag >]]] performs a
calibration for gain using the specified number of readings and sample rate. The
CALibration:VALue voltage specified is used as the full scale value to calibrate to,
and must be between 85.0 and 99.5 percent of the full scale reading for the current
configuration. The 99.5 percent upper limit is to insure that noise will not cause
erroneous full scale (overload) readings. A linearity calibration is also done on the
1V measurement range with the single ended port (0 or 2). This linearity calibration
may be disabled by setting the flag parameter to OFF. Omitting the optional flag
parameter will cause linearity to be performed.
202 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:GAIN
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
readings
period
numeric
numeric
numeric
1 or 2
none
none
100 to 32767 |DEFault
reference period to
Seconds
reference period 4E8
*
|DEFault
flag
boolean
ON | OFF | defaults to ON
none
Comments • Executable when initiated: No
• Coupled Command: No
• Before executing CALibration[<chan>]:GAIN you must do the following steps.
Note that if you use the CONFigure command, it must be sent first; otherwise
several of the settings such as CALibration:SECure:STATe and
CALibration:VALue will be reset to their *RST values.
a. Disable the calibration security by setting
CALibration[<chan>]:SECure:STATe OFF.
b. Use the CONFigure command, or the SENSe:VOLTage:RANGe and
SENSe:FUNCtion commands to place the HP E1429 in the desired range
and using the desired port: i.e CONF<channel>:ARR:VOLT
(1000),<range>,(@<port>).
c. Program the input filter and impedance (if applicable) to the desired
settings (use the INPut:FILTer and INPut:IMPedance commands).
d. Specify the voltage which will be applied using the CALibration:VALue
command. This voltage must be 85% to 99.5% of the full scale input for
the range being calibrated. The CONFigure command will reset the value
of this setting, so this step must be done after any CONFigure command is
used.
e. Connect a fixed standard DC voltage to the input to be calibrated, where
the standard is between 85.0% and 99.5% of the full scale reading for the
range being calibrated.
• MINimum and MAXimum are not allowed with this command.
• Optional parameters that are left blank are filled from left to right. Therefore, it
may be necessary to use the syntax DEFault to note that a particular parameter has
been defaulted. For example, to default the number of readings and specify a
CALibration[<chan>] Subsystem
Command Reference 203
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:GAIN
sample rate, the command would appear as:
CAL:GAIN DEF, .05, one
• CALibration:GAIN forces the internal reference (20 MHz) oscillator to be used.
Sample rates are attained using that reference.
• The default number of readings is 1000, and the default period is 1.0E-4 seconds.
These numbers were chosen such that the product of the two is a period that is an
integral multiple of both 50 Hz and 60 Hz line cycles (.1 seconds in this case).
• When calibrating gain on the differential ports, an error could occur which
contains the text "All readings have same value in cal_mean routine". The most
likely cause of this error is that the two differential inputs on the port are not
grounded properly, and a common mode overload is occurring.
• The product of the period and number of readings will be checked to see if it
exceeds 10 seconds, and if so, error -221;"Settings conflict; Calibration time too
long" occurs.
• Normally, upon completion the new gain values would be stored to the
non-volatile calibration memory. This can be overridden by setting
CALibration:STORe:AUTO OFF, in which case the new gain values will be
stored to calibration memory only when the CALibration:STORe command is
executed.
• Related commands: CALibration:VALue, CALibration:SECure:STATe,
CALibration:STORe:AUTO, CALibration:STORe
• *RST Condition: none
Example Performing a gain calibration
CONF:ARR:VOLT (100),4.8,DEF,(@1)
Configure for 5 volt range. If CONF is
used, it must be the first step because it
performs a soft reset of most other settings.
CAL:SEC:STAT OFF,E1429
CAL:STOR:AUTO OFF
CAL1:VAL 5.05
Disable security, assuming factory-set
security code
Disable automatic storage of calibration
constants
Set value to > 85% of positive full scale on
5 volt range
CAL1:GAIN DEF,DEF
Calibrate channel 1 for gain using default
sample rate and number of points. Note
that linearity will not be done because this
is not the 1 volt range.
CAL1:STOR
Force the gain settings just calculated to be
stored into calibration RAM.
204 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:SECure:CODE
:SECure:CODE
CALibration[<chan >]:SECure:CODE <code > sets the code which is required to
disable calibration security. Calibration security must have been previously disabled.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
code
numeric
1 or 2
none
none
character
data
1 to 12 characters
Comments • Executable when initiated: Yes
• Coupled Command: No
• The calibration security code must begin with a letter, and can contain letters,
digits, and underscores. Lower case letters are converted to upper case.
• The calibration code is shared by both channels. It does not matter which channel
is specified (if any), the same code is shared by both and gives access to calibrate
either.
• If calibration security has not been previously disabled by
CALibration[<chan>]:SECure:STATe OFF, the HP E1429 generates the error
311,"Calibration security on". To disable the calibration security requires
knowledge of the previous security code.
• Before shipping, the factory sets the calibration security code to E1429. You
should change it before you use your HP E1429 to prevent unauthorized
calibration. Record the new security code and store in a secure place. If you
forget the new code, defeating the security involves instrument disassembly.
• The HP E1429 stores the security code in its non-volatile calibration memory
which remains intact even with power off.
• Related commands: CALibration[<chan>]:SECure:STATe
• *RST Condition: unaffected
Example Changing the factory-shipped security password
CAL:SEC:STAT OFF,E1429
CAL:SEC:CODE NEWCODE
CAL:SEC ON
Disable security for both channels
Set new security code for both channels
Re-enable security on both channels
CALibration[<chan>] Subsystem
Command Reference 205
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:SECure:STATe
:SECure:STATe
CALibration[<chan >]:SECure:STATe <mode >,[<code >] enables or disables
calibration security. Disable the calibration security to calibrate the
HP E1429, change the security code, or change the protected user data.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
mode
code
numeric
boolean
1 or 2
none
none
none
OFF|0|ON|1
character
data
1 to 12 characters
Comments • Executable when initiated: Yes
• Coupled Command: No
• Either channel may be referenced, enabling/disabling is done to both channels at
once with this command.
• The code parameter must be present to disable the security, or it generates error
-109,"Missing parameter". The value supplied must match the currently
programmed security code or it generates error -224,"Illegal parameter value". A
1 second delay will then occur before the HP E1429 executes any subsequent
commands.
• To enable security, the code parameter is not required, but is checked if it is
present. If a code is given and is incorrect, error -224, "Illegal parameter value"
will be generated.
• Security must be disabled to calibrate the HP E1429, or to use the *PUD
command.
• Related commands: CALibration:GAIN, CALibration:ZERO,
CALibration:STORe, CALibration:SECure:CODE, *PUD
• *RST Condition: unaffected
Example Disabling calibration security
CAL:SEC:STAT OFF,E1429
Disable security, assuming factory-set
security code
206 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:STORe
:STORe
CALibration[<chan >]:STORe stores the current calibration constants into
non-volatile calibration memory.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
1 or 2
none
Comments • Executable when initiated: No
• Coupled Command: No
• CALibration:SECure:STATe must be OFF before executing this command.
• Related commands: CALibration[<chan>]:DATA,
CALibration:SECure:STATe, CALibration:COUNt?, CALibration:STORe:AUTO
• *RST Condition: none
Example Sending and storing an array of new cal constants
ASSIGN @X TO 70905;FORMAT OFF
Turn format off for array data
OUTPUT 70905 USING "#,K";"CAL:DATA #3124"
Specify 124 bytes coming (62
constants)
OUTPUT @X;Array(*),CHR$(10),END
OUTPUT 70905;"CAL:SEC:OFF,E1429"
Send the array of calibration constants
Disable security
OUTPUT 70905;"CAL:STOR"
Store the calibration data in non-volatile
RAM
CALibration[<chan>] Subsystem
Command Reference 207
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:STORe:AUTO
:STORe:AUTO
CALibration[<chan >]:STORe:AUTO <mode > selects whether or not the
calibration constants will be automatically stored when commands like
CALibration:GAIN and CALibration:ZERO complete.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
boolean
1 or 2
none
none
mode
ON|1|OFF|0
Comments • Executable when initiated: Yes
• Coupled Command: No
• Enabling CALibration[<chan >]:STORe:AUTO for either channel enables it for
both channels.
• Related commands: CALibration:GAIN, CALibration:SECure:STATe,
CALibration:ZERO, CALibration:STORe
• *RST Condition: CALibration:STORe:AUTO ON
Example Turn automatic storage of calibration values off
CAL:STOR:AUTO OFF
Disable automatic storage
:VALue
CALibration[<chan >]:VALue <number > specifies the voltage level supplied at
the input. This voltage value is then used in subsequent CALibration:GAIN or
CALibration:ZERO commands. The HP E1429 can not distinguish between a value
which is exactly full scale, and one which is an overload -- both cases would
generate the same measured value. Therefore, the voltage specified for
CALibration:VALue is not allowed to be closer than 10 counts from full scale
(approximately 99.5% of full scale). The following table shows the allowable
CALibration:VALues which are closest to full scale on their respective voltage
ranges.
208 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:VALue
Maximum Gain
Calibration Values (V)
Voltage Range
(Volts)
Allowable
Ports
-.10180 and .10185
-.2036 and .2037
0.10235
0.2047
0.51175
1.0235
2.037
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
3,4
-.5090 and .50925
-1.0180 and 1.0185
-2.036 and 2.037
-5.090 and 5.0925
-10.180 and 10.185
-20.360 and 20.370
-50.900 and 50.925
-101.80 and 101.85
< -48.925 and > 48.975
5.1175
10.235
20.37
3,4
3,4
3,4
51.175
102.35
102.35
3,4
3,4
3,4
Parameters
Parameter
Parameter
Type
Range of
Values
Default
Units
Name
number
numeric
-101.80 to 101.85
volts
Comments • Executable when initiated: No
• Coupled Command: No
• Calibration values on the 102.35 volt range have a special low end allowed, so
that voltages much less than full scale may be used to calibrate gain on this range.
Values < -48.975 and > 48.975 are accepted as legal values for calibrating the
102.35 volt range.
• CALibration:VALues used for GAIN calibration are at least 85% of full scale and
≤ 10 counts away from absolute full scale. The previous table lists the gain
calibration values.
• Related commands: CALibration:GAIN
• *RST Condition: CALibration<chan >:VALue 1.0185
CALibration[<chan>] Subsystem
Command Reference 209
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:ZERO
Example Setting the calibration value
CAL2:VAL 5.00
Input on channel 2 is 5.00 V
:ZERO
CALibration[<chan >]:ZERO [<readings >[,<period >,[<mode >]]] performs a
calibration of the zero offset using the specified number of readings and sample rate
on the specified range(s). When this command completes, the new calibration
constants will be automatically stored to non-volatile calibration memory unless the
CALibration:STORe:AUTO command is set to OFF.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
readings
period
numeric
numeric
numeric
1 or 2
none
none
100 to 32767 |DEFault
reference period to
Seconds
reference period 4E8
*
|DEFault
mode
discrete
ALL |ONE
none
Comments • Executable when initiated: No
• Coupled Command: No
• Before executing CALibration[<chan>]:ZERO, you must do the following steps.
a. If mode is not ALL, use the CONFigure command or the
SENSe:VOLTage:RANGe and SENSe:FUNCtion commands to place the
HP E1429 in the desired range and using the desired port: i.e
CONF<channel>:ARR:VOLT (1000),<range>,(@<port>).
b. Program the input filter and impedance (if applicable) to the desired
settings (use the INPut:FILTer and INPut:IMPedance commands).
c. If it is desirable for the new constants to be stored to non-volatile
calibration memory upon completion of the CALibration:ZERO command,
then set CALibration:STORe:AUTO to ON, and turn calibration security
OFF. If a complete calibration involving gain and linearity is to be done,
then it may be more desirable to only store the calibration constants when
everything is complete; for this case, set CALibration:STORe:AUTO to
OFF, and use the CALibration:STORe command to force storage when all
calibrations are complete.
210 Command Reference
CALibration[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CALibration[<chan>]:ZERO
• MINimum and MAXimum are not allowed with this command.
• Optional parameters that are left blank are filled from left to right. Therefore, it
may be necessary to use the syntax DEFault to note that a particular parameter has
been defaulted. For example, to default the number of readings and specify a
sample rate, the command would appear as:
CAL:ZERO DEF, .05, one
• CALibration:ZERO forces the internal reference (20 MHz) oscillator to be used.
Sample rates are attained using that reference.
• The default number of readings is 1000, and the default period is 1.0E-4 seconds.
These numbers were chosen such that the product of the two is a period that is an
integral multiple of both 50 Hz and 60 Hz line cycles
(0.1 seconds in this case).
• The product of the period and number of readings will be checked to see if it
exceeds 10 seconds, and if so, error -221;"Settings conflict; Calibration time too
long" occurs.
• The default <mode> is ONE, which calibrates using the current settings of
SENSe:VOLTage:RANGe and SENSe:FUNCtion. Specifying <mode> ALL will
do a zero calibration on all voltage range settings for both of the ports on the
specified channel.
• Related commands: CALibration:GAIN, CALibration:VALue,
CALibration:SECure:STATe
• *RST Condition: none
Example Performing a zero calibration
CAL:SEC:STAT OFF,E1429
CAL1:ZERO DEF,DEF,ALL
Disable security, assuming factory-set
security code
Calibrate channel 1 using default sample
rate and number of points, calibrate all gain
ranges on both ports.
CALibration[<chan>] Subsystem
Command Reference 211
Download from Www.Somanuals.com. All Manuals Search And Download.
CONFigure[<chan>]
The CONFigure subsystem provides a fast way to place the HP E1429 into a known
state, ready to take measurements. An INITiate;FETCh? is then all that is necessary
to take a measurement after the CONFigure command has been executed. If
desired, CONFigure may be used to quickly get to a known state, from which other
states such as TRIGger:STARt:SOURce or TRIGger:STARt:TIMer can be "fine
tuned" to desired values before the INITiate;FETCh? sequence is executed.
Subsystem CONFigure[<chan>]
:ARRay
[:VOLTage]
[:DC] (<size>)[,<expected value>[,<resolution>]] [,(@<input port>)]
Syntax
:ARRay:[VOLTage][:DC]
CONFigure[<chan>]:ARRay[:VOLTage][:DC] (<size>)[,<expected
value>[,<resolution>]] [,(@<input port>)] will configure for taking <size> number
of readings on the specified channel and <input port>. The <expected value> and
<resolution> parameters are used to set SENSe:VOLTage:RANGe to an appropriate
setting for making the measurement on the specified input port and channel. If no
expected value is given, the 1V range (1.0235 V peak) is used. If a resolution is
specified, it is checked for correctness against what is possible with the expected
value range, and if too fine for the given expected value, error -231,"Data
questionable;CONF or MEAS unable to attain resolution specified" will occur.
Each channel consists of two ports; one port is single ended, and the other is
differential. The two ports on channel 1 have odd numbers: port 1 is the single
ended input and port 3 is the differential input. On channel 2, the single ended input
is port 2 and the differential input is port 4.
The expected value parameter specified should be the maximum expected
measurement value. The voltage range is set according to the expected value
supplied. If the expected value is greater than 98% of a given range, the next higher
range is automatically chosen. The table under the "Settings" heading gives the
crossover points for range changes.
212 Command Reference
CONFigure[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CONFigure[<chan>]:ARRay:[VOLTage][:DC]
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
chan
size
Type
numeric
numeric
numeric
1 | 2
none
none
volts
1 | 7 to 524288
expected
value
-102.30 to 102.35 |
DEFault |
MINimum | MAXimum
resolution
input port
numeric
numeric
.00005 to .05 |
DEFault |
MINimum | MAXimum
volts
none
1|3 with CONFigure1
2|4 with CONFigure2
1 and 2 are single ended
3 and 4 are differential
The maximum size parameter will be 524284 if the battery is
enabled instead of 524288.
For expected value, MINimum selects the 0.100 V range and
MAXimum selects either the 1.0 volt range (single ended ports)
or the 100 V range (differential ports). DEFault selects the 1V
range.
For resolution, MINimum, MAXimum, and DEFault select the
same value.
Settings Maximum expected value settings per range are shown in the following table, along
with the resolution associated with each range. The highlighted area shows the
setting used when the expected value is not specified or DEFault is used.
CONFigure[<chan>] Subsystem
Command Reference 213
Download from Www.Somanuals.com. All Manuals Search And Download.
CONFigure[<chan>]:ARRay:[VOLTage][:DC]
Maximum
Expected
Value (V)
Voltage
Range
(Volts)
Resolution
(Volts)
± .1
± .2
± .5
± 1
0.10235
0.2047
0.51175
1.0235
2.047
.00005
.00010
.00025
.0005
.0010
.0025
.005
± 2
± 5
5.1175
10.235
20.47
± 10
± 20
± 50
±100
.010
51.175
102.35
.025
.05
Comments • Executable when initiated: No
• Coupled Command: No
• If no input port is given, CONFigure1 defaults to (@1) and CONFigure2 defaults
to (@2).
• Resolution varies by range, and is constant for each range. For any given range,
specifying MINimum, MAXimum, or DEFault for resolution yields the same
result.
• It is important to note that the expected value determines the resolution and not
vice versa. The digitizer always uses 12-bit resolution and a coarser resolution
value has no effect. If, for some reason a coarser resolution is desired, specify a
larger expected value. See the previous table for expected values and resolutions.
214 Command Reference
CONFigure[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
CONFigure[<chan>]:ARRay:[VOLTage][:DC]
• The CONFigure command configures the HP E1429 to do the measurement
specified by the parameters given with CONFigure. All instrument settings will
be forced to their *RST values, with the following exceptions. In particular, note
that all OUTPut signals are turned off and their FEED’s are changed to reset
values, and that both the local bus (VINStrument:LBUS) and VME bus
(VINS:VME) are turned off. Be aware that these new states will still be in effect
after the CONFigure command is complete. See Appendix B, Table B-2 for a
complete list of the reset settings for the HP E1429. The following states are set
up after the reset, and thus in most cases, will not be the *RST value for that
command:
a. SENSe<n>:FUNCtion is set to "VOLTage[:DC] <port>"
b. SENSe<n>:VOLTage:DC:RANGe is set to the value implied by the
expected value given.
c. INPut[<port>]:FILTer is set to ON.
d. SENSe:SWEep:POINts and TRIGger:STARt:COUNt are set to the <size>
parameter.
• Related commands: SENSe:FUNCtion, SENSe:VOLTage:RANGe,
SENSe:SWEep:POINts, SENSe:ROSCillator:SOURce, TRIGger:STARt
subsystem, ARM:STARt subsystem.
• *RST Condition: none
Example Measuring 1.5 V on the differential input of channel 1
CONF:ARRay:VOLT (20),1.5,(@3)
Set up to take 20 readings of 1.5 Volts peak
on port 3 of channel 1.
INIT
Start the measurement
Get channel 1 readings
FETC?
CONFigure[<chan>] Subsystem
Command Reference 215
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic
The DIAGnostic subsystem contains several commands which were developed to
test the instrument at the factory. Several of these commands may prove useful for
trouble shooting or special applications, and so they are written up here.
Subsystem DIAGnostic
:CALibration[<chan >]
Syntax
:CONVerge
[query only]
[query only]
[query only]
:GAIN
:SENSitivity
:ZERO
:SENSitivity
:CHANnel[<chan >]
:LABel <label >
:FETCh[<chan >] <start_addr >, <count >
:MEMory[<chan >]
:FILL <num_segments >, <count >
:ADDresses?
:PEEK <address >, <bits >
:POKE <address >, <bits >
:SGET <bit >
[query only]
[query only]
[query only]
[query only]
[query only]
:SPUT <bit >, <value>
:TEST?
:CALibration[<chan >]:CONVerge?
DIAGnostic:CALibration[<chan >]:CONVerge? returns a real array containing
convergance data from the latest CAL:ZERO or CAL:GAIN command. This array
contains pairs of data points, with the first data point in a pair being the average of
the readings taken, and the second data point is the new calibration constant which
will be used on the next convergance iteration. The channel number passed in is
irrelevant, as the data brought back always pertains to the most recently attempted
CAL:GAIN or CAL:ZERO.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
channel
numeric
1 | 2
none
Comments • Executable when initiated: Yes
• Coupled Command: No
216 Command Reference
DIAGnostic Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:CALibration[<chan >]:GAIN:SENSitivity?
:CALibration[<chan >]:GAIN:SENSitivity?
DIAGnostic:CALibration[<chan >]:GAIN:SENSitivity? returns a real number
which is the sensitivity constant calculated for use during the most recently executed
CAL:GAIN command. The channel parameter is irrelevant because the data
returned always applies to the last executed CAL:GAIN command regardless of
which channel was involved.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
channel
numeric
1 | 2
none
Comments • Executable when initiated: Yes
• Coupled Command: No
:CALibration[<chan >]:ZERO:SENSitivity?
DIAGnostic:CALibration[<chan >]:ZERO:SENSitivity? returns a real number
which is the sensitivity constant calculated for use during the most recently executed
CAL:ZERO command. The channel parameter is irrelevant because the data
returned always applies to the last executed CAL:ZERO command regardless of
which channel was involved.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
channel
numeric
1 | 2
none
Comments • Executable when initiated: Yes
• Coupled Command: No
:CHANnel[<chan >]:LABel
DIAGnostic:CHANnel[<chan >]:LABel <label > puts the bit pattern specified
into the lower 4 bits of all data on the specified channel. These four bits are ignored
when data is fetched or read with FORMat:DATA ASCii or REAL, but they are
sent with FORMat:DATA is PACKed, and they are transmitted out over the local
bus or VME bus when data is sent out via those routes. This command could be
DIAGnostic Subsystem
Command Reference 217
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:FETCh?
useful for tagging data which is going out over the local bus or VME bus when
multiple channels or HP E1429’s are involved.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
channel
label
Type
numeric
numeric
1 | 2
none
none
0 through 15|
MINimum | MAXimum
Comments • Executable when initiated: Yes
• Coupled Command: No
• Related Commands: ABORt, FETCh?
• *RST Condition: DIAG:CHAN1:LAB 0, DIAG:CHAN2:LAB 0
Example 1 Tagging the data with channel number
DIAG:CHAN1:LAB 1
DIAG:CHAN2:LAB 2
Make the lower 4 bits of all channel 1 data
contain the bit pattern 0001
Make the lower 4 bits of all channel 2 data
contain the bit pattern 0010
:FETCh?
DIAGnostic:FETCh[<chan >]? <start_addr >, <count > returns count number of
readings starting with the one at start_addr. The data is returned in PACKed format
(block of 16 bit integers).
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
channel
start_addr
count
Type
numeric
numeric
numeric
1 | 2 | 3
none
none
none
0 through 524287
1 through 2000
Comments • Executable when initiated: No
• Coupled Command: No
218 Command Reference
DIAGnostic Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:FETCh?
• Refer to the "Memory Management" section in Chapter 3 for information on
where segmented readings are stored in memory.
• Both channels can be fetched interleaved by specifying DIAG:FETC3?. When
both channels are fetched, the channel 1 data is the first data point, and the count
specified is the number of readings to be taken on each channel, and is thus
limited to 1000 per channel.
• The start_addr must be divisible by 4. If it is not, then the next lowest memory
location divisible by 4 will be the actual start_addr used, i.e. a start_addr of 511
would be rounded down to be 508.
• Data is sent back in binary block format with a header string preceeding the data.
The header is made of the ascii string: #,number_of_digits,number_of_bytes --
where # indicates binary block data, number_of_digits is how many ascii digits
make up the following byte count, and number_of_bytes is the byte count. After
the header, the stream of data bytes occurs. Example 2 below shows how to
accomodate the header string using the HP Rocky Mountain Basic programming
language.
• Related Commands: ABORt, FORMat, INITiate:IMMediate,
ARM:STARt:COUNt, TRIGger:STARt:COUNt, SENSe:SWEep:POINts:DELay
• *RST Condition: none
Example 1 Examining readings in a portion of memory
DIAG:FETC? 5200,300
Get 300 readings from channel 1, beginning
at address 5200.
Example 2 Reading back PACKed data (HP BASIC program)
DIM Ndig$[1],Count$[9]
Dimension parameters for header
ASSIGN @X TO 70905;FORMAT OFF
Turn format off for array data
OUTPUT 70905;"DIAG:FETC1? 5200,300" Query for channel 1 measurement data
ENTER @X USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
Strip the header preceeding the data
ALLOCATE INTEGER Meas_data(1:VAL(Count$)/2)
Allocate an array to hold the data
ENTER @X;Meas_data(*)
Read in the measurement data
ENTER 70905 USING "B";Junk
Need to strip off left over line feed
DIAGnostic Subsystem
Command Reference 219
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:MEMory[<chan>]:FILL
:MEMory[<chan>]:FILL
DIAGnostic:MEMory[<chan >]:FILL <num_segments, count> sets up
num_segments in memory and fills each with count readings. Each data point is
calculated from the formula:
data<n> = (((current_segment - 1) * 10 + n) modulo 2000) * 16
Where n is the data point of interest between 1 and count. Only the specified
channel is filled with these data points, the other channel is filled with reading
values of 0.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
channel
numeric
1 | 2
none
none
none
num_segments numeric
count numeric
0 thru 128
1 thru 524288
Comments • Executable when initiated: No
• Coupled Command: No
• *RST Condition: none
:MEMory[<chan>]:ADDResses?
DIAGnostic:MEMory[<chan >]:ADDResses? returns a binary block of integers
which comprise a list of memory address data for each segment in memory. If there
is no valid data, then an error occurs and no values are returned; otherwise, a 32 bit
value is returned for each segment in memory containing valid data. Bits 0 and 1
contain flags for segment wrapped and segment aborted respectively; the next 19
bits are the final value of the address counter (A0 to A18) when the segment was
completed or aborted, and bits 21 through 31 are filled with 0. Be aware that the
address counter value returned is actually 1 greater than the location of the last data
point taken in the segment.
Comments • Executable when initiated: No
• Coupled Command: No
220 Command Reference
DIAGnostic Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:PEEK?
• The wrapped bit (bit 0) usually indicates that enough pre-arm data was taken to
cause data to be overwritten, since each segment is a circular buffer. It is possible
for a wrapped bit to be set even though no data was actually overwritten. This
occurs because the address counter always points to the next location in memory
that is to be filled, and therefore a false wrap indication will occur if exactly
"buffer size" data points were taken. The buffer size is a number divisable by 4
which for post-arm only measurements is ARM:COUN * TRIG:COUN (padded
to a multiple of 4), or TRIG:COUN (padded to a multiple of 4) for pre-arm with
post-arm measurements.
• *RST Condition: none
Example Querying the memory segment address(es), HP BASIC Program
DIM Ndig$[1],Count$[9]
Dimension parameters for header
ASSIGN @X TO 70905;FORMAT OFF
Turn format off so we can enter
unformatted bytes with
this path
OUTPUT 70905;"DIAG:MEM:ADDR?"
Query for memory addresses
ENTER @X USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
Obtain the header information
preceeding the data
ALLOCATE INTEGER Mem_addrs(1:VAL(Count$)/2)
Allocate an array to hold the data.
Note that HP BASIC’s integers are 16
bits and not 32, hence the divide by 2
instead of by 4
ENTER @X;Mem_addrs(*)
Read in the memory addresses
Need to strip off left over line feed
ENTER 70905 USING "B";Junk
:PEEK?
DIAGnostic:PEEK? <address, bits> shows the specified number of bits from the
memory location specified.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
address
bits
Type
numeric
numeric
0 thru FFFFFF
8 | 16 | 32
none
none
16
DIAGnostic Subsystem
Command Reference 221
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:POKE
Comments • Executable when initiated: Yes
• Coupled Command: No
• The specified address is assumed to be relative to the local processor and is not
the A24 offset, but is instead the full address (i.e. E0000C would specify the
16
data register, as opposed to the VME A24 offset of C ).
16
Example Examining the setting of the traffic register
DIAG:PEEK? #HE00002,8
Retrieve the contents of the 8 bit traffic
register
:POKE
DIAGnostic:POKE <address, bits, value> places the specified value into the
memory location specified.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
address
bits
Type
numeric
numeric
numeric
0 thru FFFFFF
8 | 16 | 32
none
none
none
16
value
-2147483648 thru
2147483647
Comments • Executable when initiated: Yes
• Coupled Command: No
• The specified address is assumed to be relative to the local processor and is not
the A24 offset, but is instead the full address (i.e. E0000C would specify the
16
data register, as opposed to the VME A24 offset of C ).
16
Example Changing the contents of the traffic register
DIAG:POKE #HE00002,8,#H4B
Set traffic register to value of 4B hex
222 Command Reference
DIAGnostic Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
DIAGnostic:SGET?
:SGET?
DIAGnostic:SGET? <bit > returns the state (0 or 1) of the specified bit of the serial
control register. This register is the one which controls things such as signal
conditioning, signal routing, input filter state, and input impedance.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
bit
numeric
0 through 55
none
Comments • Executable when initiated: Yes
• Coupled Command: No
:SPUT
DIAGnostic:SPUT <bit, value > changes the state (0 or 1) of the specified bit of
the serial control register to the value given. This register is the one which controls
things such as signal conditioning, signal routing, input filter state, and input
impedance.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
bit
numeric
0 through 55
none
Comments • Executable when initiated: Yes
• Coupled Command: No
:TEST?
DIAGnostic:TEST? returns additional data on a failed self-test. The string returned
may be up to 40 characters in length.
DIAGnostic Subsystem
Command Reference 223
Download from Www.Somanuals.com. All Manuals Search And Download.
FETCh[<chan>]
The FETCh? command is used in conjunction with the INITiate:IMMediate
command to obtain readings. The FETCh:COUNt command is used to indicate how
many readings are available.
Subsystem FETCh[<chan>]?
[query only]
[query only]
[query only]
:COUNt?
Syntax
:RECover?
FETCh?
FETCh[<chan>]? returns readings from the specified channel in the format set by
the FORMat:DATA command. An INITiate:IMMediate command must have been
issued previously or else error -230, "Data corrupt or stale" will occur.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
1 | 2
none
Comments • If measurements are still being taken when the FETCh? command is sent, the
command will wait until readings have completed and will then return the data.
Note that this could generate a deadlock error message if either the arming source
or the trigger source is set to BUS, because a software trigger could not break in
after FETCh? is sent.
• If desired, the negative transition of the BUSY bit (bit 8) in the
STATus:OPERation:CONDition register can be used to determine when
measurements have completed so a FETCh? could execute without delay or threat
of deadlock. This status register bit can be enabled to generate an SRQ when
readings are complete, and thus interrupt the controller. See the STATus
subsystem in the Command Reference for more details.
• If error -230 "Data corrupt or stale" occurs and you must read the data, the
FETCh:RECover? command can be used to force data read with no error.
• FETCh? or FETCh1? will return readings from channel 1 only. FETCh2? will
return readings from channel 2 only.
224 Command Reference
FETCh[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
• The data may be read any number of times, as long as no parameters have
changed which could affect new data (such as changing TRIGger:STARt:COUNt,
ARM:STARt:COUNt, SENSe:SWEep:OFFSet:POINts, *RST, *RCL, etc.). If
any measurement parameters are changed, then error -230;"Data corrupt or stale"
will occur.
• The number of readings that FETCh? is going to return for each channel can be
determined two ways. The simplest way is to use the FETCh:COUNt? query. This
will return how many readings will be fetched. The second way is to calculate
how many readings should have been taken. This number is calculated as:
(number of start triggers) * (pre-arm readings + post-arm readings)
The above equation may be built from the following queries:
(ARM:STARt:COUNt?) * (TRIG:STARt:COUNt?)
The number of pre-arm readings may be determined by taking the absolute value
of the query SENSe:SWEep:OFFSet:POINts? which returns either 0 (no pre-arm
readings), or a negative number which is the pre-arm count.
If the measurement was ABORted, then FETCh:COUNt? is the only reliable way
to determine how many readings will be returned by the FETCh<chan >?
• As noted immediately above, it is possible to calculate the end of pre-arm data
and the beginning of post-arm data when both are present in a measurement. The
data will always be returned with the specified number of pre-arm readings
followed by post-arm readings.
• If the measurement was aborted and pre-arm readings were specified, there is no
way to determine how many readings (if any) are post-arm. The HP E1429 will
attempt to bring back TRIGger:STARt:COUNt number of readings and if there
are not that many, it will bring back as many readings as were taken.
• Related Commands: ABORt, FORMat:DATA, INITiate:IMMediate, READ?,
ARM:STARt:COUNt, TRIGger:STARt:COUNt,
SENSe:SWEep:OFFSet:POINts, STATus subsystem
• *RST Condition: none
Example 1 Obtaining readings from the HP E1429
CONF1:ARR:VOLT (30),.6,(@1)
Configure for 30 readings on channel 1,
port 1
INIT
Take the measurement
FETC?
Get readings from channel 1.
FETCh[<chan>] Subsystem
Command Reference 225
Download from Www.Somanuals.com. All Manuals Search And Download.
FETCh[<chan>]:COUNt?
Example 2 Reading back PACKed data (HP BASIC program)
DIM Ndig$[1],Count$[9]
Dimension parameters for header
ASSIGN @X TO 70905;FORMAT OFF
Turn format off for array data
OUTPUT 70905;"FETC1?"
Query for channel 1 measurement data
ENTER @X USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
Strip the header preceeding the data
ALLOCATE INTEGER Meas_data(1:VAL(Count$)/2)
Allocate an array to hold the data
ENTER @X;Meas_data(*)
Read in the measurement data
ENTER 70905 USING "B";Junk
Need to strip off left over line feed
:COUNt?
FETCh[<chan>]:COUNt? returns the total number of readings stored in memory
for the channel specified. The count is the same for both channels, so either channel
may be queried.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
1 | 2
none
Comments • This command is most useful after an ABORt command has been issued on a
measurement in progress. The number returned will be the number of readings
which were taken before the ABORt command forced measurements to stop. If
an infinite measurement was aborted, then the number returned will be the
maximum memory size, if more than that number of readings were taken.
• Related Commands: ABORt, INITiate:IMMediate, ARM:STARt:COUNt,
TRIGger:STARt:COUNt, SENSe:SWEep:OFFSet:POINts
• *RST Condition: none
Example Determining how many readings are in memory
FETC1:COUN?
Query how many readings are available for
channel 1 -- this is also how many are
available on channel 2.
226 Command Reference
FETCh[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
FETCh[<chan>]:RECover?
:RECover?
FETCh[<chan>]:RECover? returns readings from the specified channel in the
format set by the FORMat:DATA command. This command is used to fetch data
that was saved during a power failure and which cannot be fetched by the
FETCh<chan >? command due to the "Data corrupt or stale" error.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
1 | 2
none
Comments • Executable when initiated: No
• Coupled Command: No.
• As mentioned above, this command is intended to retrieve battery backed data
after a power failure. Attempting to use FETCh<chan >? in this case may cause
an error if any measurement parameters were changed after power is returned.
With FETCh:RECover? it is also possible to retrieve readings that were taken
previously, but which are not accessable to FETCh? because of a setting change
or reset.
• If error 1018 "Battery backed data corrupt" occurs, FETCh:RECover? will not
return the readings since a problem with the data was detected. If the data must be
recovered, use the DIAGnostic:FETCh? command.
• Related Commands: INITiate:IMMediate, ARM:STARt:COUNt,
TRIGger:STARt:COUNt, SENSe:SWEep:OFFSet:POINts:
• *RST Condition: none
Example Recovering readings in memory
FETC1:REC?
Do a fetch on the data on channel 1. The
battery must be enabled for this to work.
FETCh[<chan>] Subsystem
Command Reference 227
Download from Www.Somanuals.com. All Manuals Search And Download.
FORMat
The FORMat command subsystem is used to specify the output format of the
readings from the HP E1429 Digitizer.
Subsystem FORMat
[:DATA] <type>[,<length>]
Syntax
[:DATA]
FORMat[:DATA] <type>[,<length>] specifies the output format for measurement
data.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
type
discrete
numeric
ASCii|PACKed| REAL
none
none
length
9 (ASCii)|16 (PACKed)|
64 (REAL)
Comments • PACKed format is signed 16 bits, however, the original 12-bit reading is shifted
left 4 bits and the lower most 4 bits are 0 filled. Thus, to get the actual value of the
reading, the packed value should be divided by 16. Packed readings always
represent a value between -1.023 and +1.0235 (i.e. there is no correction done
internally for the range setting), and further post-processing by the user is
necessary to get the actual reading value if the SENSe<chan >:VOLTage:RANGe
setting is not 1V.
• REAL,64 format sends data back as IEEE-754 64-bit real numbers. The data is
converted internally to reflect the SENSe<chan >:VOLTage:RANGe setting, and
no further conversion is needed by the user.
• Both PACKed,16 and REAL,64 formats return data preceded by the IEEE-488.2
definite length arbitrary block header. The header is as follows:
# <num_digits > <num_bytes >
# signifies a block transfer
<num_digits > is a single digit (1 through 9) which specifies how many digits
(ASCII characters) are in the <num_bytes > descriptor which follows
<num_bytes > is the number of data bytes which immediately follow the
<num_bytes > field
228 Command Reference
FORMat Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
FORMat[:DATA]
• ASCii,9 format sends data back as comma separated ASCII numbers. The data is
converted internally to reflect the SENSe<chan >:VOLTage:RANGe setting, and
no further conversion is needed by the user. The optional parameter 9 is the
number of significant digits in the data. This parameter is always 9 and may not
be changed. To read this data into an array, it is first necessary to determine how
many readings are coming back from the FETCh? or READ? . If using FETCh?,
then the FETCh:COUNt? command will specify how many readings will be
returned. READ? requires the user to calculate in advance how many readings to
expect. See the next comment below for details on how to calculate number of
readings.
• The number of readings that FETCh? or READ? will return for each channel can
be calculated as:
(number of start triggers) * (pre-arm readings + post-arm readings)
The above equation may be built from the following queries:
(ARM:COUNt?) * (TRIGger:COUNt?)
• To determine how many readings are pre-arm, take the absolute value of the
number returned by the SENSe:SWEep:OFFSet:POINts? query.
• Related Commands: READ?, FETCh?
• *RST Condition: FORMat:DATA ASCii,9
Example 1 Setting the data format to 64 bit reals
FORM REAL
Output data in 64 bit real format, the ",64"
is defaulted
Example 2 Reading back PACKed data (HP BASIC program)
DIM Ndig$[1],Count$[9]
Dimension parameters for header
ASSIGN @X TO 70905;FORMAT OFF
Turn format off for array data
OUTPUT 70905;"FETC1?"
Query for channel 1 measurement data
ENTER @X USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
Strip the header preceeding the data
ALLOCATE INTEGER Meas_data(1:VAL(Count$)/2)
Allocate an array to hold the data
ENTER @X;Meas_data(*)
Read in the measurement data
ENTER 70905 USING "B";Junk
Need to strip off left over line feed
FORMat Subsystem
Command Reference 229
Download from Www.Somanuals.com. All Manuals Search And Download.
INITiate
The INITiate subsystem controls the initiation of the trigger subsystem and prepares
the HP E1429 to take voltage measurements. Once initiated, triggers are armed on
both channels, and a trigger received from the programmed source
(TRIGger:STARt:SOURce command) will cause voltage measurements to begin on
both channels.
Normally, all measurement setup (setting measurement ranges, arm and trigger
sources, etc.) should be done before this command is sent. Sending this command
will cause the HP E1429 to begin the measurement process, using the currently
active sources and settings.
Subsystem INITiate
[:IMMediate]
[no query]
Syntax
[:IMMediate]
INITiate[:IMMediate] initiates the trigger system and places all trigger sequences
in the wait-for-arm or wait-for-trigger state, as appropriate. When the number of
readings specified by ARM:COUNt and TRIGger:COUNt have been taken, the
trigger system returns to the idle state, and measurements are no longer taken.
This command is an overlapped command as described in IEEE-488.2, Section 12.
The exit from idle state caused by INITiate:IMMediate shall cause the Pending
Operation Flag to be set true (*OPC will return 0). The Pending Operation Flag will
be set false when the idle state is re-entered, either when the trigger cycle completes
or when an ABORt or *RST command is executed.
The STATus:OPC:INITiate command controls whether *OPC, *OPC? and *WAI
will test the Pending Operation Flag and wait until it is false (trigger system in the
idle state).
230 Command Reference
INITiate Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
INITiate[:IMMediate]
Readings may not be obtained from memory until the trigger system has returned to
the idle state. The FETCh? and READ? commands may be invoked before the
trigger system is in the idle state. These commands will wait until the trigger
system is idle before returning readings. The trigger idle state may be determined
externally from the high-to-low transition of the BUSY bit (bit 8) of the
STATus:OPERation:CONDition register.
Comments • Executable when initiated: No
• Coupled Command: No
• Both measurement channels are affected by this command.
• If the trigger system is not in the idle state, error -123,"Init ignored" will be
generated, and the trigger system will be unaffected.
• The ABORt command may be used to prematurely halt the trigger system and
place the HP E1429A in the idle state.
• Related Commands: *OPC, *OPC?, *RST, *WAI, ABORt, ARM subsystem,
STATus:OPC:INITiate, TRIGger subsystem
• *RST Condition: The trigger system is in the idle state.
Example Placing the HP E1429A in the wait-for-arm state
INIT
Initiate signal measurement
INITiate Subsystem
Command Reference 231
Download from Www.Somanuals.com. All Manuals Search And Download.
INPut[<port>]
The INPut command subsystem controls characteristics of the input signal,
including state (on/off), low-pass filtering, and input source impedance. There are
two types of input ports on the HP E1429, single ended and differential, for a total
of 4 input ports.
Since this is a two channel instrument, two input ports share each channel. The
differential input ports are labeled ports 3 and 4. Input ports 1 and 2 are single
ended. Ports 1 and 3 share channel 1, and ports 2 and 4 share channel 2.
Since IMPedance, FILTer, and STATe are settable for each input port, they are
"remembered" so that changes made to FILTer on input port 3 for example, will not
change the settings made previously on input port 1 or vice versa. Just note that the
currently active settings may change when switching between input ports on a given
channel.
The selection mechanism for specifying which of two ports is connected to a given
channel is the SENSe<chan>:FUNCtion "VOLTage:DC <port>" command. See the
SENSe:FUNCtion command for more information.
Note
The input filter, impedance, and state can be changed while the HP E1429 is taking
readings (initiated). Due to settling times associated with changing these parameters,
readings taken during this period may have unexpected values.
Subsystem INPut[<port>]
:FILTer
[:LPASs]
[:STATe] <mode >
Syntax
:IMPedance <impedance >
[:STATe] <mode >
232 Command Reference
INPut[<port>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
INPut[<port>]:FILTer[:LPASs][:STATe]
:FILTer[:LPASs][:STATe]
INPut[<port>]:FILTer[:LPASs][:STATe] <mode> enables or disables the 10
MHz input filter.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
port
numeric
boolean
1|2|3|4
none
none
mode
OFF|0|ON|1
Comments • Executable when initiated: Yes
• Coupled Command: No
• Enabling or disabling the filter while the digitizer is taking readings (initiated)
may cause unexpected reading values due to relay settling during the transition.
• Enabling the filter on an input port does not affect the input filter setting on the
channel’s other port.
• Related commands: SENSe:FUNCtion "VOLTage <port>"
• *RST Condition: INPut<port >:FILTer:LPASs:STATe OFF
Example Enabling the 10 MHz low-pass filter
INP1:FILT:LPAS ON
Enable input filtering on input port 1
:IMPedance
INPut[<port>]:IMPedance <impedance> selects the input impedance for the
HP E1429. Either 50 or 75Ω may be selected on input ports 1 and 2, while 1 MΩ is
the only setting allowed for input ports 3 and 4. Values other than 50 or 75Ω on
input ports 1 and 2 will generate error -222,"Data out of range". Similarly, attempts
to set input ports 3 or 4 to an impedance value other than 1 MΩ will generate error
-222,"Data out of range".
INPut[<port>] Subsystem
Command Reference 233
Download from Www.Somanuals.com. All Manuals Search And Download.
INPut[<port>][:STATe]
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
port
numeric
numeric
1|2|3|4
none
impedance
50|75|1.0E6|1MOHM|
MINimum|MAXimum
Ohms
Input ports 1 and 2 : MINimum selects 50Ω; MAXimum selects
75Ω.
Input ports 3 and 4 : MINimum selects 1 MΩ; MAXimum selects
1 MΩ.
Comments • Executable when initiated: Yes
• Coupled Command: No
• Changing the input impedance while the digitizer is taking readings (initiated)
may cause unexpected reading values due to relay settling during the transition.
• Related commands: SENSe:FUNCtion "VOLTage <port>"
• *RST Condition: INPut1|2:IMPedance 50 OHM, INPut3|4:IMPedance 1 MOHM
.
Example Setting 75 Ω input impedance
INP:IMP 75 OHM
Set 75Ω impedance (defaults to input 1)
[:STATe]
INPut[<port>][:STATe] <mode> connects/disconnects the input ports to/from the
measurement signal path. All ports have a special relay which is used to isolate the
input from the signal path, regardless of whether the sensor channel is currently
connected to that port or not.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
port
numeric
boolean
1|2|3|4
none
none
mode
OFF|0|ON|1
234 Command Reference
INPut[<port>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
INPut[<port>][:STATe]
Comments • Executable when initiated: Yes
• Coupled Command: No
• Enabling or disabling the input port while the digitizer is taking readings
(initiated) may cause unexpected reading values due to relay settling during the
transition.
• Related commands: SENSe:FUNCtion "VOLTage:DC <port>"
• *RST Condition: INPut<port >:STATe ON
Example Disabling input port 2
INP2 OFF
Disconnect input port 2 from the
measurement signal path
INPut[<port>] Subsystem
Command Reference 235
Download from Www.Somanuals.com. All Manuals Search And Download.
MEASure[<chan>]
The MEASure? query subsystem provides a complete measurement sequence,
including configuration and reading of the data. MEASure? is used when the
generic measurement is acceptable and default triggering and timebase values may
be used. The MEASure? query is the same as doing the command sequence of
ABORt;CONFigure;INITiate;FETCh?.
Subsystem MEASure[<chan>]
:ARRay
[:VOLTage]
[:DC]? (<size>)[,<expected value>[,<resolution>]][,(@<input port>)]
Syntax
:ARRay[:VOLTage][:DC]?
MEASure[<chan>]:ARRay[:VOLTage][:DC] (<size>)[,<expected
value>[,<resolution>]][,(@<input port>)] will configure for taking <size> number
of readings on the specified channel and <input port>. The <expected value> and
<resolution> parameters are used to set SENSe:VOLTage:RANGe to an appropriate
setting for making the measurement on the specified input port and channel. If no
expected value is given, the 1V range (1.0235 V peak) is used. If a resolution is
specified, it is checked for correctness against what is possible with the expected
value range, and if too fine for the given expected value, error -231,"Data
questionable;CONF or MEAS unable to attain resolution specified" will occur.
Each channel consists of two ports; one port is single ended, and the other is
differential. The two ports on channel 1 have odd numbers: port 1 is the single
ended input and port 3 is the differential input. On channel 2, the single ended input
is port 2 and the differential input is port 4.
The expected value parameter specified should be the maximum expected
measurement value. The voltage range is set according to the expected value
supplied. If the expected value is greater than 98% of a given range, the next higher
range is automatically chosen. The table under the "Settings" heading gives the
crossover points for range changes.
236 Command Reference
MEASure[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
MEASure[<chan>]:ARRay[:VOLTage][:DC]?
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
chan
size
Type
numeric
numeric
numeric
1 | 2
none
none
volts
1 | 7 to 524288
expected
value
-102.30 to 102.35 |
DEFault |
MINimum | MAXimum
resolution
input port
numeric
numeric
.00005 to .05 |
DEFault |
MINimum | MAXimum
volts
none
1|3 with MEASure1
2|4 with MEASure2
1 and 2 are single ended
3 and 4 are differential
The maximum size parameter will be 524284 if the battery is
enabled instead of 524288.
For expected value, MINimum selects the 0.100 V range and
MAXimum selects either the 1.0 volt range (single ended ports)
or the 100 V range (differential ports). DEFault selects 1V.
For resolution, MINimum, MAXimum, and DEFault select the
same value.
Settings Maximum expected value settings per range are shown in the following table, along
with the resolution associated with each range. The highlighted area shows the
setting used when the expected value is not specified or DEFault is used.
MEASure[<chan>] Subsystem
Command Reference 237
Download from Www.Somanuals.com. All Manuals Search And Download.
MEASure[<chan>]:ARRay[:VOLTage][:DC]?
Maximum
Expected
Value (V)
Voltage
Range
(Volts)
Resolution
(Volts)
± .1
± .2
± .5
± 1
0.10235
0.2047
0.51175
1.0235
2.047
.00005
.00010
.00025
.0005
.0010
.0025
.005
± 2
± 5
5.1175
10.235
20.47
± 10
± 20
± 50
±100
.010
51.175
102.35
.025
.05
Comments • Executable when initiated: No
• Coupled Command: No
• If no input port is given, MEASure1 defaults to (@1) and MEASure2 defaults to
(@2).
• Resolution varies by range, and is constant for each range. For any given range,
specifying MINimum, MAXimum, or DEFault for resolution yields the same
result.
• It is important to note that the expected value determines the resolution and not
vice versa. The digitizer always uses 12-bit resolution and a coarser resolution
value has no effect. If, for some reason a coarser resolution is desired, specify a
larger expected value. See the previous table for expected values and resolutions.
• The MEASure command is equivalent to the command sequence:
ABORt;CONFigure;INITiate:IMMediate;FETCh?. Because of the ABORt, VME
(VXI data transfer) bus or Local bus transfers in progress will be aborted. This
includes the pipelining of data.
238 Command Reference
MEASure[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
MEASure[<chan>]:ARRay[:VOLTage][:DC]?
• The MEASure command configures the HP E1429 to do the measurement
specified by the parameters given with MEASure. All instrument settings will be
forced to their *RST values, with the following exceptions. In particular, note that
all OUTPut signals are turned off and their FEED’s are changed to reset values,
and that both the local bus (VINStrument:LBUS) and VME bus (VINS:VME) are
turned off. Be aware that these new states will still be in effect after the MEASure
command is complete. See the -- mumble which section -- for a complete list of
the reset settings for the HP E1429. The following states are set up after the reset,
and thus in most cases, will not be the *RST value for that command:
a. SENSe<n>:FUNCtion is set to "VOLTage[:DC] <port>"
b. SENSe<n>:VOLTage:DC:RANGe is set to the value implied by the
expected value given.
c. INPut[<port>]:FILTer is set to ON.
d. SENSe:SWEep:POINts and TRIGger:STARt:COUNt are set to the <size>
parameter.
• Related commands: SENSe:FUNCtion, SENSe:VOLTage:DC:RANGe,
SENSe:SWEep:POINts, SENSe:ROSCillator:SOURce), TRIGger:STARt
subsystem, ARM:STARt subsystem.
• *RST Condition: none
Example Measuring 1.5 V on the differential input of channel 1
MEAS1:ARRay:VOLT? (20),1.5,(@3)
Set up, take, and bring back 20 readings of
1.5 Volts peak on port 3 of channel 1.
MEASure[<chan>] Subsystem
Command Reference 239
Download from Www.Somanuals.com. All Manuals Search And Download.
MEMory
The MEMory subsystem controls whether memory will be non-volatile and
determines the battery charge.
Subsystem MEMory
:BATTery
[:STATe] <state>
CHARge?
Syntax
[query only]
:BATTery[:STATe]
MEMory:BATTery[:STATe] <state> enables or disables non-volatile memory. If
state ON (1) is set, then measurement data will be preserved in the
HP E1429A’s internal memory when power fails or the instrument is turned off.
Note
For data to be saved, MEMory:BATTery:STATe ON must be set before the
readings are taken (i.e. before the INITiate:IMMediate command is sent).
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
state
discrete
OFF|ON|0|1
none
Comments • Executable when initiated: No
• Coupled Command: Yes. The state is coupled to the maximum trigger count.
• *RST Condition: not affected
• Power-On condition: The factory setting for MEMory:BATTery:STATe is OFF.
The battery state does not change at power-down or power-on.
• Enabling the battery abbreviates the power-on selt-test. A complete self-test is
executed with *TST?, which erases memory.
Example Enable memory to be non-volatile
MEM:BATT ON
Turn the battery on
240 Command Reference
MEMory Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
MEMory:BATTery:CHARge?
:BATTery:CHARge?
MEMory:BATTery:CHARge? returns 1 if the battery has sufficient charge to
maintain memory, and returns 0 if the battery has insufficient charge to maintain
memory.
Comments • Executable when initiated: Yes
• Coupled Command: No
• Related commands: MEMory:BATTery:STATe
• *RST Condition: none
Example Check the battery charge
MEM:BATT:CHAR?
A 1 is returned if the battery has enough
charge
MEMory Subsystem
Command Reference 241
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut
The OUTPut subsystem controls which output path (if any) will receive the
synchronization pulses generated by the HP E1429. Sync pulses can be sent to the
"Ext 1" BNC, the VXI TTL trigger lines, the VXI ECL trigger lines, or any
combination of these three.
Subsystem OUTPut
:ECLTrg<n>
:FEED<source>
[:STATe] <mode>
:EXTernal[1]
Syntax
:FEED<source>
[:STATe] <mode>
:TTLTrg<n>
:FEED<source>
[:STATe] <mode>
:ECLTrg<n>:FEED
OUTPut:ECLTrg<n>:FEED <source> specifies the source for the
synchronization pulse which will be routed to ECLTrg0 and/or ECLTrg1. The
available sources are:
“EXTernal[1]”: Outputs the signal currently specified by the
OUTPut:EXTernal[1]:FEED command with the polarity inverted.
OUTPut:EXTernal1:STATe ON must be set for output to occur. See the
OUTPut:EXTernal[1]:FEED command for descriptions of the possible sources.
“[SENSe[1|2]]:ROSCillator”: The signal level will go high with the falling
edge of an external reference oscillator (SENSe:ROSCillator:SOURce
EXTernal), and will go high with the rising edge of all other reference oscillator
sources: SENSe:ROSCillator:SOURce (INT | ECLT<n> | CLK10). When the
output state is enabled, the signal is output as soon as this feed is selected, and
will be output continuously until the feed source is changed to some other
selection.
“TRIGger[:STARt|:SEQuence[1]]”: Outputs an approximately 25
nanosecond wide positive going pulse each time a convert pulse (TRIGger) is
sent to the A to D converter.
242 Command Reference
OUTPut Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut:ECLTrg<n>[:STATe]
Note
These pulses will also be generated when data is read out of memory from the
VINStrument:LBUS or VINStrument:VME subsystems.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
numeric
string
n
0|1
none
none
source
“EXTernal[1]”|
“[SENSe[1|2]]:ROSCillator”|
“TRIGger[:STARt|:SEQuence[1]]”
Comments • Executable when initiated: No
• Coupled Command: No
• Note that if the feed is EXTernal1, then OUTPut:EXTernal1:STATe must be ON
in addition to OUTPut:ECLTrg<n>:STATe ON for an output to occur on the
chosen trigger line.
• The source of the synchronization pulse is independent for each ECLTRG trigger
line.
• Related Commands: OUTPut:ECLTrg<n>:STATe, OUTPut:EXTernal1:FEED,
OUTPut:EXTernal1:STATe
• *RST Condition:
OUTPut:ECLTrg0:FEED “TRIGger:STARt|SEQuence1”,
OUTPut:ECLTrg1:FEED “EXTernal1”
Example Setting the ECLTrg0 sync pulse source
OUTP:ECLT0:FEED “TRIG”
Output a pulse whenever a reading is taken
:ECLTrg<n>[:STATe]
OUTPut:ECLTrg<n>[:STATe] <mode> enables or disables the routing of the
selected synchronization pulse to the specified VXIbus ECLTRG trigger line
(ECLTrg0 or ECLTrg1).
OUTPut Subsystem
Command Reference 243
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut:EXTernal[1]:FEED
Parameters
Parameter
Parameter
Type
Range of
Values
Default
Units
Name
n
numeric
boolean
0|1
none
none
mode
OFF|0|ON|1
Comments • Executable when initiated: No
• Coupled Command: Yes, this command will cause a settings conflict error if the
same ECLTRG trigger line is used in any of the following:
SENSe:ROSCillator:SOURce, ARM:STARt|SEQuence1:SOURce1,
ARM:STARt|SEQuence1:SOURce2 or TRIGger:STARt|SEQuence1:SOURce.
• Routing synchronization pulses to the ECLTRG trigger lines is independently
enabled/disabled for each line.
• Related Commands: OUTPut:ECLTrg<n>:FEED
• *RST Condition: OUTPut:ECLTrg<n >:STATe OFF
Example Enabling sync pulse output to ECLTRG0 and ECLTRG1
OUTP:ECLT0 ON
OUTP:ECLT1 ON
Enable ECLTRG0
Enable ECLTRG1
:EXTernal[1]:FEED
OUTPut:EXTernal[1]:FEED <source> specifies the source for the
synchronization pulse which will be output on the "Ext 1" BNC. The available
sources are:
“ARM[:START|:SEQuence[1]]”: Changes the normally high output level to
low as soon as an ARM event (ARM:SOURce) is processed, and before any
programmed ARM:DELay occurs. The level remains low until the ARM cycle
is completed by TRIGger:STARt:COUNt readings being taken. This signal
begins at the detection of the arm event, and does not include any programmed
delay (ARM:STARt:DELay). The expected use of this signal is to allow a
master module to detect an arm event and then arm other modules by using this
signal.
“RFTRigger”: When Ready For TRigger is selected, the normally high output
level goes low after an ARM event occurs and the ARM:DELay specified has
been met. At this point, the HP E1429 is ready to accept sample triggers. The
level stays low until all sample triggers (TRIGger:STARt:COUNt) associated
with the current arm cycle have completed.
244 Command Reference
OUTPut Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut:EXTernal[1]:FEED
“[SENSe[1|2]]:SWEep:OFFSet:POINts”: Changes the normally high output
level to low after the pre-arm count (SENSe:SWEep:OFFSet:POINts) has been
met. This would be used to determine when an arming event could occur
without getting an "Arm ignored" error due to the pre-arm count not being
satisfied. The level would not return to high again until either the next arm
cycle (if ARM:STARt:COUNt > 1) or the next INITiate command if this is the
last or only arm cycle. This source is only useful when pre-arm and post-arm
readings are being taken; it is allowed without error in post-arm measurements,
but is not of any real use.
“[SENSe[1|2]]:ROSCillator”: The reference oscillator clock is output. For all
reference oscillator sources except EXTernal, the resulting output signal is the
inverse of the actual reference (i.e. the output pulse goes low on the rising edge
of the reference oscillator). For SENSe:ROSCillator:SOURce EXTernal, the
output level goes low on the falling edge. Note that this signal begins being
output as soon as this feed is selected, and will be output continuously until the
feed source is changed to some other selection.
“TRIGger[:STARt|:SEQuence[1]]”: Outputs an approximately 25
nanosecond wide negative going pulse each time a convert pulse (TRIGger) is
sent to the A to D converter. Note that these pulses will also be generated when
data is read out of memory from the VINStrument:LBUS or
VINStrument:LBUS subsystems.
Note
These pulses will also be generated when data is read out of memory from the
VINStrument:LBUS or VINStrument:VME subsystems.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
source
string
“ARM[:STARt|:SEQuence[1]]”|
“RFTRigger”|
none
“[SENSe[1|2]]:ROSCillator”|
“[SENSe]:SWEep:OFFSet:POINts”|
“TRIGger[:STARt|:SEQuence[1]]”
OUTPut Subsystem
Command Reference 245
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut:EXTernal[1][:STATe]
Comments • Executable when initiated: No
• Coupled Command: No
• Related Commands: OUTPut:EXTernal[1]:[:STATe]
• *RST Condition: OUTPut:EXTernal:FEED “TRIGger:STARt”
Example Setting the sync pulse source
OUTP:EXT:FEED “ROSC”
Output the reference oscillator pulses
:EXTernal[1][:STATe]
OUTPut:EXTernal[1][:STATe] <mode > enables or disables output of the
synchronization pulse on the front panel "Ext 1" BNC.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mode
boolean
OFF|0|ON|1
none
Comments • Executable when initiated: No
• Coupled Command: Yes, this command will cause a settings conflict error if the
EXTernal1 BNC connector is already in use. The following commands can use
the EXTernal1 connector: ARM:STARt:SOURce1 or ARM:STARt:SOURce2
• *RST Condition: OUTPut:EXTernal[1][:STATe] OFF
Example Enabling sync pulse output to the front panel "Ext 1" BNC
OUTP:EXT ON
Enable sync pulse output on "Ext 1" BNC
:TTLTrg<n>:FEED
OUTPut:TTLTrg<n>:FEED<source > selects which event will cause a pulse or
level change on the TTL trigger line(s). Note that unlike the ECL trigger lines, there
is only a single FEED that goes to all TTL trigger lines. Therefore, it does not
matter what value of <n> is specified with this command, because all TTL trigger
lines share the same feed. The available feed sources are:
246 Command Reference
OUTPut Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut:TTLTrg<n>:FEED
“ARM[:START|:SEQuence[1]]”: Changes the normally high output level to
low as soon as an ARM event (ARM:STARt:SOURce) is processed. The level
remains low until the ARM cycle is completed by TRIGger:STARt:COUNt
readings being taken. This signal begins at the detection of the arm event, and
does not include any programmed delay (ARM:STARt:DELay). The expected
use of this signal is to allow a master module to detect an arm event and then
arm other modules by using this signal.
“READy”: Changes the normally high output level to low whenever the trigger
system is initiated. If multiple groups (ARM:STARt:COUNt > 1) of pre-arm
and post-arm measurements are being taken, the level changes back to high
while the microprocessor changes which memory segment will receive the next
burst of data, and then the level goes low again when the HP E1429 is again
initiated. If only one burst of pre-arm and post-arm readings are taken, or if all
data is post-arm, then the level changes back to high when the measurement is
complete.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
numeric
string
n
0 through 7
none
none
source
“ARM[:STARt|:SEQuence[1]]”|
“READy”
Comments • Executable when initiated: No
• Coupled Command: No
• Related Commands: OUTPut:TTLTrg<n>[:STATe]
• *RST Condition: OUTPut:TTLTrg<n>:FEED “ARM:STARt”
Example Enabling sync pulse for READy on TTLTrg5*
OUTP:TTLT5:FEED “READ”
OUTP:TTLT5 ON
Change output level when initiated
Enable TTLTRG5* line to transmit the
signal
OUTPut Subsystem
Command Reference 247
Download from Www.Somanuals.com. All Manuals Search And Download.
OUTPut:TTLTrg<n>[:STATe]
:TTLTrg<n>[:STATe]
OUTPut:TTLTrg<n>[:STATe] <mode> enables or disables routing of the
synchronization pulse to the specified VXIbus TTL trigger lines (TTLTRG0*
through TTLTRG7*).
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
n
numeric
boolean
0 through 7
OFF|0|ON|1
none
none
mode
Comments • Executable when initiated: No
• Coupled Command: Yes. This command will cause a settings conflict error if
the same TTL trigger line is used in any of the following:
ARM:STARt:SOURce1, ARM:STARt:SOURce2 or TRIG:STARt:SOURce.
• Unlike the ECLTRG trigger lines, the TTLRG trigger lines are not independent
with regard to FEED. All TTLTRG triggers enabled will be outputting the same
synchronization signal specified by the OUTPut:TTLTrg<n>:FEED command.
• Routing synchronization pulses to the TTLTRG trigger lines is independently
enabled/disabled for each line.
• *RST Condition: OUTPut:TTLTrg<n>:STATe OFF
Example Enabling sync pulse output to TTLTRG0* and TTLTRG5*
OUTP:TTLT0 ON
OUTP:TTLT5 ON
Enable TTLTRG0*
Enable TTLTRG5*
248 Command Reference
OUTPut Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
READ[<chan>]
The READ? command is used to cause a measurement and to retrieve the readings
from that measurement. It is equivalent to executing the commands: ABORt,
INITiate:IMMediate, FETCh<chan >?.
Subsystem READ[<chan >]?
Syntax
[query only]
READ?
READ[<chan >]? returns readings from the specified channel in the format
specified by the FORMat:DATA command.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
1 | 2
none
Comments • READ? or READ1? will return data from channel 1 only. READ2? will return
data from channel 2 only.
• A READ1? followed by a READ2? will take two sets of measurements since an
INITiate is done with each read. If it is desired to look at each channel separately
for readings taken during the same time period, use the INITiate and FETCh?
sequence of commands instead of READ?.
• There are a few settings which, if allowed, would cause READ? to deadlock and
never complete. TRIGger:COUNt INFinite and ARM:COUNt INFinite are not
allowed because the measurement is continuous and therefore would never finish.
Also, ARM:SOURce BUS or HOLD and TRIG:SOURce BUS or HOLD are not
allowed because the parser would be unable to accept any commands to arm or
trigger the instrument during measurement because the READ? command would
not have completed. Any of the above settings active during a READ? command
will cause an error to occur and no measurements to be taken.
• The number of readings that READ? is going to return for each channel can be
calculated as
(number of start triggers) * (pre-arm readings + post-arm readings)
The above equation may be built from the following queries:
(ARM:COUNt?) * (TRIG:COUNt?)
READ[<chan>] Subsystem
Command Reference 249
Download from Www.Somanuals.com. All Manuals Search And Download.
The number of pre-arm readings may be determined by taking the absolute value
of the query SENSe:SWEep:OFFSet:POINts? which returns either 0 (no pre-arm
readings) or a negative number which is the pre-arm count. If the measurements
were ABORted, use FETCh:COUNt? to determine the number of readings.
• Using the above method, it is also possible to calculate the end of pre-arm data
and the beginning of post-arm data when both are present in a measurement. The
data will always be returned with the specified number of pre-arm readings
followed by post-arm readings.
• The READ command is equivalent to the command sequence:
ABORt;INITiate:IMMediate;FETCh?. Because of the ABORt, VME (VXI data
transfer) bus or Local bus transfers in progress will be aborted. This includes the
pipelining of data.
• Related Commands: ABORt, FETCh?, FORMat:DATA, INITiate:IMMediate,
ARM:STARt:COUNt, TRIGger:STARt:COUNt, SENSe:SWEep:OFFSet:POINts
• *RST Condition: none
Example 1 Obtaining readings from the HP E1429
CONF1:ARR:VOLT (30),.6,DEF,(@1)
READ1?
Configure for 30 readings on channel 1,
port 1
Start measurement and get readings from
channel 1.
Example 2 Reading back PACKed data (HP BASIC program)
DIM Ndig$[1],Count$[9]
Dimension parameters for header
ASSIGN @X TO 70905;FORMAT OFF
Turn format off for array data
OUTPUT 70905;"READ1?"
Query for channel 1 measurement data
ENTER @X USING "#,X,K,K";Ndig$;Count$[1;VAL(Ndig$)]
Strip the header preceeding the data
ALLOCATE INTEGER Meas_data(1:VAL(Count$)/2)
Allocate an array to hold the data
ENTER @X;Meas_data(*)
Read in the measurement data
ENTER 70905 USING "B";Junk
Need to strip off left over line feed
250 Command Reference
READ[<chan>] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
SENSe
The SENSe subsystem is used to specify the reference oscillator frequency (if
external) and source, the input port used on a particular channel, and the pre-arm
and post-arm reading counts. Each section of the subsystem is separately
documented in the following sections of the Command Reference.
Subsystem The first level SENSe syntax tree is:
Syntax
[SENSe[<chan>]]
:FUNCtion <function >
:ROSCillator
:EXTernal
:FREQuency <frequency >
:SOURce <source >
:SWEep
:OFFSet
:POINts <count >
:POINts <count >
:VOLTage
[:DC]
:RANGe <range >
:RESolution?
[query only]
SENSe Subsystem
Command Reference 251
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:FUNCtion
The SENSe:FUNCtion commands select which of the input ports gets connected to
a particular channel. SENSe1 selects the input for the sensor on channel 1 (ports 1
or 3), and SENSe2 selects the input for the sensor on channel 2 (ports 2 or 4).
Subsystem [SENSe[<chan >]]
:FUNCtion "<function >"
Syntax
[SENSe[<chan>]]:FUNCtion
[SENSe[<chan>]]:FUNCtion "<function>" determines which input port will be
connected to the specified sensing channel. Each sense channel has two input ports;
one port is single ended and the other is differential. Odd numbered ports (1 and 3)
connect to channel 1, and the even numbered ports (2 and 4) connect to channel 2.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
1|2
none
none
function
quoted
string
"VOLTage[:DC]1" |
"VOLTage[:DC]2" |
"VOLTage[:DC]3" |
"VOLTage[:DC]4"
Comments • Executable when initiated: No
• Coupled Command: Yes. This command is coupled to
SENSe:VOLTage:DC:RANGe, ARM:STARt:LEVel:NEGative, and
ARM:STARt:LEVel:POSitive.
• Function choices ending in 1 and 3 ("VOLTage:DC1" or "VOLTage:DC3") are
the only choices for channel 1 (SENSe1:FUNCtion). Function choices ending in 2
and 4 ("VOLTage:DC2" or "VOLTage:DC4") are the only legal choices for
channel 2 (SENSe2:FUNCtion). Specifying an illegal function choice on a sense
channel will result in error -151, "Invalid string data".
• Related Commands: SENSe:VOLTage:DC:RANGe,
ARM:STARt:LEVel:NEGative, ARM:STARt:LEVel:POSitive
252 Command Reference
[SENSe[<chan>]]:FUNCtion Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:FUNCtion [SENSe[<chan>]]:FUNCtion
• *RST Condition: SENSe1:FUNCtion "VOLT1", SENSe2:FUNCtion "VOLT2"
Example Selecting the single ended input on channel 2
SENS2:FUNC “VOLT4”
Connect port 4 to channel 2
[SENSe[<chan>]]:FUNCtion Subsystem
Command Reference 253
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:ROSCillator
The SENSe:ROSCillator subsystem controls the reference oscillator source and
frequency used to generate sample rates for taking measurements.
Subsystem [SENSe[<chan>]]
:ROSCillator
Syntax
:EXTernal
:FREQuency <frequency>
:SOURce <source>
Since the triggering and timebase circuits of the HP E1429 are shared between both
sensing channels, the settings for [SENSe[<chan>]]:ROSCillator are the same for
both values of chan (1 and 2). Setting SENSe1:ROSCillator values will also set
SENSe2:ROSCillator values and vice versa.
:EXTernal:FREQuency
[SENSe[<chan>]]:ROSCillator:EXTernal:FREQuency <frequency> indicates to
the HP E1429 the frequency of an external reference oscillator signal. The
SENSe:FREQuency subsystem uses this value to generate the sample rate when
SENSe:ROSCillator:SOURce is set to EXTernal, ECLTrg0, or ECLTrg1.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
numeric
1|2
none
Hz
frequency
10 KHz through 20 MHz
MINimum|MAXimum
MINimum selects 10 KHz; MAXimum selects 20 MHz.
Comments • Executable when initiated: No
• Coupled command: Yes. This command is coupled to the commands in the
TRIGger subsystem.
• Indicating an incorrect frequency for an external reference oscillator will cause
the sample rate and trigger delay to be incorrect.
• The amplitude of the external reference signal should be a TTL level:
low = 0.0V to 0.8V, high = 2.5V to 5.0V.
254 Command Reference
[SENSe[<chan>]]:ROSCillator Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:ROSCillator:SOURce
• Using MINimum or MAXimum to specify this frequency is not recommended
unless the external reference frequency is 20 kHz (MINimum) or 20 MHz
(MAXimum). In order for the digitizer processor to produce the intended sample
rates, the exact frequency value must be specified.
• Related Commands: SENSe:ROSCillator:SOURce, TRIGger:STARt:TIMer,
ARM:STARt:DELay
• *RST Condition: SENSe:ROSCillator:EXTernal:FREQuency 20 MHZ
Example Specifying the external reference oscillator frequency
SENS:ROSC:EXT:FREQ 5 MHZ
External oscillator is 5 MHz
:SOURce
[SENSe[<chan>]]:ROSCillator:SOURce <source> selects the reference oscillator
source. The available sources are:
• CLK10: The VXIbus CLK10 (10 MHz) line.
• ECLTrg0: The VXIbus ECLTRG0 line.
• ECLTrg1: The VXIbus ECLTRG1 line.
• EXTernal2: The HP E1429’s front panel "Ext 2" BNC.
• INTernal: The internal 20 MHz oscillator.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
discrete
1|2
none
none
source
CLK10|EXTernal2|
ECLTrg0|ECLTrg1
INTernal
Comments • Executable when initiated: No
• Coupled command: Yes. This command is coupled to the TRIGger subsystem,
the OUTPut subsystem, and ARM:STARt:DELay.
• The reference oscillator is used to generate the sample rate and trigger delay.
[SENSe[<chan>]]:ROSCillator Subsystem
Command Reference 255
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:ROSCillator:SOURce
• Use SENSe:ROSCillator:EXTernal:FREQuency to indicate the frequency of an
external reference oscillator.
• Related Commands: SENSe:ROSCillator:EXTernal:FREQuency,
ARM:STARt:DELay, TRIGger:STARt:TIMer[1|2]
• *RST Condition: SENSe:ROSCillator:SOURce INTernal
Example Setting the Reference Oscillator Source
SENS:ROSC:SOUR CLK10
Select VXI CLK10 line as oscillator source
256 Command Reference
[SENSe[<chan>]]:ROSCillator Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan >]]:SWEep
The SENSe:SWEep commands select how many readings will be taken during a
measurement, and how many of the readings occur before (pre-arm) and after
(post-arm) the arm event.
Since the triggering and timebase circuits of the HP E1429 are shared between both
sensing channels, the settings for [SENSe[<chan>]]:SWEep are the same for both
values of chan (1 and 2). Setting SENSe1:SWEep values will also set
SENSe2:SWEep values and vice versa.
Memory Usage Measurements which specify multiple bursts (ARM:STARt:COUNt > 1) of both
pre-arm and post-arm readings (SENSe:SWEep:OFFSet:POINts ≤ -3 with
SENSe:SWEep:POINts > 9) cause memory to be partitioned into segments to hold
each burst of readings. The HP E1429 will automatically allocate
ARM:STARt:COUNt memory partitions large enough to hold the specified number
of pre-arm and post-arm readings. Since a large number of pre-arm readings may
occur before the arm event causes post-arm readings to be taken, each memory
partition is treated like a circular buffer where pre-arm readings may "wrap" or
overwrite each other multiple times before the arm event occurs and the burst of
readings completes with the post-arm readings being taken. After all post-arm
readings have been taken in a partition, if ARM:STARt:COUNt is not yet satisfied,
the instrument directs the next burst of readings into the next memory partition.
Note
There is a time window of typically 630 µs where pre-arm readings will be lost
while the HP E1429 arranges for readings to be directed into the next memory
partition. If an ARM event (ARM:STARt:SOURce) or TRIGger event (sample)
occurs during this time window, it will be ignored with no error reported.
[SENSe[<chan >]]:SWEep Subsystem
Command Reference 257
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan >]]:SWEep:OFFSet:POINts <count>
Number of
Memory Segments
Maximum Number
of Readings
1
2
524,288
262,144
131,072
65,536
32,768
16,384
8,192
4
8
16
32
64
128
4,096
NOTE: If the non-volatile mode of memory is enabled then the maximum
number of readings for each memory partition decreases by four. These four
memory locations in each segment hold the data necessary to recover all
readings after a power failure.
Subsystem [SENSe[<chan>]]
:SWEep
:OFFSet
Syntax
:POINts <count >
:POINts <count >
:OFFSet:POINts <count>
[SENSe[<chan>]]:SWEep:OFFSet:POINts <count> specifies how many pre-arm
readings will be taken. When pre-arm readings are not 0, then there must always be
at least 7 post-arm readings taken. Note that count is specified as a negative number.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
numeric
1|2
none
none
count
-65535 to -3 | 0 |
MINimum | MAXimum
MINimum and MAXimum vary depending on
ARM:STARt:COUNt and SENSe:SWEep:POINts.
258 Command Reference
[SENSe[<chan >]]:SWEep Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan >]]:SWEep:OFFSet:POINts <count>
Comments • Executable when initiated: No
• Coupled Command: Yes. This command is coupled to
TRIGger:STARt:COUNt, SENSe:SWEep:POINts, ARM:STARt:COUNt,
ARM:STARt:DELay, and MEMory:BATTery:STATe.
• Readings which are taken before the arm event occurs are called "pre-arm"
readings. Readings taken after the arm event are called "post-arm" readings.
• The INITiate command "triggers" pre-arm readings. If any arming events occur
before the pre-arm count is satisfied, the arms are ignored and an error occurs.
When the pre-arm count is satisfied and a legal arm event occurs, post-arm
sampling begins. The remaining number of TRIGger:STARt:COUNt
(SENSe:SWEep:POINts) readings are then taken.
• If pre-arm readings are not 0, then there must be at least 7 post-arm readings.
Therefore, (SENSe:SWEep:POINts + SENSe:SWEep:OFFSet:POINts) must be
≥ 7. (Note that in the previous equation, :OFFSet:POINts will be a negative
number).
• Pre-arm reading count values between -3 and 0 will be rounded to -3 or 0,
whichever is closer to the specified count.
• If an ABORt or power failure occurs during a sequence of measurements, the
digitizer will return (FETCh?) or recover (FETCh:RECover?) between one and
TRIGger:STARt:COUNt number of readings. Because the digitizer processor
does not know when the arm occurs, the readings returned may be pre-arm only,
post-arm only, or a combination of both. If less than TRIGger:STARt:COUNt
readings have been taken, then that number of readings are returned. If greater
than TRIGger:STARt:COUNt readings have been taken, then
TRIGger:STARt:COUNt readings are returned.
• Related Commands: SENSe:SWEep:POINts, TRIGger:STARt:COUNt,
ARM:STARt:COUNt
• *RST Condition: SENSe:SWEep:OFFSet:POINts 0
Example Setting 50 pre-arm readings on channel 1, input port 3
CONF1:ARR:VOLT (100),5,(@3)
Configure channel 1 for 100 readings, 5V
range
SENS1:SWE:OFFS:POIN -50
Of the 100 total readings, set 50 to be
pre-arm
[SENSe[<chan >]]:SWEep Subsystem
Command Reference 259
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan >]]:SWEep:POINts <count>
:POINts <count>
[SENSe[<chan>]]:SWEep:POINts <count> specifies how many readings will be
taken during each ARM:STARt:COUNt cycle of the trigger system. This command
is the same as (and is coupled to) TRIGger:STARt:COUNt. Changing either
changes the value of the other as well.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
numeric
1|2
none
none
count
1 | 7 through 16,777,215 |
MINimum|MAXimum|
9.9E+37|INFinity
MINimum selects 1 reading.
Memory, post-arm readings only: MAXimum = 524,288 / ARM:STARt:COUNt
Memory battery enabled: MAXimum = (524,288 / ARM:STARt:COUNt) - 4
A/D converter to VME (VXI data transfer) bus: MAXimum = 16,777,215
A/D converter to Local bus: MAXimum = 16,777,215
Digitizer memory, pre- and post-arm readings: see below
ARM:STARt:COUNt
Number of
Memory
Maximum Readings
(TRIGger:STARt:COUNt)
Segments
1
1
2
524,288
262,144
131,072
65,536
32,768
16,384
8,192
2
3 - 4
4
5 - 8
8
9 - 16
17 - 32
33 - 64
65 - 128
16
32
64
128
4096
NOTE: If the non-volatile mode of memory is enabled
(MEMory:BATTery:STATe ON), then all of the maximum reading counts
shown above decrease by four. These four memory locations in each
segment hold the data necessary to recover all readings after a power
failure.
260 Command Reference
[SENSe[<chan >]]:SWEep Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan >]]:SWEep:POINts <count>
Comments • Executable when initiated: No
• Coupled Command: Yes. This command is coupled to TRIGger:STARt:COUNt,
SENSe:SWEep:OFFSet:POINts, ARM:STARt:COUNt, and
MEMory:BATTery:STATe.
• SENSe:SWEep:POINts values between 1 and 7 will be rounded to 1 or 7,
whichever is closer to the specified count.
• If the count is set to INFinity or 9.9E+37, the ABORt command must be used to
return the trigger system to the idle state before any readings taken may be read
from memory. Due to this, the READ? command can not be used when
SENSe:SWEep:POINts is set to INFinity; attempts to do so will result in error
-214, "Trigger deadlock".
• The count is the total of both pre-arm readings. The number of pre-arm readings
is specified by the SENSe:SWEep:OFFSet:POINts command as a negative count.
If SENSe:SWEep:OFFSet:POINts is 0, then all readings will be post-arm.
• Related Commands: ABORt, INITiate:IMMediate, ARM subsystem,
SENSe:SWEep:OFFSet:POINts, TRIGger:STARt:COUNt.
• *RST Condition: SENSe1:SWEep:POINts 1
Example Setting 500 readings.
SENS1:SWE:POIN 500
set reading count
[SENSe[<chan >]]:SWEep Subsystem
Command Reference 261
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:VOLTage[:DC]
The SENSe:VOLTage[:DC] commands select the voltage range, and report back the
resolution associated with the selected range.
Subsystem [SENSe[<chan >]]
:VOLTage
Syntax
[:DC]
:RANGe <range >
:RESolution?
[query only]
:RANGe
[SENSe[<chan >]]:VOLTage[:DC]:RANGe <range > selects the range for
voltage measurement on the specified channel.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
numeric
1|2
none
volts
range
-102.30 to 102.35 |
MINimum | MAXimum
The various range settings are given in the following table, along with the input
ports supported on each range, and the measurement range spanned by the given
range.
262 Command Reference
[SENSe[<chan>]]:VOLTage[:DC] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:VOLTage[:DC] :RANGe
Range
Setting
(V)
Measurement
Range (V)
Resolution
(Volts)
Allowable
Ports
1,2,3,4
1,2,3,4
1,2,3,4
1,2,3,4
3,4
0.10235
0.2047
0.51175
1.0235
2.047
-.10230 to .10235
-.2046 to .2047
.00005
.00010
.00025
.0005
.0010
.0025
.005
-.5115 to .51175
-1.0230 to 1.0235
-2.046 to 2.047
5.1175
10.235
20.470
51.175
102.35
-5.115 to 5.1175
-10.230 to 10.235
-20.460 to 20.470
-51.150 to 51.175
-102.30 to 102.35
3,4
3,4
.010
3,4
.025
3,4
.05
3,4
Comments • Executable when initiated: Yes
• Coupled Command: Yes. The command is coupled to
ARM[:STARt]:LEVel[<chan >]:NEGative, ARM[:STARt]:LEVel[<chan
>]:POSitive, and SENSe[<chan >]:FUNCtion.
• Though the range setting may be changed while the HP E1429 is taking readings
(INITiated), it will take at least 3 ms for the relay to settle. Also, it is up to the
user to determine where in the data archive the new range setting was switched in,
as the HP E1429 does not stamp the data in any way. If the data format is not
PACKed, then the HP E1429 will use the resolution associated with the final
range setting to convert all readings into voltage values when FETCh? is executed.
• MAXimum values for the range setting will depend on the current
SENSe:FUNCtion setting for that channel. For single-ended ports (1 and 2),
MAXimum is 1.0235, and for differential ports (3 and 4) MAXimum is 102.35.
• *RST Condition: SENSe1:VOLTage:DC:RANGe 1.0235, and
SENSe2:VOLTage:DC:RANGe 1.0235
[SENSe[<chan>]]:VOLTage[:DC] Subsystem
Command Reference 263
Download from Www.Somanuals.com. All Manuals Search And Download.
[SENSe[<chan>]]:VOLTage[:DC] :RESolution?
Example Selecting the 102.35 Volt range on channel 2
SENS2:FUNC “VOLT4”
Connect differential port 4 to channel 2
SENS2:VOLT:RANG 75
Select 102.35 volt range. Any number
greater than 51.175 forces the next highest
(102.35 V) range.
:RESolution?
[SENSe[<chan >]]:VOLTage[:DC]:RESolution? returns the resolution associated
with the current SENS:VOLT:RANGe setting, on the specified channel.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
chan
numeric
1|2
none
Comments • Executable when initiated: Yes
• Coupled Command: No
• *RST Condition: None
Example Querying the current resolution on channel 2
SENS2:VOLT:RES?
Query channel 2 for resolution setting
264 Command Reference
[SENSe[<chan>]]:VOLTage[:DC] Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
STATus
The STATus subsystem controls the SCPI-defined Operation and Questionable
Signal status registers. Each is comprised of a condition register, an event register,
an enable mask, and negative and positive transition filters.
Each status register works as follows: when a condition occurs, the appropriate bit
in the condition register is set or cleared. If the the corresponding transition filter is
enabled for that bit, the same bit is set in the associated event register. The contents
of the event register and the enable mask are logically ANDed bit-for-bit; if any bit
of the result is set, the summary bit for that register is set in the status byte. The
status byte summary bit for the Operation status register is bit 7; for the
Questionable Signal status register, bit 3.
Operation Status Register
Only bits 0 (CALibrating), 6 (Waiting for ARM), 8 (BUSY), and 9 (READy) are
defined for the HP E1429. All other bits are always zero.
Bit 0 - CALibrating: Set (1) during the execution of the CALibration:ZERO,
CALibration:GAIN, or CALibration:DELay command. Cleared (0) otherwise.
Bit 6 - Waiting for ARM: Set (1) when waiting for a start arm. Cleared (0)
when a start arm is accepted or when measurement is aborted.
Bit 8 - BUSY: Set (1) by the INITiate:IMMediate,
VINStrument:CONFigure:VME:MEMory:INITiate, or
VINStrument:CONFigure:LBUS:MEMory:INITiate command. Cleared (0)
when the measurement is complete or is aborted, returning the digitizer to the
idle state.
Bit 9 - READy: Set(1) when the digitizer memory segment is ready for data
storage. Cleared (0) while the digitizer is partitioning the next memory segment.
STATus Subsystem
Command Reference 265
Download from Www.Somanuals.com. All Manuals Search And Download.
STATus:OPC:INITiate
Questionable Signal Status Register
Only bits 0 (VOLTage), 2 (TIME), and 8 (CALibration) are defined. All other bits
are always 0.
Bit 0 - VOLTage: Set (1) if an overload voltage is detected during a
measurement. Cleared (0) otherwise.
Bit 2 -TIME: Set (1) if the divide-by-n of the reference oscillator source can not
generate a sample rate that is within 1% of the rate specified by TRIG:TIMer1
or TRIG:TIMer2. Cleared (0) otherwise.
Bit 8 - CALibration: Set (1) if an error has been detected in the non-volatile
calibration memory. Cleared (0) otherwise.
Subsystem STATus
:OPC
:INITiate <state >
Syntax
:OPERation|:QUEStionable
:CONDition?
[query only]
[query only]
:ENABle <unmask >
[:EVENt]?
:NTRansition <unmask >
:PTRansition <unmask >
:PRESet
[no query]
:OPC:INITiate
STATus:OPC:INITiate <state > controls whether the *OPC, *OPC?, and *WAI
commands will complete immediately or whether they will wait for all
measurements to complete. With STATe OFF set, these commands will complete
immediately, which indicates that the parser is idle and ready for the next command,
even though the HP E1429 may still be in the INITiated state and taking a
measurement. With STATe ON set, these commands will wait for the Pending
Operation Flag set true by INITiate:IMMediate,
VINStrument:CONFigure:VME:MEMory:INITiate, or
VINStrument:CONFigure:LBUS:MEMory:INITiate to return false, indicating that
the trigger system is in the idle state and that all measurements have completed or
been aborted by the ABORt or *RST commands.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
state
boolean
OFF|0|ON|1
none
266 Command Reference
STATus Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
STATus:OPERation|:QUEStionable:CONDition?
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: *OPC, *OPC?, *RST, *WAI, ABORt, INITiate:IMMediate,
VINStrument:CONFigure:VME:MEMory:INITiate,
VINStrument:CONFigure:LBUS:MEMory:INITiate, STATus:PRESet
• *RST Condition: unaffected
• Power-on Condition: STATus:OPC:INITiate ON
Example Setting immediate completion mode
STAT:OPC:INIT OFF
Complete immediately for *OPC, etc.
:OPERation|:QUEStionable:CONDition?
STATus:OPERation|:QUEStionable:CONDition? returns the contents of the
appropriate condition register. Reading the register does not affect its contents.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: STATus subsystem, *SRE, *STB?
• *RST Condition: all bits of both condition registers are cleared as a result of the
state present after *RST, except for the CALibration bit in the Questionable
Signal register, which will remain set if the error condition persists.
Example Querying the Operation condition register
STAT:OPER:COND?
Query Operation condition register
:OPERation|:QUEStionable:ENABle
STATus:OPERation|:QUEStionable:ENABle <unmask > specifies which bits of
the associated event register are included in its summary bit. The summary bit is the
bit-for-bit logical AND of the event register and the unmasked bit(s).
STATus Subsystem
Command Reference 267
Download from Www.Somanuals.com. All Manuals Search And Download.
STATus:OPERation|:QUEStionable[:EVENt]?
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
unmask
numeric or
non-decimal
numeric
0 through +32767
none
The non-decimal numeric forms are the #H, #Q, or #B formats specified by
IEEE-488.2.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: STATus subsystem, *SRE, *STB?
• *RST Condition: unaffected
• Power-on Condition: STATUS:OPERation|QUEStionable:ENABLE 0
Example Setting the Operation register enable mask
STAT:OPER:ENAB #H0040
Enable summary on Waiting for ARM bit
:OPERation|:QUEStionable[:EVENt]?
STATus:OPERation|:QUEStionable[:EVENt]? returns the contents of the
appropriate event register. Reading the register clears it to 0.
Comments • Both event registers are also cleared to 0 by the *CLS common command.
• Executable when initiated: Yes
• Coupled command: No
• Related commands: STATus subsystem, *SRE, *STB?
• *RST Condition: unaffected
• Power-on Condition: Both event registers are cleared to 0.
Example Querying the Operation event register
STAT:OPER?
Query Operation event register
268 Command Reference
STATus Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
STATus:OPERation|:QUEStionable:NTRansition
:OPERation|:QUEStionable:NTRansition
STATus:OPERation|:QUEStionable:NTRansition <unmask > sets the negative
transition mask. For each bit unmasked, a 1-to-0 transition of that bit in the
associated condition register will set the same bit in the associated event register.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
unmask
numeric or
non-decimal
numeric
0 through +32767
none
The non-decimal numeric forms are the #H, #Q, or #B formats specified by
IEEE-488.2.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: STATus subsystem, *SRE, *STB?
• *RST Condition: unaffected
• Power-on Condition: STATUS:OPERation|QUEStionable:NTRansition 0
Example Setting the Operation register negative transition mask
STAT:OPER:NTR 64
Set event bit when wait-for-arm state is
entered
:OPERation|:QUEStionable:PTRansition
STATus:OPERation|:QUEStionable:PTRansition <unmask > sets the positive
transition mask. For each bit unmasked, a 0-to-1 transition of that bit in the
associated condition register will set the same bit in the associated event register.
STATus Subsystem
Command Reference 269
Download from Www.Somanuals.com. All Manuals Search And Download.
STATus:PRESet
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
unmask
numeric or
non-decimal
numeric
0 through +32767
none
The non-decimal numeric forms are the #H, #Q, or #B formats specified by
IEEE-488.2.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: STATus subsystem, *SRE, *STB?
• *RST Condition: unaffected
• Power-on Condition: STATUS:OPERation|QUEStionable:PTRansition 32767
Example Setting the Operation register positive transition mask
STAT:OPER:PTR 64
Set event bit when wait-for-arm state is
entered
:PRESet
STATus:PRESet initializes the enable registers and transition masks for the
Operation and Questionable Signal status registers and sets STATus:OPC:INITiate
ON. For both status registers, the enable registers are set to 0, the negative
transition masks are set to 0, and the positive transition masks are set to 32767.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: STATus subsystem, *SRE, *STB?
• *RST Condition: none
Example Presetting the STATus subsystem
STAT:PRES
Preset STATus subsystem
270 Command Reference
STATus Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
SYSTem
The SYSTem command subsystem returns error messages and the SCPI version
number to which the HP E1429A/B complies.
Subsystem SYSTem
:ERRor?
:VERSion?
[query only]
[query only]
Syntax
ERRor?
SYSTem:ERROR? returns the error messages in the error queue. See Appendix B
for a listing of the digitizer error numbers and messages.
Comments • As errors are detected, they are placed in the error queue. The queue is first-in,
first out, meaning that if several error messages are waiting in the queue,
SYSTem:ERRor? returns the oldest unread error message.
• The error queue can hold 30 error messages. If more than 30 messages are
generated without being read, the last error message in the queue is replaced with
error -350,"Too many errors". No additional messages are placed into the queue
until SYSTem:ERRor? reads some messages or until the queue is cleared using
the *CLS (clear status) command.
• When the error queue is empty, SYSTem:ERRor? returns +0,"No error".
• *RST Condition: unaffected
• Power-On Condition: no errors are in the error queue
Example Reading the error queue
SYST:ERR?
Query the error queue
:VERSion?
SYSTem:VERSion? returns the SCPI version number to which the
HP E1429A/B complies: "1992.0".
Example Querying the SCPI revision
SYST:VERS?
• *RST Condition: none
Query SCPI revision
SYSTem Subsystem
Command Reference 271
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger
The TRIGger command subsystem controls the fourth state in a four state
measurement process. The four states which occur during a successful reading are
idle, initiated, wait-for-arm, and wait-for-trigger. The last two states have event
detection associated with them which control when they exit the current state.
These four states are more fully described as follows:
• Idle -- In this state, the instrument is not measuring. This is the state where
setting changes are done via commands to the instrument. This state is exited
when an INITiate command is received. This state is returned to after a reset,
successful completion of measurement, or abort of measurement.
• Initiated -- Once the instrument is initiated with the INITiate command, it passes
through this state, and continues down to the wait-for-arm state if
ARM:STARt:COUNT is not yet satisfied.
• Wait-for-arm -- In this state, the instrument waits for the specified ARM event to
occur before exiting to the wait-for-trigger state to make a measurment.
• Wait-for-trigger -- In this state, the instrument waits for the specified trigger event
to occur, and when it occurs, a reading is taken. After a reading is taken, the
cumulative number of readings taken thus far is compared to the count specified
in TRIGger:STARt:COUNt or SENSe:SWEep:POINts. When the count is met,
the state is exited, otherwise, the instrument waits for another trigger and takes
another reading. Upon exit from this state, the instrument goes to the initiated
state and checks to see whether or not ARM:STARt:COUNt is satisfied.
The following controls can be specified from the TRIGger:STARt subsystem:
• The number of triggers (readings) to occur before the digitizer returns to the
initiated state (TRIGger:STARt:COUNt).
• The source of the trigger (TRIGger:STARt:SOURce).
• The sample time for each reading (TRIGger:STARt:TIMer1) and
(TRIGger:STARt:TIMer2).
Memory Usage Measurements which specify multiple bursts (ARM:STARt:COUNt > 1) of both
pre-arm and post-arm readings (SENSe:SWEep:OFFSet:POINts ≤ -3 with
SENSe:SWEep:POINts > 9) cause memory to be partitioned into segments to hold
each burst of readings. The HP E1429 will automatically allocate
ARM:STARt:COUNt memory partitions large enough to hold the specified number
of pre-arm and post-arm readings. Since a large number of pre-arm readings may
occur before the arm event causes post-arm readings to be taken, each memory
partition is treated like a circular buffer where pre-arm readings may "wrap" or
272 Command Reference
TRIGger Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
overwrite each other multiple times times before the arm event occurs and the
current cycle of readings completes with the post-arm readings being taken. After
all post-arm readings have been taken in a partition, if ARM:STARt:COUNt is not
yet satisfied, the instrument directs the next burst of readings into the next memory
partition. There is a time window of typically 630 µs between bursts, where no
readings will be taken, while the HP E1429 arranges for readings to be directed into
the next memory partition. If an ARM event (ARM:STARt:SOURce) occurs during
this time window, it will be ignored with no error reported.
The number of partitions allowed is a function of ARM:STARt:COUNt, and is
shown in the table below along with the maximum number of readings
(TRIGger:STARt:COUNt) allowed in each partition.
ARM:STARt:COUNt
Number of
Memory
Maximum Readings
(TRIGger:STARt:COUNt)
Segments
1
1
2
524,288
262,144
131,072
65,536
32,768
16,384
8,192
2
3 - 4
4
5 - 8
8
9 - 16
17 - 32
33 - 64
65 - 128
16
32
64
128
4,096
NOTE: If the non-volatile mode of memory is enabled
(MEMory:BATTery:STATe ON), then all of the maximum reading counts
shown above decrease by four. These four memory locations in each
segment hold the data necessary to recover all readings after a power
failure.
Subsystem TRIGger
[:STARt|:SEQuence[1]]
:COUNt <number >
[:IMMediate]
Syntax
[no query]
:SOURce <source >
:TIMer1 <period >
:TIMer2 <period >
TRIGger Subsystem
Command Reference 273
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt]:COUNt
[:STARt]:COUNt
TRIGger[:STARt]:COUNt <number> specifies the total number of readings
which will be taken during each ARM:STARt:COUNt cycle of a measurement. This
command is identical to (and coupled to) SENSe:SWEep:POINts; setting either will
set both to the same count.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
chan
numeric
numeric
1|2
none
none
number
1 | 7 through 16,777,215 |
MINimum|MAXimum|
9.9E+37|INFinity
MINimum selects 1 reading.
Memory, post-arm readings only: MAXimum = 524,288 / ARM:STARt:COUNt
Memory battery enabled: MAXimum = (524,288 / ARM:STARt:COUNt) - 4
A/D converter to VME (VXI data transfer) bus: MAXimum = 16,777,215
A/D converter to Local bus: MAXimum = 16,777,215
Digitizer memory, pre- and post-arm readings: see below
ARM:STARt:COUNt
Number of
Memory
Maximum Readings
(TRIGger:STARt:COUNt)
Segments
1
1
2
524,288
262,144
131,072
65,536
32,768
16,384
8,192
2
3 - 4
4
5 - 8
8
9 - 16
17 - 32
33 - 64
65 - 128
16
32
64
128
4096
NOTE: If the non-volatile mode of memory is enabled
(MEMory:BATTery:STATe ON), then all of the maximum reading counts
shown above decrease by four. These four memory locations in each
segment hold the data necessary to recover all readings after a power
failure.
274 Command Reference
TRIGger Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt]:COUNt
Comments • Executable when initiated: No
• Coupled Command: This command is coupled to SENSe:SWEep:POINts,
SENSe:SWEep:OFFSet:POINts, ARM:STARt:COUNt, and
MEMory:BATTery:STATe.
• TRIGger:STARt:COUNt values between 1 and 7 will be rounded to 1 or 7,
whichever is closer to the specified count.
• If the count is set to INFinity or 9.9E+37, the ABORt command must be used to
return the trigger system to the idle state before any readings taken may be read
from memory. Due to this, the READ? command can not be used when
TRIGger:STARt:COUNt is set to INFinity, attempts to do so will result in error
-214, "Trigger deadlock".
• Multiple bursts of a measurement process involving both pre-arm and post-arm
readings (ARM:STARt:COUNt > 1 and SENSe:SWEep:OFFSet:POINts < 0) is a
special case which causes memory partitioning to occur. This partitioning of
memory is handled automatically by the instrument, and is a function of
ARM:STARt:COUNt and TRIGger:STARt:COUNt (SENSe:SWEep:POINts).
TRIGger:STARt:COUNt is satisfied first, and then ARM:STARt:COUNt is
attempted.
• Related Commands: ABORt, INITiate:IMMediate, ARM subsystem,
SENSe:SWEep:POINts, SENSe:SWEep:OFFSet:POINts
• *RST Condition: TRIGger:STARt:COUNt 1
Example Taking 20 readings (8 pre-arm and 12 post-arm)
ARM:COUNt 1
ARM the reading trigger once
Take 20 readings each arm cycle
Set 8 readings as pre-arm
TRIG:COUN 20
SENS:SWE:OFFS:POIN -8
TRIGger Subsystem
Command Reference 275
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt][:IMMediate]
[:STARt][:IMMediate]
TRIGger[:STARt][:IMMediate] will cause a reading to be taken immediately
when the digitizer is in the wait-for-trigger state (ARM event has occurred),
regardless of the selected trigger source. The number of triggers (set by
TRIGger:STARt:COUNt) will be decremented by one. The selected trigger source
remains unchanged.
There is no query form of this command.
Comments • Executable when initiated: Yes
• Coupled Command: No
• If the trigger system is in the idle or wait-for-arm state,
TRIGger:STARt:IMMediate will cause error -211,"Trigger ignored" to be
generated, and no action will be taken.
• Related Commands: INITiate:IMMediate
• *RST Condition: none
Example Forcing a measurement to occur
ARM:SOUR IMM
Arm trigger immediately after INIT
command received
TRIG:SOUR HOLD
INIT
Set trigger source to hold
Initiate trigger system, trigger will go to
hold
TRIG
Override the hold and take a reading
[:STARt]:SOURce
TRIGger[:STARt]:SOURce <source > configures the trigger system to respond to
the specified source for taking readings.
The available sources are:
• BUS: The Group Execute Trigger (GET) HP-IB command or the IEEE-488.2
*TRG common command.
• ECLTrg0 and ECLTrg1: The VXIbus ECL trigger lines.
• DECLtrg: Samples are taken at a dual rate, using the VXIbus ECLTRG0 trigger
line to pace pre-arm readings, and the ECLTRG1 trigger line to pace the post-arm
readings.
276 Command Reference
TRIGger Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt]:SOURce
• DEXTernal: Samples are taken at a dual rate, using the signal on the Ext 1 input
to pace pre-arm readings, and the signal on the Ext 2 input to pace the post-arm
readings.
• DTIMer: Samples are taken at a dual rate, using the TRIGger:STARt:TIMer1
rate to pace pre-arm readings, and the TRIGger:STARt:TIMer2 rate to pace the
post-arm readings.
• TTLTrg0 through TTLTrg7: The VXIbus TTL trigger lines.
• EXTernal1: The HP E1429’s front panel "Ext 1" BNC connector.
• EXTernal2: The HP E1429’s front panel "Ext 2" BNC connector.
• HOLD: Suspend triggering. The TRIGger:STARt:IMMediate command must be
used to trigger a reading.
• TIMer: Use the period specified by TRIGger:STARt:TIMer1 as the sample rate.
• VME: This source is used to either trigger readings from VME A24 register
accesses, or to read measurement data out of the HP E1429 internal memory by
reading a VME A24 address. This allows for faster data transfer rates over the
VME bus than would be possible over HPIB. For more information on how to
transfer data out over the VME bus using this command, see the
VINStrument:VME commands.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
source
discrete
BUS|HOLD|
DECLtrg|DEXTernal
|DTIMer|
none
ECLTrg0|ECLTrg1|
IMMediate|
EXTernal1|EXTernal2|
TIMer|
TTLTrg0 to TTLTrg7|
VME
Comments • Executable when initiated: No
• Coupled Command: This command is coupled to the TRIGger, OUTPut, and
SENSe subsystems.
TRIGger Subsystem
Command Reference 277
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt]:TIMer[1]
• The active edges for the various sources are as follows:
ECLtrg0, ECLtrg1 and DECLtrg active edge is the rising edge.
TTLTrg<n> and DTTLtrg active edge is the falling edge.
EXTernal1, EXTernal2, and DEXTernal active edge is the falling edge.
• When using DECLtrg, DEXTernal, or DTIMer, at least one pre-arm pulse must
occur after the arming signal has been received. This means that after the pre-arm
count is reached and the arm is accepted, there must be another pre-arm pulse
which arrives ([reference period * 3] + 60 ns) after the arming signal. This would
typically be 210 ns if SENSe:ROSCillator:SOURce is INTernal. The digitizer
does not sample on the additional pulse.
• When TIMer is the source, the desired period must be specified by the
TRIGger:STARt:TIMer1 and/or the TRIGger:STARt:TIMer2 commands. See
these commands for a table of allowable values.
• Related Commands: SENSe:ROSCillator:SOURce, ARM:STARt:SOURce,
OUTPut subsystem, TRIGger:STARt:TIMer1, TRIGger:STARt:TIMer2,
SENSe:SWEep:POINts
• *RST Condition: TRIGger:STARt:SOURce TIMer
Example Setting the start trigger source
TRIG:SOUR ECLT0
A reading will be taken with each ECLT0
pulse
[:STARt]:TIMer[1]
TRIGger[:STARt]:TIMer[1] <period > specifies the time period between each
sampling event. The time period must be a multiple of the reference oscillator
period, with allowable multiples being 1,2,4,10,20,40,........1E8, 2E8, 4E8. See the
table below for the exact periods available with the internal 20 MHz reference.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
period
numeric
reference period to
reference period * 4E8 |
MINimum | MAXimum
seconds
278 Command Reference
TRIGger Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt]:TIMer[1]
Comments • Executable when initiated: No
• Coupled Command: This command is coupled to the TRIGger:STARt:TIMer2
command and TRIGger:STARt:SOURce command as noted below:
Unless TRIGger:STARt:SOURce is DTIMer, the settings of
TRIGger:STARt:TIMer1 and TRIGger:STARt:TIMer2 are not coupled, and
changing one will not affect the setting of the other.
If TRIGger:STARt:SOURce is DTIM, then both TRIGger:STARt:TIMer1
and TRIGger:STARt:TIMer2 are used, and there is a coupling between the
two settings. The relationship between the two settings is such that one of
these two values must be exactly one reference oscillator period and the
other must be a multiple (greater than 1.0) of the reference oscillator period.
A record is kept of which setting was changed the most recently, and that
setting (TRIGger:STARt:TIMer1 or TRIGger:STARt:TIMer2) is assumed to
be the desired setting. For example, consider a reference oscillator period of
1µs; if TRIGger:STARt:TIMer2 was last changed to a value of 1µs while
TRIGger:STARt:SOUR was set to DTIM, and the TRIGger:STARt:TIMer1
setting was also 1µs, TRIGger:STARt:TIMer1 would be changed to 2µs (the
multiple 2.0 was chosen arbitrarily) so that both settings are not 1.0 times the
reference period. Similarly, if TRIGger:STARt:TIMer2 were set to 4µs, and
TRIGger:STARt:TIMer1 was some value greater than 1µs (like 2µs),
TRIGger:STARt:TIMer1 would be automatically changed to1µs so that one
of the two values is 1.0 times the reference period.
• If dual rate sampling is enabled (TRIGger:STARt:SOUR is DTIM), then the
sample period specified by TIMer1 will be the sample rate for the pre-arm
readings of the dual rate measurement, and TRIGger:STARt:TIMer2 will be the
post-arm sample rate.
• If TRIGger:STARt:SOUR is TIMer, then only the sample rate specified by
TIMer1 is used.
• Note that it is only necessary to set the longest sample rate if
TRIGger:STARt:SOURce is DTIM. The other setting will be automatically
forced to be one reference oscillator period due to the coupling between the two
rates when TRIGger:STARt:SOURce is DTIM.
• If TRIGger:STARt:SOUR is neither TIMer or DTIM, then the sample rates
specified by TRIGger:STARt:TIMer1 and TRIGger:STARt:TIMer2 are retained,
but are not used nor coupled to each other.
• If the HP E1429 can not sample within 1 percent of the period specified by
TRIGger:STARt:TIMer1, then the TIME bit (bit 2) in the QUEStionable Status
register is set.
TRIGger Subsystem
Command Reference 279
Download from Www.Somanuals.com. All Manuals Search And Download.
• Related Commands: TRIGger:STARt:TIMer2, TRIGger:STARt:SOURce
• *RST Condition: 5.0E-8 seconds.
PERIOD VALUE TABLE
The following sample periods are available with the digitizer’s internal 20 MHz
reference oscillator.
Multiple
Period
Multiple
Period
Multiple
Period
(Seconds)
(Seconds)
(Seconds)
1
10
5.0E-8
5.0E-7
5.0E-6
5.0E-5
5.0E-4
5.0E-3
0.050
0.50
2
20
1.0E-7
1.0E-6
1.0E-5
1.0E-4
1.0E-3
1.0E-2
0.10
4
40
2.0E-7
2.0E-6
2.0E-5
2.0E-4
2.0E-3
2.0E-2
0.20
100
200
400
1000
2000
4000
10,000
100,000
1,000,000
10,000,000
100,000,000
20,000
200,000
2,000,000
20,000,000
200,000,000
40,000
400,000
4,000,000
40,000,000
400,000,000
1.0
2.0
5.0
10.0
20
[:STARt]:TIMer2
TRIGger[:STARt]:TIMer2 <period > specifies the time period between each
sampling event of the post-arm portion of a dual rate measurement. The time period
must be a multiple of the reference oscillator period, with allowable multiples being
1,2,4,10,20,40,........1E8, 2E8, 4E8.
Parameters
Parameter Parameter
Range of
Values
Default
Units
Name
Type
period
numeric
reference period to
reference period * 4E8 |
MINimum | MAXimum
seconds
280 Command Reference
TRIGger Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
TRIGger[:STARt]:TIMer2
Comments • Executable when initiated: No
• Coupled Command: This command is coupled to the TRIGger:STARt:TIMer1
command and TRIGger:STARt:SOURce command as noted below:
Unless TRIGger:STARt:SOURce is DTIMer, the settings of
TRIGger:STARt:TIMer1 and TRIGger:STARt:TIMer2 are not coupled, and
changing one will not affect the setting of the other.
If TRIGger:STARt:SOURce is DTIM, then both TRIGger:STARt:TIMer1
and TRIGger:STARt:TIMer2 are used, and there is a coupling between the
two settings. The relationship between the two settings is such that one of
these two values must be exactly one reference oscillator period and the
other must be a multiple (greater than 1.0) of the reference oscillator period.
A record is kept of which setting was changed the most recently, and that
setting (TRIGger:STARt:TIMer1 or TRIGger:STARt:TIMer2) is assumed to
be the desired setting. For example, consider a reference oscillator period of
1µs; if TRIGger:STARt:TIMer2 was last changed to a value of 1µs while
TRIGger:STARt:SOUR was set to DTIM, and the TRIGger:STARt:TIMer1
setting was also 1µs, TRIGger:STARt:TIMer1 would be changed to 2µs (the
multiple 2.0 was chosen arbitrarily) so that both settings are not 1.0 times the
reference period. Similarly, if TRIGger:STARt:TIMer2 were set to 4µs, and
TRIGger:STARt:TIMer1 was some value greater than 1µs (like 2µs),
TRIGger:STARt:TIMer1 would be automatically changed to1µs so that one
of the two values is 1.0 times the reference period.
• If dual rate sampling is enabled (TRIGger:STARt:SOUR is DTIM), then the
sample period specified by TIMer1 will be the sample rate for the pre-arm
readings of the dual rate measurement, and TRIGger:STARt:TIMer2 will be the
post-arm sample rate.
• Note that it is only necessary to set the longest sample rate if
TRIGger:STARt:SOURce is DTIM. The other setting will be automatically
forced to be one reference oscillator period due to the coupling between the two
rates when TRIGger:STARt:SOURce is DTIM.
• If TRIGger:STARt:SOUR is TIMer, then only the sample rate specified by
TIMer1 is used.
• If dual rate sampling is not enabled (TRIGger:STARt:SOUR DTIM), then the
TRIGger:STARt:TIMer2 setting is retained, but not used.
• If the HP E1429 can not sample within 1 percent of the period specified by
TRIGger:STARt:TIMer2, then the TIME bit (bit 2) in the QUEStionable Status
register is set.
TRIGger Subsystem
Command Reference 281
Download from Www.Somanuals.com. All Manuals Search And Download.
• Related Commands: TRIGger:STARt:TIMer1, TRIGger:STARt:SOURce
• *RST Condition: 1.0E-7 seconds.
PERIOD VALUE TABLE
The following sample periods are available with the digitizer’s internal 20 MHz
reference oscillator.
Multiple
Period
Multiple
Period
Multiple
Period
(Seconds)
(Seconds)
(Seconds)
1
10
5.0E-8
5.0E-7
5.0E-6
5.0E-5
5.0E-4
5.0E-3
0.050
0.50
2
20
1.0E-7
1.0E-6
1.0E-5
1.0E-4
1.0E-3
1.0E-2
0.10
4
40
2.0E-7
2.0E-6
2.0E-5
2.0E-4
2.0E-3
2.0E-2
0.20
100
200
400
1000
2000
4000
10,000
100,000
1,000,000
10,000,000
100,000,000
20,000
200,000
2,000,000
20,000,000
200,000,000
40,000
400,000
4,000,000
40,000,000
400,000,000
1.0
2.0
5.0
10.0
20
282 Command Reference
TRIGger Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument
The VINStrument subsystem operates with the ARM and TRIGger subsystems to
control the virtual instrument features of the HP E1429A/B. These features include
the ability to use the Local bus and the VME (VXI data transfer) bus to obtain
buffered measurement data from memory or real time measurement data directly
from the analog to digital converter.
Local Bus transfers
There are two ways to transfer data over the Local bus:
Data can be transferred directly from the analog to digital converter(s) using the
ARM and TRIGger subsystems in conjunction with the INITiate command.
Everything proceeds exactly the same as if readings were going to HP E1429B
internal memory, except in this case, readings are going to the Local bus as well as
to internal memory. If the consumer on the Local Bus is unable to maintain the data
transfer (sampling) rate, then the data going out over the Local bus is lost and an
error is indicated.
The second method of transferring data over the Local bus is to empty the
HP E1429B internal memory after the measurements have occurred. This transfer
will automatically proceed after the measurements are completed if the user has
previously set the VINStrument:CONFigure:LBUS:MODE to APPend, GENerate,
or INSert, and if VINStrument:CONFigure:LBUS:FEED is one of the "MEM:xxx"
choices. If the measurement is aborted with the ABORt command, or if
VINStrument:LBUS:MODE is OFF or PIPline during the measurement, then no
automatic transfer is attempted. Instead, the
VINStrument:CONFigure:LBUS:MEMory:INITiate command must be used to start
the transfer after the MODE and FEED have been set to the desired values. When
using this method, the ARM source is automatically set to IMMediate, and the
trigger source is set to LBUS. This allows the receiving module(s) on the right to
control the data transfer, and assures that transfers occur only when the receiving
module is ready to receive data; thus no data will ever be lost. The trigger and arm
sources are returned to their previous values with the next INITiate command.
VINStrument Subsystem
Command Reference 283
Download from Www.Somanuals.com. All Manuals Search And Download.
VME (VXI data transfer) Bus transfers
When data is transferred over the VME bus directly from the A/D converter, a read
of VME A24 address space, offset 12 (0C ), causes a measurement to be taken and
16
transferred all in the same read cycle. During the read cycle, the
HP E1429 takes a reading and puts the data into the register before the read cycle
completes. The ARM sources may be set to any legal source for this mode, but
TRIGger:START:SOURce must be set to VME. Selections can be made using the
VINStrument:CONFigure:VME:FEED command such that a single read produces
data from only one channel (16 bits), or both channels simultaneously (32 bits).
When the data is transferred post measurement, completion of the
INITiate:IMMediate command will automatically configure for a VME transfer
from memory, based on the settings of the VINStrument:VME:FEED command.
When the measurement has completed and the VME transfer has been set up by the
HP E1429, bit 1 (Memory Read Enable) of the A24 memory control register (base +
21 ) will go high (1). At this point, data transfer can be initiated by the receiver by
16
reading the A24 data register (base + 0C ). Again, the VINStrument:VME:FEED
16
command is used to specify whether a single read will produce one channel (16 bits)
of data, or two channels (32 bits) of data. The
VINStrument:VME:MEMory:INITiate command will also configure for a post
measurement VME data transfer, but it need not be sent unless it is desirable to read
the same data multiple times.
Subsystem VINStrument
[:CONFigure]
Syntax
:LBUS
:FEED <source >
:MEMory
:INITiate
[:MODE] <mode >
:RESet
[no query]
[no query]
:SEND
:POINts <count >
:AUTO <mode >
:TEST
:DATA <voltage_list >
:VME
[no query]
:FEED <source >
:MEMory
:INITiate
[no query]
[:MODE] <mode >
:SEND
:ADDRess
:DATA?
[query only]
:IDENtity?
284 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument [:CONFigure]:LBUS:FEED
[:CONFigure]:LBUS:FEED
VINStrument[:CONFigure]:LBUS:FEED <source > indicates the source of the
data which will be output to the Local bus. The data source may be channel 1,
channel 2, or both channels. The data may come from memory or directly from the
A/D converter(s). Sources beginning with "MEMory: " are the post measurement
modes, sources beginning with "CONVerter: " are the real time modes. The possible
sources are:
" MEMory:CHANnel1" : Channel 1 memory is the data source for the Local bus.
Two bytes per reading will be output to the bus.
" MEMory:CHANnel2" : Channel 2 memory is the data source for the Local bus.
Two bytes per reading will be output to the bus.
" MEMory:BOTH" : Both channels of memory are the data source for the Local
bus. In this mode, the channel 2 reading is output first, followed by the
channel 1 reading. Four bytes for each set of readings will be output to the bus.
" CONVerter:CHANnel1" : The channel 1 A/D converter is the data source for
the Local bus. Two bytes per reading will be output to the bus.
" CONVerter:CHANnel2" : The channel 2 A/D converter is the data source for
the Local bus. Two bytes per reading will be output to the bus.
" CONVerter:BOTH" : Both A/D converters are the data source for the Local bus.
In this mode, the channel 2 reading is output first, followed by the
channel 1reading. Four bytes for each set of readings will be output to the bus.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
source
string
"CONVerter:BOTH" |
"CONVerter:CHANnel1" |
"CONVerter:CHANnel2" |
"MEMory:BOTH" |
none
"MEMory:CHANnel1" |
"MEMory:CHANnel2" |
Comments • Executable when initiated: No
• Coupled command: Yes, this command is set but ignored if
VINStrument:CONFigure:LBUS:MODE is not GENerate, APPend, or INSert.
VINStrument Subsystem
Command Reference 285
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:LBUS:MEMory:INITiate
• When VINStrument:CONFigure:LBUS:FEED is one or both A/D converters, care
must be taken that other active instruments in the pipeline can maintain the data
generation rate. If data is available from the A/D converter but the Local bus is
busy and can not accept it, the data is lost and error 1019; "Data loss detected
during LBUS transfer" is reported.
• For VINStrument:CONFigure:LBUS:FEED "MEMory:BOTH" and
VINStrument:CONFigure:LBUS:FEED "CONVerter: BOTH", data is sent
interleaved with channel 2 reading 1 as the first point.
• Related Commands: VINStrument:CONFigure:LBUS:MODE, ARM subsystem,
TRIGger subsystem, VINStrument:CONFigure:LBUS:MEMory:INITiate
• *RST Condition: VINStrument:CONFigure:LBUS:FEED "MEMory:BOTH"
Example Send channel 1 memory data to consumer automatically after measurement
VINS:CONF:LBUS:MODE GEN
Set this module’s mode to GENerate data
for the Local bus
VINS:CONF:LBUS:FEED "MEM:CHAN1" Set data source to channel 1 memory
Set up other modules to right of this one
Last module on right must be in
VINS:LBUS:MODE CONSume
INIT
Start the measurement, data will be
transferred over the Local bus as soon as
the measurement completes
[:CONFigure]:LBUS:MEMory:INITiate
VINStrument[:CONFigure]:LBUS:MEMory:INITiate causes the instrument to
begin the process of transferring data from memory out over the Local bus. If the
FEED and MODE are set correctly (e.g. MODE = APPend, GENerate, or INSert)
before the measurement is taken, this command is not necessary because the data
will automatically be sent. If, however, the measurement was aborted, or if it is
necessary to change the MODE or FEED after the measurement has completed, then
executing this command will start the data transfer.
Comments • Executable when initiated: No
• Coupled command: Yes. This command will error if
VINStrument:CONFigure:LBUS:FEED is not "MEMory:xxx", if
VINStrument:CONFigure:LBUS:MODE is OFF, or if the HP E1429 is already
INITiated.
286 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:LBUS[:MODE]
• This command results in an error if VINStrument:CONFigure:LBUS:FEED is not
one of the "MEMory" choices (i.e. "MEMory:BOTH", etc.).
• If the data in memory is in multiple segments (ARM:STARt:COUNt > 1 and
SENSe:SWEep:POINts:DELay < 0), then there will be a small time delay
between transfer of each segment while the CPU switches the memory address to
point to the next segment.
• This command has no query form.
• Related Commands: VINStrument:CONFigure:LBUS:MODE
• *RST Condition: None
Example Send both channels of memory data to consumer
VINS:CONF:LBUS:MODE GEN
Set this module’s mode to GENerate data
for the Local bus
VINS:CONF:LBUS:FEED "MEM:BOTH"
Set up modules to the right of this one
Set data source to be both channels
Last module on right must be in
VINS:LBUS:MODE CONSume
VINS:LBUS:MEM:INIT
Begin sending data from memory out over
the Local bus
[:CONFigure]:LBUS[:MODE]
VINStrument[:CONFigure]:LBUS[:MODE] <mode > selects the operating mode
for the VXI Local bus. The available modes are:
APPend: Local bus data is received from the left, and passed on to the right
until an end of frame is detected. When end of frame is received from the left
side, all data from this module is appended, followed by an end of block flag
and a new end of frame flag. After sending the end of frame flag, the module
enters the paused state. This mode requires a module to the left that is in
GENerate mode. The mode is not active until either an INITiate command or a
VINStrument:LBUS:MEMory:INITiate command is sent.
GENerate: Local bus data originates in this module and is passed to the right,
followed by an end of frame flag. The mode is not active until either an
INITiate command or a VINStrument:LBUS:MEMory:INITiate command is
sent.
INSert: Local bus data is inserted onto the bus from this module. The module
will place its data out onto the Local bus with an end of block flag at the end
and no end of frame flag. The module will then pass through (pipeline) any data
it receives from the left, and will enter the paused state when an end of frame
flag is received from the left. This mode requires at least one module to the left
VINStrument Subsystem
Command Reference 287
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:LBUS:RESet
which is in GENerate mode. The mode is not active until either an INITiate
command or a VINStrument:CONFigure:LBUS:MEMory:INITiate command is
sent.
OFF: The Local bus interface is disabled immediately upon receipt of this
command. Local bus data is neither used nor passed through.
PIPeline: Local bus data is passed through and not altered. This mode becomes
effective immediately upon receipt of this command. Select this mode when
data should be transparently passed through the HP E1429B. The module will
remain in the PIPeline mode even after an end of frame flag is received;
therefore, it is necessary to change modes to take the module out of PIPeline
mode.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mode
discrete
APPend|GENerate|
INSert|OFF|
none
PIPeline
Comments • Executable when initiated: No
• Coupled command: Yes
• Related Commands: ARM subsystem, TRIGger subsystem,
VINStrument:CONFigure:LBUS:FEED,
VINStrument:CONFigure:LBUS:MEMory:INITiate, INITiate,
VINStrument:CONFigure:VME:MODE
• *RST Condition: VINStrument:CONFigure:LBUS:MODE OFF
Example Setting the Local Bus operation mode
VINS:LBUS PIP
Set pipeline (pass through) mode; this
becomes active immediately
[:CONFigure]:LBUS:RESet
VINStrument[:CONFigure]:LBUS:RESet will reset the digitizer’s Local bus
chip. This command should be used when it is necessary to put the Local bus chip
into a known state without altering any other digitizer settings
(TRIGger:STARt:COUNt, TRIGger:STARt:SOURce, etc.). The *RST command
also resets the Local bus chip, but *RST forces all instrument settings to initial
values.
288 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:LBUS:SEND:POINts
Comments • Executable when initiated: No
• Coupled command: No
• The HP E1429B Local bus chip must be reset after each data transfer. When
resetting the Local bus chip, the Local bus chips on all devices to the right of the
HP E1429B must also be reset in a left-to-right sequence. Refer to the product
documentation for information on how a particular device’s Local bus chip is
reset.
• Related Commands: *RST, ABORt
• *RST Condition: none
Example Reset the Local bus chip
VINS:LBUS:RES
Reset the chip
[:CONFigure]:LBUS:SEND:POINts
VINStrument[:CONFigure]:LBUS:SEND:POINts<count > specifies how many
readings will be output over the Local bus per block. There are two possible count
settings: 1 point per feed channel or all points per feed channel. Normally, there is
no need to set a count with this command because with
VINStrument:CONFigure:LBUS:SEND:POINts:AUTO ON (the power-on and
*RST setting), the number of points will automatically be matched to the current
setting of VINStrument:CONFigure:LBUS:FEED. Therefore, the count will
normally be TRIGger:COUNt * 2 if VINS:LBUS:FEED is "xxx:BOTH" or
TRIGger:COUNt * 1 if the feed is "xxx:CHAN1" or "xxx:CHAN2".
If VINStrument:CONFigure:LBUS:SEND:POINts:AUTO is set to OFF, then the
number of points sent per block must either be 2 ( for feed "CONV:BOTH") or 1
(for feeds "CONV:CHAN1 and "CONV:CHAN2"). This setting is only allowed
when the feed is one of the "CONV:xxx" (direct from A/D converter) settings. The
combination of VINStrument:CONFigure:LBUS:SEND:POINts:AUTO OFF and
VINStrument:CONFigure:LBUS:SEND:POINts 1 or 2 is needed only when the
goal is to multiplex readings directly from multiple digitizers onto the Local bus.
Parameters MINimum and MAXimum will both set the same value, which is the number of
readings that will be transferred as determined by the current
VINStrument:CONFigure:LBUS:SEND:POINts:AUTO and
VINStrument:CONFigure:LBUS:FEED settings.
Comments • Executable when initiated: No
VINStrument Subsystem
Command Reference 289
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:LBUS:SEND:POINts:AUTO
• Coupled command: VINStrument:CONFigure:LBUS:SEND:POINts:AUTO and
VINStrument:CONFigure:LBUS:FEED settings determine the allowable values
of this command.
• For a more complete discussion and example of when this command should be
used, see "Local Bus Data Transfers" in Chapter 3.
• If a measurement was halted using the ABORt command and "MEM:xxx" is one
of the VINStrument:CONFigure:LBUS:FEED choices, the query form of this
command will return the number of points that will actually be transferred
(assuming VINStrument:CONFigure:LBUS:SEND:POINts:AUTO ON) when the
VINStrument:CONFigure:LBUS:MEMory:INITiate command is invoked.
• Related Commands: VINStrument:CONFigure:LBUS:FEED
• *RST Condition: 2
Example Query number of readings output per block
VINS:LBUS:SEND:POIN?
Query points
[:CONFigure]:LBUS:SEND:POINts:AUTO
VINStrument[:CONFigure]:LBUS:SEND:POINts:AUTO <mode > determines
how the digitizer will send its data over the Local bus. In most cases AUTO ON
would be used, which sends all of a measurement’s data over the Local bus followed
by an end-of-block flag and an end-of-frame flag.
The AUTO OFF setting is a special setting which is only used when it is desirable
for multiple digitizers to output A/D data from each (common) trigger event onto
the Local bus at approximately the same time (i.e. in parallel). In this mode, the
end-of-block and end-of-frame flags are sent with each reading (trigger event). This
mode requires that all digitizers are set to the same trigger count and have their
trigger sources synchronized such that each digitizer’s data is available to the Local
bus before the next trigger event can occur on any digitizer in the data stream.
Otherwise, data loss will occur and an error will be indicated by one or more of the
digitizers.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mode
Boolean
ON | OFF | 1 | 0
none
Comments • Executable when initiated: No
290 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:TEST:DATA
• Coupled command: Yes, VINStrument:CONFigure:LBUS:FEED and
VINStrument:CONFigure:LBUS:SEND:POINts are coupled to this command.
• If VINStrument:CONFigure:LBUS:SEND:POINts:AUTO is OFF, the
measurement does not complete normally. After the data has been taken and
transferred, the Local bus is left in a running state. Therefore, it is necessary
to send the ABORt command to each digitizer in the data stream (in a left to
right sequence) after the data is transferred and before proceeding with the
next setup or INITiate. Additionally, any other Local bus devices
(non-digitizers) will need to reset their Local bus chips in a left to right sequence.
See "Local Bus Data Transfers" in Chapter 3 for more information.
• Related Commands: VINStrument[:CONFigure]:LBUS:FEED,
VINStrument[:CONFigure]:LBUS:SEND:POINts, ABORt
• *RST Condition: ON
Example Setup for multiple transfers of direct A/D data
VINS:LBUS:FEED "CONV:BOTH"
Send both channels directly from A/D
converter
VINS:LBUS:SEND:POIN 2; POIN:AUTO OFF
Set up to send end-of-block and
end-of-frame every two readings
[:CONFigure]:TEST:DATA
VINStrument[:CONFigure]:TEST:DATA <voltage_list > configures the
HP E1429B for Local bus testing, and transmits the data given in voltage_list. This
data will be temporarily stored in internal memory before being output at the fastest
possible speed over the Local bus. The data will be stored into alternate channels,
beginning with channel 2. The data is output over the Local bus the same way
(interleaved, with channel 2 data point 1 first). Regardless of their current settings,
VINStrument:CONFigure:LBUS:FEED is set to "MEM:BOTH",
VINStrument:CONFigure:LBUS:MODE is set to GENerate, and
VINStrument:CONFigure:VME:MODE is set to OFF. These changes will remain
in effect after the command has completed.
Parameters The voltage_list must be an IEEE-488.2 definite length block containing values in
16-bit integer format, with the most significant byte being the first byte in a pair (i.e.
Motorola format).
VINStrument Subsystem
Command Reference 291
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:TEST:DATA
The legal range of values is -32768 to 32767. Only the upper 12 bits are stored into
memory. The lower 4 bits are ignored, and the actual values sent over the Local bus
for these lower 4 bits are determined by the current setting of the
DIAGnostic:CHANnel:LABel command.
Comments • Executable when initiated: No
• Coupled command: Yes. VINStrument:CONFigure:LBUS:FEED will be
changed to "MEMory:BOTH", VINStrument:CONFigure:LBUS:MODE will be
set to GENerate, and VINStrument:CONFigure:VME:MODE will be set to OFF.
• The module receiving the data must have been previously set up so that it is ready
to CONSume data.
• When testing the Local bus, you must send a minimum of 28 bytes and the byte
count must be a multiple of 4. If less than 28 bytes are sent, error -109 "Missing
parameter" occurs. If the byte count is not a multiple of 4, error -161 "Invalid
block data" occurs.
• Because MEMory:BOTH is the FEED, the first data point is sent from channel 2,
the second data point is sent from channel 1, the third data point from channel 2,
and so on.
• As mentioned above, the lower 4 bits of each 16-bit reading sent out over the
Local bus are determined by the current setting of DIAGnostic:CHANnel:LABel
for the channel the data was stored into. These 4 bits may not have the same
value as the data sent with this command. Therefore, the consuming module may
receive slightly different data than what was downloaded with this command.
• Related Commands: VINStrument:CONFigure:LBUS:FEED,
VINStrument:CONFigure:LBUS:MODE
• *RST Condition: none
Example Testing Local Bus operation
VINS:TEST:DATA #240<40 bytes of data>
Send 40 bytes (10 readings per channel),
using IEEE-488.2 definite length block
292 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:VME:FEED
[:CONFigure]:VME:FEED
VINStrument[:CONFigure]:VME:FEED <source > selects which data source
will feed the VME (VXI data transfer) bus. The bus is driven by reading the data
register, offset 12 (0C ) in A24 address space. Sources beginning with "MEMory: "
16
are the post measurement modes, sources beginning with "CONVerter: " are the real
time modes. The possible sources are:
" MEMory:CHANnel1" : Channel 1 memory is the data source for the VME bus.
One 16-bit reading is returned.
" MEMory:CHANnel2" : Channel 2 memory is the data source for the VME bus.
One 16-bit reading is returned.
" MEMory:BOTH" : Both channels of memory are the data source for the VME
bus. In this mode, channel 1 will be output the first time the data register is
accessed, channel 2 is output the second time the data register is accessed. One
16-bit reading is returned with each access.
" MEMory:BOTH32" : Both channels of memory are the data source for the VME
bus. In this mode, accessing the data register returns a 32-bit number where the
high order 16 bits are the channel 2 reading and the low order 16 bits are the channel
1 reading.
" CONVerter:CHANnel1" : The channel 1 A/D converter is the data source for
the VME bus. One 16-bit reading is returned.
" CONVerter:CHANnel2" : The channel 2 A/D converter is the data source for
the VME bus. One 16-bit reading is returned.
" CONVerter:BOTH" : Accessing the data register triggers both A/D converters at
the same time, and one 16-bit reading (channel 1) is returned. Accessing the data
register a second time returns the second 16-bit reading (channel 2), but does not
trigger the A/Ds.
" CONVerter:BOTH32" : Accessing the data register triggers both A/D converters
at the same time, and one 32-bit number is returned. The high order 16 bits are the
channel 2 reading, and the low order 16 bits are the channel 1 reading.
VINStrument Subsystem
Command Reference 293
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:VME:MEMory:INITiate
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
source
string
"CONVerter:BOTH" |
"CONVerter:BOTH32" |
"CONVerter:CHANnel1" |
"CONVerter:CHANnel2" |
"MEMory:BOTH" |
none
"MEMory:BOTH32" |
"MEMory:CHANnel1" |
"MEMory:CHANnel2" |
Comments • Executable when initiated: No
• Coupled command: Yes. This command is coupled to the TRIGger subsystem.
• If the data in memory is in multiple segments, then there will be a small delay
(630 µs) between segments while the CPU switches the memory address to point
to the next segment. It is possible to determine when data is available again by
monitoring bit 1 of the A24 arm status register (base + 43 ). This bit goes high
16
when the data is again ready for transfer. See "VME Bus Data Transfers" in
Chapter 3 for additional information.
• Related Commands: TRIGger:STARt:COUNt,
VINStrument:CONFigure:VME:MODE,
VINStrument:CONFigure:VME:MEMory:INITiate, TRIGger:STARt:SOURe
• *RST Condition: VINStrument:VME:FEED "MEMory:BOTH32"
Example Reading both channels out to the VME (VXI data transfer) bus
TRIG:SOUR VME
VINS:VME GEN
Set up trigger system for VME transfer
Set GENerate mode
VINS:VME:FEED " MEM:BOTH32 "
INIT
Set data source to be both channels
Begin the transfer
[:CONFigure]:VME:MEMory:INITiate
VINStrument[:CONFigure]:VME:MEMory:INITiate configures the HP
E1429 for data transfer over the VME bus when the data register in A24 address
space is read. The configuration is done automatically if the
INITiate:IMMediate command is executed while
VINStrument:CONFigure:VME:MODE is GENerate and any of the
"MEMory:xxx" settings is the selection for
294 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:VME[:MODE]
VINStrument:CONFigure:VME:FEED. However, if these settings were not in
effect when the measurement was taken, then
VINStrument:CONFigure:VME:MEMory:INITiate must be sent before data is
retrieved from memory via the data register.
This command results in an error if VINStrument:CONFigure:VME:MODE is OFF.
This command has no query form.
Comments • Executable when initiated: No
• Coupled command: Yes, this command will error if
VINStrument:CONFigure:VME:MODE is OFF, or if the HP E1429 is already
initiated or transferring data.
• If the data in memory is in multiple segments, then there will be a small time
delay (630 µs) between segments while the CPU switches the memory address to
point to the next segment. It is possible to determine when data is available again
by monitoring bit 1 of the A24 arm status register (base + 43 ). This bit goes
16
high when the data is again ready for transfer. See Chapter 3 for additional
information.
• Related Commands: VINStrument:CONFigure:VME:MODE,
VINStrument:CONFigure:VME:FEED, ARM subsystem, TRIGger subsystem
• *RST Condition: None
Example Send channel 2 of memory data out over the VXIbus, whenever the VME data
register is accessed
VINS:VME:MODE GEN
Set mode to GENerate
VINS:VME:FEED "MEM:CHAN2"
VINS:VME:MEM:INIT
Set data source to be memory channel 2
Begin sending data to VXIbus when the
VME A24 register is read
[:CONFigure]:VME[:MODE]
VINStrument[:CONFigure]:VME[:MODE] <mode > selects the operating mode
for the VME bus. The only available modes are GENerate and OFF.
This command is used when it is desirable to transfer data over the VME bus by
reading the data register at offset 12 (0C ) in A24 address space.
16
VINStrument Subsystem
Command Reference 295
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument[:CONFigure]:VME:SEND:ADDRess:DATA?
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mode
discrete
GENerate|OFF
none
Comments • Executable when initiated: No
• Coupled command: Yes, VINStrument:CONFigure:VME:MODE GENerate is
not allowed unless VINStrument:CONFigure:LBUS:MODE is set to OFF or
PIPeline.
• Related Commands: VINStrument:CONFigure:VME:FEED
• *RST Condition: VINStrument:CONFigure:VME:MODE OFF
Example Setting the VXIbus data transfer bus operation mode
VINS:VME GEN
Set GENerate mode
[:CONFigure]:VME:SEND:ADDRess:DATA?
VINStrument[:CONFigure]:VME:SEND:ADDRess:DATA? returns two values:
A24,12. A24 indicates that the HP E1429’s A24 address space should be used for
reading measurement data, and 12 (0C ) is the offset of the data register in A24
16
address space.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related Commands: VINStrument:CONFigure:VME:MODE,
TRIGger:STARt:SOURce, VINStrument:CONFigure:VME:MEMory:INITiate
• *RST Condition: A24,12
Example Querying the A24 address space offset
VINS:VME:SEND:ADDR:DATA?
Query A24 offset for data reads
296 Command Reference
VINStrument Subsystem
Download from Www.Somanuals.com. All Manuals Search And Download.
VINStrument:IDENtity?
:IDENtity?
VINStrument:IDENtity? returns a response consisting of 4 fields, indicating the
virtual instrument capability of the HP E1429:
HEWLETT-PACKARD VIRTUAL INSTRUMENT,ANY ATOD,0,A.01.00
The first and last fields indicate that the HP E1429 conforms to revision A.01.00 of
HP’s Virtual Instrument/Local Bus System Specification. The second field
indicates that the HP E1429 is a analog-to-digital converter. The third field is
reserved for future use.
Comments • Executable when initiated: Yes
• Coupled command: No
• *RST Condition: none
Example Querying virtual instrument capability
VINS:IDEN?
Query capability
VINStrument Subsystem
Command Reference 297
Download from Www.Somanuals.com. All Manuals Search And Download.
IEEE-488.2 Common Commands
This section describes the IEEE-488.2 Common Commands implemented in the
HP E1429. The table below shows the commands listed by functional group;
however, commands are listed alphabetically in the reference. Examples are shown
in the reference when the command has parameters or returns a non-trivial response;
otherwise, the command string is as shown in the table. For additional information,
refer to IEEE Standard 488.2-1987.
Category
Command
Title
System Data
*IDN?
Identification Query
*PUD <data>
Protected User Data Command
*PUD?
*LRN?
Protected User Data Query
Learn Device Setup Query
Internal Operations
Synchronization
Macro
*RST
Reset Command
*TST?
*OPC
Self Test Query
Operation Complete Command
*OPC?
Operation Complete Command
*WAI
Wait-to-Continue Command
Define Macro Command
*DMC <name>,<data>
*EMC <enable>
*EMC?
Enable Macro Command
Enable Macro Query
*GMC? <name>
*LMC?
Get Macro Contents Query
Learn Macro Query
*PMC
Purge Macros Command
*RMC <name>
*CLS
Remove Individual Macro Command
Clear Status Command
Status & Event
*ESE <mask>
*ESE?
Standard Event Status Enable Command
Standard Event Status Enable Query
Standard Event Status Register Query
Service Request Enable Command
Service Request Enable Query
*ESR?
*SRE
*SRE?
*STB?
*TRG
*RCL
Read Status Byte Query
Trigger Command
Recall Command
Trigger
Stored Settings
*SAV
Save Command
Chapter 4
Command Reference 298
Download from Www.Somanuals.com. All Manuals Search And Download.
*CLS
*CLS
*CLS clears the Standard Event Status Register, the Operation Status Register, the
Questionable Signal Register, and the error queue. This clears the corresponding
summary bits (3, 5, & 7) in the Status Byte Register. *CLS does not affect the
enable masks of any of the status registers.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related Commands: STATus:PRESet
• *RST Condition: none
*DMC
*DMC <name>,<data> creates a macro with the specified name and assigns zero,
one, or a sequence of commands to the name. The sequence may be composed of
SCPI and/or Common Commands.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
name
string
data
1 through 12 characters
none
data
block
data
or
any valid command
sequence
none
string
Comments • Legal macro names must start with an alphabetic character and contain only
alphabetic, numeric, and underscore ("_") characters. Alphabetic character case
(upper vs. lower) is ignored.
The name is allowed to be the same as a SCPI command, but may be not be the
same as a Common Command. When the name is the same as a SCPI command,
the macro rather than the command will be executed when the name is received if
macro usage is enabled. The SCPI command will be executed if macro usage is
disabled.
• The <data > in the *DMC command is parsed by the digitizer when the *DMC
command is executed.
• Executable when initiated: Yes
299 Command Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
*EMC and *EMC?
• Coupled command: No
• Related Commands: *EMC, *GMC, *LMC, *RMC
• *RST Condition: none; macro definitions are unaffected
• Power-On Condition: no macros are defined
Example Define macro to start measurement
*DMC " RESTART","ABOR;INIT"
Define macro
*EMC and *EMC?
*EMC <enable> enables and disables macro usage. When enable is zero, macros
usage is disabled. Any non-zero value enables macro usage.
The query form returns 1 if macro usage is enabled, 0 if disabled.
Comments • Macro definitions are not affected by this command.
• Executable when initiated: Yes
• Coupled command: No
• *RST Condition: macro usage is disabled
• Power-On Condition: macro usage is enabled
*ESE and *ESE?
*ESE <mask> enables one or more event bits of the Standard Event Status Register
to be reported in bit 5 (the Standard Event Status Summary Bit) of the Status Byte
Register. Mask is the sum of the decimal weights of the bits to be enabled.
The query form returns the current enable mask.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mask
numeric
0 through 255
none
A 1 in a bit position enables the corresponding event; a 0 disables it.
Comments • Executable when initiated: Yes
Chapter 4
Command Reference 300
Download from Www.Somanuals.com. All Manuals Search And Download.
*ESR?
• Coupled command: No
• Related Commands: *ESR?, *SRE, *STB?
• *RST Condition: unaffected
• Power-On Condition: no events are enabled
Example Enable all error events
*ESE 60
Enable error events
*ESR?
*ESR? returns the value of the Standard Event Status Register. The register is then
cleared (all bits 0).
Comments • Executable when initiated: Yes
• Coupled command: No
• *RST Condition: none
• Power-On Condition: register is cleared
*GMC?
*GMC? <name> returns the definition of the specified macro in IEEE-488.2
definite block format.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
name
string
data
defined macro name
none
Comments • Executable when initiated: Yes
• Coupled command: No
• Related Commands: *DMC
• *RST Condition: none
• Power-On Condition: no macros are defined
301 Command Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
*IDN?
Example Query macro definition
*GMC? " RESTART"
Query macro definition
*IDN?
*IDN? returns indentification information for the HP E1429. The response consists
of four fields:
HEWLETT-PACKARD,E1429,0,A.01.00
The first two fields identify this instrument as model number E1429 manufactured
by Hewlett-Packard. The third field is 0 since the serial number of the HP E1429 is
unknown to the firmware. The last field indicates the revision level of the firmware.
Note
The firmware revision field will change whenever the firmware is revised. A.01.00
is the initial revision. The first two digits indicate the major revision number, and
increment when functional changes are made. The last two digits indicate bug fix
level.
Comments • Executable when initiated: Yes
• Coupled command: No
• *RST Condition: none
• Power-On Condition: register is cleared
*LMC?
*LMC? returns a comma-separated list of quoted strings, each containing the name
of a macro. If no macros are defined, a single null string ("") is returned.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related Commands: *DMC
• *RST Condition: none
• Power-On Condition: no macros are defined
Chapter 4
Command Reference 302
Download from Www.Somanuals.com. All Manuals Search And Download.
*LRN?
*LRN?
*LRN? returns a sequence of commands that may be re-sent to the HP E1429 to
return it to its current programming state.
Only those commands that are affected by *RST are included in the sequence.
Exceptions include MEMory:BATTery:STATe, the STATus subsystem commands,
and the CALibration:SECurity command state.
Note
*LRN? should be sent singly in a program message, since the number of commands
in the returned sequence is large, and may vary depending on firmware revision.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: *RCL, *RST, *SAV
• *RST Condition: none
*OPC
*OPC causes the HP E1429 to wait for all pending operations to complete. The
Operation Complete bit (bit 0) in the Standard Event Status Register is then set.
If STATus:OPC:INITiate OFF is set, the Operation Complete bit will be set when
all commands received prior to the *OPC have been executed. If ON is set, *OPC
waits for the digitizer to return to the idle state before setting the Operation
Complete bit. No other commands will be executed until the Operation Complete
bit is set.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: *OPC?, *WAI
• *RST Condition: none
303 Command Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
*OPC?
*OPC?
*OPC? causes the HP E1429 to wait for all pending operations to complete. A
single ASCII “1" is then placed in the output queue.
If STATus:OPC:INITiate OFF is set, the ASCII “1" will be placed in the output
queue when all commands received prior to the *OPC? have been executed. If ON
is set, *OPC? waits for the digitizer to return to the idle state before placing the ”1"
in the output queue. No other commands will be executed until the “1" is placed in
the output queue.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: *OPC, *WAI
• *RST Condition: none
*PMC
*PMC purges all macro definitions.
Comments • Use the *RMC command to purge an single macro definition.
• Executable when initiated: Yes
• Coupled command: No
• Related commands: *DMC, *RMC
• *RST Condition: none
*PUD and *PUD?
*PUD <data> stores the specified data in the HP E1429’s non-volatile calibration
memory. The data must be sent in IEEE-488.2 definite or indefinite block format.
Calibration security must have been previously disabled.
The query form returns the current protected user data in IEEE-488.2 definite block
format. The query form may be executed regardless of the state of calibration
security.
Chapter 4
Command Reference 304
Download from Www.Somanuals.com. All Manuals Search And Download.
*RCL
Note
When shipped from the factory, the protected user data area contains information
regarding when the HP E1429 was last calibrated.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mask
block
data
or
0 through 63 characters
none
string
Comments • Executable when initiated: Yes
• Coupled command: No
• *RST Condition: unaffected
• Power-On Condition: unaffected
Example Setting the protected user data
*PUD #17Unit #5
Set data to “Unit #5"
*RCL
*RCL <number> restores a previously stored programming state from one of the 10
possible stored state areas. Number indicates which of the stored state areas should
be used.
This command affects the same command settings as does *RST. Notable
exceptions include MEMory:BATTery:STATe, the STATus subsystem commands,
and the CALibration:SECurity command state.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
number
numeric
0 through 9
none
Comments • Executable when initiated: No
• Coupled command: No
• Related Commands: *LRN?, *RST, *SAV
305 Command Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
*RMC
• *RST Condition: all saved states set to the same state as the *RST state
*RMC <name> purges only the specified macro definition.
*RMC
NOTE: At printing time, *RMC is a command proposed and accepted for a revision
and re-designation of IEEE-488.2.
Comments • Use the *PMC command to purge all macro definitions in one command.
• Executable when initiated: Yes
• Coupled command: No
• Related commands: *DMC, *PMC
• *RST Condition: none
*RST
*RST resets the HP E1429 as follows:
• Sets all commands to their *RST state.
• Aborts all pending operations including VME bus or Local bus transfers.
• Loads calibration constants from non-volatile calibration memory.
*RST does not affect:
• The state of VXIbus word serial protocol
• The output queue
• The Service Request Enable Register
• The Standard Event Status Enable Register
• The enable masks for the OPERation Status and Questionable Signal registers
• Calibration security state
• Protected user data
• The memory backup battery
Comments • Executable when initiated: Yes
• Coupled command: No
• *RST Condition: none
Chapter 4
Command Reference 306
Download from Www.Somanuals.com. All Manuals Search And Download.
*SAV
*SAV
*SAV <number> stores the current programming state into one of the 10 possible
stored state areas. Number indicates which of the stored state areas should be used.
This command stores the states of all commands affected by *RST. Exceptions
include MEMory:BATTery:STATe, the STATus subsystem commands, and the
CALibration:SECurity command state.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
number
numeric
0 through 9
none
Comments • Executable when initiated: Yes
• Coupled command: No
• Related Commands: *LRN?, *RCL, *RST
• *RST Condition: unaffected
• Power-on Condition: all saved states set to the same state as the *RST state
*SRE and *SRE?
*SRE <mask> specifies which bits of the Status Byte Register are enabled to
generate a service request (VXIbus reqt signal). Event and summary bits are always
set and cleared in the Status Byte Register regardless of the enable mask. Mask is
the sum of the decimal weights of the bits to be enabled.
The query form returns the current enable mask.
Parameters
Parameter
Name
Parameter
Type
Range of
Values
Default
Units
mask
numeric
0 through 255
none
A 1 in a bit position enables service request generation when the corresponding
Status Byte Register bit is set; a 0 disables it.
Comments • Executable when initiated: Yes
• Coupled command: No
307 Command Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
*STB?
• *RST Condition: unaffected
• Power-On Condition: no bits are enabled
Example Enable service request on Message Available bit
*SRE 16
Enable request on MAV
*STB?
*STB? returns the value of the Status Byte Register. Bit 6 (decimal weight 64) is
set if a service request is pending. STB? should not be used to read the Status Byte
register if a service request is generated by a message available (MAV) condition.
Comments • *STB? is a query. Thus, sending the command in response to a MAV condition
will generate Error -410 "Query interrupted".
• Executable when initiated: Yes
• Coupled command: No
• Related commands: *SRE
• *RST Condition: none
*TRG
*TRG is the command equivalent of the HP-IB Group Execute Trigger and the
VXIbus Trigger word serial command and has exactly the same effect.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: ARM and TRIGger subsystem SOURce commands
• *RST Condition: none
Chapter 4
Command Reference 308
Download from Www.Somanuals.com. All Manuals Search And Download.
*TST?
*TST?
*TST? causes the HP E1429 to execute its internal self-test and return a value
indicating the results of the test.
A zero (0) response indicates that the self-test passed. A one (1) response indicates
that the test failed. A failure also generates an error message with information on
why the test failed. Additional information on the failure is provided by the
DIAGnostic:TEST? command.
When the test completes, all commands are set to their *RST values.
Caution
Executing the self-test using *TST? erases all data in the digitizer’s
non-volatile memory.
Comments • Executable when initiated: No
• Coupled command: No
• *RST Condition: none
*WAI
*WAI causes the HP E1429 to wait for all pending operations to complete before
executing any further commands.
If STATus:OPC:INITiate OFF is set, command execution resumes when all
commands received prior to *WAI have been executed. If ON is set, *WAI waits
for the digitizer to return to the idle state before resuming command execution.
Comments • Executable when initiated: Yes
• Coupled command: No
• Related commands: *OPC, *OPC?
• *RST Condition: none
309 Command Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
Table 4-1. HP E1429A/B Command Quick Reference.
Commands
Subsystem
Description
ARM
ARM[:STARt]:COUNt <count >
ARM[:STARt]:DELay <period >
ARM[:STARt][:IMMediate]
Specifies the number of measurement
cycles (bursts) to occur.
Delay from when the digitizer is armed to
when it enters the wait-for- trigger state.
Places the digitizer in the wait-for-trigger
state, independent of the selected
ARM:STARt:SOURce.
ARM[:STARt]:LEVel[<chan >]:NEGative <voltage >
ARM[:STARt]:LEVel[<chan >]:POSitive <voltage >
ARM[:STARt]:SLOPe[<n >] <edge >
Selects the (negative-going) signal level
which arms the digitizer.
Selects the (positive-going) signal level
which arms the digitizer.
Selects the edge: positive, negative, or
either, which will arm the digitizer.
ARM[:STARt]:SOURce[<n >] <source >
CALibration[<chan >]:COUNt?
Sets the digitizer arm source.
CALibration
Returns a number that indicates how often
the digitizer has been calibrated.
CALibration[<chan >]:DATA <block_data >
CALibration[<chan >]:DELay
Manually sets or queries the calibration
constants.
Calibrates the A/D converter delay constant.
CALibration[<chan >]:GAIN [<readings >
[,<period >[,<flag >]]]
Performs a gain calibration using the
specified number of readings and sample
rate.
CALibration[<chan >]:SECure:CODE <code >
Sets the code required to disable
calibration security.
CALibration[<chan >]:SECure:STATe <mode > [,<code >] Enables/disables calibration security.
CALibration[<chan >]:STORe
Stores the currently selected channel’s
calibration constants into non-volatile
memory.
CALibration[<chan >]:STORe:AUTO <mode >
Selects whether or not calibration constants
will be automatically stored.
CALibration[<chan >]:VALue <number >
Specifies the voltage level at the input.
CALibration[<chan >]:ZERO [<readings >
[,<period >,[<mode >]]]
Performs a calibration of the zero offset.
CONFigure
DIAGnostic
CONFigure[<chan >]:ARRay[:VOLTage][:DC] (<size>)
[,<expected value >[,<resolution >]]
[,(@<input port>)]
Configures the digitizer for <size> number
of readings on the specified channel and
input port.
DIAGnostic:CALibration[<chan >]:CONVerge?
DIAGnostic:CALibration[<chan >]:GAIN:SENSitivity?
DIAGnostic:CALibration[<chan >]:ZERO:SENSitivity?
DIAGnostic:CHANnel[<chan >]:LABel <label >
Returns convergence data from the latest
CAL:ZERO or CAL:GAIN.
Returns the sensitivity constant used during
the last CAL:GAIN command.
Returns the sensitivity constant used during
the last CAL:ZERO command.
Sets the bit pattern (label) specified on the
four least significant bits of the reading.
310 Command Quick Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
Table 4-1. HP E1429A/B Command Quick Reference (Cont’d).
Subsystem
Commands
Description
DIAGnostic
(cont’d)
DIAGnostic:FETCh[<chan >]? <start_addr >, <count>
Returns count number of readings
beginning at start_addr.
DIAGnostic:MEMory[<chan >]:FILL <num_segments > , Fill num_segments in memory with count
<count >
readings.
DIAGnostic:MEMory[<chan >]:ADDResses?
Returns the addresses of the next memory
locations to be written to in each segment.
DIAGnostic:PEEK? <address >, <bits >
Read the specified number of bits from the
memory location specified.
DIAGnostic:POKE <address >, <bits >, <value >
DIAGnostic:SGET? <bit >
Write the value to the address specified.
Returns the state (0 or 1) of the specified
bit in the serial control register.
DIAGnostic:SPUT? <bit >, <value >
Sets the state (0 or 1) of the specified bit in
the serial control register.
DIAGnostic:TEST?
FETCh[<chan >]?
Returns information on a failed self-test.
FETCh
Returns readings from the specified
channel.
FETCh[<chan >]:COUNt?
FETCh[<chan >]:RECover?
Returns the number of readings stored in
memory from the channel specified.
Returns readings from the specified
channel following a power-failure, digitizer
configuration change, or reset.
FORMat
INITiate
FORMat[:DATA] <type >[,<length >]
INITiate[:IMMediate]
Specifies the output format for the
measurement data.
Initiates the digitizer trigger system and
places the digitizer in the wait-for-arm or
wait-for-trigger state.
INPut
INPut[<port >]:FILTer[:LPASs][:STATe] <mode >
IINPut[<port >]:IMPedance <impedance >
INPut[<port >][:STATe] <mode >
Enables/disables the 10 MHz input filter.
Sets the single ended port input impedance.
Connects/disconnects the input ports from
the signal path.
MEASure
MEMory
MEASure[<chan >]:ARRay[:VOLTage][:DC]? (<size>)
[,<expected value >[,<resolution >]]
[,(@<input por t>)]
Configures the digitizer and takes <size>
number of readings on the specified
channel and input port.
MEMory:BATTery:CHARge?
Checks the charge on the battery
supporting non-volatile memory.
MEMory:BATTery[:STATe] <state >
Enables/disables the battery supporting
non-volatile memory.
Chapter 4
Command Quick Reference 311
Download from Www.Somanuals.com. All Manuals Search And Download.
Table 4-1. HP E1429A/B Command Quick Reference (Cont’d).
Subsystem
Commands
Description
OUTPut
OUTPut:ECLTrg<n>:FEED <source >
Specifies the source of the synchronization
pulse routed to ECLTRG0 or ECLTRG1.
OUTPut:ECLTrg<n>[:STATe] <mode >
OUTPut:EXTernal[1]:FEED <source >
OUTPut:EXTernal[1][:STATe] <mode>
OUTPut:TTLTrg<n >:FEED <source >
OUTPut:TTLTrg<n >[:STATe] <mode >
Enables/disables the routing of the
synchronization pulse.
Specifies the source of the synchronization
pulse routed to the "Ext 1" BNC port.
Enables/disables the routing of the
synchronization pulse.
Specifies the source of the synchronization
pulse routed to a TTLTRG trigger line.
Enables/disables the routing of the
synchronization pulse.
Returns readings from the specified
channel.
READ
READ[<chan >]?
SENSe
[SENSe[<chan >]]:FUNCtion <function >
Selects the channel’s input port that will be
used.
[SENSe[<chan >]]:ROSCillator:EXTernal:FREQuency
<frequency >
Indicates the frequency of the external
reference source.
[SENSe[<chan >]]:ROSCillator:SOURce <source >
[SENSe[<chan >]]:SWEep:OFFSet:POINts <count >
[SENSe[<chan >]]:SWEep:POINts <count >
Selects the reference frequency source.
Specifies the number of pre-arm readings.
Specifies the total number of (pre- and
post-arm) readings taken during each arm
cycle.
[SENSe[<chan >]]:VOLTage[:DC]:RANGe <range >
Sets the digitizer measurement range.
Queries the digitizer reading resolution.
[SENSe[<chan >]]:VOLTage[:DC]:RESolution?
STATus:OPC:INITiate <state >
STATus
Controls whether *OPC, *OPC?, and *WAI
will complete immediately, or wait for the
measurement or data transfer to complete.
STATus:OPERation|:QUEStionable:CONDition?
Reads the settings of the condition register.
STATus:OPERation|:QUEStionable:ENABle <unmask > Specifies which bits in the event register
are included in the summary bit.
STATus:OPERation|:QUEStionable[:EVENt]?
Reads the settings of the event register.
Sets the negative transition mask.
STATus:OPERation|:QUEStionable:NTRansition
<unmask >
STATus:OPERation|:QUEStionable:PTRansition
<unmask >
Sets the positive transition mask.
STATus:PRESet
Initializes the enable registers and
transition masks, and sets
STATus:OPC:INITiate ON.
SYSTem
SYSTem:ERRor?
Reads the error codes and messages in
the digitizer error queue.
SYSTem:VERsion?
Returns the SCPI conversion to which the
digitizer complies.
312 Command Quick Reference
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
Table 4-1. HP E1429A/B Command Quick Reference (Cont’d).
Commands Description
Subsystem
ABORt
Removes the digitizer from the
wait-for-trigger state.
TRIGger
TRIGger[:STARt]:COUNt <number >
TRIGger[:STARt][:IMMediate]
Specifies the total number of (pre- and
post-arm) readings taken during each arm
cycle.
Sends an immediate trigger to the digitizer.
A reading is taken if the digitizer is in the
wait-for-trigger state.
TRIGger[:STARt]:SOURce <source >
TRIGger[:STARt]:TIMer1 <period >
TRIGger[:STARt]:TIMer2 <period >
Sets the trigger source.
Sets the digitizer sample rate.
Sets the post-arm sample rate for dual rate
sampling.
VINStrument[:CONFigure]:LBUS:FEED <source>
VINStrument[:CONFigure]:LBUS:MEMory:INITiate
Sets the Local bus data source.
VINStrument
Places the digitizer in the wait-for-trigger
state and starts the data transfer from
digitizer memory to the Local bus.
VINStrument[:CONFigure]:LBUS[:MODE] <mode>
VINStrument[:CONFigure]:LBUS:RESet
Sets the Local bus operating mode.
Resets the digitizer’s (E1429B) Local bus
chip.
VINStrument[:CONFigure]:LBUS:SEND:POINts
<count>
Sets the number of readings per Local bus
transfer block.
VINStrument[:CONFigure]:LBUS:SEND:POINts:AUTO
<mode >
Sets the digitizers to the Local bus
interleaved transfer mode.
VINStrument[:CONFigure]:TEST:DATA <voltage_list>
VINStrument[:CONFigure]:VME:FEED <source>
VINStrument[:CONFigure]:VME:MEMory:INITiate
Tests the Local bus by transmitting a list of
data.
Sets the VME (VXI data transfer) bus data
source.
Places the digitizer in the wait-for-trigger
state and starts the data transfer from
digitizer memory to the VME (VXI data
transfer) bus.
VINStrument[:CONFigure]:VME[:MODE] <mode>
Sets the VME (VXI data transfer) bus mode.
VINStrument[:CONFigure]:VME:SEND:ADDRess:DATA? Returns the A24 offset address used to
read measurement data from memory.
VINStrument:IDENtity?
Indicates the virtual instrument capability of
the digitizer.
Chapter 4
Command Quick Reference 313
Download from Www.Somanuals.com. All Manuals Search And Download.
SCPI Conformance Information
The HP E1429A/B 20 MSa/s 2-Channel Digitizer conforms to the
SCPI-1992.0 standard.
The following tables list all the SCPI confirmed, approved, and non-SCPI
commands that the HP E1429A/B can execute.
Table 4-2. SCPI Confirmed Commands.
ABORt
ARM
OUTPut
:ECLTrg<n >
[:STATe] <mode >
[:START |:SEQuence[1]]
:TTLTrg<n >
[:STATe] <mode>
:COUNt <count>
:DELay <period>
[:IMMediate]
READ[<chan >]?
[SENSe[chan]]
:LEVel[<chan>]
:NEGative <voltage>
:POSitive <voltage>
:SLOPe[<n>] <edge>
:SOURce[<n>] <source>
:FUNCtion <function >
:ROSCillator
:EXTernal
:FREQuency <frequency >
:SOURce <source >
:SWEep
:OFFSet
:POINts <count >
CALibration[<chan >]
:DATA <block_data >
:GAIN [<readings >[,<period>]]
:VALue <number >
:ZERO [<readings >
:POINts <count >
:VOLTage
[,<period>,[<mode >]]]
[:DC]
CONFigure[<chan >]
:ARRay
:RANGe <range >
:RESolution?
[:VOLTage]
[:DC] (<size >)
STATus
[,expected value >[,<resolution >]]
[,(@ <input port >)]
:OPERation |:QUEStionable
:CONDition?
:ENABle <unmask>
[:EVENt]?
FETCh[<chan>]?
:NTRansition <unmask>
:PTRansition <unmask>
:PRESet
FORMat
[:DATA] <type > [,<length >]
INITiate
SYSTem
[:IMMediate]
:ERRor?
:VERSion?
INPut[<port >]
:FILTer
TRIGger
[:LPASs]
[:STARt |:SEQuence[1]]
:COUNt <number>
[:IMMediate]
[:STATe] <mode >
:IMPedance <impedance >
[:STATe] <mode >
:SOURce <source>
:TIMer1 <period >
:TIMer2 <period>
MEASure[<chan >]
:ARRay
[:VOLTage]
[:DC]? (<size >)
[,expected value >[,<resolution >]]
[,(@ <input port >)]
314 SCPI Conformance Information
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
Table 4-3. Non-SCPI Commands.
CALibration[<chan >]
OUTPut
:ECLTrg<n >
:FEED <source >
:EXTernal[1]
:FEED <source >
[:STATe] <mode >
:TTLTrg<n >
:FEED <source>
:DELay
:COUNt?
:SECure
:CODE <code >
[:STATe] <mode >[,<code >]
:STORe
:AUTO <mode >
DIAGnostic
STATus
:OPC
:INITiate <state>
:CALibration[<chan >]
:CONVerge?
:GAIN
:SENSitivity?
VINStrument
[:CONFigure]
:LBUS
:ZERO
:SENSitivity?
:CHANnel[<chan >]
:LABel <label >
:FEED <source>
:MEMory
:FETCh[<chan >] <start_addr >,
<count >
:MEMory[<chan >]
:FILL <num_segments >, <count >
:ADDResses?
:PEEK <address >, <bits >
:POKE <address >, <bits >
:SGET <bit >
:SPUT <bit >, <value>
:TEST?
:INITiate
[:MODE] <mode >
:RESet
:SEND
:POINts <count >
:AUTO <mode >
:TEST
:DATA <voltage_list >
:VME
:FEED <source>
:MEMory
:INITiate
[:MODE] <mode >
:SEND
FETCh[<chan >]
:COUNt?
:RECover?
:ADDRess
:DATA?
:IDENtity?
MEMory
:BATTery
:CHARge?
[:STATe] <state >
Chapter 4
SCPI Conformance Information 315
Download from Www.Somanuals.com. All Manuals Search And Download.
Notes
316 SCPI Conformance Information
Chapter 4
Download from Www.Somanuals.com. All Manuals Search And Download.
Appendix A
Specifications
Appendix Contents
This appendix contains the HP E1429A/B 20 MSa/s 2-Channel Digitizer
operating specifications. Except as noted, the specifications apply under the
following conditions:
• Period:
1 year
0° - 55° C
• Temperature:
• Relative humidity: ≤ 65% @ 0° - 40° C
• Warm up time:
1 hour
References to the Local Bus Interface apply ONLY to E1429B; otherwise,
E1429A and E1429B are identical except as noted. Characteristics given as
"typical”, “nominal”, or "supplemental" are non-warranted; they provide
additional information for application assistance.
NOTE
NOTE
(4.1.2.1) and similar notation refer to sections of "IEEE Standard 1057:
Trial-Use Standard for Digitizing Waveform Recorders", published
July 21, 1989. This document prescribes standard measurement procedures
for several performance characteristics.
"Full-scale" refers to the entire two-sided range (+ and -) of the A/D, NOT
to the one-sided interpretation customarily used by HP. The usage here
conforms to that defined by IEEE 1057.
Memory
Characteristics
Architecture Equal amounts of memory are dedicated to channel 1 and channel 2.
During measurements, both channels sample simultaneously and send data
to their respective portions of memory. Memory is not dual-ported, and
may not be read while it is being filled. However, data being routed to the
memory may simultaneously be routed to the Local Bus or the VME Bus,
according to their respective speed capabilities.
Appendix A
Specifications 317
Download from Www.Somanuals.com. All Manuals Search And Download.
Read-Out
To VME Bus
After measurement completion, memory read-out may be requested for
either channel separately or for both channels interleaved. Memory access is
via repeated reading from a single VME register address; 16- or 32-bit
accesses are permitted. This is the "channel I/O" model; i.e. memory can
not be mapped or shared as can VME memory. Speed to VME Bus should
be up to 2M transfers/s (16- or 32-bit transfers, 2M readings/s or 4M
readings/s respectively); however, rates this high have not been tested with
existing controllers.
To Local Bus (E1429B only)
After measurement completion, memory read-out may be requested for
either channel separately or for both channels interleaved. (Data may also
be routed to Local Bus in real-time, while digitizing is occurring.) Speed is
up to 40 MBytes/s (20 Mreadings/s) for either channel separately, or 80
MBytes/s (40 Mreadings/s) for both channels interleaved.
Memory Size 524,288 readings per channel (512K, 1K=1024)
Nonvolatile memory A battery and associated support functions are provided to make the
memory non-volatile for 4 years (nominal). Battery life can be extended to 7
years (nominal) shelf life by electronically disconnecting it. A register
indicates low battery.
Partitions (Segments) When pre-arm readings are to be taken, and ARM:COUNt is from 1 to 128,
memory is partitioned. This permits each partition to be used as a circular
buffer, without disturbing data already recorded in other partitions. Each
partition records data (both pre-arm and post-arm data) from one arm event.
Number of Partitions
1, 2, 4, 8, 16, 32, 64, or 128
Partitions are always equal-sized. The number of partitions is sufficient for
the value programmed for ARM:COUNt. For example, an ARM:COUNt
value of 5,6,7, or 8 will cause 8 partitions to be created.
318 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Total Readings per Partition
(total memory size)/(number of partitions)
When the non-volatile mode of memory is enabled, this number is reduced
by four readings.
Pre-Arm Data before the arm event can be stored in a circular-overwrite mode (per
partition) until the event occurs.
Amplitude
Characteristics and
Signal Conditioning
A/D Converter 50Ω input, -1.0225V to 1.0230V range
Each channel contains a high-performance 12-bit, 20MSa/s A/D converter.
For best A/D performance (highest linearity and lowest noise), choose the
50Ω input port and select its ± 1 volt input range. Except as noted, this port
is used for A/D performance characteristics listed below. Due to amplitude
and frequency limitations of available test sources, and other practical
considerations, some parameters are specified only for this port and range.
Resolution
12 bits (including sign)
Codes from -2048 to +2047 indicate results as follows:
-2048 : amplifier overload (single-ended or differential inputs)
-2047 : not used
-2046 : normal-mode overload (negative)
-2045 : minimum on-scale reading
.
.
+2046 : maximum on-scale reading
+2047 : normal-mode overload (positive)
Appendix A
Specifications 319
Download from Www.Somanuals.com. All Manuals Search And Download.
Output Formats
ASCII (9 significant digits) or REAL 64 (IEEE 64-bit binary) formats
represent input voltage in volts, scaled appropriately according to voltage
range setting used.
PACKED denotes 2’s complement binary integers, with the raw A/D code
(including sign) occupying the leftmost 12 bits of a 16-bit word, padded
with four zero bits on the right.
Any of the above formats can be returned under the Word Serial protocol.
The Packed format is also the format returned by direct VME register read
operations and transmitted onto the Local Bus.
Gain and Offset (4.3.1, note 1057-1)
nominal gain : 2000 codes per volt
nominal offset : zero
Filtering
2-pole Bessel (10 MHz nominal) or none. For no filter, the analog
bandwidth depends on the input port used (see below).
Effective Bits (4.5.2; 4.1.3) sampling at 20 MSa/s
Input signal 500 kHz : 10.0 (10.3 typical)
10 MHz : 9.5 ( 9.8 typical)
Harmonic Distortion (4.4.2.1)
Sample rate 20 MSa/s
-64 dB THD at 500 kHz input
-61 dB THD at 10 MHz input
(THD includes 2nd through 6th harmonics)
Signal-to-Noise Ratio (4.5.1)
62 dB (500 kHz)
59 dB (10 MHz)
("Noise" includes noise, distortion, and all other undesired effects, as
defined in IEEE 1057.)
320 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Differential Nonlinearity (4.4.1.2, 3680 Hz sine wave, codes
-2045 to +2046)
1 LSB (no missing codes)
A/D Converter
Supplemental
Characteristics
Integral Nonlinearity (4.4.3, Note 1057-1)
2 LSB
Maximum Static Error (4.4.4.1, Note 1057-1)
2%
Word Error Rate (4.15)
qualified error level word error rate
>16 LSB
>32 LSB
>64 LSB
<2.5E-7
<6E-8
<5E-9
Single-ended inputs Connector : BNC
Coupling : DC
Impedance : 50Ω or 75Ω ±0.5% (nominal) selection is programmable
Disconnect : via internal relay, impedance -> high
Ranges
:- 0.10225V to 0.10230V
- 0.2045V to 0.2046V
- 0.51125V to 0.5115V
-1.0225V to 1.0230V
Overload : Flagged on-the-fly as ±FS in binary data. Input impedance
remains nominally constant up to ±5V transient and continuous. Input
voltages substantially exceeding this level cause a protection relay to trip,
which resets itself when the overload is removed. Never exceed ±42 Vpk.
DC Accuracy : ±0.4% of reading ±0.25% of peak-to-peak full-scale
Appendix A
Specifications 321
Download from Www.Somanuals.com. All Manuals Search And Download.
Accuracy is specified for the average of 100 readings (with CAL:ZERO
performed within 24 hours prior to reading in a stable environment).
For temperatures outside 18-28 degrees C, add the following temperature
coefficients for each degree below 18 C or above 28 C:
Range
% of peak-to-peak full-scale, per degree
0.1
0.2
others
0.055
0.035
0.025
Single-ended inputs,
supplemental
characteristics
Analog Bandwidth (4.6.1) (filter off)
>50 MHz (1V range)
>40 MHz (other ranges)
Effective bits on different ranges
(For performance on 1V single-ended range, see the previous A/D section.)
Typical effective bits relative to 1 v range:
Range
500 kHz
10 MHz
0.1
0.2
0.5
-0.4
-0.2
0
0
0
0
Crosstalk between channels (4.11)
Relative to full-scale input, DC - 10 MHz: -80 dB
Differential Inputs Connectors: Two BNCs, one with positive (+) gain to A/D, one with
negative (-) gain to A/D. The BNCs’ outer shells (shield), though not
grounded at the front panel, ARE connected internally to ground; they are
NOT floating.
322 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Coupling : DC
Impedance : 1 MΩ in parallel with 25 pF (nominal)
Ranges
: A/D responds to the difference of the two input voltages on
the(+) and (-) connectors.
-0.10225V to 0.10230V
-0.2045V to 0.2046V
-0.51125V to 0.5115V
-1.0225V to 1.0230V
-2.045V
to 2.046V
-5.1125V to 5.115V
-10.225V to 10.230V
-20.45V
to 20.46V
-51.125V to 51.15V
-102.25V to 102.30V
Overload: On-the-fly flagging includes amplifier overload. Ranges 0.1V to
5V: input impedance remains nominally constant up to ±10V.After removal
of ±20 Vpk input, recovery is typically to within 1% of peak-to-peak
full-scale in 250 µsec. Ranges 10V to 100V: input impedance remains
nominally constant upto ±102.3V. After removal of ±100Vpk input,
recovery is typically to within 1 % of peak-to-peak full-scale in 30 µsec.
Never exceed ±102.3V input.
CMRR : Ranges 0.1023V to 5.115V:
for |Vcm|<= 10 volts peak and slew rate <150 v/µs:
DC: >68 dB
AC: >60 dB (1 MHz)
Ranges 10.23V to 102.3V:
for |Vcm|<=102.3 volts peak and slew rate <1500 v/µs:
DC: >45 dB
AC: >40 dB
CMRR is measured by applying a signal from a 50Ω through a "Tee"
connector to both inputs.
Appendix A
Specifications 323
Download from Www.Somanuals.com. All Manuals Search And Download.
DC Accuracy:
±0.5% of reading ±1% of peak-to-peak full-scale
Accuracy is specified for the average of 100 readings with inputs
terminated in <1 kΩ and CAL:ZERO performed within 24 hours prior to
reading in a stable ambient. For temperatures outside18-28 degrees C, add
the following temperature coefficients for eachdegree below
18 C or above 28 C:
Range
% of peak-to-peak full scale, per degree
0.1024
0.2048
others
0.055
0.035
0.025
Differential Inputs,
supplemental
characteristics
Analog Bandwidth (4.6.1) (filter off)
15 MHz on 0.1023V through 1.023V ranges, plus 10.23V range
10 MHz on 2.046V and 20.46V ranges
4 MHz on 5.115V and 51.15V ranges
2 MHz on 102.3V range
Effective bits, relative to 1V single-ended range
(For 1 volt single-ended performance, see the previous A/D section.)
Typical effective bits relative to 1V single-ended:
Range
500 kHz
10 MHz
0.1
0.2
0.5
1.0
-1.4
-0.9
-0.7
-0.2
-0.1
-0.3
-0.1
-0.3
324 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Crosstalk (4.11)
On 1V range, relative to full-scale input:
DC - 1 MHz
1 - 10 MHz
-75 dB
-70 dB
Frequency and Both channels always sample simultaneously at the indicated rates and
times.
Sample Rate
Characteristics
Tolerances: All internally-generated frequencies and rates are ±0.0075%
initial tolerance.
Internal Timer The Internal Timer generates time intervals useful in controlling the sample
n
n
n
rate. It divides a reference frequency by 1x10 , 2x10 , or 4x10 , n = 0 to 8.
When the reference frequency is the internal 20 MHz oscillator, the
resulting rates are from 0.05 Sa/s to 20 MSa/s in a 1,2,5 sequence. Other
programmable choices for the reference source are VXI CLK10, the ECL
Trigger lines, and the Ext2 BNC.
Trigger (Sample Each event in this subsystem causes one A/D conversion in both channels.
(In Standard Commands for Programmable Instruments (SCPI), this is the
meaning of "Trigger". The SCPI term for the commencement of a series of
one or more triggers is "Arm".)
Clock) Subsystem
Rate: (Internal Timer using built-in reference oscillator)
0.05 Sa/s to 20 MSa/s in 5,1,2 sequence
External: VXI Trigger Busses (TTL and ECL), External BNCs, software,
or VME Read cycle
24-1
Post-Count: 1, or 7 to 2
, or continuous. (This specifies the
desired number of sample triggers after the Arm event.)
Additional limitations apply when the "Pre-Count"feature is used; see
below.
Pre-Count: 0, or 3 to 65535. When this mode is used (pre-count0)
the Digitizer samples continuously until the pre-count is satisfied and then
an Arm event occurs. Memory is used as a circular buffer with older
readings overwritten by newer readings. The programmed
pre-count value specifies the number of pre-arm samples to be protected
from overwriting by post-arm sample data. This mode limits the number of
Post-Count read-ings: The total of (pre-count + post-count) must be no
larger than the memory partition size.
Appendix A
Specifications 325
Download from Www.Somanuals.com. All Manuals Search And Download.
Dual-Rate: The Pre-Count readings can be measured at one sample
rate; then the Post-Count readings can be measured at another sample rate.
The possible sample rate sources occur in pairs. There are four possible
pairs:
{ EXT1 BNC (pre), EXT2 BNC (post); or vice-versa }
{ ECLTRG0 (pre), ECLTRG1 (post); or vice-versa }
{ REFERENCE (pre), REFERENCE/N (post)}
{ REFERENCE/N (pre), REFERENCE (post)}
(N=2,4,10,20,40...4E8).
Timebase and Trigger
additional
supplemental
characteristics
Fixed error in sample 40 psec (record size 32K)
time (4.9.1)
Arm Subsystem
Each event in this subsystem allows acquisition of one waveform record
(i.e., a burst of one or more dual-channel A/D conversions). (Note that in
SCPI, each A/D conversion event is a "Trigger".)
Sources: VXI Trigger Busses (TTL and ECL), External BNC, plus
input channel voltage (*). The logical "OR" condition of any two of these
sources may be used.
(*) Each channel’s detection circuitry uses two programmed voltage levels,
so that it is possible to generate the arm event when the signal
or leaves a defined voltage window. Voltage level set points typically are
accurate to 3% of full-scale and have hysteresis 0.5% of full-scale.
either enters
Rate: when not taking Pre-[Arm]count readings: up to 2M/sec.
when taking Pre-[Arm]count readings: 650 µsec typical
Count: 1 to 65535 or continuous (no pre-arm readings)
1 to 128 (with pre-arm readings)
Delay: Specifies additional programmed time delay from an
arm’s causative event to when the arming actually occurs. This is in
addition to irreducible internal delays.
326 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Let the Reference period be T. Added delay can be:
0T to 65534T in steps of T
65540T to 655350T in steps of 10T
Bus Access and Front Panel Connectors (BNC) :
Connectors
Channel 1 Inputs : 50Ω/75Ω single-ended
1 MΩ (+)
1 MΩ (-)
Channel 2 Inputs : as for channel 1
Ext 1 : In : Arm, Trigger
Out: Arm, Trigger, Reference, Ready for Trigger, Pre-Arm Count
Complete
Ext 2 : In : Trigger, Reference
VXI ECLTrig: In: Arm, Trigger, Reference
Out: Arm, Trigger, Reference, Ext 1 BNC signal
VXI TTLTrig: In: Arm, Trigger
Out: Arm, Ready
VME Bus: The HP E1429A can be used as either a VXI Message-Based
or register-based instrument.
Message-Based operation: Uses Standard Commands for
Programmable Instruments (SCPI). This provides easy operation with
an industry-standard programming interface.
Register-Based operation: Registers controlling the hardware
are directly accessible, providing the highest possible throughput,
at the cost of programming effort. Documentation provided
includes descriptive material and "C" source code. Some functions,
such as calibration, can only be performed with the assistance of the
on-board 68000 processor.
Appendix A
Specifications 327
Download from Www.Somanuals.com. All Manuals Search And Download.
P2 Local Bus : (E1429B only)
Modes per HP Virtual Instrument Protocol:
Append
Generate
Off
Pipeline
Data Source
Data can be sourced directly from the A/Ds or from memory --
either channel or both channels interleaved.
Pacing
Real-time (during measurements) paced by arm/trigger system
From memory (after measurements) paced by receiving
module on local bus
Maximum speed: 80 MByte/sec (i.e., can do full speed on
channels)
both
General Size :
C
1
Slots :
Characteristics
Connectors :
P1, P2
Weight (kg) :
1.9
Device Type :
Message-Based Servant
VXIBus Revision Compliance : 1.4
Register Level Documentation : Subset
SCPI Revision :
Manufacturer Code :
Model Code :
Slave :
1992.0
4095 Decimal
448 Decimal
A16/A24 D08/D16/D32
328 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Currents in Amps (typical)
+5V : I(pm)
E1429A
2.9
E1429B
3.1
I(dm)
+12V : I(pm)
I(dm)
- 12V : I(pm)
I(dm)
+24V : I(pm)
I(dm)
-24V : I(pm)
I(dm)
-5.2V : I(pm)
I(dm)
-2V : I(pm)
I(dm)
+5VS : I(pm)
I(dm)
0.5
0.2
0.04
0.5
0.2
0.04
0.2
0.04
0.1
0.05
0.1
0.05
4.1
0.36
1.3
0.12
0
0.2
0.04
0.1
0.05
0.1
0.05
3.6
0.36
1.2
0.12
0
0
0
Typical Watts/Slot:
41.5
45.3
dPressure (H2O): 0.8 mm
AirFlow (liters/s):3.8
EMC:
To meet EMC requirements in Europe, a backplane connector
shield kit is included.
Built-In Test : Extensive built-in test checks memory, timebase, much of
the trigger system, and part of the analog signal path.
Notes pertaining to IEEE 1057:
1057-1:
Based on Code Transition Levels per 4.1.2 except that levels -2047
and -2046 are not included in this characterization. The minimum
code transition level characterized is (from -2046 to) -2045; the maximum
is (from +2046 to) +2047.
Appendix A
Specifications 329
Download from Www.Somanuals.com. All Manuals Search And Download.
Notes
330 Specifications
Appendix A
Download from Www.Somanuals.com. All Manuals Search And Download.
Appendix B
Useful Tables
Appendix Contents
The tables in this appendix contain information often referred to during
HP E1429A/B programming. The tables in this appendix include:
• Table B-1. HP E1429A/B Example Program Listing . . . . . . 332
• Table B-2. HP E1429A/B Power-on/Reset Conditions . . . . 334
• Table B-3. HP E1429A/B Error Messages . . . . . . . . . . . . . . 336
Appendix B
Useful Tables 331
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-1. HP E1429A/B Example Program Listing
Location
Program Name
IDN.C
Language
Description
Chapter 1
HP BASIC, C
Program to test communication between
the PC and the digitizer.
SLFTST.C
RSTCLS.C
LRN.C
"
E1429A/B Self Test.
"
Resetting and clearing the digitizer.
Power-on/reset configuration.
Making a measurement with the digitizer.
Configuring the digitizer.
"
MEAS.C
"
CONF.C
"
QUERY.C
"
Queries SCPI command settings.
Error checking program.
ERRORCHK.C
INPUT.C
"
Chapter 2
C
Configures the digitizer input.
Takes a burst of readings.
ARMCNT.C
ARMLEVEL.C
PREPOST.C
SAMPLE.C
DUALSAMP.C
MULT_AD.C
PACKED.C
VME_REAL.C
VME_SEG1.C
SEGTST16.CPP
"
"
Arm on a specified input signal level.
Taking pre- and post-arm readings.
Specifying a sample rate.
"
"
"
Pre- and post-arm dual rate sampling.
Uses multiple digitizers.
"
"
Uses the packed data format.
VME bus data transfers.
"
"
Transfers segmented readings.
C++
VME bus data (16-bit) transfers using
embedded controller.
SEGTST32.CPP
"
VME bus data (32-bit) transfers using
embedded controller.
INST.H
INST.CPP
E1429.H
"
"
"
"
Used with SEGTST.16 and SEGTST.32.
Used with SEGTST.16 and SEGTST.32.
Used with SEGTST.16 and SEGTST.32.
Used with SEGTST.16 and SEGTST.32.
E1429.CPP
332 Useful Tables
Appendix B
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-1. HP E1429A/B Example Program Listing (Cont’d)
Location
Program Name
LOCAL_AD.C
Language
Description
Chapter 2
(Cont’d)
C
Local bus data transfer using a single
digitizer.
LBUS2PST.C
LBUSAUTO.C
STATUS.C
"
"
Local bus data transfer from digitizer
memory using multiple digitizers.
Local bus data transfer from the digitizer
A/D using multiple digitizers.
"
Demonstrates the use of the digitizer
status registers.
Appendix C
Appendix D
REG_PROG.C
C
Sets the measurement range, trigger
source, sample rate, reading count, and
re-initiates the digitizer using register
reads and writes.
LBUSINTR.C
C
Transfers data using the Local bus
interleaved transfer mode.
Appendix B
Useful Tables 333
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-2. HP E1429A/B Power-On/Reset Configuration ( returned by *LRN?)
Parameter
Macro useage
Command
Power-on/Reset Setting
*EMC
+0
Automatic cal constant storage
Channel 1 calibration value
Channel 2 calibration value
Reading format
CAL:STOR:AUTO
CAL1:VAL
CAL2:VAL
:FORM
1 (enabled)
+1.01850000E+000
+1.01850000E+000
ASC,+9
Channel 1 S/E input filter
Channel 1 S/E input impedance
Channel 1 S/E input state
Channel 2 S/E input filter
Channel 2 S/E input impedance
Channel 2 S/E input state
Channel 1 differential input filter
:INP1:FILT
IMP
0 (disabled)
+5.00000000E+001
1 (enabled)
STAT
:INP2:FILT
IMP
0 (disabled)
+5.00000000E+001
1 (enabled)
STAT
:INP3:FILT
0 (disabled)
Channel 1 differential input state STAT
1 (enabled)
Channel 2 differential input filter
:INP4:FILT
0 (disabled)
Channel 2 differential input state STAT
1 (enabled)
Input port select (channel 1)
Measurement range (channel 1) :VOLT:RANG
Input port select (channel 2)
:SENS2:FUNC
Measurement range (channel 1) :SENS2:VOLT:RANG
:FUNC
"VOLT1"
+1.02350000E+000
"VOLT2"
+1.02350000E+000
+2.00000000E+007
INTernal
Reference oscillator freqency
Reference oscillator source
VME bus data source
:ROSC:EXT:FREQ
:ROSC:SOUR
:VINS:VME:FEED
MODE
"MEM:BOTH32"
OFF
VME bus data transfer mode
Local bus data source
:VINS:LBUS:FEED
MODE
"MEM:BOTH"
OFF
Local bus data transfer mode
Local bus readings per block
Interleaved transfer mode
:VINS:LBUS:SEND:POIN
POIN:AUTO
+2.00000000E+000
ON
334 Useful Tables
Appendix B
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-2. HP E1429A/B Power-On/Reset Configuration (Cont’d)
Parameter
Command
:ARM:COUN
Power-on/Reset Setting
Arm count
+1.00000000E+000
+0.00000000E+000
IMMediate
Arm delay
DEL
Arm source1
SOUR
Arm slope1
SLOP1
POSitive
Arm level1 (negative)
Arm level1 (positive)
Arm source2
:ARM:LEV:NEG
POS
-1.02241848E+000
+1.02241848E+000
HOLD
:ARM:SOUR2
SLOP2
Arm slope2
POSitive
Arm level2 (negative)
Arm level2 (positive)
Trigger source
Sample rate1
:ARM:LEV2:NEG
POS
-1.02241848E+000
+1.02241848E+000
TIMer
:TRIG:SOUR
TIM1
+5.00000000E-008
+1.00000000E-007
+1.000000000E+000
+0
Sample rate2
TIM2
Reading count
Pre-arm reading count
:SWE:POIN
OFFS:POIN
ECLTrg0 synchronization pulse
source
:OUTP:ECLT0:FEED
"TRIG"
ECLTrg0 synchronization state
STAT
0 (disabled)
"EXT"
ECLTrg1 synchronization pulse
source
:OUTP:ECLT1:FEED
ECLTrg0 synchronization state
STAT
0 (disabled)
"TRIG"
External 1 BNC synchronization :OUTP:EXT:FEED
source
External 1 BNC synchronization STAT
state
0 (disabled)
"ARM"
TTLTrg0 synchronization pulse
source
:OUTP:TTLT0:FEED
TTLTrg0 synchronization state
STAT
STAT
0 (disabled)
0 (disabled)
TTLTrg1 - TTLTrg7
synchronization states
Appendix B
Useful Tables 335
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-3. HP E1429A/B Error Messages
Message
Code
-101
-102
Description
Invalid character
Syntax error
Unrecognized character in parameter.
Command is missing a space or comma between
parameters.
-103
-104
-105
-108
Invalid separator
Data type error
Parameter is separated by a character other than a
comma.
The wrong data type (number, character, string,
expression) was used when specifying the parameter.
GET not allowed
An HP-IB Group Execute Trigger was included in a
command string sent to the digitizer.
Parameter not allowed
More parameters were received than expected for the
command header.
-109
-112
-113
-121
Missing parameter
Program mnemonic too long
Undefined header
Command requires a parameter or parameters.
Command keyword >12 characters
Command header (keyword) was incorrectly specified.
Invalid character in number
A character other than a comma or number is in the
middle of a number.
-123
Exponent too large
The magnitude of the exponent was larger than
32000.
-124
-128
-131
Too many digits
Numeric data not allowed
Invalid suffix
More than 255 digits were used to specify a number.
A number was specified when a letter was required.
Parameter suffix incorrectly specified (e.g. 10 MZ
rather than 10 MHZ).
-138
-141
-144
-148
Suffix not allowed
Invalid character data
Character data too long
Character data not allowed
Parameter suffix is specifed when one is not allowed.
Discrete parameter specified is not a valid choice.
A character data type parameter is >12 characters.
Discrete parameter was specified when another type
(e.g. numeric, boolean) is required.
-151
-158
Invalid string data
The string data specified (such as for the
OUTPut:ECLTrg:FEED <source>command) is not a
valid choice.
String data not allowed
A string was specified when another parameter type
(i.e. discrete, numeric, boolean) is required.
336 Useful Tables
Appendix B
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-3. HP E1429A/B Error Messages (Cont’d)
Code
Message
Description
-161
Invalid block data
The number of bytes in a definite length data block
does not equal the number of bytes indicated by the
block header.
-168
171
Block data not allowed
Invalid Expression
Block data was specified when another parameter
type (i.e. discrete, numeric, boolean) is required.
The expression used to calculate a parameter value
is invalid.
-178
181
Expression data not allowed
An expression cannot be used to calculate a
parameter value .
Invalid outside macro definition A macro parameter placeholder ($<number) was
encountered outside of a macro definition.
-183
184
Invalid inside macro definition
Macro parameter error
Trigger ignored
A command was encountered that is not allowed
inside a macro.
A command inside the macro definition had the wrong
number or wrong type of parameters.
-211
A trigger was received and the digitizer was not in the
wait-for-trigger state. Or, a trigger was received from
a source other than the specified source.
-212
Arm ignored
An arm was received and the digitizer was not in the
wait-for-arm state. Or, an arm was received from a
source other than the specified source.
-213
-214
Init ignored
INITiate:IMMediate received while the digitizer was
initiated.
Trigger deadlock
Readings cannot be retrieved using FETCh? or
READ? because TRIGer:STARt:COUNt INFinite is
set. Also occurs with READ? and
TRIGger:STARt:SOURce HOLD or
TRIGger:STARt:SOURce BUS set.
-215
-221
Arm deadlock
Readings cannot be retrieved using FETCh? or
READ? because ARM:STARt:COUNt INFinite is set.
Also occurs with READ? and ARM:STARt:SOURce
HOLD, ARM:STARt:SOURce BUS, or
ARM:STARt:SOURce OFF set.
Settings conflict
Refer to the statement appended to the "Settings
conflict" message for a description of the conflict and
how it was resolved.
-222
-224
Data out of range
Parameter value is out of range for any digitizer
configuration.
Illegal parameter value
An exact value, from a list of possible choices, was
expected.
Appendix B
Useful Tables 337
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-3. HP E1429A/B Error Messages (Cont’d)
Code
Message
Description
-230
Data corrupt or stale
Attempting to FETCh? data from the digitizer
following a reset or other digitizer configuration
change.
-231
Data questionable
Hardware error
Reading accuracy is questionable. An example is
when the expected value and resolution parameters
of the CONFigure or MEASure command are
specified. If the resolution is too fine for the expected
value, this error occurs.
-240
The command could not be executed because of a
hardware failure.
-270
-271
Macro error
*RMC <name>was executed and name is not defined.
Macro syntax error
A syntax error occurred among the commands within
the macro.
-272
-273
Macro execution error
Illegal macro label
Macro program data sequence could not be executed
due to a syntax error within the macro definition.
The macro label defined in the *DMC command was
too long, the same as a common command keyword,
or contained invalid header syntax.
-274
-275
Macro parameter error
Macro definition too long
The macro definition improperly used a macro
parameter placeholder.
The commands within the macro could not be
executed because the string or block contents were
too long.
-276
-277
-278
Macro recursion error
Macro redefinition not allowed
Macro header not found
A macro program data sequence could not be
executed because the sequence leads to the
execution of a macro being defined.
A macro label in the *DMC command could not be
executed because the macro label was already
defined.
A legal macro label in the *GMC? query could not be
executed because the header was not previously
defined.
-312
-313
-330
-350
PUD memory lost
Calibration memory lost
Self-test failed
The protected user data saved by the *PUD
command has been lost.
The nonvolatile calibration data used by the *CAL
command has been lost.
Note the information associated with the message for
a description of the failure.
Queue overflow
The digitizer error queue is full and additional errors
have occurred.
338 Useful Tables
Appendix B
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-3. HP E1429A/B Error Messages (Cont’d)
Code
Message
Description
-410
Query INTERRUPTED
The digitizer was sent a command before it was
finished responding to a query command.
-420
Query UNTERMINATED
Query DEADLOCKED
The controller (computer) attempts to read a query
response from the digitizer without having first sent a
complete query command.
-430
-440
1002
The digitizer’s input and output buffers are full and the
digitizer cannot continue.
Query UNTERMINATED after
indefinite response
Occurs when the *IDN? query is not the last query
executed in a command string.
Cal security enabled
Calibration security must be disabled to calibrate the
digitizer, to read or write calibration data, to change
the security code, or to change the protected user
data.
1004
1005
Cal write fail
Writing calibration or protected user data (*PUD) to
nonvolatile memory failed.
Error during CAL
An error occurred during calibration. Refer to the
statement appended to this message for a description
of the error.
1007
1008
Calibration security defeated
Error during zero cal
A jumper was moved to defeat calibration security.
An error occurred during calibration of the zero offset.
Refer to the statement appended to this message for
a description of the error.
1009
1010
Error during gain cal
An error occurred during gain calibration. Refer to the
statement appended to this message for a description
of the error.
Error during linearity cal
An error occurred during linearity calibration. Refer to
the statement appended to this message for a
description of the error.
1015
1016
1017
A/D control register not responding The serial interface register was not working properly
at power-on.
Illegal during LBUS or VME
memory transfer
The command can not be executed while a VME bus
or Local bus data transfer is in progress.
Battery too low, data may be lost The battery does not contain sufficient charge to
maintain memory over an extended period. This error
occurs when readings are taken, when the battery is
enabled/disabled, or during the self-test.
1018
Battery backed data corrupt
This error is due to a low battery charge, or if the
battery is enabled after readings are in memory.
Appendix B
Useful Tables 339
Download from Www.Somanuals.com. All Manuals Search And Download.
Table B-3. HP E1429A/B Error Messages (Cont’d)
Code
Message
Description
1019
Data loss detected during LBUS Readings from the digitizer A/D were lost during a
transfer
Local bus transfer. This error usually occurs when
multiple digitizers are used and arming/triggering
signals between them cause readings to be missed.
1020
1021
1022
Indefinite block not allowed
When executing the VINStrument:TEST:DATA
command, the data must be in the IEEE-488.2
definite length block format.
LBUS still running, ABOR or
VINS:LBUS:RES needed
The HP E1429B digitizer is in the interleaved transfer
mode and the LBUS chip is still active. The chip must
be reset before the next INITiate command.
Local bus test data size not
multiple of 4 bytes
When executing the VINStrument:TEST:DATA
command, the amount of data sent must be a multiple
of 4 (bytes).
1213
2003
2004
2007
Illegal when initiated
The command can not be executed while the digitizer
is INITiated.
Memory address incorrect
Address specified by DIAGnostic:POKE or
DIAGnostic:PEEK? is not valid.
Invalid address for 32-bit access Attemping a 32-bit read from an odd numbered
address.
Bus error
Error during DIAGnostic:PEEK or DIAGnostic:POKE?
340 Useful Tables
Appendix B
Download from Www.Somanuals.com. All Manuals Search And Download.
n
Appendix C
Register Programming
Appendix Contents
The HP E1429A/B 20 MSa/s 2-Channel Digitizer is a message-based
device. As such, it supports the VXI word-serial protocol used to transfer
ASCII command strings and is capable of converting the SCPI commands it
receives to reads and writes of its hardware registers.
Register-based programming allows direct access to the hardware registers.
This increases the speed at which events in the digitizer occur since the
parsing (converting to register reads and writes) of SCPI commands is
eliminated.
This appendix is not a 1-to-1 correlation between each digitizer SCPI
command and an equivalent register read or write. However, basic digitizer
configuration is covered, together with methods of re-initiating the digitizer
and retrieving data from memory through direct register access. The
sections of the appendix include:
• Addressing the Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
• Register Descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
• Configuring the Digitizer Input . . . . . . . . . . . . . . . . . . . . . . . 368
• Arming and Triggering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
• Re-i itiating the Digitizer . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
• Retrieving Data from Memory . . . . . . . . . . . . . . . . . . . . . . . 385
• Example Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
System The example programs and programming techniques shown in this appendix
are based on the following system configuration:
Configuration
Controller:
HP Vectra 386/25 personal computer
HP-IB Interface Card:
HP 82335 HP-IB Interface with
Command Library
Mainframe:
HP 75000 Series C
Slot0/Resource Manager:
HP E1406 Command Module
HP E1429A/B Logical Address: 40
Appendix C
Register Programming 341
Download from Www.Somanuals.com. All Manuals Search And Download.
Each program uses a combination of SCPI commands and register
reads/writes. In most cases SCPI commands set the initial digitizer
configuration. Register reads/writes are used to modify the configuration,
re-initialize the digitizer, and retrieve readings.
Reading and The examples in this appendix are based on the system configuration listed
previously. With this configuration, the digitizer’s A24 registers are read,
and written to, using the HP E1406 Command Module’s
DIAGnostic:PEEK?, DIAGnostic:POKE, and
Writing to the
Registers
DIAGnostic:UPLoad:SADDress? commands:
DIAGnostic:PEEK? <address >, <width >
DIAGnostic:POKE <address >, <width >, <data >
DIAGnostic:UPLoad:SADDress? <address >, <byte_count >
<address > - the address (A24 base address + register offset) of the register.
<width > - the number of bits read (DIAG:PEEK?), or the number of data
bits written to the register (DIAG:POKE). Unless otherwise noted,
register reads and writes are 8-bits.
<data >- the integer data written to the register.
<byte_count >- the number of reading bytes uploaded (read) from digitizer
memory. Since each reading is two bytes, byte_count is equal to 2 times the
number of readings to upload. In the example program at the end of this
appendix, DIAGnostic:UPLoad:SADDress? is used to retrieve all the
readings from memory once the digitizer has been re-initiated.
Note
With an embedded controller, the Standard Instrument Control Library
(SICL), and the programming procedures found in this appendix, higher
throughput rates can be achieved than the rates available with the system
configuration listed. To use these procedures, note the A24 address mapping
of the embedded controller, and replace DIAG:PEEK?, DIAG:POKE, and
DIAG:UPL:SADD? with the appropriate SICL reads and writes.
342 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Addressing the Registers
Access to the digitizer’s registers is through addresses mapped into A24
address space. At power-on, the system resource manager (HP E1406) reads
the digitizer’s Device Type register (in A16 address space) to determine the
amount of A24 memory the digitizer needs (4096 bytes). The resource
manager allocates a block of A24 memory to the digitizer and writes the
base (starting) address into the digitizer’s Offset register (also in A16 space).
Figure C-1 is an example of how the HP E1406 resource manager maps the
digitizer registers into A16 and A24 address space.
Figure C-1. HP E1429A/B A24 Address Space
Appendix C
Register Programming 343
Download from Www.Somanuals.com. All Manuals Search And Download.
Note
The following information on determining register addresses is based on the
computer configuration shown in Figure C-1, and on address mapping as
performed by the HP E1406 Command Module’s resource manager. For
configurations with embedded controllers or configurations with a resource
manager other than the HP E1406 Command Module, refer to those
manuals containing information on A24 address mapping.
Determining the When you are reading or writing to a digitizer register, a hexadecimal or
decimal register address is specified. An A24 register address is:
A24 Base Address
A24 register address = A24 base address + register offset
There are three ways to determine the digitizer’s A24 base address:
1. Note the base address assigned by the resource manager at power-on.
The HP E1406 resource manager configuration sequence can be
monitored using an RS-232 terminal or printer. The "C-Size VXIbus
Systems Installation and Getting Started Guide" contains information
on connecting a terminal.
2. Execute the following HP E1406 Command Module command:
VXI:CONFigure:DeviceLIST? <logical_address>
The C language example programs disk contains the program
Query.C. By changing the line:
#define ADDR 70905L (E1429 digitizer address)
to:
#define ADDR 70900L (E1406 address)
and entering the command:
VXI:CONF:DLIS? 40(or the current E1429 logical address)
a program string similar to the following is returned when the
program executes:
vxi:conf:dlis? 40 = +40,+0,+4095,+448,+1,+0,MSG,A24,
#H00220000, #H00001000,Ready,"","","",MBinstr INSTALLED AT
SECONDARY ADDR 5"
344 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
3. The hexadecimal number in bold is the digitizer’s A24 base address.
4. Read the digitizer’s offset register in A16 address space. As shown in
Figure C-1, the Offset register is one of the digitizer’s configuration
registers.
In a system where the HP E1406 Command Module allocates address
space, the A16 base address of the configuration registers is
computed as:
1FC000 + (LADDR * 64)
16
16
2,080,768 + (LADDR * 64)
where 1FC000 is the starting location of the configuration register
16
addresses, LADDR is the digitizer’s logical address, and 64 is the
number of address bytes in A16 per VXI device.
The digitizer’s factory set logical address is 40. If this address is not
changed, the base address of the digitizer’s configuration registers in
A16 is:
1FC000 + (40 * 64)
16
16
1FC000 + A00 = 1FCA00
16
16
16
or decimal
2,080,768 + (40 * 64)
2,080,768 + 2560 = 2,083,328
Given the A16 base address and the "offset" of the Offset register (06
from Figure C-1), the digitizer’s A24 base address can be determined
as shown in the program A24_REAL.C.
Appendix C
Register Programming 345
Download from Www.Somanuals.com. All Manuals Search And Download.
A24_READ.C
/* A24_READ.C - This program reads the digitizer’s A24 base address. */
/* Include the following header files */
#include <stdio.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library */
#define CMD_MOD 70900L /* I/O path between the digitizer and the Command Module */
/* Function prototypes */
long get_base_addr(void);
/****************************************************************************/
void main(void)
{
long base_addr;/* variable for digitizer A24 base address */
base_addr = get_base_addr();
/* function call to calculate and */
/* return digitizer A24 base address */
printf("\nA24 base address = %ld", base_addr);
}
/****************************************************************************/
long get_base_addr(void)
{
/* base address of (A24) offset register in A16 address space */
long base_addr = (0x1FC000 + (40 * 64)) + 6; /* digitizer logical address is 40 */
float a24offst;
/* A24 offset from A16 offset register */
char rd_addr[80]; /* command string variable */
/* Create the command string which reads the A24 base address from the offset register*/
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
/* Read value from offset register */
IOENTER(CMD_MOD, &a24offst);
Continued on Next Page
346 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/* Multiply offset value by 256 for 24-bit address value */
a24offst *= 256.;
return (long)a24offst;
}
Note
Multiplying the value of the offset register (a24offst) by 256 (100 )
16
converts the 16-bit register value to a 24-bit address.
Register Descriptions
The registers used to configure the digitizer are shown on the following
pages. The registers are listed by functional group. Listed with each register
are its bit definitions and, where applicable, the bit settings at power-on or
following a reset. Note that "base" is the A24 base address.
Appendix C
Register Programming 347
Download from Www.Somanuals.com. All Manuals Search And Download.
A24 Register Table
Category
Address
Read Registers
Write Registers
See Page...
base + 0316 A/D Status Register
base + 0516 A/D Serial Read Register
base + 0B16
A/D Serial Write Register
Input Configuration
Registers
A/D Parallel Strobe Register
A/D Shift Register
base + 4116 Arm Immediate Register
base + 4316 Arm Status Register
base + 4516 Sample Trigger Register
base + 4716
Abort Register
Timebase Initiation Register
Arm Trigger Register
base + 4916
Arm Source Register
base + 4B16
Arm Control Register
base +4D16
Trigger Source Register
Reference Oscillator Register
MSByte Arm Delay Register
LSByte Arm Delay Register
MSByte Arm Count Register
LSByte Arm Count Register
Trigger Immediate Register
Timebase Reset Register
Arm Count Latch Register
Decade Division Register
Binary Division Register
Interpolator Control Register
Stop Data Register
base +4F16
Arm and Trigger
(timebase)
Configuration
Registers
base +5116
base + 5316
base +5516
base +5716
base +5D16
base + 5F16
base +5916
base +6116
base +6316
base + 6516
base +6716
base + 6916
Interpolator Calibration Register
Self-test Register
base + 6B16
base +7316
LSByte Pre-arm Count Register
MSByte Pre-arm Count Register
LSByte Post-arm Count Register
base +7516
base +7716
base +7916
MIDByte Post-arm Count
Register
base +7B16
base +7D16
base +7F16
MSByte Post-arm Count Register
Timebase Initialization Register
Timebase Initialization Register
348 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Category
Address
base + 0216
base + 0816
base +0A16
base +0C16
base +2116
base +2316
base +2516
base +2716
base +2B16
base + 2D16
base +2F16
Read Registers
Write Registers
See Page...
Traffic Register
Pulse Register
Channel ID Register
Data Register
Memory Control
Registers
Memory Control Register
Memory address register 0
Memory address register 1
Memory address register 2
Terminal Address Register
Base Address 0 Register
Base Address 1 Register
Appendix C
Register Programming 349
Download from Www.Somanuals.com. All Manuals Search And Download.
The Input Configuration Registers
The input configuration registers are used to set the following digitizer input
parameters:
• Input enable
• Input impedance
• Input filter
• Measurement range
The A/D Status Register
base +03
16
The A/D status register is a read only register that returns the status of the
digitizer’s input section. The register bits are defined below. Only the use of
bit 0 is documented.
Address
7
6
5
4
3
2
1
0
Ch. 2 Diff. Ch. 1 Diff. Ch2. S/E Ch1. S/E unused Ovld
ovld ovld ovld ovld clr
Error Bit State
LED
base + 0316
0 - no ovld 0 - no ovld 0 - no ovld 0 - no ovld
1 - ovld 1 - ovld 1 - ovld 1 - ovld
---
0 - OFF out data
1 - ON
The state (’1’ or ’0’) of bit 0 represents the state of the A/D shift register’s
output bit (bit 55). A read of the status register (and the output bit) does not
cause a shift of the A/D shift register.
The A/D Serial Register
base +05
16
The A/D serial register is a read/write register that receives and sends
configuration data from/to the A/D shift register. The shift register is used
to enable the inputs, and to set the input impedance, filter, and measurement
range.
Address
7
6
5
4
3
2
1
0
unused
register write: shifts one bit into the shift
register
base + 0516
register read: reads one bit out of the shift
register
Each time a ’1’ or ’0’ is written to the serial register, one bit is loaded into
the A/D shift register at bit position 0.
Each time the serial register is read, one bit is shifted out of the A/D shift
register.
350 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The A/D Parallel Strobe Register
base +0B
16
The A/D parallel strobe register is a write only register that latches the A/D
configuration held by the A/D shift register to the analog-to-digital
converter.
Address
7
6
5
4
3
2
1
0
not used
0 - idle
1 - strobe
not used
base + 0B16
Setting bit 2 to ’1’ latches the configuration represented by the bits in the
A/D shift register to the A/D. Only one strobe is required.
The A/D Shift Register
The A/D shift register is a 56-bit serial register used to configure various
parameters of the digitizer. The register does not have an A24 address since
it is accessed using the A/D serial register and the A/D strobe register as
shown in Figure C-2.
Each time the configuration is changed, all 56 bits must be written to the
shift register from the A/D serial register (base +05 ). The configuration
16
is then latched to the A/D with a single write to the A/D strobe register
(base + 0B ). The bits of the shift register are defined as follows. Only the
16
unshaded bits are covered in this appendix. Bits 55 - 52 are undefined and
are not shown.
Appendix C
Register Programming 351
Download from Www.Somanuals.com. All Manuals Search And Download.
Bit
0
Name
Function
Bit
26
27
28
29
30
31
32
Name
Function
ENSYNC1 Enable Ext1 output
ENSYNC2 Enable Ext2 output
ENEXT1 Enable Ext1 input
OPENINH Input protection inhibit
1
TESTLEDS LED test
not used
2
3
ENEXT2 Enable Ext2 input
not used
4
CALSELA Lower bit of cal source select
CALSELB Upper bit of cal source select
not used
5
not used
6
TERM75 1
CH1HCAL 0 - switches H_CAL to ch1 +input
1 - switches HI to ch1 +input
0 - Ch1 input impedance 50Ω
1 - Ch1 input impedance 75Ω
7
8
SINGEND1 0 - Ch1 S/E input disabled
1 - Ch1 S/E input enabled
33
34
35
36
37
38
CH1LCAL 0 - switches L_CAL to ch1 -input
1 - switches LO to ch1 -input
DUMMY1 Ch1 dummy load select
ATT20DB 0 - Ch1 20dB input attenuator ON
1 - Ch1 20dB input attenuator OFF
9
FILTER1 0 - Ch1 filter disabled
1 - Ch1 filter enabled
CH1POST 0 - Ch1 20dB post attenuator ON
1 - Ch1 20dB post attenuator OFF
10
11
12
PIGGY1 0 - Ch1 attenuators disabled
1- Ch1 attenuators enabled
CH1INPT 0 - Ch1 differential input enabled
1 - Ch1 differential input disabled
TERM75 2
CH1INT 0 - Ch1 6dB int attenuator ON
1 - Ch1 6dB int attenuator OFF
0 - Ch2 input impedance 50Ω
1 - Ch2 input impedance 75Ω
SINGEND2 0 - Ch2 S/E input disabled
1 - Ch2 S/E input enabled
CH1INT 0 - Ch1 14dB int attenuator ON
1 - Ch1 14dB int attenuator OFF
13
14
DUMMY2 Ch2 dummy load select
39
40
not used
FILTER2 0 - Ch2 filter disabled
1 - Ch2 filter enabled
CH2HCAL Ch2 - see bit 32
15
16
17
18
19
20
PIGGY2 0 - Ch2 attenuators disabled
1- Ch2 attenuators enabled
41
42
43
44
45
46
47
CH2LCAL Ch2 - see bit 33
CAL1A(0) Ch1 cal address line 0
CAL1A(1) Ch1 cal address line 1
CAL1A(2) Ch1 cal address line 2
CAL1A(3) Ch2 cal address line 3
CAL1EN Ch1 cal enable
ATT20DB 0 - Ch2 20dB input attenuator ON
1 - Ch2 20dB input attenuator OFF
CH2POST 0 - Ch2 20dB post attenuator ON
1 - Ch2 20dB post attenuator OFF
CH2INPT 0 - Ch2 differential input enabled
1 - Ch2 differential input disabled
CH2INT 0 - Ch2 6dB int attenuator ON
1 - Ch2 6dB int attenuator OFF
CH2INT 0 - Ch2 14dB int attenuator ON
1 - Ch2 14dB int attenuator OFF
21
22
23
CAL2A(0) Ch2 cal address line 0
CAL2A(1) Ch2 cal address line 1
CAL2A(2) Ch2 cal address line 2
not used
48 - 49 HCALMUX Bits: 49/51 48/50
Output
0
0
1
1
0
1
0
1
GND
+10V REF
+1V REF
CALSIG
50 - 51
LCALMUX
Output
352 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Arm and Trigger Configuration Registers
The following registers are used to set the digitizer’s arm and trigger
parameters.
The Abort and Arm Immediate Register
base + 41
16
The function of the Abort and Arm Immediate register depends on whether
you are writing to the register, or reading the register. Its useage is defined
as follows
Address
7
6
5
4
3
2
1
0
register write: measurements aborted
register read: arm immediate
base + 4116
Writing any 8-bit value to this register aborts the current measurements.
Reading this register arms the digitizer if the digitizer is initiated
(wait-for-arm state). Once armed, the digitizer moves to the wait-for-trigger
state.
The Arm Status Register
base + 43
16
The arm status register monitors states and conditions associated with the
digitizer’s arming hardware. The register bits are defined below.
Address
base + 4316
Purpose
7
6
5
4
3
8
2
4
1
2
0
1
128
64
32
16
Pre-
delay
Stage2Q No arm
Last
TRG*
Begin Delayed Initiated Initialized
samp
Pre-delay: Bit 7 is set to ’1’ when an arm signal is received, but the arm
delay (as set by the arm delay register) must elapse before the digitizer is
armed. When arm immediate is used with the dual rate sampling mode (bit
5: base + 4B ), bit 7 is set to ’1’, one reference period before the digitizer
16
is actually armed.
Stage2Q: Bit 6 is set to ’1’ when an arm signal other than an arm
immediate is received.
No arm: Bit 5 is set to ’1’ while the digitizer is taking pre-arm readings.
The bit is set to ’0’ when the pre-arm count is reached. This bit is checked
before an arm immediate is sent (a write to base + 41 ).
16
Appendix C
Register Programming 353
Download from Www.Somanuals.com. All Manuals Search And Download.
Last TRG*: Bit 4 is set to ’0’ when the last programmed arm count is
reached (base + 55 and base + 57 ). The bit is set to ’1’ when the burst of
16
16
readings associated with the arm are complete.
Begin samp: Bit 3 is set to ’0’ with the first reading in each arm burst and
is set to ’1’ after the last reading in each arm burst.
Delayed: Bit 2 is set to ’1’ after the programmed arm delay (base + 51
16
and base + 53 ) has elapsed.
16
Initiated: Bit 1 is set to ’1’ when the digitizer is initiated and can accept an
arm trigger. This bit is monitored when taking multiple bursts of pre- and
post-arm readings and transferring the readings over the VME bus. Multiple
bursts of pre- and post-arm readings segment memory (Figure 3-13). There
is a period (partition window) between each segment that is used by the
processor to set up the next segment. When bit 1 is set to ’1’, the next
segment is ready for data storage and transfer. See "VMEbus Data
Transfers" in Chapter 3 for more information.
Initialized: Bit 0 is set to ’1’ when the digitizer is initialized and is ready to
accept an initiate pulse.
The Timebase Initiation Register
base + 45
16
The function of the timebase initiation register is defined below.
Address
7
6
5
4
3
2
1
0
register write: initiates the timebase processor
register read: sample trigger
base + 4516
Writing any 8-bit value to the register initiates the timebase processor.
Reading this register generates a sample trigger when the trigger source is
an HP-IB Group Execute Trigger or the IEEE-488.2 *TRG command.
354 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Arm Internal Bus Register
base + 47
16
The function of the arm internal bus register is defined below.
Address
7
6
5
4
3
2
1
0
register write: arm trigger
base + 4716
Writing any 8-bit value to the register generates an arm trigger when the
arm source is an HP-IB Group Execute Trigger or the IEEE-488.2 *TRG
command.
The Arm Source Register
base + 49
16
The Arm source register is used to set the source and slope of the signal
which arms the digitizer. The register bits are described below.
Address
base + 4916
Purpose
7
6
5
4
3
8
2
4
1
0
1
128
64
32
16
2
Source 2
slope
Arm source 2
Source 1
slope
Arm source 1
0 - positive
1 - negative
0 0 0 - 1 1 1
0 - positive
1 - negative
0 0 0 - 1 1 1
Setting
Arm Source Register Power-on/Reset Settings
At power-on or following a reset, the arm source register is set to
0111 1111 or 7F .
16
Bit Descriptions Source 2 slope: Bit 7 sets the slope of arm source 2. For all arm sources
except a TTLTrg trigger line (bits 6 - 4 =001) and the HP-IB GET
command or *TRG command (bits 6 - 4 =010), the slope should be set to
positive (0).
Arm source 2: Bits 6 - 4 set arm trigger source 2. Arm source 2 and arm
source 1 are ORed together so that an arm from either source arms the
digitizer. Setting bits 6 - 4 as follows sets the arm source indicated.
0 0 0 - "Ext 1" BNC connector.
0 0 1* - TTLTrg trigger line (negative-edge triggered)
0 1 0* - HP-IB GET command or IEEE-488.2 *TRG command(negative
edge
triggered)
0 1 1 - arm when a specified input level on channel 1 is reached
1 0 0 - arm when a specified input level on channel 2 is reached
1 0 1 - ECLTrg0 trigger line
1 1 0 - ECLTrg1 trigger line
1 1 1 - OFF (arm source 2 is disabled)
Appendix C
Register Programming 355
Download from Www.Somanuals.com. All Manuals Search And Download.
Source 1 slope: Bit 3 sets the slope of arm source 1. For all arm sources
except a TTLTrg trigger line (bits 2 - 0 =001) and the HP-IB GET
command or *TRG command (bits 2 - 0 =010), the slope should be set to
positive (0).
Arm source 1: Bits 2 - 0 set arm trigger source 1. Arm source 2 and arm
source 1 are ORed together so that an arm from either source arms the
digitizer. Setting bits 2 - 0 as follows sets the arm source indicated.
0 0 0 - "Ext 1" BNC connector.
0 0 1* - TTLTrg trigger line (negative-edge triggered)
0 1 0* - HP-IB GET command or IEEE-488.2 *TRG command(negative
edge
triggered)
0 1 1 - arm when a specified input level on channel 1 is reached
1 0 0 - arm when a specified input level on channel 2 is reached
1 0 1 - ECLTrg0 trigger line
1 1 0 - ECLTrg1 trigger line
1 1 1 - arm immediate (arm source 2 must be OFF when selecting this
source)
The Arm Control Register
base + 4B
16
The arm control register controls various digitizer arming parameters. The
register bits are defined below.
Address
base + 4B16
Purpose
7
6
5
4
3
8
2
4
1
2
0
1
128
64
32
16
not used enintr0
pre-trig
thold
triginf
delay
ref
2 speed reclk/
10
---
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
Setting
Arm Control Register Power-on/Reset Settings
At power-on or following a reset, the arm control register is set to
0000 0001 or 01 .
16
Bit Descriptions enintr0: Enable local interrupt 0. Setting bit 6 to ’1’ enables local interrupt
0 to go ’high’ if an arm trigger is received while arm source hold is set, or
if the digitizer is already armed. The bit is cleared (’0’) when the digitizer is
initiated.
2 speed: Setting bit 5 to ’1’ enables the dual rate sampling mode.
356 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
reclk/10: Setting bit 4 to ’1’ causes the reference divider to be reclocked by
the reference clock / 10. Setting bit 4 to ’0’ causes the reference divider to
be reclocked by the reference clock.
pre-trig: Setting bit 3 to ’1’ enables pre- and post-arm readings.
thold: Setting bit 2 to ’1’ sets arm trigger hold which prevents the digitizer
from accepting arm signals from any source except an arm immediate
(writing any value to base + 41 ). This bit is used to suspend arming while
16
changing the arm source when the digitizer is initiated.
triginf: Setting bit 1 to ’1’ sets the digitizer to accept an infinite number of
arm triggers. The bit overrides the arm count registers, however; the arm
count remains active. Thus, if a number of arms less than the arm count
have occurred when bit 1 is set, the counter will keep track of the number of
arms which have occurred. When bit 1 is cleared (’0’), the digitizer returns
to the idle state if the arm count was reached. Otherwise, arms are accepted
until the arm count is reached.
delay ref: When bit 0 is set to ’1’ , the arm delay is derived from the
reference clock. When bit 0 is cleared (’0’), the arm delay is derived from
the reference clock / 10. See "Setting the Arm Delay" for more information.
The Trigger Source Register
base + 4D
16
The trigger source register is used to set the digitizer’s trigger (sample)
source. The register bits are defined below.
Address
base + 4D16
Purpose
7
6
5
4
3
2
4
1
2
0
1
128
64
32
16
8
Sample/ Sample Sample
Hold Infinite Once
Trigger Source
Internal TTL
Sources
0 - OFF 0 - OFF 0 - OFF
1 - ON 1 - ON 1 - ON
0 0 0 - 1 1 1
0 0 - 1 1
Setting
Trigger Source Register Power-on/Reset Settings
At power-on or following a reset, the trigger source register is set to
0010 0000 or 20 .
16
Appendix C
Register Programming 357
Download from Www.Somanuals.com. All Manuals Search And Download.
Bit Descriptions Sample/Hold: Setting bit 7 to ’1’ sets sample trigger hold which prevents
the digitizer from accepting sample trigger signals.
Sample Infinite: Setting bit 6 to ’1’ sets infinite sample triggers.
Triggering continues until aborted (base + 41 ) or until the bit is set to ’0’
16
and the post arm reading count is reached. One sample trigger occurs after
the bit is set to ’0’ even if the post-arm trigger count is reached. Sample
Infinite overrides Sample Once (bit 5).
Sample Once: Setting bit 5 to ’1’ causes the digitizer to take one sample
and return to the idle state, regardless of the pre-arm and post-arm reading
counts. This bit should not be set if the pre-arm and post-arm reading mode
is set (arm control register bit 3: base + 4B ). The bit is overridden by bit
16
6 (Sample Infinite).
Trigger Source: Bits 4 - 2 set the digitizer trigger (sample) source. Setting
bits 4 - 2 as follows sets the trigger source indicated.
0 0 0 - reference oscillator output.
0 0 1 - ECLTrg0 trigger line.
0 1 0 - "Ext 1" BNC connector.
0 1 1 - internal TTL source as specified by bits 1 - 0.
1 0 0 - reference period / n.
1 0 1 - ECLTrg1 trigger line.
1 1 0 - "Ext 2" BNC connector.
1 1 1 - not used.
Internal TTL Sources: Bits 1 - 0 are additional sample sources which are
selected when bits 4 - 2 are set to 011. The sources set by bits 1 - 0 are:
0 0 - VME (VXI data transfer) bus. Trigger when data register (base + 12
is read.
)
16
0 1 - HP-IB Group Execute Trigger or IEEE-488.2 *TRG command
1 0 - TTLTrg trigger line
1 1 - user during local bus data transfer (does not take data)
358 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Reference Oscillator Register
base + 4F
16
The reference oscillator register sets the reference source from which the
sample rate is derived. The register is also used to output synchronization
signals.
Address
base + 4F16
Purpose
7
6
5
4
3
8
2
4
1
2
0
1
128
64
32
16
Arm source ECLTrg1 source
1 enable
ECLTrg0 source Reference oscillator source
0 - enabled
1 - disabled
0 0 - 1 1
0 0 - 1 1 0 0 0 - 1 0 0
Setting
Reference Oscillator Register Power-on/Reset Settings
At power-on or following a reset, the reference oscillator register is set to
0111 1000 or 78 .
16
Bit Descriptions Arm source 1 enable: Setting bit 7 to ’0’ enables the arm source 1 trigger
source (arm source register: base + 49 ) to arm the digitizer. Setting bit 7
16
to ’1’ disables arm source 1.
ECLTrg1 source: Bits 6 - 5 set the signal source that is output on the
ECLTrg1 trigger line. The sources include:
0 0 - a 25 ns wide negative-going pulse each time a convert pulse is sent
tothe A/D converter.
0 1 - reference oscillator as selected by bits 2 - 0. The falling edge is
synchronous with the rising edge of the internal 20 MHz oscillator, the
ECLTrg lines, CLK10, and is synchronous with the falling edge of an
external reference oscillator.
1 0 - reserved.
1 1 - off. Outputs an ECL high level which then allows ECLTrg1 to be used
as an input.
ECLTrg0 source: Bits 4 - 3 set the signal source that is output on the
ECLTrg0 trigger line. The sources include:
0 0 - a 25 ns wide negative-going pulse each time a convert pulse is sent
tothe A/D converter.
0 1 - reference oscillator as selected by bits 2 - 0. The falling edge is
synchronous with the rising edge of the internal 20 MHz oscillator, the
ECLTrg lines, CLK10, and is synchronous with the falling edge of an
external reference oscillator.
1 0 - reserved.
1 1 - off. Outputs an ECL high level which then allows ECLTrg1 to be used
as an input.
Appendix C
Register Programming 359
Download from Www.Somanuals.com. All Manuals Search And Download.
Reference oscillator source: Bits 2 - 0 set the reference oscillator source
from which the sample rate is derived. The sources include:
0 0 0 - the digitizer’s internal 20 MHz oscillator.
0 0 1 - backplane trigger line ECLTrg0.
0 1 0 - backplane trigger line ECLTrg1.
0 1 1 - the EXT2 front panel BNC connector.
1 0 0 - backplane 10 MHz (CLK10) signal.
The Arm delay Register
base + 51 and base +53
16
16
16
16
The arm delay is set using the arm delay registers defined below.
Address
7
6
5
4
3
2
1
0
base + 5116 = arm delay most significant byte
base + 5316 = arm delay least significant byte
base + 5116
base + 5316
Register 51: Contains the most significant byte of the arm delay.
Register 53: Contains the least significant byte of the arm delay.
The Arm Count Register
base + 55 and base + 57
16
The arm count is set using the arm count registers defined below.
Address
7
6
5
4
3
2
1
0
base + 5516 = arm count most significant byte
base + 5716 = arm count least significant byte
base + 5516
base + 5716
Register 55: Contains the most significant byte of the arm count.
Register 57: Contains the least significant byte of the arm count.
The Arm Count Latch Register
base + 59
The arm count latch register is used to load the arm count and initialize the
trigger counters. It is written to three times prior to sending the timebase
processor an initiate pulse.
Address
7
6
5
4
3
2
1
0
register write: loads the arm count and initializes the trigger counters
base + 5916
360 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Trigger Immediate Register
base + 5D
16
A trigger immediate occurs when any 8-bit value is written to the trigger
immediate register shown below.
Address
7
6
5
4
3
2
1
0
register write: sends trigger (sample) immediate
base + 5D16
The Decade Division Register
base +61
16
The decade division register is used with the binary division register to
divide the reference frequency in order to obtain the desired sample rate.
The register bits are defined below.
Address
base + 6116
Purpose
7
6
5
4
3
8
2
4
1
2
0
1
128
64
32
16
divide by divide by divide by divide by divide by divide by divide by divide by
10E7
10E6
10E5
10E4
1000
100
10
1
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
Setting
Only one bit at a time can be set in this register. The decade division
selected (bits 7 - 0 or bit 0 of base + 63 ) is combined with the binary
16
division selected (bits 3 - 1 of base + 63 ) to derive the sample rate from
16
the reference source.
The Binary Division Register
base + 63
16
The binary division register is used with the decade division register to
divide the reference frequency in order to obtain the desired sample rate.
The register bits are defined below.
Address
base + 6316
Purpose
7
6
5
4
3
8
2
4
1
2
0
1
128
64
32
16
reserved (bits 7 - 4 must be set to 1000) divide by divide by divide by divide by
4
2
1
10E8
1
0
0
0
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
0 - off
1 - on
Setting
Appendix C
Register Programming 361
Download from Www.Somanuals.com. All Manuals Search And Download.
The Pre-Arm Reading Count Registers
base + 73 and base + 75
16
16
The pre-arm reading count registers are defined below.
Address
7
6
5
4
3
2
1
0
base + 7316 = pre-arm reading count least significant byte
base + 7516 = pre-arm reading count most significant byte
base + 7316
base + 7516
Register 73: Contains the least significant byte of the pre-arm reading count.
Register 75: Contains the most significant byte of the pre-arm reading
count.
Pre-Arm Reading Count Register power-On/Reset Settings
At power-on or following a reset, the digitizer is set for 0 pre-arm readings.
When the pre-arm reading mode is set (base +4B bit 3 set to ’1’), the
16
digitizer is set for 3 pre-arm readings.
The Post-Arm Reading Count Registers
base + 77 to base + 7B
16
16
The post-arm reading count registers are defined below.
Address
7
6
5
4
3
2
1
0
base + 7716 = post-arm reading count least significant byte
base + 7916 = post-arm reading count middle significant byte
base + 7B16 = post-arm reading count most significant byte
base + 7716
base + 7B16
Register 77: Contains the least significant byte of the pos-arm reading
count.
Register 79: Contains the middle significant byte of the post-arm reading
count.
Register 7B: Contains the most significant byte of the post-arm reading
count.
Post-Arm Reading Count Register power-On/Reset Settings
At power-on or following a reset, the digitizer is set for 7 post-arm readings.
The digitizer is also set for 7 post-arm readings when the pre-arm reading
mode is set (base +4B bit 3 set to ’1’).
16
362 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Memory Control Registers
The following memory control registers are used to initialize digitizer
memory.
The Traffic Register
base +02
16
The traffic register is a read/write register that selects data and clock sources
for the high-speed data bus. The bits are defined as follows.
Address
7
6
5
4
3
8
2
4
1
2
0
1
128
base + 0216
Purpose
64
32
16
Data Register Mode not used Read High-Speed Clock High-Speed Data
Data Source Source
0 0 - invalid
0 - data 0 0 - pulse register 0 0 - A/D
not ready 0 1 - A/D 0 1 - data register
1 0 - data register 1 0 - not used
1 - data 1 1 - Local bus
ready
Setting
0 1 - channel 1
1 0 - channel 2
1 1 - alternate
channels
1 1 - memory data
Traffic Register Power-on/Reset Settings
At power-on or following a reset, the traffic register is set to
1100 0100 or C4 .
16
Bit Descriptions Data Register Mode. Bits 7 - 6 specify how data will be presented when
read by the data register, and how it will be written into memory as written
by the data register. Writing data to only one channel’s memory is not
recommended since invalid data is placed in the unselected channel. When
’alternate channels’ is selected, the two channels alternate, beginning with
the channel previously selected. For example, alternate channels beginning
with channel 2 can be achieved by setting the Data Register Mode field to 1
0, and then setting it to 1 1.
Read Data. Bit 4 is set to 1 when data can be read from digitizer memory.
See "Segmented Reading Transfers" in Chapter 3 for information on how
the bit is used.
High-Speed Clock Source. Bits 3 - 2 set the source which clocks data
transfers over the internal high-speed bus.
High-Speed Bus Source. Bits 1 - 0 select the data source which drives the
internal high-speed bus.
Appendix C
Register Programming 363
Download from Www.Somanuals.com. All Manuals Search And Download.
The high-speed internal (data) bus routes data between the A/D, digitizer
memory, the local bus, and the VME (VXI data transfer) bus (Figure 3-7).
There is no user-access to the high-speed internal bus.
The Pulse Register
base +08
16
The pulse register is a read/write register that generates high-speed clock
signals when the traffic register’s high-speed clock source is set to ’pulse
register’ .
Address
base + 0816
7
6
5
4
3
2
1
0
register read/write: generates high-speed bus clock pulse
Reading, or writing to this register generates a clock pulse for the internal
high-speed bus.
The Channel ID Register
base +0A
16
The channel ID register is a read/write register that allows user-defined
identifiers to be appended to each channel’s readings.
Address
7
6
5
4
3
2
1
0
channel 1 ID
channel 2 ID
base + 0A16
LSB
MSB
LSB
MSB
The ID assigned is represented by the 4 least significant bits of each
reading. The ID bits are not stored in memory with the readings, but are
appended to each reading as it is read over the VME (VXI data transfer) bus
or Local bus.
The Data Register
base +0C
16
The data register is a read/write register used to retrieve readings from
digitizer memory or to retrieve them from the digitizer’s A/D converter.
Address
base + 0C16
7
6
5
4
3
2
1
0
register read/write: retrieves a reading from digitizer memory
Each digitizer reading is stored in memory as a 12-bit, two’s complement
number. When a reading is retrieved, it is expanded to 16-bits with the
reading left-justified in the 16-bit field. The four least significant bits are
normally zeros, but can be set as indicated by the channel ID register (base
+0A ). The channel from which readings are retrieved is set with the "Data
16
register Mode" field of the traffic register (base +02 ).
16
364 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Memory Control Register
base +21
16
The memory control register is a read/write register that controls the
operation of digitizer memory. The register bits are defined below.
Address
base + 0216
Purpose
7
6
5
4
3
8
2
4
1
2
0
1
128
64
32
16
Backup TTL Mux
Enable
BNC Mux
Address Memory Memory
Count
Read
Write
Enable Enable Enable
0 - OFF
1 - ON
0 - OFF 0 - reset 0 - reset
1 - ON 1 - enable1 - enable
Setting
Memory Control Register Power-on/Reset Settings
At power-on or following a reset, the memory control register is set to
0011 1000 or 38 .
16
Bit Descriptions Backup Enable. Bit 7 is used to enable/disable the battery which maintains
memory at power-down.
TTL Mux and BNC Mux. Bit 6 and bits 5 - 3 are used by the digitizer’s
timebase processor. Their usage is not covered in this appendix.
Address Count Enable. Bit 2 is used to initialize the memory address
counter. Setting bit 2 to ’0’ disables the memory address counter but sets it
to receive the next memory address from the base address registers. Setting
bit 2 to ’1’ enables the address counter to receive addresses from the
terminal address register, thus allowing the counter to wrap around and
make repeated passes through memory.
Memory Read Enable. Setting bit 1 to ’1’ places digitizer memory in the
read mode. Data is placed on the internal high-speed bus if enabled by bits 1
- 0 of the traffic register.
Memory Write Enable. Bit 0 enables A/D readings to be written to
digitizer memory when bit 1 (memory read enable) is set to ’0’.
Appendix C
Register Programming 365
Download from Www.Somanuals.com. All Manuals Search And Download.
The Memory Address Registers
base +23 to base +27
16 16
The memory address registers are read only registers that return the address
where the last reading in the set will be stored. These registers are useful for
determining if the digitizer has been re-initiated by indicating the number of
readings that have been taken. For example, if 100 readings are to be taken
when the digitizer is re-initiated, the memory address registers point to the
location where the 100th reading is to be stored.
Address
base + 2316
Purpose
7
6
5
4
3
8
2
4
1
0
1
128
64
32
16
2
Wrapped Memory Address Local Reserved
Size Valid Interrupt
current address
0 - no
0 - 128K 0 - no
A18 - A16
Setting
1 - yes 1 - 512K 1 - yes
Address
7
7
6
5
4
3
2
1
0
0
Memory address register 1: current address A15 - A08
base + 2516
Address
6
5
4
3
2
1
Memory address register 2: current address A07 - A00
base + 2716
Bit Descriptions Wrapped. Bit 7 indicates if the data memory address counter has wrapped
around.
Memory Size. Bit 6 indicates the number of 2-channel readings digitizer
memory can hold. For all digitizers this is 512K.
366 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The Terminal Address Register
base +2B
16
The terminal address register is a read/write register that sets the last
address of a memory segment. It is used with the base address registers to
define the memory segment.
Address
7
6
5
4
3
2
1
0
Terminal address
Base address
base + 2B16
Terminal Address. The terminal address field specifies the last address in a
memory segment before returning to the base address.
Base Address. The Base Address (bit 0) is the most significant bit
(bit 18) of the memory segment’s base address.
The Base Address Registers
base +2D and base +2F
16 16
The base address registers are read/write registers that specify the beginning
of a memory segment. This is the address where the segment starts after
either being reset by the address count enable bit (bit 2) of the memory
control register, or after reaching the terminal address.
Address
17
16
15
14
13
12
11
10
Base address 0: start address MSByte
base + 2D16
Address
9
8
7
6
5
4
3
2
Base address 1: start address LSByte
base + 2F16
The most significant byte of the segment’s base address is store in the least
significant byte of register base +2D . The least significant byte of the
16
base address is stored in the least significant byte of base +2F . The data
16
written to these registers is held in a temporary register until it is loaded into
the actual address counter by clearing and then setting the address count
enable bit (bit 2) of the memory control register (base +21 ).
16
Appendix C
Register Programming 367
Download from Www.Somanuals.com. All Manuals Search And Download.
Configuring the Digitizer Input
This section contains the procedures used to configure the digitizer’s input
section. The configuration includes:
• Enabling the Single Ended and Differential Inputs
• Setting the input impedance
• Enabling the 10 MHz filter
• Setting the measurement range
The digitizer must be in the idle state when configuring the input section.
Using the A/D Shift Each input parameter listed above is set by the digitizer’s A/D shift register.
This register is accessed through the A/D status register
Register
(base + 03 ), the A/D serial register (base + 05 ), and by the A/D parallel
16
16
strobe register (base + 0B ) as shown in Figure C-2. The procedure for
16
setting the configuration using the register is described in the following
section.
Figure C-2. Accessing the A/D Shift Register
368 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Reading and Writing to 1. Define a programming loop which counts from 55 to 0 and which
contains the following.
the Shift Register
A. Read and save the current shift register bit at the output
(bit 55) position using the A/D status register (base + 03 ).
16
B. If the loop count does not equal the bit position to be changed,
write back the bit using the A/D serial register
(base + 05 ). This restores the bit and shifts it to the bit 0 position,
16
which shifts a new shift register bit to the output
(bit 55) position.
C. If the loop count does equal the bit position to be changed, write
the new bit setting using the A/D serial register
(base + 05 ). This sets the bit and shifts it to the bit 0 position,
16
which shifts a new shift register bit to the output (bit 55) position.
D. Continue through the loop until the loop count is 0. This shifts
each bit back to its original position.
2. After the configuration is set, write a value of 4 to the A/D parallel strobe
register (base + 0B ). This copies each shift register bit to the shift register
16
latch at which point the configuration is set.
Enabling the Inputs At power-on or following a reset, the single-ended and differential inputs of
channels 1 and 2 are enabled such that input signals can be applied. An
input can be disabled (and later enabled) using the following bits of the A/D
shift register.
Bit
Position
Name
Setting
7
SINGEND1 0 - Ch1 S/E input disabled
1 - Ch1 S/E input enabled
12
36
44
SINGEND2 0 - Ch2 S/E input disabled
1 - Ch2 S/E input enabled
CH1INPT 0 - Ch1 differential input enabled
1 - Ch1 differential input disabled
CH2INPT 0 - Ch1 differential input enabled
1 - Ch1 differential input disabled
With the bit positions known, disable/enable the inputs as required using the
procedure for reading and writing to the shift register.
Procedure
Appendix C
Register Programming 369
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the Input The impedance of the single-ended inputs can be set to 50Ω or 75Ω. At
power-on or following a reset, the impedance is set to 50Ω. The impedance
is changed using the following bits of the A/D shift register.
Impedance
Bit
Position
Name
Setting
6
TERM75 1
TERM75 2
0 - Ch1 50Ω input imedance selected
1 - Ch1 75Ω input impedance select
11
0 - Ch2 50Ω input imedance selected
1 - Ch2 75Ω input impedance select
With the bit position known, set the input impedance as required using the
procedure for reading and writing to the shift register.
Procedure
Enabling the At power-on or following a reset, the 10 MHz filter is switched out of the
signal path (disabled) of the single-ended and differential inputs. The filter
can be switched into the path (enabled) using the following bits of the A/D
shift register.
10 MHz Filter
Bit
Position
Name
Setting
9
FILTER1 0 - Ch1 10 MHz filter disabled
1 - Ch1 10 MHz filter enabled
14
FILTER 2 0 - Ch2 10 MHz filter disabled
1 - Ch2 10 MHz filter enabled
With the bit position known, disable/enable the filter as required using the
procedure for reading and writing to the shift register.
Procedure
Setting the The digitizer measurement range is set using a series of attenuators (Figure
3-3). Table C-1 shows the attenuator settings used to select the
corresponding measurement range.
Measurement
Range
Note
There is a 3 ms relay settling time following each range change. Samples
cannot be taken during the settling time.
370 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Table C-4. HP E1429 Digitizer Attenuator Settings
Measurement
Range
20 dB
Input
20 dB
Post
Internal Attenuators
6 dB 14 dB
Attenuator Attenuator
bits
38,46
37,45
bits 34, 42 bits 35, 43
-0.10230 to 0.10235
-0.2046 to 0.2047
-0.5115 to 0.51175
-1.0230 to 1.0235
-2.0460 to 2.0470
-5.115 to 5.1175
-10.230 to 10.235
-20.460 to 20.470
-51.150 to 51.175
-102.30 to 102.35
OFF
OFF
OFF
OFF
OFF
OFF
ON
OFF
OFF
OFF
ON
ON
ON
ON
ON
ON
ON
OFF
ON
OFF
OFF
ON
OFF
OFF
ON
OFF
OFF
ON
OFF
OFF
ON
OFF
OFF
ON
ON
ON
OFF
ON
ON
ON
The A/D shift register bits used to turn the attenuators off and on are listed
below.
Bit
Position
Name
Setting
10
34
35
37
38
15
42
43
45
46
PIGGY1 0 - Ch1 attenuators disabled
1 - Ch1 attenuators enabled
ATT20DB 0 - Ch1 20dB input attenuator ON
1 - Ch1 20dB input attenuator OFF
CH1POST 0 - Ch1 20dB post attenuator ON
1 - Ch1 20dB post attenuator OFF
CH1INT 0 - Ch1 6dB internal attenuator ON
1 - Ch1 6dB internal attenuator OFF
CH1INT 0 - Ch1 14dB internal attenuator ON
1 - Ch1 14dB internal attenuator OFF
PIGGY2 0 - Ch2 attenuators disabled
1 - Ch2 attenuators enabled
ATT20DB 0 - Ch2 20dB input attenuator ON
1 - Ch2 20dB input attenuator OFF
CH2POST 0 - Ch2 20dB post attenuator ON
1 - Ch2 20dB post attenuator OFF
CH2INT 0 - Ch2 6dB internal attenuator ON
1 - Ch2 6dB internal attenuator OFF
CH2INT 0 - Ch2 14dB internal attenuator ON
1 - Ch2 14dB internal attenuator OFF
Appendix C
Register Programming 371
Download from Www.Somanuals.com. All Manuals Search And Download.
Procedure 1. Route the input signal to the attenuators.
A. To set the measurement range, the input signal must be routed to
the attenuators. This is done by setting bit 10
(channel 1) or bit 15 (channel 2) to ’1’.
2. Set the required attenuation.
A. From Table C-1 and with the bit positions known, set the bits for
the required attenuation (measurement range) using the procedure
for reading and writing to the shift register.
3. Copy the shift register bits to the shift register latch.
A. Write a value of 4 to the A/D parallel strobe register
(base +0B ) to copy the shift register bits to the shift register latch.
16
Using the Packed When the measurement range is set using registers, the reading resolution
used to convert the readings to voltages is unknown to the processor. As a
result, the packed data format should be used, and the readings converted by
the user as described in Chapter 3 - "Understanding the Digitizer".
Reading Format
Arming and Triggering
This section contains the procedures used to configure the digitizer’s arm
and triggering (timebase) hardware.
Checking the Idle Except as noted, configuring the arming and triggering hardware occurs
when the digitizer is in the idle state. The register used to check the idle
state is listed below.
State
• Arm status register
base + 43
16
Procedure 1. Determine if the digitizer is in the idle state by checking bit 1 of the arm
status register (base + 43 ).
16
If bit 1 is set to ’0’, the digitizer is in the idle state and can be configured.
If bit 1 is set to ’1’, the digitizer is in the initiated state and should not be
configured.
372 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the Digitizer The digitizer configuration covered in this section includes:
Configuration
• setting the arm sources
• setting the arm count
• setting the arm delay
• setting the reference source
• setting the trigger source
• sending arm immediate
• sending trigger immediate
• aborting measurements
Note
The trigger count (pre-arm and post-arm reading counts) and the sample
rate are set when the timebase processor is initialized. See "Initializing the
Timebase Processor" in the section "Re-initiating the Digitizer" for more
information.
Setting the Arm The registers used to set the arm sources are listed below.
Sources
• Arm Source register
base + 49
16
• Arm Control register
base + 4B (used when changing arm source while initiated)
16
Procedure The arm source can be set/changed when the digitizer is in the idle state or
while it is initiated.
1. Setting/changing the arm source in the idle state:
A. Write the decimal equivalent bit pattern to the arm source
register (base + 49 ).
16
2. Setting/changing the arm source while initiated:
A. Suspend the arm trigger by setting bit 2 of the arm control
register (base + 4B ) to ’1’ . Retain the settings of the other
16
register bits.
B. Write the decimal equivalent bit pattern for the desired arm
source to the arm source register (base + 49 ).
16
C. Enable the arm trigger by setting bit 2 of the arm control register
(base + 4B ) to ’0’ . Retain the settings of the other register bits.
16
Appendix C
Register Programming 373
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the Arm The registers used to set the arm count are listed below.
Count
• Arm count registers
base + 55 and base + 57
16
16
Procedure 1. Load the arm count registers.
A. With the digitizer in the idle state, write the decimal equivalent
of the most significant byte to register 55. Writing the decimal
equivalent of the least significant byte to register 57. You can set
the arm count from 1 to 65,535 arms. For example, to program an
arm count of 20:
MSB
LSB
0 0 0 0 0 0 0 0
0 0 0 1 0 1 0 0
0
20
10
0 is written to register 55
20 is written to register 57
10
To program an arm count of 300:
MSB
LSB
0 0 0 0 0 0 0 1
0 0 1 0 1 1 0 0
1
44
10
10
1
is written to register 55
10
44 is written to register 57
10
Setting the Arm The arm delay is the amount of additional delay to occur from when the
digitizer accepts the arm signal, to when it enters the wait-for-trigger state.
There is always a delay of one reference clock cycle. The registers used to
set the arm delay are listed below.
Delay
• Arm Control register
base + 4B
16
• Arm Delay registers
base + 51 and base + 53
16
16
374 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Procedure 1. Determine the reference period.
A. The reference from which the arm delay is derived is set with bit
0 of the arm control register. The setting of bit 0 (to ’0’ or ’1’)
depends on the reference clock and the amount of delay required.
Determine the reference from which the delay is derived and set bit
0 accordingly. Retain the settings of bits 7 - 1.
If delay / reference clock period ≤ 65,534
bit 0 is set to ’1’ and the maximum delay is 65,534 * reference
period
If delay / reference clock period > 65,534
bit 0 is set to ’0’ and the maximum delay is 655,350 * reference
period
2. Load the arm delay registers.
A. Write the decimal equivalent of the most significant byte to
register 51. Write the decimal equivalent of the least significant
byte + 1 to register 53. The additional count (1) is required because
there is always a one reference cycle delay from when the digitizer
is armed to when it enters the wait-for-trigger state (i.e. is ready to
begin sampling).
For example, to program an arm delay of 1 ms:
MSB
LSB
0 1 0 0 1 1 1 0
0 0 1 0 0 0 0 1
78
33
10
10
78 is written to register 51
10
33 is written to register 53
10
Setting the The reference source from which the sample rate is derived is set with the
register listed below.
Reference Source
• Reference oscillator register
base +4F
16
Procedure Write the decimal equivalent bit pattern for the desired reference source to
the reference source register (base + 4F ). Retain the settings of bits 7 - 3.
16
Appendix C
Register Programming 375
Download from Www.Somanuals.com. All Manuals Search And Download.
Setting the Trigger The register used to set the digitizer’s trigger (sample) source is listed below.
Source
• Trigger source register
base + 4D
16
Procedure The trigger source can be set/changed when the digitizer is in the idle state
or while it is initiated.
1. Setting/changing the trigger source while in the idle state:
A. Write the decimal equivalent bit pattern to the trigger source
register while retaining the settings of the other bits
(base + 4D ).
16
2. Setting/changing the trigger source while initiated:
A. Suspend the sample trigger by setting bit 7 of the trigger source
register (base + 4D ) to ’1’ . Retain the settings of the other
16
register bits.
B. Write the decimal equivalent bit pattern for the desired trigger
source to the trigger source register.
C. Enable the sample trigger by setting bit 7 of the trigger control
register (base + 4D ) to ’0’ . Retain the settings of the other
16
register bits.
Sending an Arm An arm immediate signal arms the digitizer, overriding arm source ’hold’
and any programmed arm delay. The registers used to send an arm
immediate signal are listed below.
Immediate Signal
• Abort and Arm Immediate register
base + 41
16
• Arm Status register
base + 43
16
Procedure 1. Determine the arm state:
A. Read bits 7 and 5 of the arm status register (base + 43 ). If bit 7
16
is ’1’, the digitizer is already armed and it is not necessary to send
an arm immediate. If bit 5 is ’1’, arm immediate must not be sent
since the pre-arm reading count has not been reached.
376 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
2. Send the arm immediate signal.
A. Read the Abort and Arm Immediate register (base + 41 ).
16
Reading the registers sends an arm immediate signal.
Sending a Trigger A trigger immediate signal triggers the digitizer, overriding the sample/hold
bit of the trigger source register.’The registers used to send a trigger
immediate signal are:
Immediate Signal
• Trigger Immediate register
base + 5D
16
• Trigger Source register
base + 4D
16
Procedure 1. Suspend sample triggers (e.g. trigger hold).
A. Set trigger source register (base + 4D ) bit 7 to ’1’ to suspend
16
sample triggers. Be sure retain the settings of bits 6 - 0.
2. Send a trigger immediate signal.
A. Write any 8-bit value to the trigger immediate register
(base + 5D ).
16
3. Re-enable sample triggers.
A. Set bit 7 (base + 4D ) to ’0’ to enable sampling for the next
16
reading (measurement) sequence. Retain the settings of bits
6 - 0.
Aborting The registers used to abort digitizer measurements are shown below. "base"
is the A24 base address.
Measurements
• Trigger Source register
base + 4D
16
• Abort and Arm Immediate register
base + 41
16
Procedure 1. Suspend sample triggers (e.g. trigger hold).
A. Set trigger source register (base + 4D ) bit 7 to ’1’ to suspend
16
sample triggers. Be sure retain the settings of bits 6 - 0.
Appendix C
Register Programming 377
Download from Www.Somanuals.com. All Manuals Search And Download.
2. Send abort signal.
A. Write any 8-bit value to the Abort and Arm Immediate register
(base + 41 ).
16
3. Re-enable sample triggers.
A. Set bit 7 (base + 4D ) to ’0’ to enable sampling for the next
16
reading (measurement) sequence.
Re-initiating the Digitizer
Initiating the digitizer places the digitizer in the wait-for-arm state. When an
arm is received while in this state, the digitizer moves to the wait-for-trigger
state where it samples when trigger signals are received.
This section describes how the digitizer is re-initiated. A re-initiation is
done following a SCPI CONFigure ... INITiate sequence. Using register
reads and writes, digitizer parameters can be changed and the digitizer
re-initiated at a faster rate than sending another INITiate command. There
are two parts to the re-initiation sequence:
1. initializing digitizer memory
2. initializing and initiating the timebase processor
The re-initiation sequence described in this section is restricted to post-arm
readings only. The other digitizer parameters can be set as required.
Initializing Digitizer The registers used to initialize digitizer memory are summarized below.
Memory
• memory control register
base + 21
16
• terminal address register
base + 2B
16
• base address registers
base + 2D and base + 2F
16
16
Initializing digitizer memory involves initializing the memory control
register, setting the ending and beginning addresses in memory where the
data will be stored, and enabling data to be written to memory. For the
complete digitizer re-initiation to occur, the registers must be read and
written to in the sequence covered in the procedure.
378 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Procedure 1. Initialize the memory control register.
A. Set bits 2 - 0 of the memory control register (base + 21 ) to ’0’. Retain
16
the settings of bits 7 - 3.
2. Determine the starting address of the memory segment.
A. The segment size is the number of readings to be taken and must
be divisible by 4. The starting address is computed as:
starting address = ending address - (segment size - 1)
The re-initiation procedure assumes one segment of post-arm
readings. Therefore, the ending address (524,287) is the size of
digitizer memory.
3. Set the terminal (ending) address.
A. The terminal address is the ending address of the memory
segment. This address is computed as:
terminal address = (ending address - 4095) / 2048
Again, the procedure is for one segment of post-arm readings.
Therefore, the terminal address is:
terminal address = (524,287 - 4095) / 2048 = 254
B. Divide the starting address (see Step 2) by 4. If this value
is > 65,535 (FFFF ), add 1 to the terminal address value (254).
16
C. Write the terminal address to the terminal address register (base
+ 2B ).
16
4. Set the base (starting) address.
A. The base address is the (starting address / 4) of the memory
segment. Write the most significant byte of (starting address / 4) to
the base 0 address register (base + 2D ). Write the least significant
16
byte of (starting address / 4) to the base 1 address register (base +
2F ).
16
Appendix C
Register Programming 379
Download from Www.Somanuals.com. All Manuals Search And Download.
For example, if the segment size is 10,000 readings, the terminal
and base addresses would be:
start address = 524,287 - 9,999 = 514,288
514,288 / 4 = 128,572 = 1F63C
16
terminal address = 254 + 1 (since 128,572 > 65,535)
base address = F63C (the ’1’ is part of the terminal address: 254 +
1)
MSB
LSB
1 1 1 1 0 1 1 0
0 0 1 1 1 1 0 0
246
60
10
10
246 is written to register base + 2D
10
16
60 is written to register base + 2F
10
16
5. Enable memory to be written to.
A. Enable data to be written to digitizer memory and enable the address
counter by setting memory control register (base + 21 ) bits 2 - 0 to
16
’1 0 1’.
Initializing and The second step in re-initiating the digitizer is initializing and initiating the
timebase processor. The timebase processor must be initialized each time
the pre-arm reading count, post-arm reading count, or sample rate is
changed.
Initiating the
Timebase
Processor
380 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
The registers used to initialize the processor are summarized below.
Timebase reset
• Abort and arm immediate register
base + 41
16
• Timebase reset register
base + 5F
16
• Interpolator control register
base + 65
16
• Stop data register
base + 67
16
• Interpolator calibration register
base + 69
16
• Self test register
base + 6B
16
• Time base registers
base + 7D and base + 7F
16
16
Trigger count
• Pre-arm reading count registers
base + 73 to base +75
16
16
• Post-arm reading count registers
base + 77 to base + 7B
16
16
Sample rate
• Arm control register
base + 4B
16
• Decade division register
base + 61
16
• Binary division register
base + 63
16
Data source
• Traffic register
base + 02
• Pulse register
base + 08
16
16
Timebase initiate
• Timebase initiation register
base + 45
16
• Arm count latch register
base + 59
16
For the complete digitizer re-initiation to occur, the registers must be read
and written to in the sequence given in the procedure.
Appendix C
Register Programming 381
Download from Www.Somanuals.com. All Manuals Search And Download.
Procedure 1. Reset and initialize the timebase processor.
A. Write the following data to the registers indicated. Except for the
abort and arm immediate register (base +41 ), these registers must
16
not be set to any other values; therefore, they are not listed in the
"Register Descriptions" section.
write any 8-bit value to base + 41
16
write any 8-bit value to base + 5F
16
write a value of 1 to base + 65
write a value of 5 to base + 67
write a value of 0 to base + 69
16
16
16
write a value of 0 to base + 6B
16
write a value of 0 to base + 7D
16
write a value of 0 to base + 7F
16
2. Set the Trigger count.
The number of readings the digitizer takes each time it is armed is set with
the pre-arm and post-arm reading count registers listed below.
• Pre-arm reading count registers
base + 73 and base +75
16
16
• Post-arm reading count registers
base + 77 and base + 7B
16
16
When taking (x) pre-arm and (y) post-arm readings, and (x) and (y) are the
intended number of each set of readings, the count loaded into the pre-arm
reading count registers is x-2. The count loaded into the post-arm reading
count registers is y-6. When taking post-arm readings only, the pre-arm
count is 1 and the post-arm count is y-3.
382 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
A. Load the pre-arm reading count registers. With the digitizer in
the idle state, write the decimal equivalent of the least significant
byte to register 73. Write the decimal equivalent of the most
significant byte to register 75. You can set the pre-arm reading
count from 3 to 65,535 readings. For example, to program 500
pre-arm readings, a pre-arm reading count of 498 (500 - 2) is loaded
into the registers.
MSB
LSB
0 0 0 0 0 0 0 1
1 1 1 1 0 0 1 0
1
242
10
10
242 is written to register 73
10
1 is written to register 75
B. Load the post-arm reading count registers. Write the decimal
equivalent of the least significant byte to register 77. Write the
decimal equivalent of the middle significant byte to register 79.
Write the decimal equivalent of the most significant byte to register
7B. You can set the post-arm reading count from 7 to 16,777,215
readings. For example, to program 100,000 post-arm readings with
no pre-arm readings, a post-arm reading count of 99,997 (100,000 -
3) is loaded into the post-arm registers. (A count of 1 is written to
the pre-arm registers.)
MSB
MIDSB
LSB
0 0 0 0 0 0 0 1
1 0 0 0 0 1 1 0
1 0 0 1 1 1 0 1
1
134
157
10
10
10
157 is written to register 77
10
134 is written to register 79
10
1
10
is written to register 7B
3. Initialize the sample rate registers.
A. Write the decimal value of 129 to register base +63 , and write
16
the decimal value of 255 to register base +61 .
16
B. Disable reference divider reclocking (for divider values greater
than 100,000 - see Step 4). Set arm control register
(base +4B ) bit 4 to ’0’ while retaining the settings of the other bits.
16
Appendix C
Register Programming 383
Download from Www.Somanuals.com. All Manuals Search And Download.
4. Set the sample rate.
A. If the trigger source is not reference period / N (base + 4D bits
16
4 - 2 =1 0 0), the decade division register and binary division
register must be set as follows:
write a value of 1 to base + 61
16
write a value of 132 to base + 63
16
B. If the trigger source is the reference period / N ( base + 4D bits
16
4 - 2 =1 0 0), then to set the sample rate (period) you must know the
rate you want and the reference frequency. From these values, a
value (N) is determined as shown below.
N = reference frequency / required sample rate
The reference frequency is then divided by N (Ref/N) to obtain the
sample rate. N is represented by the decade division register (61 )
16
and the binary division register (63 ).
16
For example, to program a sample rate of 1 kHz (1 ms period) using
the digitizer’s internal 20 MHz reference:
N = 20 MHz / 1 kHz = 20,000
16 is written to the decade division register (base + 61 ) to set a
10
16
division by 10,000. All other bits are set to 0. 132 is written to the
10
binary division register (base + 63 ) to set a division by 2. (Bits 7 -
16
4 must always be set to 1 0 0 0.) These settings divide the reference
frequency by 20,000 which gives the required sample rate of 1 kHz.
5. Set the digitizer A/D converter as the high-speed clock source and data
source for memory.
A. Using the traffic register (base +02 ), set the pulse register as
16
the high-speed clock source by setting bits 3 - 2 to ’0 0’. Retain the
settings of the other bits.
B. Send a clock pulse to the internal high-speed bus by reading or
writing (any value) to the pulse register (base +08 ).
16
C. Using the traffic register (base +02 ), set the A/D as the
16
high-speed clock source and as the high-speed data source by
setting bits 3 - 0 to ’0 1 0 0’. Retain the settings of the other bits.
384 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
6. Load the arm count and send the initiate pulse.
A. Load the arm count and initialize the trigger counters by writing
(any value) to the arm count latch register (base + 59 ) three
16
times.
B. Initiate the timebase processor by writing any value to the
timebase initiation register (base +45 ).
16
Note
The memory address registers (base +23 to base +27 ) are useful for
16 16
determining if the digitizer has been re-initiated by indicating the number of
readings that have been taken. For example, if 100 readings are to be taken
when the digitizer is re-initiated, the memory address registers point to the
location where the 100th reading is to be stored.
Retrieving Data from Memory
This section explains how to use register reads/writes to retrieve readings
from memory and transfer them over the VME (VXI data transfer) bus.
The procedure given in this section for reading data from memory assumes
that data is stored under the following digitizer configuration restrictions:
• a single burst of post-arm readings
Initializing Digitizer As with storing data in memory, digitizer memory must be initialized before
data is retrieved from memory. The registers used in the data retrieval
process are:
Memory to Retrieve
Data
• traffic register
base + 02
• pulse register
base + 08
16
16
• memory control register
base + 21
16
• terminal address register
base + 2B
16
• base address registers
base + 2D and base + 2F
16
16
• data register
base + 0C
16
Appendix C
Register Programming 385
Download from Www.Somanuals.com. All Manuals Search And Download.
Procedure 1. Place the last reading (from the A/D) into memory.
A. Using the traffic register (base + 02 ) set the pulse register as
16
the high-speed clock source by setting bits 3 - 2 to 0 0. Retain the
settings of the other bits.
B. Send a clock pulse to the internal high-speed bus by reading or
writing (any value) to the pulse register (base + 08 ).
16
2. Initialize the memory control register.
A. Set bits 2 - 0 of the memory control register (base + 21 ) to ’0’.
16
Retain the settings of bits 7 - 3.
3. Enable memory.
A. Enable data to be retrieved from digitizer memory by setting the
memory control register (base + 21 ) as indicated. Retain the
16
settings of the other bits.
bits 2 - 0 = 1 1 0
B. Using the traffic register (base + 02 ), set digitizer memory as
16
the data source for the internal high-speed bus, and set the pulse
register as the high-speed clock source by setting the following
traffic register bits as indicated:
bits 3 - 2 = 0 0(clock source is pulse register)
bits 1 - 0 = 1 1(memory is internal bus data source)
(The internal high-speed bus links digitizer memory to the VME
bus which is accessed by the user (Figure 3-7) .)
C. Send a clock pulse to the internal high-speed bus by reading or
writing (any value) to the pulse register (base + 08 ).
16
4. Determine the starting address of the memory segment.
A. The segment size (which is the number of readings that were
taken) must be divisible by 4. The starting address is computed as:
starting address = ending address - (segment size - 1)
The data retrieval procedure is for one segment of post-arm
readings. Therefore, the ending address (524,287) is the size of
digitizer memory.
386 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
5. Set the terminal (ending) address.
A. The terminal address is the ending address of the memory
segment. This address is computed as:
terminal address = (ending address - 4095) / 2048
Again, the procedure is for one segment of post-arm readings.
Therefore, the terminal address is:
terminal address = (524,287 - 4095) / 2048 = 254
B. Divide the starting address (see Step 4) by 4. If this value
is > 65,535 (FFFF ), add 1 to the terminal address value (254).
16
C. Write the terminal address to the terminal address register (base
+ 2B ).
16
6. Set the base (starting) address.
A. The base address is the (starting address / 4) of the memory
segment. Write the most significant byte of (starting address / 4) to
the base 0 address register (base + 2D ). Write the least significant
16
byte of starting address / 4 to the base 1 address register (base +
2F ).
16
For example, if the segment size is 10,000 readings, the terminal
and base addresses would be:
start address = 524,287 - 9,999 = 514,288
514,288 / 4 = 128,572 = 1F63C
16
terminal address = 254 + 1 (since 128,572 > 65,536)
base address = F63C (the ’1’ is part of the terminal address:
254 + 1)
MSB
LSB
1 1 1 1 0 1 1 0
0 0 1 1 1 1 0 0
246
60
10
10
246 is written to register base + 2D
10
16
60 is written to register base + 2F
10
16
Appendix C
Register Programming 387
Download from Www.Somanuals.com. All Manuals Search And Download.
7. Send three clock pulses to the internal high-speed bus by reading or
writing (any value) to the pulse register (base + 08 ) three times. This
16
initializes the transfer stages.
8. Set the clock source to the digitizer data register.
A. In the traffic register (base + 02 ), set the digitizer’s data
16
register as the high-speed clock source by setting bits 3 - 2 as
indicated:
bits 3 - 2 = 1 0
Setting the data register (base + 0C ) as the clock source transfers
16
a reading from memory to the VME bus each time the data register
is read.
Example Program
The following program demonstrates the procedures used to register
program the digitizer. The program was developed using the
configuration listed on page C-1. To adapt the program for use with
an embedded controller, you will need to change the A24 base
address accordingly, as well as make the modifications noted in the
program listing.
This program accomplishes the following:
• SCPI programming
– configures the digitizer to take 20 readings on the 5V range
using the CONFigure command, and then retrieves the readings
using the READ? command.
• Register programming
– changes the measurement range to 1V
– changes the trigger source to the reference oscillator period/N
– sets the post-arm reading count to 20 readings
– changes the sample rate to 10 kHz (100 µs)
– re-initiates the digitizer to take the next 20 readings on the 1V
range
– retrieves the readings from memory by reading the data register.
This places the readings on the VME(VXI data transfer) bus.
388 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
All other digitizer parameters (e.g. arm source, arm count) remain as set by
the previous CONFigure command.
Note
The following program contains a C function which re-initiates the digitizer
(void initiate (long base_addr)). This function shows the exact sequence the
registers must be written to in order to successfully re-initate the digitizer.
When modifying this program, be sure that the sequence for re-initiating the
digitizer remains the same.
Appendix C
Register Programming 389
Download from Www.Somanuals.com. All Manuals Search And Download.
REG_PROG.C
/* REG_PROG.C - This program configures the digitizer using register reads */
/* and writes. The program sets an initial digitizer configuration using */
/* the CONFigure command and takes a set of readings using the READ? */
/* command. Register reads and writes are then used to change the measurement */
/* range, change the trigger source, change the post-arm reading count, re-initiate */
/* the digitizer, and retrieve the readings. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library */
/* I/O path between the digitizer and PC */
#define ADDR 70905L
#define CMD_MOD 70900L /* I/O path between the PC and the Command Module */
/* Function prototypes */
long get_base_addr(void);
void rst_clr(void);
void conf_read(void);
void input_config(long base_addr);
void set_trig_source(long base_addr);
void initialize(long base_addr);
void initiate(long base_addr);
void memory_retrieve(long base_addr);
void data_read(long base_addr);
void check_error(char *function);
/****************************************************************************/
void main(void)
{
long base_addr;
/* variable for digitizer A24 base address */
/* reset and clear the digitizer */
rst_clr();
base_addr = get_base_addr();
/* function call to calculate and */
/* return digitizer A24 base address */
conf_read();
/* function call to take first set of readings */
/* function call to set the 1V measurement range */
/* function call which sets the trigger source */
input_config(base_addr);
set_trig_source(base_addr);
initialize(base_addr);
Continued on Next Page
390 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
initiate(base_addr);
memory_retrieve(base_addr); /* function call which prepares memory to retrieve readings */
data_read(base_addr); /* function call which reads the data register */
/* function call which prepares memory to store readings */
}
/****************************************************************************/
void conf_read(void)
{
/* This function uses the CONFigure command to set up 20 readings on the */
/* 5V range. The READ? command is used to take the readings. */
char go;
int readings = 20, i = 0;
float *rdgs, *readcnt;
/* dynamically allocate memory for readings */
rdgs = malloc(20 * sizeof(float));
readcnt = rdgs;
/* configure the digitizer for 20 readings, 5V range, on input */
/* port 3 */
IOOUTPUTS(ADDR, "CONF1:ARR:VOLT (20),5,(@3)", 26);
/* check for errors in the CONFigure command */
check_error("conf_read");
/* initiate the digitizer and read (fetch) the readings */
IOOUTPUTS(ADDR, "READ?", 5);
IOENTERA(ADDR, rdgs, &readings);
for (i = 0; i < readings; i++)
{
printf("\nReading %d = %f", i, *readcnt++);
}
free(rdgs);
printf("\nPress Enter (return) to change configuration with register reads and writes");
scanf("%c", go);
}
Continued on Next Page
Appendix C
Register Programming 391
Download from Www.Somanuals.com. All Manuals Search And Download.
/****************************************************************************/
void input_config(long base_addr)
{
/* This function changes the measurement range from 5V as set by the CONFigure */
/* command, to 1V using the A/D shift register. The range is changed by */
/* enabling/disabling various attenuators on the input signal path. */
int shift_count = 55, bit_set = 0;
float bit = 0;
char stat_read[80], stat_write[80], strobe_write[80];
/* create DIAG:PEEK? command which reads the A/D status register */
sprintf(stat_read, "DIAG:PEEK? %ld, %d", base_addr+0x03,8);
/* Set channel 1 range to 1V by setting bits 38, 37, 35, 34, and 10 */
/* as required in the A/D shift register. */
for(shift_count = 55; shift_count >= 0; shift_count--)
{
switch (shift_count)
{
/* turn channel 1 14 dB internal attenuator off */
/* read bit 38 by reading the A/D status register */
case 38:IOOUTPUTS(CMD_MOD, stat_read, strlen(stat_read));
IOENTER(CMD_MOD, &bit);
/* set bit 38 to ’1’ by writing to the A/D serial register */
sprintf(stat_write,"DIAG:POKE %ld, %d, %d", base_addr+0x05,8,1);
IOOUTPUTS(CMD_MOD, stat_write, strlen(stat_write));
break;
/* turn channel 1 6 dB internal attenuator off */
/* read bit 37 by reading the A/D status register */
case 37:IOOUTPUTS(CMD_MOD, stat_read, strlen(stat_read));
IOENTER(CMD_MOD, &bit);
/* set bit 37 to ’1’ by writing to the A/D serial register */
sprintf(stat_write,"DIAG:POKE %ld, %d, %d", base_addr+0x05,8,1);
IOOUTPUTS(CMD_MOD, stat_write, strlen(stat_write));
break;
Continued on Next Page
392 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/* turn channel 1 20 dB post attenuator on */
/* read bit 35 by reading the A/D status register */
case 35:IOOUTPUTS(CMD_MOD, stat_read, strlen(stat_read));
IOENTER(CMD_MOD, &bit);
/* set bit 35 to ’0’ by writing to the A/D serial register */
sprintf(stat_write,"DIAG:POKE %ld, %d, %d", base_addr+0x05,8,0);
IOOUTPUTS(CMD_MOD, stat_write, strlen(stat_write));
break;
/* turn channel 1 20 dB input attenuator off */
/* read bit 34 by reading the A/D status register */
case 34:IOOUTPUTS(CMD_MOD, stat_read, strlen(stat_read));
IOENTER(CMD_MOD, &bit);
/* set bit 34 to ’1’ by writing to the A/D serial register */
sprintf(stat_write,"DIAG:POKE %ld, %d, %d", base_addr+0x05,8,1);
IOOUTPUTS(CMD_MOD, stat_write, strlen(stat_write));
break;
/* route input signal to channel 1 attenuators */
/* read bit 10 by reading the A/D status register */
case 10:IOOUTPUTS(CMD_MOD, stat_read, strlen(stat_read));
IOENTER(CMD_MOD, &bit);
/* set bit 10 to ’1’ by writing to the A/D serial register */
sprintf(stat_write,"DIAG:POKE %ld, %d, %d", base_addr+0x05,8,1);
IOOUTPUTS(CMD_MOD, stat_write, strlen(stat_write));
break;
/* read and shift all other shift register bits to restore each bit */
/* to its original position */
default:IOOUTPUTS(CMD_MOD, stat_read, strlen(stat_read));
IOENTER(CMD_MOD, &bit);
bit_set = (int)(bit + ((bit >= 0) ? .5 : -.5));
sprintf(stat_write,"DIAG:POKE %ld, %d, %d", base_addr+0x05,8,bit_set);
IOOUTPUTS(CMD_MOD, stat_write, strlen(stat_write));
break;
}
}
Continued on Next Page
Appendix C
Register Programming 393
Download from Www.Somanuals.com. All Manuals Search And Download.
/* copy the shift register bits to the shift register latch by */
/* writing a value of 4 to the strobe register */
sprintf(strobe_write,"DIAG:POKE %ld, %d, %d", base_addr+0x0B,8,4);
IOOUTPUTS(CMD_MOD, strobe_write, strlen(strobe_write));
}
/****************************************************************************/
void set_trig_source(long base_addr)
{
/* This function sets the digitizer trigger source to the reference period / n. */
/* The reference source is the digitizer’s internal 20 MHz oscillator which */
/* was set by the CONFigure command. */
char command[80];
int bit_reg = 0;
float bit_pat = 0;
/* read trigger source register */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x4D,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set trigger source to reference period / n */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xE3) | 0x10;
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x4D,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
}
/****************************************************************************/
void initialize(long base_addr)
{
/* This function initializes digitizer memory. This includes initializing the */
/* memory control register, specifying the data storage locations in memory, */
/* and enabling data to be written to memory. Note that the registers must be */
/* read and written to in the sequence shown. */
char command[80];
int bit_reg = 0;
float bit_pat = 0;
Continued on Next Page
394 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/* initialize the memory control register by setting bits 2 - 0 to ’0’*/
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x21,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set memory control register bits 2 - 0 */
/* to ’0’ */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF8);
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x21,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* write the terminal (ending) address to the terminal address register */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x2B,8,255);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the base (starting) address - most significant byte */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x2D,8,255);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the base (starting) address - least significant byte */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x2F,8,251);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* enable memory to be written to and enable the address counter */
/* by setting bits 2 - 0 to ’1 0 1’. */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x21,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set memory control register bits 2 and 0 */
/* to ’1’ */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF8) | 0x05;
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x21,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
}
Continued on Next Page
Appendix C
Register Programming 395
Download from Www.Somanuals.com. All Manuals Search And Download.
/****************************************************************************/
void initiate(long base_addr)
{
/* This function initializes and initiates the timebase processor. This includes */
/* initializing the processor, setting the trigger (post-arm) count, setting */
/* the sample rate, setting the A/D as the data source for memory, and initiating */
/* the timebase processor. Note that the registers must be read and written to */
/* in the sequence shown. */
char command[80];
float bit_pat = 0;
int *addr_ptr, *data_ptr, bit_reg = 0;
int tb_addr [] = {0x41,0x5F, 0x65, 0x67, 0x69, 0x6B, 0x7D, 0x7F, -1};
int tb_data [] = {0, 1, 1, 5, 0, 0, 0, 0};
data_ptr = tb_data;
/* reset the timebase processor by writing the values to the corresponding */
/* registers shown above */
for (addr_ptr = tb_addr; *addr_ptr != -1; addr_ptr++)
{
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr + *addr_ptr, 8, *(data_ptr++));
IOOUTPUTS(CMD_MOD, command, strlen(command));
}
/* since only post-arm readings are taken, set the pre-arm reading count */
/* to 1 */
/* write least significant byte of pre-arm count */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x73,8,1);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* write most-significant-byte of pre-arm count */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x75,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the trigger count (post-arm readings only) by loading the post-arm */
/* reading count registers. This program sets up 20 post-arm readings. */
/* write least-significant-byte of post-arm count (count - 3) */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x77,8,17);
IOOUTPUTS(CMD_MOD, command, strlen(command));
Continued on Next Page
396 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/* write middle-significant-byte of post-arm count */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x79,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* write most-significant-byte of post-arm count */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x7B,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* initialize the sample rate registers */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x63,8,129);
IOOUTPUTS(CMD_MOD, command, strlen(command));
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x61,8,255);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* disable reclocking of the reference divider (enabled for reference */
/* divider values of 100,000 or greater) */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x4B,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, disable reclocking */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xEF);
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x4B,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the sample rate to 10 kHz (100 us) */
/* set decade division register for a division by 1,000 */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x61,8,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set binary division register for a division by 2 */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x63,8,132);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* For systems using an embedded controller, it may be necessary to monitor */
/* bit 1 of the arm status register (base + 43) until it is cleared (set to ’0’) */
/* before continuing with the next set of instructions. */
/* using the traffic register, set the pulse register as the high-speed */
/* clock source, write to the pulse register to remove any "old" readings */
/* from the data bus */
Continued on Next Page
Appendix C
Register Programming 397
Download from Www.Somanuals.com. All Manuals Search And Download.
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x02,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set pulse register as the high-speed */
/* clock source */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF3);
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x02,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* Send a clock pulse to the internal high-speed bus */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x08,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* using the traffic register, set the digitizer A/D as the clock */
/* source and as the data source for memory */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x02,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set the A/D as the high-speed */
/* clock source and as the data source */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF0) | 0x04;
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x02,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* initiate the timebase processor */
/* load the arm count and initialize the trigger counters */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x59,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* send the timebase processor initiate pulse */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x45,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
}
Continued on Next Page
398 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/****************************************************************************/
void memory_retrieve(long base_addr)
{
/* This function sets the address locations of the readings in digitizer memory, */
/* and enables the readings to be retrieved using the digitizer’s data register. */
char command[80];
int bit_reg = 0;
float bit_pat = 0;
/* using the traffic register set the pulse register as the high-speed */
/* clock source, the A/D is still the data source */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x02,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set pulse register as the high-speed */
/* clock source */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF3);
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x02,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* send a clock pulse to the internal high-speed bus to place the last */
/* A/D reading into memory */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x08,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* initialize the memory control register by setting bits 2 - 0 to ’0 0 0’ */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x21,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set memory control register bits 2 - 0 */
/* to ’0’ */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF8);
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x21,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
Continued on Next Page
Appendix C
Register Programming 399
Download from Www.Somanuals.com. All Manuals Search And Download.
/* enable data to be read from memory and enable the address counter */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x21,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set memory control register bits 2 - 0 */
/* to ’1 1 0’ */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF8) | 0x06;
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x21,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set digitizer memory as the high-speed bus data source and the */
/* pulse register as the clock source */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x02,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set the data source and clock source */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF0) | 0x03;
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x02,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* Send a clock pulse to the internal high-speed bus */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x08,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* write the terminal (ending) address to the terminal address register */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x2B,8,255);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the base (starting) address - most significant byte */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x2D,8,255);
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the base (starting) address - least significant byte */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x2F,8,251);
IOOUTPUTS(CMD_MOD, command, strlen(command));
Continued on Next Page
400 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/* initialize the transfer stages by sending three clock pulses to the */
/* internal high-speed bus */
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x08,8,0);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOOUTPUTS(CMD_MOD, command, strlen(command));
/* set the digitizer data register as the high-speed clock source */
/* (digitizer memory is still the data source) */
sprintf(command, "DIAG:PEEK? %ld, %d", base_addr+0x02,8);
IOOUTPUTS(CMD_MOD, command, strlen(command));
IOENTER(CMD_MOD, &bit_pat);
/* retain register settings, set data register as the clock source */
bit_reg = (int)(bit_pat + ((bit_pat >= 0) ? .5 : -.5));
bit_reg = (bit_reg & 0xF3) | 0x0B;
sprintf(command, "DIAG:POKE %ld, %d, %d", base_addr+0x02,8,bit_reg);
IOOUTPUTS(CMD_MOD, command, strlen(command));
}
/****************************************************************************/
void data_read(long base_addr)
{
/* This function retrieves the new set of readings (those taken on the 1V range) */
/* by reading the data register using the HP E1406 Command Module */
/* DIAGnostic:UPLoad:SADDress? command. Reading the data register places the */
/* readings on the VME (VXI data transfer) bus. */
int *rdgs, i = 0, swap = 0, bytes = 0, length = 1;
char rd_mem[80], lf_remove[1];
rdgs = malloc(20 * sizeof(int));
swap = sizeof(int);
bytes = 20 * swap;
/* Create the (HP E1406 Command Module) command string which reads the data register */
sprintf(rd_mem, "DIAG:UPL:SADD? %ld, %d", base_addr+0x0C,40);
Continued on Next Page
Appendix C
Register Programming 401
Download from Www.Somanuals.com. All Manuals Search And Download.
/* Send the DIAG:UPL:SADD? command which accesses the data register */
/* and retrieves the readings */
IOOUTPUTS(CMD_MOD, rd_mem, strlen(rd_mem)); /* retrieve and enter the readings, */
IOENTERAB(CMD_MOD, rdgs, &bytes, swap);
/* remove the block header */
/* remove the line feed which trails the last data byte */
IOENTERS(CMD_MOD, lf_remove, &length);
/* convert and print each reading as a voltage */
for (i = 0; i < 20; i++)
{
rdgs[i] /= 16;
/* remove label from each reading */
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0005));
}
free(rdgs);
}
/****************************************************************************/
long get_base_addr(void)
{
/* This function returns the digitizer’s A24 base address. */
/* digitizer logical address */
long logical_addr = (ADDR - 70900L) * 8;
/* base address of (A24) offset register in A16 address space */
long base_addr = (0x1FC000 + (logical_addr * 64)) + 6;
float a24offst;
/* A24 offset from A16 offset register */
char rd_addr[80]; /* command string variable */
/* Create the command string which reads the A24 base address */
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
/* Read value from offset register */
IOENTER(CMD_MOD, &a24offst);
Continued on Next Page
402 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
/* Multiply offset value by 256 for 24-bit address value */
a24offst *= 256.;
return (long)a24offst;
}
/****************************************************************************/
void rst_clr(void)
{
/* Reset and clear the digitizer */
IOOUTPUTS(ADDR, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *func_tion)
{
char into[161];
int
length = 160;
IOOUTPUTS(ADDR, "SYST:ERR?", 9); /* Query error register */
IOENTERS(ADDR, into, &length); /* Enter error message */
if (atoi(into) != 0) /* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in function %s\n\n", into, func_tion);
IOOUTPUTS(ADDR, "SYST:ERR?", 9);
IOENTERS(ADDR, into, &length);
}
exit(1);
}
}
Appendix C
Register Programming 403
Download from Www.Somanuals.com. All Manuals Search And Download.
Notes
404 Register Programming
Appendix C
Download from Www.Somanuals.com. All Manuals Search And Download.
Appendix D
Local Bus Interleaved Transfers
Appendix Contents
This appendix contains information on interleaved data transfers using the
HP E1429B and the Local bus.
Interleaved In an interleaved transfer, multiple digitizers transfer one reading or one set
of readings (both channels) per block. The leftmost digitizer is set to the
Transfers
GENerate mode and the inner digitizer(s) is set to the INSert mode. A
device such as the HP E1488 memory card is usually the consumer.
Readings are taken directly from the digitizer A/Ds.
As an example, the transfer sequence from digitizers D - D , where D is
1
3
1
in generator mode (leftmost slot) and D and D (rightmost slot) are in
2
3
insert mode would appear as:
EOF EOB D EOB D EOB D ----->consumer
1
2
3
where EOF is the end-of-frame flag, EOB is the end-of-block flag, and D
is either a two byte (one channel) or four byte (two channel) reading.
n
Note
If you are using the interleaved transfer mode of the HP E1429B with the
HP E1485 Digital Signal Processor module, note that the E1485 can accept
no more than 256 blocks.
Maximum Data The maximum data transfer rate over the Local bus is 80 MBytes/second
which is equivalent to 40 MSamples/second. The HP E1429B digitizer
transfers data at 40 MSamples/second when readings are taken on two
digitizer channels at the maximum sample rate of 20 MHz.
Transfer Rate
When doing interleaved transfers, the transfer rate cannot exceed
40 MSamples/second, regardless of the number of digitizers used. The
maximum sample (transfer) rate allowed is determined by:
40 MSamples / number of channels
Appendix D
Local Bus Interleaved Transfers 405
Download from Www.Somanuals.com. All Manuals Search And Download.
For example, if a configuration consists of two digitizers and both channels
on each digitizer are used, the maximum sample rate for each digitizer is:
40 MSamples / 4 channels = 10 MHz
As another example, if a configuration consists of two digitizers and only
three channels are used, the maximum sample rate for each digitizer is:
40 MSamples / 3 channels = 13.3 MHz
For the digitizer using two channels this would be 26.6 MSamples/ second
since a single sample trigger causes both channels to sample. For the
digitizer using only a single channel, the sample rate would be
13.3 MSamples/second. Together, the two digitizers are within the
40 MSample (80 MByte)/second Local bus transfer specification.
Note
The maximum sample rates computed may not always be available using
the digitizer’s internal reference. In those instances, select a slower sample
rate that is available from the internal reference, or use an external reference
or an external trigger source.
Setting the In addition to resetting the digitizer’s Local bus chip, setting the Local bus
mode, and setting the data source, the interleaved transfer mode must be set.
This is done using the commands:
Interleaved
Transfer Mode
VINStrument:CONFigure:LBUS:SEND:POINts <count >
VINStrument:CONFigure:LBUS:POINts:AUTO <mode >
<count > is the number of readings per block. If readings are taken on only
one channel, <count > is set to 1. If readings are taken on both channels,
<count > is set to 2.
Setting <mode > to OFF sets the interleaved transfer mode. In this mode the
end-of-block flag is sent after each reading or set of readings. The
end-of-frame flag is sent with the GENerator’s end-of-block flag.
406 Local Bus Interleaved Transfers
Appendix D
Download from Www.Somanuals.com. All Manuals Search And Download.
These commands are sent as a single command string in order to prevent
"Settings conflict" errors. Note that the readings per block and the
interleaved transfer mode need only be specified when doing interleaved
Local bus transfers.
Programming The programming procedure for interleaved transfers is:
Procedure
1. Use the CONFigure command and the low-level digitizer commands
to configure the digitizers for the required measurements.
All digitizers must have the same trigger source and the same
sample rate. The digitizers must be synchronized such that readings
are taken and the frame is transferred before the next sample occurs.
The example program which follows shows how the digitizers are
synchronized using one trigger source for both digitizers.
2. Use the VINStrument subsystem to reset the leftmost digitizer’s
Local bus chip, to set the Local bus transfer mode to GENerate,
to set the data source to the digitizer’s A/D
(CONVerter:CHANneln), and to set the interleaved transfer
mode.
Use the VINStrument subsystem to reset the inner digitizer’s
Local bus chip, to set the Local bus transfer mode to INSert, to
set the data source to the digitizer’s A/D
(CONVerter:CHANneln), and to set the interleaved transfer
mode.
VINStrument:CONFigure:LBUS:RESet
VINStrument:CONFigure:LBUS:MODE <mode >
VINStrument:CONFigure:LBUS:FEED <source >
VINStrument:CONFigure:LBUS:SEND:POINts <count >
VINStrument:CONFigure:LBUS:POINts:AUTO <mode >
Only the INSert (and GENerate) mode is supported for
interleaved transfers.
3. Reset the consumer’s (i.e. memory card’s) Local bus chip and
configure the consumer to receive data.
4. Activate (initiate) the consumer.
5. Use INITiate:IMMediate to activate the leftmost (GENerator)
digitizer.
6. Use INITiate:IMMediate to activate the inner (INSerter) digitizer.
Appendix D
Local Bus Interleaved Transfers 407
Download from Www.Somanuals.com. All Manuals Search And Download.
7. Use INITiate:IMMediate to activate the rightmost (INSerter)
digitizer.
8. Beginning with the leftmost (GENerator) digitizer, abort each
digitizer before using the Local bus again.
Example Program This program demonstrates how to use multiple digitizers to transfer
readings, interleaved, to an HP E1488 memory card (consumer). The
program takes 10 readings on both channels of two digitizers. Therefore, 10
frames of data (40 readings) are sent to the memory card. The example
follows the programming procedure listed above.
LBUSINTR.C
/* LBUSINTR.C - This program demonstrates how to transfer interleaved readings */
/* from multiple digitizers to the HP E1488 memory card. In an interleaved transfer, */
/* each digitizer transfers one set of readings or one reading (if using a */
/* single channel) per block. The readings are taken directly from the A/Ds. */
/* The leftmost digitizer is set to the GENerate mode and the inner digitizer */
/* is set to the INSert mode. */
/* Include the following header files */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include <cfunc.h>
/* This file is from the HP-IB Command Library Disk */
#define ADDR_G 70905L
#define ADDR_I 70906L
#define ADDR_MEM 70903L
/* I/O path from the PC to the generator digitizer */
/* I/O path from the PC to the inserter digitizer */
/* I/O path from the PC to the memory card */
/* Function Prototypes */
void rst_clr(long address);
void configure(void);
void initiate(void);
void check_error(char *func_tion, long address);
Continued on Next Page
408 Local Bus Interleaved Transfers
Appendix D
Download from Www.Somanuals.com. All Manuals Search And Download.
/****************************************************************************/
void main(void)
/* run the program */
{
clrscr();
rst_clr(ADDR_G);
/* reset generator digitizer */
rst_clr(ADDR_I);
rst_clr(ADDR_MEM);
configure();
/* reset inserter digitizer */
/* reset memory card */
/* configure the digitizers and the memory card */
/* initiate the digitizers and the memory card */
/* retrieve the readings from the memory card */
initiate();
}
/****************************************************************************/
void configure(void)
{
int length = 0, loop = 0;
/* use the "digitizer1" array to configure the generator digitizer */
char static *digitizer1[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel 1, input port 3 */
/* configure channel 2, port 4 */
/* set trigger source */
/* reset the Local bus chip */
/* set Local bus mode to GENerate */
/* set Local bus feed (A/Ds) */
"CONF2:ARR:VOLT (10),5,(@4)",
"TRIG:STAR:SOUR ECLT0",
"VINS:LBUS:RES",
"VINS:LBUS:MODE GEN",
"VINS:LBUS:FEED ’CONV:BOTH’",
"VINS:LBUS:SEND:POIN 2; POIN:AUTO OFF"}; /* set number of readings per block */
/* send end-of-block and end-of frame */
/* after each reading */
/* use the "digitizer2" array to configure the inserter digitizer */
char static *digitizer2[] =
{"CONF1:ARR:VOLT (10),5,(@3)",
/* set 10 readings, 5V range, */
/* channel, 1 input port 3 */
/* configure channel 2, port 4 */
/* set trigger source */
/* set sample rate (1 MHz) */
/* feed trigger to generator from ECLT0 */
/* enable feed */
/* reset the Local bus chip */
/* set Local bus mode to INSert */
/* set Local bus feed (A/Ds) */
"CONF2:ARR:VOLT (10),5,(@4)",
"TRIG:STAR:SOUR TIM",
"TRIG:STAR:TIM 1E-6",
"OUTP:ECLT0:FEED ’TRIG’",
"OUTP:ECLT0:STAT ON",
"VINS:LBUS:RES",
"VINS:LBUS:MODE INS",
"VINS:LBUS:FEED ’CONV:BOTH’",
"VINS:LBUS:SEND:POIN 2; POIN:AUTO OFF"}; /* set number of readings per block */
/* send end-of-block and end-of frame */
/* after each reading */
Continued on Next Page
Appendix D
Local Bus Interleaved Transfers 409
Download from Www.Somanuals.com. All Manuals Search And Download.
/* use the "memory" array to configure the memory card */
char static *memory[] =
{"FORM:DATA PACK",
"TRAC:DEL:ALL",
"TRAC:DEF SET1, 80",
"VINS:LBUS:RES",
/* set packed data format */
/* delete all readings on memory card */
/* store readings (80 bytes) in "SET1" */
/* reset the Local bus chip */
"VINS:LBUS:MODE CONS", /* set Local bus mode to consume */
"STAT:OPC:INIT OFF"}; /* execute *OPC? after INIT is parsed */
/* Execute each command in "digitizer1" using a loop */
length = (sizeof(digitizer1) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_G, digitizer1[loop], strlen(digitizer1[loop]));
}
/* Execute each command in "digitizer2" using a loop */
length = (sizeof(digitizer2) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_I, digitizer2[loop], strlen(digitizer2[loop]));
}
/* Execute each command in "memory" */
length = (sizeof(memory) / sizeof(char*));
for (loop = 0; loop < length; loop++)
{
IOOUTPUTS(ADDR_MEM, memory[loop], strlen(memory[loop]));
}
/* check for digitizer and memory card configuration errors */
check_error("digitizer1", ADDR_G);
check_error("digitizer2", ADDR_I);
check_error("memory", ADDR_MEM);
}
Continued on Next Page
410 Local Bus Interleaved Transfers
Appendix D
Download from Www.Somanuals.com. All Manuals Search And Download.
/****************************************************************************/
void initiate(void)
{
int i = 0, readings = 40, swap = 0, bytes = 0, length = 1, *rdgs;
float rdy;
char lf_remove[1];
/* dynamically allocate memory for readings */
rdgs = malloc(40 * sizeof(float));
swap = sizeof(int);
bytes = 40 * swap;
/* allocate computer memory for reading storage */
/* each reading in memory is two bytes */
/* read 80 bytes */
IOOUTPUTS(ADDR_MEM, "INIT", 4);
/* initiate the memory card */
IOOUTPUTS(ADDR_MEM, "*OPC?", 5); /* wait for INIT to parse before continuing */
IOENTER(ADDR_MEM, &rdy);
IOOUTPUTS(ADDR_G, "INIT", 4);
IOOUTPUTS(ADDR_I, "INIT", 4);
/* enter *OPC? response from memory card */
/* initiate the generator digitizer */
/* initiate the inserter digitizer */
IOOUTPUTS(ADDR_G, "*OPC?", 5);
IOENTER(ADDR_G, &rdy);
/* wait for generator digitizer readings */
/* to complete */
IOOUTPUTS(ADDR_MEM, "TRAC:DATA? SET1", 15); /* retrieve readings from memory card
IOENTERAB(ADDR_MEM, rdgs, &bytes, swap); /* enter readings and remove block header */
*/
/* remove line feed which trails the last data byte */
IOENTERS(ADDR_MEM, lf_remove, &length);
IOOUTPUTS(ADDR_G, "ABOR", 4);
IOOUTPUTS(ADDR_I, "ABOR", 4);
/* abort generator digitizer */
/* abort inserter digitizer */
/* convert and display the readings; the reading sequence is: */
/* inserter digitizer channel 2 reading 1 */
/* inserter digitizer channel 1 reading 1 */
/* generator digitizer channel 2 reading 1 */
/* generator digitizer channel 1 reading 1 */
/* inserter digitizer channel 2 reading 2 and so on */
for (i = 0; i < readings; i++)
{
rdgs[i] /= 16;
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
Appendix D
Local Bus Interleaved Transfers 411
Download from Www.Somanuals.com. All Manuals Search And Download.
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0025));
}
free(rdgs);
}
/****************************************************************************/
void rst_clr(long address)
{
/* Reset and clear the instruments */
IOOUTPUTS(address, "*RST;*CLS", 9);
}
/****************************************************************************/
void check_error(char *array, long address)
{
char
into[161];
intlength = 160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
/* Query error register */
/* Enter error message */
if (atoi(into) != 0)
/* Determine if error is present */
/* If errors present, print and exit */
{
while (atoi(into) != 0)
{
printf("Error %s in %s\n\n", into, array);
length =160;
IOOUTPUTS(address, "SYST:ERR?", 9);
IOENTERS(address, into, &length);
}
exit(1);
}
}
412 Local Bus Interleaved Transfers
Appendix D
Download from Www.Somanuals.com. All Manuals Search And Download.
Comments 1. GENerator Digitizer Configuration. Both channels of the GENerator
digitizer are CONFigured for 10 readings on the 5V range. Thus, each block
of data generated is four bytes (two bytes/reading), followed by the
end-of-block (EOB) and end-of-frame (EOF) flags.
The GENerator digitizer’s trigger source is set to ECLT0. This VXI
backplane trigger line is controlled by the INSerter digitizer which feeds its
(internal) trigger signal to the GENerator digitizer. This causes both
digitizers to sample and transfer readings at approximately the same rate -
which is required for interleaved transfers.
Before setting the digitizer’s Local bus configuration, the Local bus chip is
reset. Next, the Local bus mode is set to GENerate and the feed (data
source) is set to CONVerter:BOTH. Finally, the interleaved transfer mode is
set. The number of readings per block is set to 2, and the end-of-block and
end-of-frame flags are sent after each set of readings. These settings are sent
as a single command string in order to prevent "Settings conflict" errors.
2. INSerter Digitizer Configuration. Like the GENerator digitizer, both
channels of the INSerter digitizer are CONFigured for 10 readings on the
5V range. Each block of data generated is four bytes (two bytes/reading),
followed by the end-of-block (EOB) flag.
The INSerter digitizer’s trigger source is its internal trigger. This trigger is
transferred to the GENerator digitizer over the VXI backplane ECLT0
trigger line. In this program the INSerter digitizer’s sample rate is set to 1
µs, thus, both digitizers sample and transfer readings at approximately a
1MHz rate.
For all digitizers in the interleaved transfer configuation, the Local bus chip
must be reset first. Next, the Local bus mode is set to INSert and the feed
(data source) is set to CONVerter:BOTH. Finally, the interleaved transfer
mode is set.
3. Digitizer Trigger Sources and Sample Rates. When doing interleaved
transfers over the Local bus, all digitizers must have the same trigger source
and the same sample rate. The maximum Local bus transfer rate is 80
MBytes/second which is equivalent to 40 MSamples/ second. The transfer
rate cannot exceed 40 MSamples/second regardless of the number of
digitizers.
4. Arming the Digitizers. In order for all digitizers to sample when a
trigger is received, the digitizers to the left of the rightmost digitizer are
armed (initiated) before the rightmost digitizer is triggered.
Appendix D
Local Bus Interleaved Transfers 413
Download from Www.Somanuals.com. All Manuals Search And Download.
5. Aborting the Digitizers. Following interleaved transfers, the Local bus
chip of each digitizer is left in an active (running) state. Starting with the
leftmost (GENerator) digitizer, it is necessary to ABORt each digitizer
before the next use of the Local bus.
6. Reading Sequence and Format. When this program executes, the
readings are transferred to the memory card (and later displayed) in the
following sequence:
INSerter digitizer channel 2 reading 1
INSerter digitizer channel 1 reading 1
GENerator digitizer channel 2 reading 1
GENerator digitizer channel 1 reading 1
.
.
.
INSerter digitizer channel 2 reading n
INSerter digitizer channel 1 reading n
GENerator digitizer channel 2 reading n
GENerator digitizer channel 1 reading n
The memory card was set up to store the readings in the digitizer’s packed
data format. The packed readings are signed, 16-bit numbers preceded by
the ANSI/IEEE Standard 488.2-1987 Definite Length Arbitrary Block
header. Packed readings are always numbers between -1.0230 (-2046) and
+1.0235 (2047). To convert the readings to voltages, each reading is divided
by 16 to remove the data label bits (0 - 3), and is multipled by 0.0025 which
is the reading resolution for the 5V range (refer to Chapter 3 for more
information on data labels and packed reading conversions).
414 Local Bus Interleaved Transfers
Appendix D
Download from Www.Somanuals.com. All Manuals Search And Download.
Index
HP E1429A/B Digitizer User’s Manual
B
A
C
Channels
Command
Command listings
Command Reference
Commands
Condition register
CONFigure
HP E1429A/B User’s Manual
Index - 415
Download from Www.Somanuals.com. All Manuals Search And Download.
Digitizer input section
Digitizer memory
Conformance Information
Coupled Commands
D
Data format
E
Enable register
Data transfers
End-of-line terminator
Differential input ports
EOL terminator
Digitizer
Event register
Example program
Example programs
Digitizer configurations
416 - Index
HP E1429A/B User’s Manual
Download from Www.Somanuals.com. All Manuals Search And Download.
Initializing the timebase processor
INITiate
Interfaces
Example programs disk
F
Format
G
K
Keywords
H
High-speed data transfer
L
Languages
Local bus
I
Initializing digitizer memory
HP E1429A/B User’s Manual
Index - 417
Download from Www.Somanuals.com. All Manuals Search And Download.
Local bus interleaved transfers
Local bus programming sequence
O
Logical address
Output buffer
P
Parameter
M
MEASure
MEASure? and CONFigure
Measurements
Programming
Programming procedure
Programs
Multimeter Configurations
Q
N
418 - Index
HP E1429A/B User’s Manual
Download from Www.Somanuals.com. All Manuals Search And Download.
SCPI
R
SCPI command control
Recalling digitizer configurations
SCPI command listings
Reference source
Register descriptions
Register programming
Separator
Register-based programming
Registers
S
Sample period
Sampling
HP E1429A/B User’s Manual
Index - 419
Download from Www.Somanuals.com. All Manuals Search And Download.
Single-ended input
U
Using the digitizer status registers
Standard Event status register
V
Status Byte register
W
T
Taking readings
Transition filter
420 - Index
HP E1429A/B User’s Manual
Download from Www.Somanuals.com. All Manuals Search And Download.
|