Agilent 75000 Series C Agilent E1418A 8/16-Channel D/A Converter Module User’s Manual and SCPI Programming Guide Where to Find it - Online and Printed Information: System installation (hardware/software)............. VXIbus Configuration Guide* Agilent VIC (VXI installation software)* Module configuration and wiring........................ This Manual SCPI programming.............................................. This Manual SCPI example programs......................................
Contents Agilent E1418A User’s Manual Warranty . . . . . . . . . . Safety Symbols . . . . . . WARNINGS . . . . . . . . Declaration of Conformity . User Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapter 2. Programming Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Using This Chapter . . . . . . . . . . . . . . . . . Program Examples . . . . . . . . . . . . . . . Querying Module Identification and Configuration . Configuration Example . . . . . . . . . . . . . APPLy Output . . . . . . . . . . . . . . . . . . . . Error Checking . . . . . . . . . . . . . . . . . . . . I/O Error Checking . . . . . . . . . . . . . . . SCPI Error Checking . . . . . . . . . . . . . .
Chapter 3. Agilent E1418A SCPI Command Reference (continued) OUTPut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OUTPut:TTLTrgn[:STATe] . . . . . . . . . . . . . . . . OUTPut:TTLTrgn[:STATe]? . . . . . . . . . . . . . . . . OUTPutn[:STATe] . . . . . . . . . . . . . . . . . . . . . OUTPutn[:STATe]? . . . . . . . . . . . . . . . . . . . . SOURce . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Appendix B. Agilent E1418A Register-Based Programming . . . . . . . . . . . . . . . . . 113 Addressing the Registers . . . . . . . . . . . . . A16 Registers . . . . . . . . . . . . . . . . . A24 Registers . . . . . . . . . . . . . . . . . The Base Address . . . . . . . . . . . . . . . Register Offset . . . . . . . . . . . . . . . . Reset and Registers . . . . . . . . . . . . . . . . Register Maps . . . . . . . . . . . . . . . . . . . A16/A24 REGISTERS . . . . . . . . . . . . A24 REGISTERS . . . . . . . . .
Appendix C. Agilent E1418A Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . 151 Error Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Appendix D. Voltage/Current Output Adjustment . . . . . . . . . . . . . . . . . . . . . . 155 Using This Appendix . . . . . . . . . . . . . . . Calibration Constants and Non-Volatile Memory Equipment Required . . . . . . . .
Notes 6 Agilent E1418A User’s Manual Contents
Certification Agilent Technologies certifies that this product met its published specifications at the time of shipment from the factory. Agilent Technologies further certifies that its calibration measurements are traceable to the United States National Institute of Standards and Technology (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.
Printing History The Printing History shown below lists all Editions and Updates of this manual and the printing date(s). The first printing of the manual is Edition 1. The Edition number increments by 1 whenever the manual is revised. Updates, which are issued between Editions, contain replacement pages to correct the current Edition of the manual. Updates are numbered sequentially starting with Update 1. When a new Edition is created, it contains all the Update information for the previous Edition.
DECLARATION OF CONFORMITY According to ISO/IEC Guide 22 and CEN/CENELEC EN 45014 Manufacturer’s Name: Manufacturer’s Address: Agilent Technologies, Incorporated 815 – 14th St. SW Loveland, Colorado 80537 USA Declares, that the product Product Name: Model Number: Product Options: 16 Channel 16 Bit D/A Converter E1418A, E1523A, E1524A, E1525A This declaration covers all options of the above product(s).
Notes 10 Agilent E1418A 8/16 D/A Converter Module User’s Manual
Notes Agilent E1418A 8/16 D/A Converter Module User’s Manual 11
Notes 12 Agilent E1418A 8/16 D/A Converter Module User’s Manual
Chapter 1 Module Setup and Installation Using This Chapter This chapter provides general module information and tasks you must perform to install and prepare your module. A procedure to verify your installation is also given. The chapter is divided into the following sections: • • • • • • • • • • • • • • Module Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Functional Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Front Panel Connectors . . . . . . . .
Each output channel is individually configurable to be either an isolated output or a non-isolated output. Channel configuration to isolated or non-isolated is made by individual plug-on modules for each channel. Figure 1-1 shows the module. Figure 1-1.
Ordering Options The Agilent E1418A may be ordered from Agilent Technologies in a variety of configurations.
Functional Description The Agilent E1418A provides great flexibility in configuration. This functional description will help you become familiar with the various configurations and how the module is structured. A functional block diagram is shown in Figure 1-2. Figure 1-2. A Functional Block Diagram * Each channel MUST have either an isolated or non-isolated plug-on module installed. Channels may be configured using any combination of Isolated and Non-Isolated plug-on modules.
As shown, there are four major assemblies that make up an Agilent E1418A: – Channels 1 through 8 main board and VXIbus backplane circuitry. – Channels 9 through 16 expansion board. – Isolated or Non-isolated plug-on modules. – Terminal Module. Channels 1–8 main board and VXIbus backplane circuitry. This assembly contains all the VXIbus interface and decoding circuitry. Isolated and Non-Isolated plug-on modules for channels 1–8 connect to this assembly.
Front Panel Connectors Figure 1-3 shows the connections at the front panel connectors of the main module. Figure 1-3.
Setting the Logical Address Switch Figure 1-4 shows the logical address switch location and setting. The logical address switch factory setting is 72. Valid addresses range from 1 to 255. When used with an Agilent Command Module the factory set address of decimal 72 results in a module address of 9 (72 divided by 8). The module address is used as a secondary address when using GPIB and a Command Module.
Module Installation To install the module: 1. Verify the position of the CAL Store Enable Jumper for your application. The Jumper, as shipped, is in the CAL position. In this position, a calibration may be performed and the results stored in non-volatile memory. In the Secured position, a calibration may be performed, but may NOT be stored in non-volatile memory. This jumper is described in more detail on page 157. 2. Verify or set the logical address switch as shown in Figure 1-4. 3.
To Remove a Module: To remove a module from a mainframe: 1. Remove any terminal modules. 2. Loosen the top and bottom screws securing the module in the mainframe. 3. Move the extraction levers away from each other. As the levers are moved, the module will detach from the backplane connectors. 4. Slide the module out. Note Chapter 1 The extraction levers will not seat and unseat the backplane connectors on older Agilent VXIbus mainframes and non-Agilent mainframes.
Terminal Modules Four terminal modules are available for the Agilent E1418A; a screw-type, a crimp-and-insert type, a ribbon cable type, and an empty terminal housing (without a PC board or connectors). Screw-Type Terminal Module (Standard) The standard terminal module uses screw-type terminals to make connections. Figure 1-6 may be photocopied and used for wiring layout. Figure 1-6.
Wiring the Terminal Module Figure 1-7 shows how to open and wire the E1418A terminal module. Figure 1-7.
Figure 1-7.
Attaching the Terminal Module Figure 1-8 shows how to attach the E1418A terminal module. Figure 1-8.
Removing the Terminal Module Figure 1-9 shows how to remove the E1418A terminal module. Figure 1-9.
Terminal Module Options Besides the standard screw-type terminal module, the Agilent E1418A can be ordered with the following two options. One option (A3E) provides crimp-and-insert connectors and terminal housing. The other option (A3H) provides a ribbon cable connector and terminal housing. Option A3E Note Agilent E1418A Option A3E can be ordered if a crimp-and-insert terminal module is desired.
Crimp-and-Insert Terminal Module Accessories Single-Conductor and Contact The following accessories are necessary for use with crimp-and-insert Option A3E: A crimp-and-insert contact is crimped onto one end of a wire. The other end is not terminated. Order Agilent 91510A. Shielded-Twisted-Pair and Contacts A crimp-and-insert contact is crimped onto each conductor at one end of a shielded-twisted-pair cable. The other end is not terminated. Order Agilent 91511A.
Extra Crimp-and-Insert Connectors Option A3H Note The crimp-and-insert connector is normally supplied with Option A3E. Contact Agilent Technologies if additional connectors are needed. Order Agilent 91484B. The Ribbon Cable Connector Terminal Option provides a terminal housing and ribbon cable connectors. The connectors are designed to be used with 64-pin 0.05 inch center ribbon cables (not provided). Use Figure 1-12 to make the connections.
Terminal Module Connectors Figure 1-12 shows the connections at the terminal module connectors. Figure 1-12.
Configuring the Terminal Module The screw-type terminal module contains jumpers that control how the Agilent E1418A operates. The jumpers are shipped in a separate bag with the terminal module. The Agilent E1418A will operate without any jumpers installed. You can, however, store the jumpers on the terminal module for later reconfiguration. Figure 1-13 shows the jumper locations and example settings. There are two jumpers for each channel; a P/J jumper and a V/I jumper. The two jumpers work together.
Options A3E and A3H Terminals The P/J jumper connection for each channel is named CH X PRGM JMPR in the connection diagram on page 30. With no connection to this pin, the module will operate in the Program Selectable mode. Shorting this pin to GND will set the Jumper Selectable mode for channel X. When CH X PRGM JMPR is shorted to GND, the CH X MODE JMPR pin (corresponding to the V/I Jumper) sets the output mode for channel X. If the pin is open, voltage output mode is selected.
Terminal Module Connections Each channel has four output lines; HI, LO, HS (Hi Sense), and LS (Low Sense). When using a channel in the voltage output mode, you can use the sense lines to increase accuracy or to compensate for long lead lengths. The sense leads are not used in the current output mode. Voltage and Current Output Connections Note Figure 1-14 shows connections for three types of output.
Combining Channels Channels in Series You can combine channels in series to obtain higher output voltages or in parallel to obtain higher output currents. • All channels connected in series MUST be configured as isolated channels (with isolated plug-on modules installed). • Up to 3 channels may be combined, but the output voltage MUST NOT exceed 42 Vdc/42 Vpeak. Channels in Parallel • Channels may be either Isolated or Non-Isolated. • Up to 16 channels may be combined.
Connecting an External Trigger Source An external trigger input is provided on the terminal module. Use the external trigger to externally synchronize multiple outputs or multiple instruments. The External Trigger uses TTL levels. The trigger occurs when the EXT TRIGn connection is pulled low for at least 1 µS. Typical connections to the external trigger is shown in Figure 1-16. Figure 1-16.
Using the CAL Output Terminals The CAL Output Terminals provide one set of connections that can be used to calibrate the output on all 16 channels. Calibration and adjustment procedures are described in Appendix D beginning on page 155. The CAL output terminals are available on the terminal module. There are four lines; HI, LO, HS (Hi Sense), and LS (Low Sense). Typical CAL output terminal connections are shown in Figure 1-17. Figure 1-17.
Initial Operation This section provides a programming example to help verify correct module installation and operation. Additional programming examples and procedures are given in the next chapter. The examples shown here use BASIC and SCPI (Standard Commands for Programmable Instruments). The example assumes a factory set logical address of 72 for the Agilent E1418A module and uses an Agilent Command Module for command interpretation. Examples in ANSI C are given in the next chapter.
Module Identification This example can be used to verify that the logical address has been correctly set, that the module is correctly installed, and that the module is communicating with the command module. The terminal module does not need to be installed for this example to work. This example queries the module for the identification string.
Chapter 2 Programming Examples Using This Chapter This chapter provides examples and descriptions of the most common operations using the Agilent E1418A. Use this chapter to gain an overview of how to program the module, and to obtain programming hints. The examples shown in this chapter are in ANSI C and use SCPI commands to control the module. The SCPI commands are described in detail in Chapter 3 of this manual. SCPI usage conventions and syntax rules are described beginning on page 60.
Agilent VTL function calls and data types typically begin with the lower case letters vi. Output and enter are performed with functions named viPrintf and viScanf. Both these functions require a session (a VTL defined I/O function) to uniquely identify the device being controlled. In the examples, the session has been named dac. Querying Module Identification and Configuration This example will query the module for the identification string and determine the module configuration.
The DIAG:CONF? query returns six integers. The six integers returned contain the module configuration and have the following meaning.
Configuration Example The following program segment demonstrates how to read the module identification string and the configuration. The configuration integers are bit manipulated using the C operator for bit shifting result = result <<1 (a one bit shift to the left).
/* Decode the second integer */ result = config [1]; /* Terminal Module */ if (result > 0) { printf (“Module does NOT have a terminal module installed\n”); } else { printf (“Module has a screw-type terminal module installed\n”); } /* Decode the third integer */ result=config[2]; /* Isolated or non-isolated outputs */ if (num_chan < 9) result = result << 8; /* strip upper 8 bits */ for (i=num_chan;i>0;i – –) { if (result >= 0x8000) { printf (“Channel %d is configured for non-isolated output\n”,i); } else { p
/* Decode the fifth integer */ result=config[4]; /* Channel relay open or closed */ if (num_chan < 9) result = result << 8; /* strip upper 8 bits */ for (i=num_chan;i>0;i – –) { if (result >= 0x8000) { printf (“Channel %d output is disabled\n”,i); } else { printf(“Channel %d output is enabled\n”,i); } result = result << 1; } /* Decode the sixth integer */ result=config[5]; /* P/J Jumper position */ if (num_chan < 9) result = result << 8; /* strip upper 8 bits */ for (i=num_chan;i>0;i – –) { if (result >= 0x
APPLy Output The APPLyn subsystem commands provide the easiest method to output voltages or currents. /* Set channel 1 for 5.0 Volt output */ APPLy1:VOLTage 5.000 /* Channel is set to voltage output and 5.000 V applied */ /* Set channel 8 for 10 mA output */ APPLy8:CURRent 0.0100 /* Channel is set to current output and 10 mA applied */ The APPLyn subsystem outputs the voltage or current specified on the channel specified immediately. The output relay for that channel is closed.
The output can also be disabled before changing the mode or output value. Use the OUTPutn commands to disable the output. /* Set channel 1 for 5.0 Volt output */ APPLy1:VOLTage 5.000 /* Disable the output */ OUTPut1 OFF /* Channel 1 output relay is opened */ /* Now, enable the output */ OUTPut1 ON /* Channel 1 is set to voltage output and 5.000 V applied */ /* Disable the output */ OUTPut1 OFF /* Now set channel 1 for 20 mA current output */ APPLy1:CURRent .
Error Checking To develop programs you will need to create one or more error checking routines. For example, you will need routines to check for errors in the following operations: – I/O operations to the VXIbus, and – SCPI commands to the module. I/O Error Checking I/O error checking is specific to the type of I/O library you are using to communicate with the VXIbus. In this manual and on the CD, the Agilent VISA Transition Library is used.
SCPI error checking is illustrated in the following program example. The SCPI error routine is named sys_error. Errors found are reported to the standard output device.
• • • /*** SCPI Error check ***/ void sys_err(ViSession resource) { char buf [1024] = {0}; int err_no; err = viPrintf (resource, “SYST:ERR?\n”); /* query error queue */ if (err < VI_SUCCESS) err_handler(resource,err); err = viScanf (resource,"%d%t",&err_no,&buf); /* get error number and string */ if (err < VI_SUCCESS) err_handler(resource,err); while (err_no != 0) { printf (“\nCommand Error: %d,%s\n”,err_no,buf); err = viPrintf (resource, “SYST:ERR?\n”); /* query error queue */ if (err < VI_SUCCESS) err_han
SOURce Output Setting an output on a channel is a three step process: – Set the channel mode (voltage or current) – Set the channel output value (volts or amps) – Enable the output (close the channel output relay) As described previously, a single APPLyn command performs all three of these actions. In some cases you may need more control of each step in the output process. The following commands perform the same action as a single APPLyn command.
Like the APPLyn commands, you can change the output value by sending additional SOURcen commands. Changing the output value with the SOURcen commands does not open the output relay. /* Set channel 1 voltage mode */ SOURce1:FUNCtion:MODE VOLTage /* Set channel 1 voltage output */ SOURce1:VOLTage 5.000 /* Turn on the output */ OUTPut1 ON /* Channel 1 output is enabled */ /* Send a new output voltage */ SOURce1:VOLTage 15.000 Changing the output mode with the SOURcen commands opens the output relay.
Setting the Output Mode The output mode can be set using commands in the SOURce subsystem. SOURcen:FUNCtion:MODE VOLTage SOURcen:FUNCtion:MODE CURRent The mode can also be set on the terminal module with the P/J jumpers and V/I jumpers (see page 31). If the mode is set to Jumper selectable with the P/J jumper on the terminal module, the mode cannot be changed with the SCPI commands and the output mode is set by the V/I jumper (also on the terminal module, see page 31).
Controlling the Output Relay There are three programming methods to enable the output of a channel (close the output relay). • The APPLyn:VOLTage or APPLyn:CURRent command both program an output value and close the output relay on a single channel. • The OUTPutn:STATe ON command closes the output relay for a single channel. The last programmed mode and output value remains in effect. • The DIAGnostic:OUTPut:ALL:STATe ON command closes all output relays.
Triggering To synchronize outputs to external events, backplane events, or software events use the TRIGger subsystem commands. Triggering an output from the module involves four steps: 1. 2. 3. 4. Set the trigger source. Set one or more channels for triggered output. Put the trigger system in the wait-for-trigger state. Send the trigger event. The TRIGger:SOURce
INITiate /* Send the trigger event */ TRIGger:IMMediate /* Channels 1 and 2 output the programmed voltages */ Note that the channels must be set for triggered output (using the SOURce subsystem) before the trigger system is changed to the wait-for-trigger state (using the INITiate command).
Using *OPC? As shown, the examples have made no attempt to coordinate the program execution with the Agilent E1418A module. In some cases, you may need to pause program execution until the module has completed executing the commands. The IEEE-488 common command *OPC? can be used to keep the program and the module synchronized. The *OPC? query returns a 1 when all programmed operations are complete. The program can wait for the response before executing additional statements.
Combining Output Channels As described on page 34, multiple outputs may be combined to obtain higher voltage or current outputs. A triggered output is recommended for combined channels. The general sequence used to control combined channels is: 1. 2. 3. 4. Set the trigger source. Close the output relays. Set the desired output on all combined channels. Trigger the output. For example, when three current channels are combined in parallel as shown on page 34, the following commands can be used.
Notes 58 Programming Examples Chapter 2
Chapter 3 Agilent E1418A SCPI Command Reference Using This Chapter This chapter describes Standard Commands for Programmable Instrumentation (SCPI) and summarizes IEEE 488.2 Common (*) Commands applicable to the Agilent E1418A D/A Converter Module. This chapter contains the following sections: • • • • • • • • • • • • • • • Command Types . . . . . . . . . . . . . . . . . . SCPI Command Reference . . . . . . . . . . . . . ABORt Subsystem . . . . . . . . . . . . . . . . . APPLy Subsystem . . . . . . . . . .
SCPI Command Format SCPI commands perform functions like setting outputs, querying instrument states, or retrieving data. The command structure is a hierarchical structure that usually consists of a top level (or root) command, one or more lower level commands, and their parameters.
Implied Implied commands appear in square brackets ([ ]) in the command syntax. (Note Commands that the brackets are not part of the command and are not sent to the instrument.) Suppose you send a second level command but do not send the preceding implied command. In this case, the instrument assumes you intend to use the implied command and it responds as if you had sent it. Examine this excerpt from the STATus subsystem shown below: STATus: OPERation [:EVENt]? The third level command, EVENt, is implied.
Linking Commands Linking IEEE 488.2 Common Commands with SCPI Commands. Use a semicolon between the commands. For example: *RST;APPLy2:VOLT 10 or INIT:IMM;*IDN? Linking Multiple SCPI Commands. Use both a semicolon and a colon between the commands. For example: SOURce2:FUNCtion:MODE VOLT;:SOURce2:VOLTage 10 SCPI Command Reference The following sections describe the Standard Commands for Programmable Instruments (SCPI) commands for the Agilent E1418A D/A Converter Module.
ABORt ABORt The ABORt subsystem disables the trigger system and places the trigger system in the trigger idle state. Subsystem Syntax ABORt Parameters None. Comments • Following this command, the trigger system is in the idle state. Sending an INITiate command after ABORt returns the trigger system to the wait-for-trigger state. • Triggering is described in more detail on page 54.
APPLy APPLy The APPLy subsystem enables and outputs a current or voltage on the specified channel. Subsystem Syntax APPLyn :CURRent :VOLTage APPLyn:CURRent APPLyn:CURRent outputs a current on the specified channel, n. Parameters Parameter Name Parameter Type Range of Values Default APPLyn keyword 1 to 8 or 1 to 16 1 numeric (float 32) or discrete -0.02 Amps to +0.
APPLy APPLyn:VOLTage APPLyn:VOLTage outputs a voltage on the specified channel, n. Parameters Parameter Name Parameter Type Range of Values Default APPLyn keyword 1 to 8 or 1 to 16 1 numeric (float 32) or discrete -16 V to +16 V or MIN | MAX | DEF 0 Comments • In the keyword, APPLyn, the valid range of n is: 1 to 8 for E1418A, E1418A Option 002 1 to 16 for E1418A Option 001, E1418A Option 003. Values of n outside these ranges will generate an error.
CALibration CALibration The CALibration commands are used during periodic calibration of the module. Calibration is described in Appendix D of this manual, beginning on page 155. You should review Appendix D before using any of these commands.
CALibration CALibration:CONDition? CALibration:CONDition? queries the module type and calibration status. The query returns four 16-bit unsigned integers. Parameters Returns: four unsigned 16-bit integers (uint16). Comments • The integers returned indicate the module configuration and status at the last calibration, not the current configuration of the module.
CALibration CALibration:CONFigure:RESistance? CALibration:CONFigure:RESistance? configures the module to perform calibration of the internal calibration resistor and returns a 0 or 1 indicating the readiness of the module. Parameters Returns: signed 16-bit integer (int16). 1 = ready, 0 = not ready. Comments • The internal calibration resistor should be calibrated before calibrating the channels in current mode.
CALibration CALibration:STORe CALibration:STORe loads the stored non-volatile memory calibration constants with the calibration constants currently in use by the module. Parameters None. Comments • This command sets the calibration constants in non-volatile memory if the CAL Store Enable Jumper is properly set (see page 157). Non-volatile memory has finite life, based upon the number of writes. Use this command sparingly.
CALibration CALibration:VALue:RESistance CALibration:VALue:RESistance enters a new measured value to be used as the internal calibration resistor constant by the module. Parameters Parameter Name Parameter Type Range of Values Default numeric (float 32) Must be > 0 ohms none Comments • The new calibration constant is used by the module but not stored in non-volatile memory.
CALibration CALibrationn:CONFigure:CURRent? CALibrationn:CONFigure:CURRent? configures the channel for current mode calibration and returns a 0 or 1 to indicate the channel’s readiness for calibration. Parameters Parameter Name Parameter Type Range of Values Default CALibrationn keyword 1 to 8 or 1 to 16 1 Returns: an unsigned 16-bit integer (uint16). 1 = ready, 0 = not ready.
CALibration CALibrationn:CONFigure:VOLTage? CALibrationn:CONFigure:VOLTage? configures the channel for voltage mode calibration and returns a 0 or 1 to indicate the channel’s readiness for calibration. Parameters Parameter Name Parameter Type Range of Values Default CALibrationn keyword 1 to 8 or 1 to 16 1 Returns: an unsigned 16-bit integer (uint16). 1 = ready, 0 = not ready.
CALibration CALibrationn:VALue:CURRent? CALibrationn:VALue:CURRent? enters a measured calibration value and returns a value indicating the present state of the current calibration process. Parameters Parameter Name Parameter Type Range of Values Default CALibrationn keyword 1 to 8 or 1 to 16 1 numeric (float 32) 0.0 to 6.0 V none Returns: unsigned 16-bit integer (uint16).
CALibration • A returned value of 5 (calibration aborted) is given if either: a. The command is received when the module is in voltage calibration or resistance calibration mode, or b. The calibration in process has entered more than 50 values without a successful calibration. • If the internal calibration resistor is not calibrated, the channel is not marked as calibrated following the completion of calibration (see the CALibration:CONDition? query). The new calibration constants are used, however.
CALibration • This query returns one of the following values: Return Value Meaning 0 Calibration is complete. New constants are in RAM. 1 More measurements are needed. 5 Calibration aborted. • A return value of 5 (calibration aborted) is given if either: a. The command is received when the module is in current calibration or resistance calibration mode, or b. The calibration in process has entered more than 50 values without a successful calibration.
DIAGnostic DIAGnostic The DIAGnostic subsystem contains commands used to check the module configuration, enable or disable all outputs simultaneously, change a channel’s mode without opening and closing the output relay, and check the state of the trigger on all channels.
DIAGnostic DIAGnostic:CALibration:OUTPut[:MODE]? DIAGnostic:CALibration:OUTPut[:MODE]? queries the voltage calibration path for the module. Parameters Returns: string. Comments • The returned string will be one of CALB or CHAN. DIAGnostic:CONFigure? DIAGnostic:CONFigure? returns six 16-bit words indicating the present settings of the module. Parameters Returns: six unsigned 16-bit integers (uint16).
DIAGnostic DIAGnostic:OUTPut:ALL[:STATe] DIAGnostic:OUTPut:ALL[:STATe] opens or closes all channel output relays at once. Parameters Parameter Name Parameter Type Range of Values Default boolean OFF | ON | 0 | 1 0 Comments • This command performs the same function as the OUTPutn[:STATe] command, but enables or disables all outputs simultaneously.
DIAGnostic DIAGnostic:TRIGgered? DIAGnostic:TRIGgered? returns a 16-bit word indicating the current trigger status of the module. Parameters Returns: unsigned 16-bit integer (uint16). Comments • This query returns a 16-bit word indicating the trigger status of each channel. – A bit is set to 0 to indicate the channel is not waiting for a trigger. – A bit is set to 1 to indicate the channel is in the wait-for-trigger state. – Bits 0–15 correspond to channels 1–16, respectively.
INITiate INITiate The INITiate subsystem changes the trigger state from idle to wait-for-trigger. Subsystem Syntax INITiate [:IMMediate] INITiate[:IMMediate] Changes the trigger system from the idle state to the wait-for-trigger state. Parameters None. Comments • If this command is received and the trigger system is not idle, an error is generated. • If this command is received and no channels are waiting for a trigger event, an error is generated. • Triggering is described in more detail on page 54.
OUTPut OUTPut The OUTPut subsystem provides commands to open or close the output relay on each channel and to enable the module to output the selected trigger source on one of the VXIbus TTL trigger lines. Subsystem Syntax OUTPut :TTLTrgn [:STATe] [:STATe]? OUTPutn [:STATe] [:STATe]? OUTPut:TTLTrgn[:STATe] OUTPut:TTLTrgn[:STATe] specifies which VXIbus TTLTRG line is enabled to source a VXIbus trigger when the module is triggered.
OUTPut OUTPut:TTLTrgn[:STATe]? OUTPut:TTLTrgn[:STATe]? queries if the specified VXIbus TTLTRG line is set to be a source of trigger from the module. Parameters Parameter Name Parameter Type Range of Values Default TTLTrgn keyword 0 to 7 none Returns: unsigned 16-bit integer (uint16). Comments • This query returns a 1 if the specified VXIbus TTLTRG line is enabled as a trigger source. This query returns a 0 if the specified VXIbus TTLTRG line is disabled as a trigger source.
OUTPut OUTPutn[:STATe]? OUTPutn[:STATe]? queries the state of the specified channel output relay and returns a 0 or 1. Parameters Parameter Name Parameter Type Range of Values Default OUTPutn keyword 1 to 8 or 1 to 16 none Returns: unsigned 16-bit integer (uint16). Comments • In the keyword, OUTPutn, the valid range of n is: 1 to 8 for E1418A, E1418A Option 002 1 to 16 for E1418A Option 001, E1418A Option 003. Values of n outside these ranges will generate an error.
SOURce SOURce The SOURce subsystem provides commands used to output a voltage or current at each channel.
SOURce SOURcen:CURRent[:LEVel][:IMMediate][:AMPLitude] SOURcen:CURRent[:LEVel][:IMMediate][:AMPLitude] immediately outputs the current set in value at channel n when the output relay is closed. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 numeric (float 32) or discrete -0.02 Amps to +0.
SOURce SOURcen:CURRent[:LEVel][:IMMediate][:AMPLitude]? SOURcen:CURRent[:LEVel][:IMMediate][:AMPLitude]? [ queries the last output value written by SOURcen:CURRent[:LEVel][:IMMediate][:AMPLitude]. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 discrete (optional) MIN | MAX | DEF none Returns: 32-bit floating point number (float 32).
SOURce SOURcen:CURRent[:LEVel]:TRIGgered[:AMPLitude] SOURcen:CURRent[:LEVel]:TRIGgered[:AMPLitude] outputs the current set in value at channel n when the trigger conditions are satisfied and the output relay is closed. Use this command to synchronize multiple channel outputs. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 numeric (float 32) or discrete -0.02 Amps to +0.
SOURce SOURcen:CURRent[:LEVel]:TRIGgered[:AMPLitude]? SOURcen:CURRent[:LEVel]:TRIGgered][:AMPLitude]? [ queries the last value written by either SOURcen:CURRent[:LEVel]:TRIGgered[:AMPLitude] or SOURcen:CURRent[:LEVel][:IMMediate][:AMPLitude]. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 discrete (optional) MIN | MAX | DEF none Returns: 32-bit floating point number (float 32).
SOURce SOURcen:FUNCtion:MODE SOURcen:FUNCtion:MODE configures channel n for either current or voltage output. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 discrete CURRent or VOLTage none Comments • In the keyword, SOURcen, the valid range of n is: 1 to 8 for E1418A, E1418A Option 002 1 to 16 for E1418A Option 001, E1418A Option 003. Values of n outside these ranges will generate an error.
SOURce SOURcen:FUNCtion:MODE? SOURcen:FUNCtion:MODE? queries channel n for current or voltage output mode. The query returns a string. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 Returns: string. Comments • In the keyword, SOURcen, the valid range of n is: 1 to 8 for E1418A, E1418A Option 002 1 to 16 for E1418A Option 001, E1418A Option 003. Values of n outside these ranges will generate an error. • This query returns CURR or VOLT.
SOURce SOURcen:VOLTage[:LEVel][:IMMediate][:AMPLitude] SOURcen:VOLTage[:LEVel][:IMMediate][:AMPLitude] immediately outputs the voltage set in value at channel n when the output relay is closed.
SOURce SOURcen:VOLTage[:LEVel][:IMMediate][:AMPLitude]? SOURcen:VOLTage[:LEVel][:IMMediate][:AMPLitude]? [ queries the last output value written by SOURcen:VOLTage[:LEVel][:IMMediate][:AMPLitude]. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 discrete (optional) MIN | MAX | DEF none Returns: 32-bit floating point number (float 32).
SOURce SOURcen:VOLTage[:LEVel]:TRIGgered[:AMPLitude] SOURcen:VOLTage[:LEVel]:TRIGgered[:AMPLitude] outputs the voltage set in value at channel n when the trigger conditions are satisfied and the channel output relay is closed. Use this command to synchronize multiple channel outputs.
SOURce SOURcen:VOLTage[:LEVel]:TRIGgered[:AMPLitude]? SOURcen:VOLTage[:LEVel]:TRIGgered][:AMPLitude]? [ queries the latest value written by either SOURcen:VOLTage[:LEVel]:TRIGgered[:AMPLitude] or SOURcen:VOLTage[:LEVel][:IMMediate][:AMPLitude]. Parameters Parameter Name Parameter Type Range of Values Default SOURcen keyword 1 to 8 or 1 to 16 1 discrete (optional) MIN | MAX | DEF none Returns: 32-bit floating point number (float 32).
STATus STATus The STATus subsystem controls the SCPI-defined Operation and Questionable Status Registers and the Standard Event Register. Each is comprised of a Condition Register, an Event Register, and an Enable mask. The SCPI Status System is shown in the figure below.
STATus STATus:OPERation:CONDition? STATus:OPERation:CONDition? returns the contents of the Operation Status Condition Register. Reading the register does not affect its contents. Parameters Returns: 16-bit signed integer (int16). Comments • Bit 0 of this register (decimal 1) is the Calibrating bit.
STATus STATus:OPERation:ENABle? STATus:OPERation:ENABle? returns the value of the mask set for the Operation Status Register. Parameters Returns: 16-bit signed integer (int16). STATus:OPERation[:EVENt]? STATus:OPERation[:EVENt]? returns the value of the contents of the Operation Status Event Register. Reading the register clears all bits in the register. Parameters Returns: 16-bit signed integer (int16). Comments • Bit 0 of this register (decimal 1) is the only defined bit in this register.
STATus STATus:QUEStionable:CONDition? STATus:QUEStionable:CONDition? returns the value of the Questionable Status Condition Register. Reading the register does not affect its contents. Since only two bits are used in the Agilent E1418A and both those bits are defined to be events, this command always returns 0 and is included for compatibility purposes. Parameters Returns: 16-bit signed integer (int16). Comments • Bit 8 of this register (decimal 256) indicates the calibration condition.
STATus STATus:QUEStionable:ENABle? STATus:QUEStionable:ENABle? returns the mask set for the Questionable Status Enable Register. Parameters Returns: 16-bit signed integer (int16). STATus:QUEStionable[:EVENt]? STATus:QUEStionable[:EVENt]? returns the value of the Questionable Status Event Register. Reading the register clears all bits in the register. Parameters Returns: 16-bit signed integer (int16).
SYSTem SYSTem The SYSTem subsystem returns information about the module. Subsystem Syntax SYSTem :ERRor? :VERSion? SYSTem:ERRor? SYSTem:ERRor? returns an error number and message from the instrument’s error queue. Parameters Returns: 16-bit signed integer (int16) and a string. Comments • Each query returns an error number and error string from the queue. When no errors are in the error buffer, the query returns +0,"No error". • *CLS clears the error queue. • *RST has no effect on the error queue.
TEST TEST The TEST subsystem provides commands used to run individual self-tests and to query the results of previous self-tests. To run the complete set of self-tests, use the *TST? common command. Subsystem Syntax TEST :NUMBer? :TST [:RESults]? *TST? TEST:NUMBer? TEST:NUMBer? performs a single internal self-test on the module and returns a 16-bit integer indicating the results of the self-test.
TEST TEST:TST[:RESults]? TEST:TST[:RESults]? returns an array showing the result of all self-tests performed by the *TST? query. Parameters None. Comments • The *TST? query returns the result of the first failure found, if any. This query provides a means to check all test failure codes. • This command may be used if the value returned by the *TST? query is other than 0 and complete self-test results are needed.
TEST *TST? *TST? performs all internal self-tests on the module and returns a 16-bit integer indicating the results of the self-test. All circuits on the module are tested up to the output relay. Parameters None. Comments • Following the completion of this query, all outputs are disabled and set to either 0 A or 0 V. • If the module is in the wait-for-trigger state when this query is received, an error is generated. • The returned value indicates the first failure found.
TRIGger TRIGger The TRIGger subsystem controls when and how the outputs are enabled. Other commands, designed for use with the TRIGger subsystem are ABORt and INITiate[:IMMediate]. Subsystem Syntax TRIGger [:IMMediate] :SOURce
TRIGger TRIGger:SOURce TRIGger:SOURce sets the trigger source for the module. Parameters Parameter Name Parameter Type Range of Values Default
IEEE-488.2 Common Command Quick Reference IEEE-488.2 Common Command Quick Reference The following table lists the IEEE-488.2 Common (*) Commands that can be executed by the Agilent E1418A D/A module. For more information about Common Commands, consult ANSI/IEEE Standard 488.2-1987. Note These commands apply to many instruments and are not documented in detail here. Command Title Description *CLS Clear status registers Clears the event registers and request for OPC flag.
Agilent E1418A Command Quick Reference Agilent E1418A Command Quick Reference The following table summarizes commands for the Agilent E1418A. Command APPLyn CALibration :CURRent Closes the output relay and outputs a current on the specified channel, n. :VOLTage Closes the output relay and outputs a voltage on the specified channel, n. :CONDition? Queries the module type and calibration status. The query returns four 16-bit unsigned integers.
Agilent E1418A Command Quick Reference Command OUTPut OUTPutn SOURcen Description :TTLTrgn[:STATe] Specifies which VXIbus TTLTRG line is enabled to source a VXIbus trigger when the module is triggered. :TTLTrgn[:STATe]? Queries the state of the specified VXIbus TTLTRG line for use as a trigger output line. [:STATe] Opens or closes the specified channel output relay. [:STATe]? Queries the state of the specified channel output relay and returns a 0 or 1.
Agilent E1418A Command Quick Reference Command STATus SYSTem TEST :OPERation:CONDition? Returns the contents of the Operation Status Condition Register. Reading the register does not affect its contents. :OPERation:ENABle Specifies which bits of the associated Event Register are included in bit 7 of the Status Byte Register. The Summary bit is the bit-for-bit logical AND of the Event Register and the unmasked bit(s).
Agilent E1418A Command Quick Reference Notes 110 Agilent E1418A SCPI Command Reference Chapter 3
Appendix A Agilent E1418A Specifications DC Voltage Range: ±16 V Resolution: 16 bits (488 µV steps) Monotonic to 2.0 mV Accuracy: ±(% of value + volts) After calibration and at a temperature within ±5 °C of calibration temperature. 90 day: ±(0.05% + 3.0 mV) Output Current: Compliance Current : >20 mA, 0 to ±12 Volts, derate linearly to 5 mA at ±16 Volts Short Circuit Current: <60 mA Differential Ripple and Noise: < 2 mV rms, 20 Hz to 250 kHz into 10 kΩ load DC Current Range: -0.02 Amps to +0.
General Characteristics Settling Time: 300 µS (+full scale to –full scale step, single channel, to accuracy listed previously) Isolation (for isolated channels): 42 Vdc/42 V peak (channel-to-chassis or channel-to-channel) Synchronization: Software commands, External TTL trigger, or VXIbus TTL Trigger lines Single channel or multiple channel VXI Specification: Device Type: A16 or A24, D16, slave only, register-based Power Requirements Current Required (Amps) Configuration +5V DC +5V Dynamic + 12 V DC +
Appendix B Agilent E1418A Register-Based Programming The Agilent E1418A 8/16 Channel D/A Module is a register-based module. It does not support the VXIbus word serial protocol. The module may be controlled at the register level or, with appropriate drivers, controlled by higher level commands. The SCPI commands described in this manual are parsed by an Agilent E1405/ E1406 Command Module and turned into appropriate register reads and writes.
Addressing the Registers To access a specific register for either read or write operations, the address of the register must be used. The Agilent E1418A uses both A16 and A24 register accesses. A16 Registers Register addresses for the VXI module are found in an address space known as VXI A16. The exact location of A16 within a VXIbus master’s memory map depends on the design of the VXIbus master you are using. For the Agilent E1405/E1406 Command Module, the A16 space location starts at 1F000016.
Note Writing an address to the Logical Address Register is typically performed by the resource manager as a part of dynamic addressing. If the address is changed by a write to the Logical Address Register, later accesses must use the new address. A24 Registers The Agilent E1418A requires 256 kbytes of A24 address space.
In practice, four bits (A24_Window Value) in the A16 Card Control Register (base + 1E16) control which A24 registers map to the A16 space. For example, if the A24_Window Value is set to 0010, the 16 Main_DAC Write Immediate Registers are mapped to the A16 space. The Card Control Register is described in more detail on page 137. The Base Address When reading or writing to a module register, a hexadecimal or decimal register address must be specified.
A16 Address Space Outside the Command Module When the Agilent E1405/E1406 Command Module is not part of your VXIbus system (Figure B-1), the Agilent E1418A’s base address is computed as: Base Address = C00016 + (LADDR16 * 4016) or (decimal) 49,152 + (LADDR * 64) where C00016 (49,152) is the starting location of the register addresses, LADDR is the module’s logical address (set either by the switches or using dynamic addressing), and 64 is the number of address bytes per VXI device.
Register Offset The register offset is the register’s location in the block of 64 bytes that belong to the module. For example, the module’s Status/Control Register has an offset of 0416.
Reset and Registers Following power-on or a *RST command, the registers are put into the following states: – The Manufacturer ID and Device ID Registers remain unaffected. – The Channel Mode Register (base + 1A16) is set to voltage output for all channels (FFFF16) or is set to the state set by the V/I jumper (described on page 31) if the P/J jumper is in the jumper selectable position.
Register Maps A16/A24 REGISTERS Address Read Registers Write Registers Type Base + 0016 ID Register Logical Address Register Base + 0216 Device Type Register VXI Required Registers Base + 0416 VXI Status Register VXI Control Register Base + 0616 VXI Offset Register Base + 0816 Calibration Control Register Base + 0A16 Card Configuration Register Base + 0C16 Card Control Registers Software Trigger Register Base + 0E16 Trigger Control Register Base + 1016 Interrupt Control Register (No
A24 REGISTERS Address Write Registers Type Base + 4016 Ch 01 Main_DAC Immediate Base + 4216 Ch 02 Main_DAC Immediate Channel Main DAC Immediate Registers Base + 4416 Ch 03 Main_DAC Immediate Base + 4616 Ch 04 Main_DAC Immediate Base + 4816 Ch 05 Main_DAC Immediate Base + 4A16 Ch 06 Main_DAC Immediate Base + 4C16 Ch 07 Main_DAC Immediate Base + 4E16 Ch 08 Main_DAC Immediate Base + 5016 Ch 09 Main_DAC Immediate Base + 5216 Ch 10 Main_DAC Immediate Base + 5416 Ch 11 Main_DAC Immediate
Address Write Registers Type Base + 8016 Ch 01 Offset_DAC Base + 8216 Ch 02 Offset_DAC Channel Offset DAC Registers Base + 8416 Ch 03 Offset_DAC Base + 8616 Ch 04 Offset_DAC Base + 8816 Ch 05 Offset_DAC Base + 8A16 Ch 06 Offset_DAC Base + 8C16 Ch 07 Offset_DAC Base + 8E16 Ch 08 Offset_DAC Base + 9016 Ch 09 Offset_DAC Base + 9216 Ch 10 Offset_DAC Base + 9416 Ch 11 Offset_DAC Base + 9616 Ch 12 Offset_DAC Base + 9816 Ch 13 Offset_DAC Base + 9A16 Ch 14 Offset_DAC Base + 9C16 Ch
Address Read Registers Write Registers Base + 10016 Ch 01 Voltage Offset_Cal Base + 10216 Ch 02 Voltage Offset_Cal Base + 10416 Ch 03 Voltage Offset_Cal Base + 10616 Ch 04 Voltage Offset_Cal Base + 10816 Ch 05 Voltage Offset_Cal Base + 10A16 Ch 06 Voltage Offset_Cal Base + 10C16 Ch 07 Voltage Offset_Cal Base + 10E16 Ch 08 Voltage Offset_Cal Base + 11016 Ch 09 Voltage Offset_Cal Base + 11216 Ch 10 Voltage Offset_Cal Base + 11416 Ch 11 Voltage Offset_Cal Base + 11616 Ch 12 Voltage Of
Address 124 Read Registers Write Registers Base + 14016 Ch 01 Current Offset_Cal Base + 14216 Ch 02 Current Offset_Cal Base + 14416 Ch 03 Current Offset_Cal Base + 14616 Ch 04 Current Offset_Cal Base + 14816 Ch 05 Current Offset_Cal Base + 14A16 Ch 06 Current Offset_Cal Base + 14C16 Ch 07 Current Offset_Cal Base + 14E16 Ch 08 Current Offset_Cal Base + 15016 Ch 09 Current Offset_Cal Base + 15216 Ch 10 Current Offset_Cal Base + 15416 Ch 11 Current Offset_Cal Base + 15616 Ch 12 Curre
Address Read Registers Write Registers Type Base + 18016 Calibration resistor value Calibration Registers Base + 18216 Calibration resistor value (non-volatile) Base + 18416 Voltage calibration status Base + 18616 Current calibration status Base + 18816 Calibration isolation status Base + 18A16 Calibration card configuration Base + 18C16 Calibration checksum Base + 18E16 SERIAL NUMBER Base + 19016 Module Serial Number Registers (10 byte serial number) Base + 19216 (non-volatile) Ba
Note Calibration Registers 0010016 through 001BE16 are located in non-volatile (FLASH) memory. Writing to this memory requires a complicated sequence of register accesses not documented here. It is recommended that calibration be performed using the SCPI driver for the module, not register access. Register Descriptions Manufacturer ID Register Address Base + 0016 The Manufacturer ID Register is a VXIbus required register. A read of this register returns CFFF16 (-12289 decimal).
will not be accessible via MODID. The content of this register is compared with address lines 6 through 13 from the backplane to determine module accesses in A16 space. Note Writes to this register can be made at any time and will change the logical address of the module for later accesses. Device Type Register Bit Position Address Base + 0216 The Device Type Register is a VXIbus required register. This register indicates the module’s configuration as either an 8-channel DAC or a 16-channel DAC.
memory cannot be accessed via A24 addressing (is inactive). This bit reflects the state of the write register A24 EN bit. MODID*: A one (1) in this field indicates the module is not selected via the P2 MODID line. A zero (0) in this field indicates the module is selected by a high state on the P2 MODID line. Ready: A one (1) in this field, together with a one (1) in the Passed bit, indicates the module is ready for operation.
Calibration Control Register Bit Address Base + 0816 15 14 The Calibration Control Register sets and reports calibration conditions. 13 12 11 10 09 08 READ Cal A/D Bus En Bsy Cal Mode Cal Mux En Cal Mux Chan Address WRITE Cal A/D Bus En Trg Cal Mode Cal Mux Sel En Cal Mux Chan Address READ 07 06 05 04 03 02 01 00 A/D Reading Value A/D Scale Unused Cal Bus En: A one (1) in this field indicates the cal bus is connected.
A/D Trg: Writing a one (1) in this field begins an A/D reading. Writing a zero (0) in this field during a reading in progress will corrupt the reading. Do not combine this bit setting with other bits in this register (write only this bit). Cal Mode Sel: Writing a one (1) in this field sets the calibration system to calibrate voltage. Writing a zero (0) in this field sets the calibration system to calibrate current. This bit controls a relay that requires approximately 5 mS to change states.
Software Trigger Register Address Base + 0C16 Bit The Software Trigger Register provides a means to trigger the module when software trigger has been selected as the trigger source in the Trigger Control Register. 15 14 13 12 11 10 WRITE 09 08 07 06 05 04 03 02 01 00 Software Trigger Software Trigger: When software trigger is selected as the trigger source in the Trigger Control Register, any write to this register generates the trigger (the value written is not important).
Trigger Source: This field selects the trigger source for trigger-enabled channels.
Interrupt Status Register Bit Address Base + 1216 The Interrupt Status Register shows the state of the trigger ignored interrupt condition. The bit is a strobed interrupt source. 15 14 READ 13 12 11 10 Unused 09 08 07 06 05 TRG IGN WRITE 04 03 02 01 00 Unused TRG IGN: This field is set to a one (1) if the trigger ignored condition exists.
Channel Program Jumper Register Bit Address Base + 1616 READ 15 The Channel Program Jumper Register returns the state of the P/J jumper on each channel. Additional information about these jumpers is given on page 31.
Channel Trigger Register Bit Address Base + 1816 READ The Channel Trigger Register reports the trigger status for each channel. 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 TM TM TM TM TM TM TM TM TM TM TM TM TM TM TM TM Ch XX TM: A one (1) in a field indicates a value has been written to the channel Main DAC Triggered Register, but the output is not enabled until the trigger is received.
Channel Mode Register Bit Address Base + 1A16 15 14 The Channel Mode Register reports or programs the voltage or current operating mode for each channel. 13 12 11 10 09 08 07 06 05 04 03 02 01 00 READ Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch Ch 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 WRITE Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Mode Ch XX Mode: Writing a one (1) to this field selects the voltage output mode for that channel.
Card Control Register Bit Address Base + 1E16 15 The Card Control Register allows for access to the A24 address space from the A16 address space. It also provides access to the non-volatile memory. 14 13 12 11 READ 10 Unused 09 08 07 06 05 04 VPPEN 03 02 01 00 A24 Window WRITE VPPEN: Writing a one (1) to this field enables the non-volatile memory to be altered. Writing a zero (0) disables updates or erasures of the non-volatile memory.
Notes Each incremental value of the A24 Window offsets the window by 32 bytes. Up to 512 bytes of A24 space can be pointed to. A24 Window values 816 through F16 point to Calibration Registers. Calibration Registers 0010016 through 001BE16 are located in non-volatile (FLASH) memory. Writing to this memory requires a complicated sequence of register accesses not documented here. It is recommended that calibration be performed using the SCPI driver for the module, not register access.
Note Offset_DAC Registers Address Base + 8016 through Base + 9E16 Bit The Main_DAC Triggered Registers, together with the Trigger Control Register, can be used to provide synchronized output changes on multiple channels. The Offset_DAC Registers are used to program the next offset value on a channel. There are 16 registers, one for each output channel. The register at base + 8016 programs channel 1, base + 8216 programs channel 2, up to base +9E16 to program channel 16.
Note Undefined Registers Channel Voltage Offset Calibration Registers Address Base + 10016 through Base + 11E16 Bit A different gain value is required for voltage and current output operation. The registers from C016 through FE16 are undefined. The Channel Voltage Offset Calibration Registers store voltage offset calibration constants in non-volatile memory. There are 16 registers, one for each output channel.
Channel Voltage Gain Calibration Registers Address Base + 12016 through Base + 13E16 Bit The Channel Voltage Gain Calibration Registers store voltage gain calibration constants in non-volatile memory. There are 16 registers, one for each output channel. The register at base + 12016 stores channel 1, base + 12216 stores channel 2, up to base 13E16 which stores channel 16. This register is non-volatile.
Channel Current Offset Calibration Registers Address Base + 14016 through Base + 15E16 Bit The Channel Current Offset Calibration Registers store current offset calibration constants in non-volatile memory. There are 16 registers, one for each output channel. The register at base + 14016 stores channel 1, base + 14216 stores channel 2, up to base 15E16 to store channel 16. This register is non-volatile.
Channel Current Gain Calibration Registers Address Base + 16016 through Base + 17E16 Bit The Channel Current Gain Calibration Registers store current gain calibration constants in non-volatile memory. There are 16 registers, one for each output channel. The register at base + 16016 stores channel 1, base + 16216 stores channel 2, up to base 17E16 to store channel 16. This register is non-volatile.
Calibration Resistor Value Registers Bit Address Base + 18016 The Calibration Resistor Value Registers store the value of the resistor used to calibrate current output. The Calibration resistor value is a 32-bit value and requires two 16-bit registers. These registers are non-volatile.
Current Calibration Status Register Bit Address Base + 18616 READ The Current Calibration Status Register provides a non-volatile record of the current calibration status for each channel. This register is non-volatile.
Calibration Isolation Status Register Bit Address Base + 18816 READ The Calibration Isolation Status Register provides a non-volatile record of the isolation status of each channel at the last calibration. This register is non-volatile.
Calibration Card Configuration Register Bit Address Base + 18A16 The Calibration Card Configuration Register provides a non-volatile record of the module configuration as either an 8-channel device or a 16-channel device when the module was last calibrated. 15 14 13 12 READ 11 10 09 08 07 06 Undefined 05 04 03 Configuration 02 01 00 Undefined WRITE Configuration: When the module was configured as an 8-channel DAC during the last calibration, all bits in this field are set to one (1).
Module Serial Number Registers Address Base + 18E16 Address Base + 19016 Address Base + 19216 Address Base + 19416 Address Base + 19616 Bit The Module Serial Number Registers provides a 10-byte module serial number stored in non-volatile memory.
697 698 699 700 701 702 703 704 705 706 707 708 709 710 Reg_offset(18) = 36 Reg_offset(19) = 38 Reg_offset(20) = 40 Reg_offset(21) = 42 Reg_offset(22) = 44 Reg_offset(23) = 46 Reg_offset(24) = 48 Reg_offset(25) = 50 Reg_offset(26) = 52 Reg_offset(27) = 54 Reg_offset(28) = 56 Reg_offset(29) = 58 Reg_offset(30) = 60 Reg_offset(31) = 62 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 ! Output a calibrated voltage on channel 3.
Notes 150 Agilent E1418A Register-Based Programming Appendix B
Appendix C Agilent E1418A Error Messages Error Types Table C-2 lists the error messages generated by the Agilent E1418A 8/16-Channel D/A Converter Module firmware when programmed by SCPI. Errors with negative values are governed by the SCPI standard and are categorized in Table C-1. Error numbers with positive values are not governed by the SCPI standard. Table C-1. Error Types Described –199 to –100 Command Errors (syntax and parameter errors).
Error Messages Table C-2. Error Messages Code Error Messages Potential Cause(s) –141 Invalid character data An invalid SCPI keyword was used. –211 Trigger ignored A trigger was received and no channels were in the wait for trigger state. –213 Init ignored An INITiate was received and one or more channels were already in the wait for trigger state. –221 Setting Conflict A command was received for a mode not set. For example, a SOURn:VOLT command was received and the channel is set to CURR mode.
Code Error Messages Potential Cause(s) +3008 Invalid Calibration State An invalid sequence of calibration commands was received. For example, a CALn:CONF:VOLT command followed by a CALn:VAL:CURR command. +3009 Invalid Calibration Channel An invalid channel number, n, was requested in the CALn:CONF or CALn:VAL commands. +3010 Calibration aborted A command, other than one of the CALibration commands, was received during the calibration process.
Notes 154 Agilent E1418A Error Messages Appendix C
Appendix D Voltage/Current Output Adjustment Using This Appendix This appendix describes adjustment procedures. The procedures in this appendix are intended for qualified service personnel. Adjustment procedures are a part of calibration procedures. Calibration involves functional testing, performance testing, adjustment, and verification testing. These procedures are given in the Agilent E1418A 8/16-Channel DAC Service Manual.
Calibration Constants and Non-Volatile Memory The accuracy of a channel output depends upon a number of calibration constants. Calibration constants are stored in two locations within the module; in non-volatile memory and in RAM. The constants in RAM are used by the module to adjust all outputs. When the module is used with the SCPI driver, the RAM constants are loaded from the non-volatile memory at power-up.
connections. You must make a four-wire connections for the adjustment procedures. Adjustment Procedure Adjustment is performed on each channel, one at a time. Additionally, voltage output and current output each use unique calibration constants. If desired, you may adjust only voltage output or current output. Preparation If Permanent Before performing any adjustments, determine if the adjustments are to be temporary or permanent (refer to the discussion on page 156). 1. 2. 3. 4. Turn off the mainframe.
2. Install the terminal module. 3. Apply power and allow a 15 minute warm-up. Voltage Adjustment Voltage output adjustment uses two of the CALibration subsystem queries. CALibrationn:CONFigure:VOLTage? CALibrationn:VALue:VOLTage? The general procedure for channel voltage adjustment is: 1. Make the connections shown in Figure D-2 or D-3. 2. Send the CALibrationn:CONFigure:VOLTage? query to the module and read the response until a 1 is returned (typically the first query response). 3.
Figure D-2. Voltage Calibration Connections (CAL) Figure D-3.
Current Adjustment Note Current output uses an internal resistance value to calibrate all channels. This resistance value is approximately 244 Ω. You may also use an external resistance value on each channel for current output calibration. If you wish to specify an external resistor value, you must send the DIAGnostic:CALibration:OUTPut CHANnel command and perform the adjustment at each channel output. Any resistor value may be used but values in the range of 50 Ω to 500 Ω are recommended.
Figure D-4. Resistance Calibration Connections (CAL) Current output adjustment uses two of the CALibration subsystem queries. Current adjustment requires voltage measurements. CALibrationn:CONFigure:CURRent? CALibrationn:VALue:CURRent? Once the calibration resistance value is set as described earlier, the general procedure for each channel current output adjustment is: 1. Make the connections shown in Figure D-5 or D-6. 2.
Each channel will require multiple iterations of the CALn:VAL:CURR? query. A minimum of 9 queries, to a maximum of 50 queries, will be required at each channel. During the process, the output voltage will range from -5 to +5 V and the last values output will be at or near 0 volts. Figure D-5. Current Calibration Connections (CAL) Figure D-6.
Storing the Adjustments Once all adjustments have been made using the procedures outlined previously, you can store the new calibration constants in non-volatile memory by sending the following command: /* Store the new constants */ CALibration:STORe This command will generate an error if the Cal Store Enable Jumper is not set to the CAL position (see page 157).
• • /*** VOLTAGE OUTPUT ADJUSTMENT ***/ for (i=1;i
err=viScanf(dac, “%d”, &result); /* Enter integer returned */ /*, returns a 1 when ready to calibrate */ if(err < VI_SUCCESS) err_handler(dac, err); } result = 1; while (result !=0 && result !=2) { meas_volt=get_voltage (); /* Get the voltage measurement */ err=viPrintf(dac, “CAL%d:VAL:CURR? %f\n”,i,meas_volt); if(err < VI_SUCCESS) err_handler(dac, err); err=viScanf(dac, “%d”, &result); /* Enter integer returned */ /* returns a 0 when calibration complete */ if(err < VI_SUCCESS) err_handler(dac, err); if (
Notes 166 Voltage/Current Output Adjustment Appendix D
Appendix E Configuration and Disassembly Using This Appendix This appendix contains information about the mechanical and electrical layout of the module. Use this appendix to: – Disassemble and reconfigure the module – Perform assembly level troubleshooting CAUTION Procedures in this appendix should be performed by qualified service personnel at approved static safe workstations. Configuration The Agilent E1418A can be configured as either an 8-channel output device or a 16-channel output device.
1st Value Returned Bit 15 14 13 12 Indicates an 8-channel or 16-channel configuration. 11 10 Use 9 8 7 6 5 4 3 2 Not Used 1 0 Channels Channels can have one of two values; all 1’s (decimal 7) for an 8-channel configuration, and all 0’s (decimal 0) for a 16-channel configuration. Bit 2nd Value Returned Indicates the type of Terminal Module (if any) installed. See page 77 for additional information.
Adding 8 Channels CAUTION Use this procedure to install an 8-Channel expansion kit (Agilent E1524A or Agilent E1525A). Almost all electrical components can be damaged by electrostatic discharge (ESD) during handling. Component damage can occur at electrostatic discharge voltages as low as 50 volts. Disassemble and reconfigure only in a static free work area. Minimize handling of assemblies and components. Keep all assemblies and replacement parts in the original static free packaging.
Figure E-1.
Figure E-2.
Installing Isolated/Non-Isolated Plug-on Modules CAUTION Use this procedure to install the isolated plug-on kit (Agilent E1523A) or to change the channel isolation configuration. Almost all electrical components can be damaged by electrostatic discharge (ESD) during handling. Component damage can occur at electrostatic discharge voltages as low as 50 volts. Disassemble and reconfigure only in a static free work area. Minimize handling of assemblies and components.
Figure E-3. Plug-on Channel Locations Figure E-4.
Troubleshooting These procedures will help you isolate a failure to a particular assembly. The major assemblies of the Agilent E1418A are available on an exchange basis. Isolating an Assembly (Self-Test) Use the following SCPI Common Command query to initiate a module self-test. ! Start the Self-test. *TST? ! Enter the 16-bit integer returned. The query will return a +0 if no errors are encountered.
Note Assembly Exchange Notes Since the query returns only the first failure test number, additional failures are possible but not reported by this command. The following assemblies are available for exchange. Part Number Assembly E1418-69201 Main board and all sheet metal. Does NOT include plug-on assemblies or expansion board. E1418-69502 Expansion board. Does NOT include plug-on assemblies. E1418-66503 Isolated plug-on module (replacement, not an exchange).
3. Keep all removed parts in a static-safe place. Do not send plug-on modules with the exchange assembly. 4. Package the assembly in static-safe packaging material. 5. Include a description of the problem encountered as well as your phone number and return address.
Index Agilent E1418A User’s Manual *CLS, 96–100, 106 *DMC, 106 *EMC, 106 *EMC?, 106 *ESE, 106 *ESE?, 106 *ESR?, 106 *GMC?, 106 *IDN?, 40, 106 *LMC?, 106 *OPC, 106 *OPC?, 56, 106, 163 *PMC, 106 *RMC, 106 *RST, 53, 106, 119 *SRE, 98, 106 *SRE?, 106 *STB?, 106 *TRG, 106 *TST?, 53, 103, 106, 174 *WAI, 106 A A16 address space, 117 registers, 114 A16/A24 register map, 120 windows, 116 A24 access from A16, 137 memory access state, 127 required, 127 register map, 121–125 registers, 115 windows, 116, 137 Abbreviat
C CAL current calibration connections, 162 output terminals, 36, 71–72, 76, 156 resistance calibration connections, 161 store enable jumper, 20, 157 terminal connections, 36, 156 voltage calibration connections, 159 Calibration card configuration register, 147 checksum register, 147 conditions, reporting, 129 constants, 156 loading stored, 69, 163 reloading, 68 control register, 119, 129 current mode, 71 process, 73–74 equipment required, 156 example program, 163–165 interruption, 74–75 isolation status reg
C (continued) Channel (continued) voltage gain calibration registers, 141 mode calibration, 72, 74–75 offset calibration registers, 140 output connections, 33 combining, 34 querying, 92, 94 specifying, 65, 91, 93 output mode, 13, 45, 89, 136 See also Channels Channels adding 8, 169–171 calibration condition, 69 combining, 34, 57 isolation status, 146 parallel connections, 34 series connections, 34 See also Channel Checking configuration, 167 errors, 47 SCPI errors, 47–49 Closing Output Relay, 45, 53, 78, 82
C (continued) Commands (continued) *TST?, 53, 103, 106, 174 types, 59 *WAI, 106 Common (*) Commands, 106 *CLS, 96–100, 106 *DMC, 106 *EMC, 106 *EMC?, 106 *ESE, 106 *ESE?, 106 *ESR?, 106 format, 59 *GMC?, 106 *IDN?, 40, 106 linking, 62 *LMC?, 106 *OPC, 106 *OPC?, 56, 106, 163 *PMC, 106 quick reference, 106 *RMC, 106 *RST, 53, 106, 119 *SRE, 98, 106 *SRE?, 106 *STB?, 106 *TRG, 106 *TST?, 53, 103, 106, 174 *WAI, 106 Condition Register, 95–96, 98 Configuration and disassembly, 167–176 changing, 168 checking, 40
D (continued) DIAGnostic Subsystem, 76–79 DIAG:CAL:OUTPut[:MODE], 76, 156, 160 DIAG:CAL:OUTPut[:MODE]?, 77 DIAG:CONFigure?, 40–41, 77 DIAG:OUTP:ALL[:STATe], 53, 78 DIAG:SOURn:FUNC:MODE, 78 DIAG:TRIGgered?, 79 Disabling outputs, 46 simultaneously, 78 trigger system, 63 Disassembly, 169 Discrete Command Parameters, 61 *DMC, 106 Documentation History, 8 Driver, SCPI, 13, 37, 47, 100 Dynamic Addressing, 19, 126 E E1523A, 15, 168, 172 E1524A, 15, 168–169 E1525A, 15, 168–169 *EMC, 106 *EMC?, 106 Enable Register,
J Jumper CAL store enable, 20, 157 channel program jumper register, 119, 134 output mode, 31 P/J, 17, 31, 52, 119, 134 program selectable, 31 V/I, 17, 31, 52 L LADDR, 19 *LMC?, 106 LO Channel Output Line, 33 Logical Address, 19, 114 register, 126 LS Channel Output Line, 33 M Main_DAC immediate registers, 138 triggered registers, 138 Mainframe A16 address space inside, 117 installing modules, 20 removing modules from, 21 Manufacturer ID Register, 119, 126 Maximum Module Isolation Rating, 34, 57, 112 Memory
O (continued) Options (continued) option A3E, 15, 27–28 option A3H, 15, 29 ordering, 15 terminal module, 15 Output accuracy, 111–112 CAL terminals, 36, 71–72, 76, 156 changing value, 51 channel current, 13, 45, 89 connections, 33 combining, 34 querying, 86, 88 specifying, 64, 85, 87 channel isolated, 14–15 non-isolated, 14–15 channel voltage, 13, 45, 89 connections, 33 combining, 34, 57 querying, 92, 94 specifying, 65, 91, 93 current adjustment, 155–166 connections, 33 combining, 34 disabling, 46 enabling,
P (continued) Programming Examples (continued) setting channel output, 50–51 output mode, 52 trigger, 54–55 using *OPC?, 56 Programming, register-based, 113–150 Q Query calibration status, 67 channel calibration, 69 readiness, 71–72 output mode, 90 condition register contents, 96, 98 configuration, 40–44 current calibration process, 73–74 module settings, 77 trigger status, 79 device identification, 40–44 error queue, 47 event register contents, 97, 99 operation status register, 97 output relay state, 83 q
R (continued) Registers (continued) card configuration register, 130 control register, 137 channel current gain calibration, 143 offset calibration, 142 mode register, 119, 136 program jumper register, 119, 134 relay control register, 119, 136 trigger register, 119, 135 voltage gain calibration, 141 offset calibration, 140 clearing bits from, 97, 99 condition register, 95–96, 98 current calibration status, 145 descriptions, 126–148 device ID register, 119 device type register, 127 enable register, 97, 99 ev
S (continued) Setting CAL Store Enable Jumper, 20 calibrated voltage output, 148–149 calibration conditions, 129 channel output, 50 mode, 45 logical address register, 126 switch, 19 output mode, 52 value, 45 trigger, 54–55 source, 105 voltage calibration path, 76 Settling Time, 112 reducing, 78 Short SCPI Commands, 60 Single Internal Self-Test, 101 Soft Front Panel See VXIplug&play Online Help Software trigger, 54 register, 131 SOURce Subsystem, 50–52, 84–94 SOURn:CURR[:LEV][:IMM][:AMPL], 50, 85 SOURn:CURR[
T (continued) Terminal Module (continued) terminal housing option, 29 V/I jumper, 17, 31, 52 voltage output connections, 33 wiring, 23–24 TEST Subsystem, 101–103 TEST:NUMBer?, 101 TEST:TST[:RESults]?, 102 *TST?, 103 *TRG, 106 Trigger channels, 104 control register, 131–132 external, 54 connections, 35 idle state, 80 ignored interrupt condition, 133 immediate, 54 process, 55 query current status, 79 setting, 54–55 software, 54 source querying, 105 setting, 105 status for channels, 135 system ABORt command, 6
W *WAI, 106 Wait-for-Trigger State, 80 WARNINGS, 8 Warranty, 7 Wiring Terminal Module, 23–24 Writing To calibration card configuration register, 147 checksum register, 147 control register, 129 isolation status register, 146 resistor value registers, 144 card control register, 137 channel current gain calibration registers, 143 current offset calibration registers, 142 mode register, 136 relay control register, 136 voltage gain calibration registers, 141 voltage offset calibration registers, 140 current cal