Home

Signal Generators Programming Guide

image

Contents

1. Register Value after STATus PRESet STATus QUEStionable PTRansition 32767 STATus QUEStionable FREQuency ENABle 32767 STATus QUEStionable FREQuency NTRansition 32767 STATus QUEStionable FREQuency PTRansition 32767 STATus QUEStionable MODulation ENABle 32767 STATus QUEStionable MODulation NTRansition 32767 STATus QUEStionable MODulation PTRansition 32767 STATus QUEStionable POWer ENABle 32767 STATus QUEStionable POWer NTRansition 32767 STATus QUEStionable POWer PTRansition 32767 180 Agilent Signal Generators Programming Guide Programming the Status Register System Status Byte Group Status Byte Group The Status Byte Group includes the Status Byte Register and the Service Request Enable Register This is the named status register for i G Status Byte Register However not all signal generator Unused models use all of the shown events i e some use only a subset of the z E4438C s status Error Event Queue Summary Bit registers Unused Data Questionable Summary Bit Message Available MAV Standard Event Summary Bit Request Service RQS Operation Status Summary Bit ck721a Agilent Signal Generators Programming Guide 181 Programming the Status Register System Status Byte Group Status Byte Register Table 4 4 Status Byte Register Bits Bit Description 0 1 Unused These bits are always set to 0 2 Error Event Queue Summary Bit A 1 in this b
2. al Waveform length The following figures illustrate the influence a single sample can have The generated 3 tone test signal requires 100 samples in the waveform to maintain periodicity for all three tones The measurement on the left shows the effect of using the first 99 samples rather than all 100 samples Notice all the distortion products at levels up to 35 dBc introduced in addition to the wanted 3 tone signal The measurement on the right shows the same waveform using all 100 samples to maintain periodicity and avoid a phase discontinuity Maintaining periodicity removes the distortion products Phase Discontinuity Phase Continuity Center 4 009 pRes BH 3 kHz 3 tone 20 MHz Bandwidth 3 tone 20 MHz Bandwidth Measured distortion 35 dBc Measured distortion 86 dBc Agilent Signal Generators Programming Guide 225 Creating and Downloading Waveform Files Waveform Memory Waveform Memory The signal generator provides two types of memory volatile and non volatile You can download files to either memory type NOTE The X Series and MXG s ARB Waveform File Cache is limited to 128 files Consequently once the 128 file cache limit has been reached the waveform switching speed will be much slower for files loaded into the volatile waveform memory BBG Volatile Random access memory that does not survive cycling of the signal generator power This memory is commonly referred to as wavefo
3. include include include include PROGRAM NAME niexl cpp PROGRAM DESCRIPTION This program verifies that the GPIB connections and interface are functional Connect a GPIB cable from the PC GPIB card to the signal generator Enter the following code into the source cpp file and execute the program KR KK RK KK KK RK KK KK KK KK RR KK KK KK KK KK KK KR ck ck KEK EK EK RK KK EK KEK KEK KEK RK KK RK KK KK KKK ck ck ck ck ck ck ck ck ck ck KK KEKE stdafx h iostream windows h Decl 32 h using namespace std int GPIBO 0 Board handle Agilent Signal Generators Programming Guide 85 Programming Examples GPIB Programming Interface Examples Addr4882_t Address 31 Declares an array of type Addr4882_t int main void int sig Declares a device descriptor variable sig ibdev 0 19 0 13 1 0 Aquires a device descriptor ibclr sig Sends device clear message to signal generator ibwrt sig RST 4 Places the signal generator into a defined state Print data to the output window cout lt lt The signal generator should now be in REMOTE The remote indicator endl cout lt lt annunciator R should appear on the signal generator display endl return 0 Interface Check for GPIB Using VISA and C This program uses VISA library functions and the C language to communicate with the signal generator The program verifies that the GPIB connections and interface are
4. GPIB RS 232 LAN Instrument Adjustments Default address 19 Range 0 30 Power n Preset Memory Catalogp Instrument Info Help Mode For details on each key use the Key and Data Field Reference For additional SCPI command information refer to the SCPI Command Reference Connect a GPIB interface cable between the signal generator and the computer The following table lists cable part numbers Model 10833A 10833B 10833C 10833D 10833F 10833G Length 1 meter 2 meters 4 meters 5 meter 6 meters 8 meters Verify GPIB Functionality To verify GPIB functionality use the VISA Assistant available with the Agilent IO Library or the Getting Started Wizard available with the National Instrument IO Library These utility programs enable you to communicate with the signal generator and verify its operation over GPIB For information and instructions on running these programs refer to the Help menu available in each utility If You Have Problems l Verify that the signal generator s address matches the address declared in the program example programs in Chapter 3 2 Remove all other instruments connected through GPIB and rerun the program 3 Verify that the GPIB card s name or id number matches the GPIB name or id number configured for your PC 30 Agilent Signal Generators Programming Guide Using IO Interfaces GPIB Programming Interface Examples GPIB Interface T
5. DllImport agvisa32 dll EntryPoint viFindRsrc public static extern int FindRsrc uint session string expr out uint findList out uint retCnt byte desc DllImport agvisa32 dll EntryPoint viGetAttribute public static extern int GetAttribute uint vi VisaAttribute attribute out uint attrState Dllimport agvisa32 dll EntryPoint viOpen public static extern int Open uint session string rsrcName VisaAccessMode accessMode uint timeout out uint vi 372 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Save and Recall Instrument State Files DllImport agvisa32 dll EntryPoint viOpenDefaultRM public static extern int OpenDefaultRM out uint session DllImport agvisa32 dll EntryPoint viRead public static extern int Read uint session byte buf uint count out uint retCount DllImport agvisa32 dll EntryPoint viSetAttribute public static extern int SetAttribute uint vi VisaAttribute attribute uint attrState DllImport agvisa32 dll EntryPoint viStatusDesc public static extern int StatusDesc uint vi int status byte desc DllImport agvisa32 dll EntryPoint viWrite public static extern int Write uint session byte buf uint count out uint retCount Agilent Signal Generators Programming Guide 373 Creating and Downloading User Data Files User Flatness Corr
6. maximum size of result array in bytes Return long The number of bytes in result buffer SErrors returns 0 if anything goes wrong FIO ck kk II ke kk ok IO III ko kk e kk IOI IO III II II IOI IO II oko kk III III II IO A I a k Y long queryInstrument SOCKET sock const char command char result size_t maxLength 132 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples long ch char tmp_buf 8 long resultBytes 0 int command_err int count OIG IOI IO IOI ko kk e kk IO koe k IOI IOI II IOI IO I IO I a I Ok Send command to signal generator FIO IO II III ek k IOI IO E E II IOI IO I IO I IO I IO ke IR IO joke kJ command err commandInstrument sock command if command err return COMMAND ERROR III ok koe IO III ek ck IOI IO IOI k kk ko kk ke kk ek I IO IO a I ke Read response from signal generator KRERER ERE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE KER ERE RE RE RE ck kck kk count recv sock tmp_buf 1 0 read 1 char ch tmp_buf 0 if count lt 1 ch EOF ch n result 0 null terminate result for ascii return 0 use a do while so we can break out do binary data encountered figure out what it is long numDigits long numBytes 0 char length 10 count recv sock tmp_buf 1 0 read 1 char ch tmp_buf
7. Function main1 Da Description Output a series of SCPI commands to the signal generator Le Send query results to stdout wy S Return int non zero if an error occurs f CKCECHCKCKCkCKCkckckckchckchckchckchckchckckckckck chck ck kch kc h hc kCK Ck Ck CECK Ck KCKcKckcKCkckckckckckckckckckckckckchckchckchckckckchckchck kk k Rename this int mainl function to int main Re compile and the kd execute the program k DLL Agilent Signal Generators Programming Guide 141 Programming Examples LAN Programming Interface Examples int mainl SOCKET instSock long bufBytes char charBuf char malloc INPUT_BUF_SIZE FRR ke e e E e e e kk II e e IOI E ke e IO III IOI ke K IO k k k k Y open a socket connection to the instrument V eooo aooaa oaaao aoaaa IO IO IO II II IOI IO IO IO A ifdef WINSOCK if init_winsock 0 exit 1 endif WINSOCK instSock openSocket xxxxxx SCPI_PORT Put your hostname here if instSock INVALID SOCKET fprintf stderr Unable to open socket n return 1 fprintf stderr Socket opened n bufBytes queryInstrument instSock IDN n charBuf INPUT BUF SIZE printf ID sWMn charBuf commandInstrument instSock FREQ 2 5 GHz n print n bufBytes queryInstrument instSock FREQ CW n charBuf INPUT BUF SIZE printf Frequency s n charBuf commandInst
8. Pee or oo o0 00 00 00 00 00 12 loo 00 00 00 00 00 00 12 12 5a 26 9 10 byte file header added by signal generator 3 e of data Notice that the bit file editor shows only two bytes and one nibble In addition the signal generator shows the nibble as hex value 4 instead of 7 78 is byte 3 ASCII character x in the SCPI command line This is because the signal generator sees bits 17 and 18 and assumes bits 19 and 20 are 00 As viewed by the signal generator this makes the nibble 0100 Even though the signal generator extrapolates bits 19 and 20 to complete the nibble it ignores these bits along with bits 21 through 24 As seen with the hex editor program the signal generator does not actually change the three bytes of data in the downloaded file For information on editing a file after downloading see Modifying User File Data on page 336 324 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Binary File Type Data With the Binary file type the signal generator sees all of the bytes within the downloaded file and attempts to use all of the data bits When using this file type the biggest challenge is creating the data so that the signal generator uses all of the bits bytes contained within the file This is referred to as using an even number of bytes The method of creating the user file data pattern depends on wh
9. oj Sampler Loop Unlocked gg E ey To Standard Operation Status Group 10 YO Loop Unlocked i rm p E Unused 2 2 v s Unused sjsj tu U EIE G le nused FITS s Unused Tp hn Unused Unused Unused Unused Always Zero 0 Data Quest Modulation Status Group ES267D Option B01 or 602 only Mod 1 Undermod 0 Baseband 1 Busy Ka eats 1 Baseband 1 Communicating o ndermod 2 U nused Mod 2 Overmod 4 3 0 Unused o D Modulation Uncalibrated 4 4 BI S 9 2 jt Unused GEE Unused 4 5 Pad dD Unused DE Epp Unused 4 6 Iei ole U eE s c 2 2 y la nused ajaja s Unused 7 7 o s s s ki Unused Sls sie Unused 4 8 EE EIE PIT aj LE Unused SC Cle Unused 4 9 SIEIS U zje E Tya S n9 nused c E ch e Unused oO LT Unused 8 k Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Always Zero 0 Data Quest Calibration Status Group V Q Calibration Failure DCFM DCOM Zero Failure Unused Unused o o Unused i o lol Oly Unused OIE alo 9 C c Unused X la fold E Unused S S s lE Unused SIG CIS Unused S reno Unused 8 Y Unused Unused Unused Unused Always Zero 0 172 Agilent Signal Generators Programming Guide Programming the Status Register System Overview Figure 4 6 E8257N 57D 67D and E8663B 63D Overall Status Byte Register System 2 of 2 Status Byte Register Unused Unused From Data Questionable Power Status Group Error Event Queue Summary Bi Data Questiona
10. Write the file block to the signal generator byte readBuf new byte TRANSFER BLOCK SIZE int numRead 0 uint retCount 0 while numRead fs Read readBuf 0 TRANSFER BLOCK SIZE 0 Creating and Downloading User Data Files Save and Recall Instrument State Files Visalnterop Write device readBuf uint numRead out retCount j Go ahead and set END on writes Visalnterop SetAttribute device VisaAttribute SendEndEnable Done with file fs Close else Send an empty definite block WriteDevice device 10 false Declaration of VISA device access constants public enum VisaAccessMode NoLock 0 ExclusiveLock 1 SharedLock 2 Agilent Signal Generators Programming Guide 1 371 Creating and Downloading User Data Files Save and Recall Instrument State Files LoadConfig 4 Declaration of VISA attribute constants public enum VisaAttribute SendEndEnable 0x3FFF0016 TimeoutValue Ox3FFF001A This class provides a way to call the unmanaged Agilent IO Library VISA C functions from the C application public class VisaInterop DllImport agvisa32 dll EntryPoint viClear public static extern int Clear uint session Dllimport agvisa32 dll EntryPoint viClose public static extern int Close uint session DllImport agvisa32 dll EntryPoint viFindNext public static extern int FindNext uint findList byte desc
11. 60 Agilent Signal Generators Programming Guide 25 26 27 28 29 30 31 32 Using 10 Interfaces Using LAN Make sure the MXA s LXI LAN triggers are disabled Send the following SCPI command TRIG LXI LAN DISable ALL Set the MXA s trigger source to LXI LAN Send the following SCPI command LIST TRIG SOUR LAN Configure the MXA s LXI Output LAN Event Send the following SCPI commands LXI EVENt OUTPut LAN DRIVe LAN1 NORMal LXI EVENt OUTPut LAN SLOPe LAN1 POS LXI EVENt OUTPut LAN SOURCe LAN1 WaitingForTrigger This will cause the MXA to take a measurement at the first frequency in its list It will also begin waiting for the LANO peer to peer message before moving on to the next measurement Enable the MXA s LXI LAN Event trigger Send the following SCPI commands TRIG LXI LAN ENABled LANO 1 Enable the MXA s OperationComplete LXI Output LAN Event Send the following SCPI commands LXI EVENt OUTPut LAN ENABled OperationComplete 1 The MXA will send an OperationComplete peer to peer message when the OperationComplete instrument event changes state Begin the MXG s list sweep Send the following SCPI commands INIT CONT ON This will cause the MXG to put out a signal at the first frequency in its list It will also begin waiting for the LAN1 peer to peer message before moving on to the next signal Begin the MXA s l
12. I Q Calibration Failure DCFM DCQM Zero Failure Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Data QUEStionable CALibration Condition Register Data QUEStionable CALibration Positive Transition Filter Data QUEStionable CALibration Negative Transition Filter Data QUEStionable CALibration Event Register 15 14 13 12 111098 76543210 15 14 13 76543210 8 Y v 15 14 13 8 y 8 EE 15 14 13 Data QUE Stionable CALibration Event Enable Register 15 14 1 3 12 n 100987 65432 10 To Data Questionable Status Register Bit 8 ck720a Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable Calibration Condition Register The Data Questionable Calibration Condition Register continuously monitors the calibration status of the signal generator Condition registers are read only Table 4 12 Data Questionable Calibration Condition Register Bits Bit Description 0 I Q Calibration Failure A 1 in this bit position indicates that the I Q modulation calibration experienced a failure 15 DCFM DCoM Zero Failure A 1 in this bit position indicates that the DCFM DC M zero calibration routine has failed This is a critical error The output of the source has no validity until the condition of this bit is 0 2 1
13. In general the softkeys are not updated until the SCPI command SYST DISP GTL is sent Instrument Info Help Mode For details on each key use the Key and Data Field Reference For additional SCPI command information refer to the SCPI Command Reference Getting Help Agilent X Series and MXG When you press Help Help displays for the next key you press Use the cursor keys Page Up Page 8 Down and the RPG knob to scroll the help text Then press Cancel to close the help window or press any other key to close the help window and execute that key For details on each key use the key help described in User s Guide Getting Help ESG PSG When you press Help Help displays for the next key you press or you see help for the next key or for HELP every key depending on the Help mode For details on each key use the key help described in User s Guide Agilent Signal Generators Programming Guide 21 Getting Started with Remote Operation Preferences Setting the Help Mode ESG PSG SCPI commands Ernon Diaonostic Infor SYSTem HELP MODE SINGle CONTinuous SYSTem HELP MODE GPIB RS 232 LAN Options Infor Instrument Adjustments Self Testo When you press Help i Mod Status Info Display OFF Single Help displays only for the next key you press Power On Cont Help displays for each key you press and that key s function activates Preset SIE Cont To
14. on page 21 Programming Examples Development Environment The C C examples were written using an IBM compatible personal computer PC configured as follows Pentium processor Pentium is a registered trademark of Intel Corporation Windows NT 4 0 operating system or later e C C programming language with the Microsoft Visual C 6 0 IDE National Instruments PCI GPIB interface card or Agilent GPIB interface card National Instruments VISA Library or Agilent VISA library e COMI or COM2 serial port available LAN interface card The HP Basic examples were run on a UNIX 700 series workstation Running C Programs When using Microsoft Visual C 6 0 to run the example programs include the following files in your project When using the VISA library add the visa32 lib file to the Resource Files add the visa h file to the Header Files When using the NL 488 2 library add the GPIB 32 0BJ file to the Resource Files add the windows h file to the Header Files add the Deci 32 h file to the Header Files For information on the NI 488 2 library and file requirements refer to the National Instrument website For information on the VISA library see the Agilent website or National Instrument s website NOTE To communicate with the signal generator over the LAN interface you must enable the VXI 11 SCPI service For more information refer to Configuring the DHCP LAN Agilent X Series and MXG on page
15. 0 3 0 Matched 0 No error break puts result str while 1 DER ko kk ko kk kk kk IOI ok ko ko kk kk ek ko kk de kk IOI IO IO kk ko kk ke kk ok I E E IO I IO ke kk ke IO koe M Function isQuery Description Test current SCPI command to see if it a query Return unsigned char non zero if command is a query 0 if not Cock oko kk kk II ke kk ok IO IOI I ek ko kk de kk IOI IO III IO II IOI ok I IO ko kk IOI ke kk ke I ek A IO A a f unsigned char isQuery char cmd unsigned char q 0 char query FOR IRI III IO IOI kk IO II ko kk ek koh kk ko k IO II IO IO a IO a J if the command has a in it use queryInstrument otherwise simply send the command wg Actually we must be a more specific so that wF marker value querys are treated as commands aa Example SENS FREQ CENT CALC1 MARK1 X JECRCK kckckckckckckhckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckchckchckchck kk if query strchr cmd NULL Make sure we don t have a marker value query or any command with a followed by a character This kind of command is not a query from our point of view The signal generator does the query internally and uses the result query bump past while query 136 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples
16. Downloaded Data 01011010001001100111100 Bises Ignored bit LSB Y Y oY MSB Byte 1 Byte 2 Byte 3 Hex Value 5A 26 78 ASCII Representation Z amp X The following figure shows the same downloaded data from the above example as viewed in the signal generator s bit file editor see the User s Guide for more information and with using an external hex editor program SCPI command to download the data MEM DATA BIT Sbyte 23 13Z amp x As Seen in the Signal Generator s Bit File Editor 4 000 000 000 00 c 136 00 am noD Designated number of bits FREQUENCY Bit File Editor Pos 0 Hex values Offset Binary Data Hex Data 0 T101 1010 0010 0110 0111 100 5A2678 20 Bit data As S in a Hex Edit l l S E Designated number of bits hex value 23 decimal 00 00 00 00 00 00 00 17 5a 26 78 H 10 byte file header 3 bytes of data added by signal generator In the bit editor notice that the ignored bit of the bit data is not displayed however the hex value still shows all three bytes This is because bits 1 through 7 are part of the first byte which is shown as ASCII character x in the SCPI command line The view from the hex editor program confirms that the downloaded three bytes of data remains unchanged To view a downloaded bit file with an external hex editor program FTP the file to your PC UNIX workstation For information on how to FTP a file see FTP Procedures on page 337
17. MONS Hostname f ANS1628 00001 E mDNS Service Name Ag est NS1E2A MYG USODODODO servi W WIZA VECO USDOOOOOOT CN memes 0 n9 Fama Cannacion Hosen Dynamic ONS OOF Gov Ocrr on I OFF OoN OF ZON 2 8 2 8 Microsoft is a registered trademark of Microsoft Agilent Signal Generators Programming Guide 13 Getting Started with Remote Operation Using the Web Browser Enabling the Signal Generator Web Server NOTE Javascript or Active Scripts must be enabled to use the web front panel controls 1 Turn on the Web server as shown below 14 Agilent Signal Generators Programming Guide Agilent X Series and MXG Web Server On Instrument Adjustments Display Poner On Preset Instrument Info Nore 1 of 2 ESG PSG Web Server On GPIB Address 19 Remote Language SCPI 1 0 Config LAN Services Setup Remote Language SCPI SCPI Log Helpp Getting Started with Remote Operation Using the Web Browser If necessary toggle Web Server to On LAN Services Heb Services FIP Server off License Manager erver Web Services Off SCPI Services Confirm Proceed With Confirm Change Reconfiguration Instrument Will Reboot For details on each key use the key help Refer to Getting Help Agilent X Series and MXG on page 21 and the User s Guide For additional SCPI command information refer to the SCPI Command Reference If
18. Reads the decimal sum of the set bits num int rdBuffer 1 0 Converts string data to numeric switch num Based on the decimal value case 1 printf Signal Generator Reverse Power Protection Tripped Win printf n break case 2 printf Signal Generator Power is Unleveled n printf n break default printf No Power Unleveled condition detected n printf n viClear vi Clears the signal generator Prints user information Printi s ss Sree eS ce Ss ee Se ser Sn Sesser See n printf n printf Manually set up the sig gen for an unleveled output condition n printf n printf Select AM modulation n printf Select AM Source Ext 1 and Ext Coupling AC n printf Turn On the modulation n printf Do not connect any source to the input Wn printf Check signal generator s display for the EXT1 LO annunciator n printf n printf Press Enter when ready n printf n getch Waits for keyboard user input viPrintf vi STAT QUES MOD ENAB 16 n Enables the Data Questionable Modulation Condition Register Agilent Signal Generators Programming Guide 109 Programming Examples GPIB Programming Interface Examples ff pite prti 2 3 and 4 viPrintf vi STAT QUES MOD COND n Querys the register for any set bits viScanf vi s rdBuffer Reads the decimal sum of the set bits
19. The trailing string fileName FileMode Create lengthDataLength dataLength out retCount uint fileSize UInt32 Parse Encoding ASCII GetString buf 0 int retCount Read the file block from the signal generator byte readBuf new byte TRANSFER BLOCK SIZE uint bytesRemaining fileSize while bytesRemaining 0 uint bytesToRead bytesRemaining lt TRANSFER_BLOCK_SIZE bytesRemaining TRANSFER_BLOCK_SIZE VisaInterop Read device fs Write readBuf 0 int retCount bytesRemaining retCount Done with file fs Close j readBuf bytesToRead out retCount The following method writes the contents of the specified file to the specified file in the form of a SCPI definite block 370 A newline is Agilent Signal Generators Programming Guide NOT appended to the block and END is not sent at the conclusion of the write static public void WriteFileBlock uint device string fileName Make sure that the file exists otherwise sends a null block if File Exists fileName FileStream fs new FileStream fileName FileMode Open Send the definite block header lengthDataLength dataLength string fileSize fs Length ToString string fileSizeLength fileSize Length ToString WriteDevice device fileSizeLength fileSize false Don t set END at the end of writes Visalnterop SetAttribute device VisaAttribute SendEndEnable
20. if query attempt to ignore white spc query else break j if query q 17 j return q RRR RKR RR KK RR Kk kR RE RE KER EKER EKER EKER EKER EERE RE RE RE RE RE RE RE RE RRR ERR KER ERE REKE gt Function mains L Description Read command line arguments and talk to signal generator Send query results to stdout S Return int non zero if an error occurs Cock choke kk kk ko koc IOI ko kk ko kk kk ek ko kk e kk IOI IO III IOI ko kk oko kk IO I IO ko kk II ke kk ek I IO A IO ke ke ke f int main int argc char argv SOCKET instSock char charBuf char malloc INPUT_BUF_SIZE char basename int chr char command 1024 char destination unsigned char quiet 0 unsigned char show_errs 0 int number 0 basename strrchr argv 0 if basename NULL basename else Agilent Signal Generators Programming Guide 137 Programming Examples LAN Programming Interface Examples basename argv 0 while chr getopt argc argv qune EOF switch chr case q quiet 1 break case n number 1 break case e show errs 1 break case u case usage basename exit 1 j now look for hostname and optional command only one command string input on stdin if optind argc destination argv optind strcpy command if optind argc while optind l
21. int num 0 Declares a variable for switch statements char rdBuffer 256 0 Declare a variable for response data viStatus viOpenDefaultRM amp defaultRM Initialize VISA session Open session to GPIB device at address 19 viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus If problems then prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 printf n viClear vi Clears the signal generator Prints user information printf Programming example to demonstrate reading the signal generator s Status Byte n printf n printf Manually set up the sig gen for an unleveled output condition n printf Set signal generator output amplitude to 20 dBm n printf Set frequency to maximum valueWMn printf Turn On signal generator s RF Output n printf Check signal generator s display for the UNLEVEL annunciator n printf n printf Press Enter when ready n printf n 108 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples getch Waits for keyboard user input viPrintf vi STAT QUES POW ENAB 2 n Enables the Data Questionable Power Condition Register Bits Bits 0 and 1 viPrintf vi STAT QUES POW COND n Querys the register for any set bits viScanf vi s rdBuffer
22. print sock IDN n response sock chomp response print Instrument ID response n TCP IP LAN Programming Using Matlab The examples in this section are meant to be used in one of three ways Using a PSA to directly calculate and load an Equalization filter into the MXG This process can be easily automated 1 2 3 Set up the PSA to measure the modulation Turn on the equalization filter Call loadPsaEqFilterFreq example 1 in Matlab to read out the equalization channel response over LAN via SCPI and calculate the correct equalization filter Call writeMxgFir example 4 in Matlab to write out the equalization filter over LAN via SCPI to the MXG Manual process using the VSA 89600 software to measure the channel response calculate the correction equalization filter and load that filter into the MXG oO gg fF ON ba Setup to measure the modulation Turn on the equalization filter View the equalization channel response trace either Eq Ch Freq Resp or Eq Impls Resp Save the trace as mat file with the header included Call loadVsaEqFilter example 3 in Matlab to read the file and calculate a correction filter Call writeMxgFir example 4 in Matlab to write out the equalization filter over LAN via SCPI to the MXG Takes a user created filter in Matlab either an equalization filter or a modulation filter and writes it to a FIR file in the MXG This section contains the
23. r b Open the file if stream NULL perror Cannot Open File int numread fread void waveform sizeof short points 2 stream fclose stream Close the file If on a PC swap the bytes back to Little Endian if strcmp computer PCWIN O0 pChar char amp waveform 0 Character pointer to short int data for i 0 i 2 points i buf pChar pChar pChar 1 pChar 1 buf pChar 2 Normalize De Interleave the IQ data double IwaveIn POINTS double QwaveIn POINTS for i20 i points i Iwaveln i waveform 2 i 32767 0 Owaveln i waveform 2 i 1 32767 0 return 0 Agilent Signal Generators Programming Guide 265 Creating and Downloading Waveform Files Programming Examples Creating and Storing 1 Q Data Little Endian Order On the documentation CD this programming example s name is CreateStore Data c tat This C programming example compiled using Metrowerks CodeWarrior 3 0 performs the following functions error checking data creation byte swapping and interleaving for little endian order data binary data file storing to a PC or workstation After creating the binary file you can use FTP one of the download utilities or one of the C download programming examples to download the file to the signal generator include lt iostream gt include lt fstream gt include lt math h gt include lt stdlib h
24. For additional information on FTP commands refer to the operating system s Window Help and Support Center 1 From the PC command prompt or UNIX command line change to the destination directory for the file you intend to download 2 From the PC command prompt or UNIX command line type ftp instrument name Where instrument name is the signal generator s hostname or IP address At the User prompt in the ftp window press Enter no entry is required 4 At the Password prompt in the ftp window press Enter no entry is required At the ftp prompt either put a file or get a file To put a file type put file name gt user waveform file namel where file name is the name of the file to download and file name gt is the name designator for the signal generator s user waveform directory If filenamel is unspecified ftp uses the specified file name to name file namel s If a marker file is associated with the data file use the following command to download it to the signal generator put marker file name user markers file namel where marker file name is the name of the file to download and file namel is the name designator for the file in the signal generator s user markers directory Marker files and the associated I Q waveform data have the same name For more examples of put command usage refer to Table 5 13 Table 5 13 Put Command Examples Command Local Remote
25. T O libraries See IO libraries I Q data creating advanced programming languages 242 encryption 233 interleaving big endian and little endian 245 little endian byte swapping 245 waveform data creating 219 memory locations 227 247 saving to a text file for review 245 217 waveform structure 223 iabort 80 ibloc 82 ibstop 80 ibwrt 83 iclear 82 IEEE standard 27 79 igpibllo 81 iloc 82 input values DAC 216 instrument communication 6 8 state files overview 363 SCPI commands recalling 363 386 instrument status monitoring 165 interactive IO 5 40 interface cards 27 79 GPIB 29 LAN 3 RS 232 3 USB Agilent mxg only 3 interleaving See I Q data 219 internal web server FTP procedure 338 internal storage See storage internally applied FM signals generate using VISA and C 99 IntuiLink for signal generators 257 IO Config Agilent IO libraries Suite 5 computer to instrument communication 8 VISA manual 9 IO Configure Using VISA Assistant 42 IO interface 6 8 IO libraries GPIB interface installing 27 79 10 30 interactive IO using 40 program languages overview 4 RS 232 selecting for 64 signal generator remote control 2 5 USB selecting for 72 VISA LAN troubleshooting 42 IP address LAN interface 34 setting 34 35 37 38 36 iremote 81 J JAVA 78 145 Java example 78 145 K kjkj 229 L LabView 11 LAN Auto IP configuration 37 config
26. 16 8 Query STATus QUEStionable FREQuency ENABle Response Decimal value of the sum of the bits previously enabled with the STATus QUEStionable FREQuency ENABle value command 200 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable Modulation Status Group NOTE This status group does not apply to the N5161A 81A and the N5162A 82A and returns zero when queried See Table 4 11 on page 202 for more information The Data Questionable Modulation Status Group is used to determine the specific event that set bit 7 in the Data Questionable Condition Register This group consists of the Data Questionable Modulation Condition Register the Data Questionable Modulation Transition Filters negative and positive the Data Questionable Modulation Event Register and the Data Questionable Modulation Event Enable Register This is the named status register for Modulation 1 Undermod tho rapier i Modulation 1 Overmod owever not al signal generator aal 2 Undermod models use all of Modulation 2 Overmod the shown events Modulation Uncalibrated i e some use only a subset of the Unused E4438C s status Unused registers Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Data QUEStionable MODulation Condition Register 15 14 13 12 11 100 98 7654 3 21 0 pateauesionasie Y 3 3 V Y VA3YVVYY33 m ransition Filter Data QU
27. 42 Agilent mxg 36 37 esg psg 36 menu Agilent mxg 34 35 38 Index summary Agilent mxg 19 web server 11 DHCP configuration 37 establishing a connection 249 251 hostname 34 interface 3 IO libraries 10 LXI interface protocols 33 52 manual configuration 35 Matlab 153 149 153 155 overview 33 private 38 78 118 145 147 149 153 155 using JAVA 78 145 queries using sockets 125 Sockets 118 33 Telnet 46 troubleshooting 39 verifying operation 38 VXI 11 examples using 118 interface protocols 33 perl using 147 118 sockets programming 78 145 LAN Ping Responses 40 libraries GPIB functionality verifying 30 10 IO Agilent 2 4 RS 232 64 selecting for computer 10 USB 72 list format downloading SCPI command 350 list error messages 24 listener 31 little endian byte order interleaving and byte swapping 245 loading waveforms 254 local echo telnet 49 function 82 local lockout function 81 HP Basic using 87 location user data file type binary 319 LSB 214 LSB and MSB 322 LSB MSB 299 LXI class B mxg 3 11 LXI B subsystem 52 53 54 55 56 57 58 LXI B synchronizing time 52 53 54 55 56 57 58 387 Index M manual operation 81 marker file 221 233 MATLAB 11 download utility 258 249 programming examples 284 11 Matlab example 149 153 media external flash memory sticks 73 non volatile memory Agilent mxg 315 waveform memory
28. A 1 in this bit position indicates that a query error has occurred Query errors have instrument error numbers from 499 to 400 3 Device Dependent Error A 1 in this bit position indicates that a device dependent error has occurred Device dependent errors have instrument error numbers from 399 to 300 and 1 to 32767 4 Execution Error A 1 in this bit position indicates that an execution error has occurred Execution errors have instrument error numbers from 299 to 200 5 Command Error A 1 in this bit position indicates that a command error has occurred Command errors have instrument error numbers from 199 to 100 6 User Request Key Local A 1 in this bit position indicates that the Local key has been pressed This is true even if the signal generator is in local lockout mode 7 Power On A 1 in this bit position indicates that the signal generator has been turned off and then on Query ESR Response The decimal sum of the bits set to 1 Example The decimal value 136 is returned The decimal sum 128 bit 7 8 bit 3 Standard Event Status Enable Register The Standard Event Status Enable Register lets you choose which bits in the Standard Event Status Register set the summary bit bit 5 of the Status Byte Register to 1 ESE lt data gt lt data gt is the sum of the decimal values of the bits you want to enable Example To enable bit 7 and bit 6 so that whenever either of those bits are set to 1 the
29. Creating and Downloading Waveform Files Programming Examples 282 The SCPI command has four parts Part 1 MEM DATA filename Part length of Part 3 when written to a string 2 Part 3 length of the data in bytes This is in s from above 4 Part the buffer of data Build parts 1 2 and 3 for the I data sprintf cmd MEM DATA ARBI FILE1 d d strlen s bytesToSend Send parts 1 2 and 3 iwrite id cmd strlen cmd 0 0 Send part 4 Be careful to use the correct command here In many programming languages there are two methods to send SCPI commands Method 1 stop at the first 0 in the data JE Method 2 send a fixed number of bytes ignoring 0 in the data You must find and use the correct command for Method 2 iwrite id ibuffer bytesToSend 0 0 Send a terminating carriage return iwrite id Mn 1 1 0 Identical to the section above except for the Q data sprintf cmd MEM DATA ARBQ FILE1 d d strlen s bytesToSend iwrite id cmd strlen cmd 0 0 iwrite id qbuffer bytesToSend 0 0 iwrite id An 1 1 0 printf Loaded FILE1 using the E443xB formatin The E4438C E8267C and E8267D have a newer faster format which allows 16 bits to be used However this format is not accepted in the E443xB Therefore do not use this next section for the E443xB printf Note Loading FILE2 on a E443xB
30. For binary data two s complement is a way to represent positive and negative values The most significant bit MSB determines the sign e 0 equals a positive value 01011011 91 decimal e 1 equals a negative value 10100101 91 decimal Like decimal values if you sum the binary positive and negative values you get zero The one difference with binary values is that you have a carry which is ignored The following shows how to calculate the two s complement using 16 bits The process is the same for both positive and negative values Convert the decimal value to binary 23710 01011100 10011110 Notice that 15 bits 0 14 determine the value and bit 16 MSB indicates a positive value Invert the bits 1 becomes 0 and 0 becomes 1 10100011 01100001 Add one to the inverted bits Adding one makes it a two s complement of the original binary value 10100011 01100001 00000000 00000001 10100011 01100010 The MSB of the resultant is one indicating a negative value 23710 Test the results by summing the binary positive and negative values when correct they produce zero 01011100 10011110 10100011 01100010 00000000 00000000 and Q Interleaving When you create the waveform data the I and Q data points typically reside in separate arrays or files The signal generator requires a single I Q file for waveform data playback The process of interleaving creates a single array with alternating I and Q data points
31. PROGRAM DESCRIPTION This example sets the signal generator FM source to External 2 coupling to AC deviation to 20 kHZ carrier frequency to 700 MHz and the power level to 2 5 dBm The RF state is set to on 1 8 RRR IRI IO IOI e kk OIG IOI ko k IO IOI IO II IOI IO IOI IO II IOI IO IO I IO I IO I IO I a E include lt visa h gt include StdAfx h include lt iostream gt include lt stdlib h gt include lt conio h gt void main ViSession defaultRM vi Declares variables of type ViSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications Initialize VISA session viStatus viOpenDefaultRM amp defaultRM open session to gpib device at address 19 viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus If problems then prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 printf Example program to set up the signal generator n printf for an AC coupled FM signal n printf Press any key to continue n printf n getch printf n viPrintf vi RST n Resets the signal generator viPrintf vi FM SOUR EXT2 n Sets EXT 2 source for FM viPrintf vi FM EXT2 COUP AC n Sets FM path 2 coupling to AC viPrintf vi FM DEV 20 kHz n Sets FM path 2 deviation to 20 kHz viPrintf vi FREQ
32. Ping each node along the route between your workstation and the signal generator starting with your workstation If a node doesn t respond contact your IT administrator If the signal generator still does not respond to ping you should suspect a hardware problem Check the signal generator LAN connector lights Verify the hostname is not being used with DHCP addressing Intermittent Response If you received 1 to 8 packets back there maybe a problem with the network In networks with switches and bridges the first few pings may be lost until these devices learn the location of hosts Also because the number of packets received depends on your network traffic and integrity the number might be different for your network Problems of this nature are best resolved by your IT department Using Interactive 10 Use the VISA Assistant utility available in the Agilent IO Libraries Suite to verify instrument communication over the LAN interface Refer to the section on the IO Libraries and Programming Languages on page 4 for more information The Agilent IO Libraries Suite is supported on all platforms except Windows NT If you are using Windows NT refer to the section below on using the VISA Assistant to verify LAN communication See the section on Windows NT and Agilent IO Libraries M and Earlier on page 8 for more information 40 Agilent Signal Generators Programming Guide Using IO Interfaces Using LAN
33. RADio GSM SLOTO 1 2 3 4 5 6 7 NORMal ENCRyption BIT file name RADio GSM SLOTO 1 2 3 4 5 6 7 NORMal ENCRyption BIN file name Configure the remaining signal parameters Turn the modulation format on RADio CUSTom STATe On Modulating and Activating the Carrier Use the following commands to modulate the carrier and turn on the RF output For a complete listing of SPCI commands refer to the SCPI Command Reference FREQuency FIXed 2 5GHZ POWer LEVel 10 0DBM OUTPut MODulation STATe ON OUTPut STATe ON Modifying User File Data There are two ways to modify a file after downloading it to the signal generator Use the signal generator s bit file editor This works for both bit and binary files but it converts a binary file to a bit file and adds a 10 byte file header For more information on using the bit file editor see the signal generator s User s Guide You can also access the bit editor remotely using the signal generator s web server For web server information refer to the Programming Guide Use a hex editor program on your PC or UNIX workstation as described below Modifying a Binary File with a Hex Editor l FTP the file to your PC UNIX For information on using FTP see FTP Procedures Ensure that you use binary file transfers during FTP operations Modify the file using a hex editor program 3 FTP the file to the signal generator s BIN memory catalog directory 336 Agilent Signal Generat
34. Reading data from an event register clears the content of that register Query STATus QUEStionable EVENt Data Questionable Event Enable Register The Data Questionable Event Enable Register lets you choose which bits in the Data Questionable Event Register set the summary bit bit 3 of the Status Byte Register to 1 Command STATus QUEStionable ENABle value where value is the sum of the decimal values of the bits you want to enable Example Enable bit 9 and bit 3 so that whenever either of those bits are set to 1 the Data Questionable Status summary bit of the Status Byte Register is set to 1 Send the command STAT QUES ENAB 520 512 8 Query STATus QUEStionable ENABle Response Decimal value of the sum of the bits previously enabled with the STATus QUEStionable ENABle lt value gt command 194 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable Power Status Group NOTE Some of the bits in this status group do not apply to the E4428C E8257D E8267D E8663B E8663D and the N5161A 62A 81A 82A 83A and returns zero when queried See Table 4 9 on page 196 for more information The Data Questionable Power Status Group is used to determine the specific event that set bit 3 in the Data Questionable Condition Register This group consists of the Data Questionable Power Condition Register the Data Questionable Power Transition Filters nega
35. This example uses 23000 as the multiplier resulting in approximately 70 scaling For more information on scaling see Scaling DAC Values on page 217 244 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Creating Waveform Data 2 Save the I O data to a text file to review The following lines of code export the I and Q data to a text file for validation After exporting the data open the file using Microsoft Excel or a similar spreadsheet program and verify that the I and Q data are correct Line Code Description Saving the I Q Data to a Text File 12 char ofile c temp iq txt 13 FILE outfile fopen ofile w 14 if outfile NULL perror Error opening file to write 15 for index 0 index lt numsamples index 16 17 fprintf outfile d d n idata index qdata index 18 19 fclose outfile Line Code Description Saving the I Q Data to a Text File 12 Set the absolute path of a text file to a character variable In this example iq txt is the file name and ofile is the variable name For the file path some operating systems may not use the drive prefix c in this example or may require only a single forward slash or both temp ig tat 13 Open the text file in write format 14 If the text file does not open print an error message 15 18 Create a loop that prints the array of generated I and Q data samples to the text fi
36. and enter the following code into your cpp source file visaex3 cpp performs the following functions verifies the GPIB connections and interface are functional resets the signal generator queries the instrument CW frequency power level frequency mode and RF state reads responses into the rdBuffer CW frequency power level and frequency mode turns signal generator RF state off e verifies RF state off The following program example is available on the signal generator Documentation CD ROM as visaex3 cpp f RR e ke e ke ke ke ke ke ke ko e ke ke ho kk e kc e ke kc e ke ko e ke KEK e ke he khe ke he khe ke he he e he khe e hc e he e he e hee hc e hec e he e ee he e ce e e e e e e e e e e x PROGRAM FILE NAME visaex3 cpp PROGRAM DESCRIPTION This example demonstrates the use of query commands The signal generator can be queried for conditions and instrument states These commands are of the type IDN the question mark indicates a query Agilent Signal Generators Programming Guide 93 Programming Examples GPIB Programming Interface Examples IJ 8 RR e H e e ke ke e IO IOI e kk ok ko kk II IO IO AE E kk ok ko kk E AE E E E E IOI IOI IO II E E E E E E IO E IO E IO koe E E e k E include lt visa h gt include StdAfx h include lt iostream gt include lt conio h gt include lt stdlib h gt using namespace std void main ViSession defaultRM vi Declares variables of type V
37. generator will generate four frames of data 6 Calculate the AUTOGEN_PRAM_1 file size Number of Frames Bytes per Frame 4 5000 4 x 5000 20000 bytes 7 Calculate the number of memory blocks that the AUTOGEN_PRAM_1 file will occupy Volatile memory allocates memory in blocks of 1024 bytes 20000 1024 19 5 blocks Agilent Signal Generators Programming Guide 329 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D 8 Round the memory block value up to the next highest integer value For this example the AUTOGEN_PRAM_1 file will use 20 blocks of memory for a total of 20480 bytes 9 Determine the number of memory blocks that the original files occupy in volatile memory The files do not share memory blocks so you must determine how many memory blocks each file occupies Normal TS Custom TS 57 bytes 1 block 37 bytes 1 block 1 1 2 memory blocks NOTE If the user file type is bit remember to include the 10 byte file header in the file size 10 Calculate the total volatile memory occupied by the AUTOGEN_PRAM_1 file and the user files AUTOGEN_PRAM_1 User Files 20 blocks 2 blocks 1024 20 2 22528 bytes Downloading User Files The signal generator expects bit and binary file type data to be downloaded as block data binary data in bytes The IEEE standard 488 2 1992 section 7 7 6 d
38. gt 0 printf Source RF state is now on n Jelse printf Source RF state is now off n Close the sessions printf n viClear vi viClose vi viClose defaultRM Generating an Externally Applied AC Coupled FM Signal Using VISA and C In this example the VISA library is used to generate an ac coupled FM signal at a carrier frequency of 700 MHz a power level of 2 5 dBm and a deviation of 20 kHz Before running the program Connect the output of a modulating signal source to the signal generator s EXT 2 input connector Set the modulation signal source for the desired FM characteristics Launch Microsoft Visual C 6 0 add the required files and enter the code into your cpp source file visaex5 cpp performs the following functions error checking resets the signal generator sets up the EXT 2 connector on the signal generator for FM sets up FM path 2 coupling to AC sets up FM path 2 deviation to 20 kHz sets carrier frequency to 700 MHz sets the power level to 2 5 dBm turns on frequency modulation and RF output The following program example is available on the signal generator Documentation CD ROM as visaex5 cpp J gt RR IRI IO II IO e e e He E Ae hok IO ok IOI IO ko kk ok koe kk ok II IO IO IO IO I IO I IO I IO I Ck Ree Agilent Signal Generators Programming Guide 97 Programming Examples GPIB Programming Interface Examples PROGRAM FILE NAME visaex5 cpp
39. n 1000 Points in waveform phase 102 pi n 0 n 1 dp iqWave complex cos phase sin phase Create single tone markers zeros 4 n Create markers markers 1 1 2 1 markers 2 1 4 1 markers 3 1 8 1 markers 4 1 16 1 header sampleRate 50e6 Set Sample Rate to 50 MHz Download tcpipAddress iqWave name markers header de de dp cde cde ce cde ce ce cde ce ce cde ce ce ce ce ce ce coe ce ce ce ce ce coe ce ce ce ce ce ce ce ce ce ce ce dp Range checks if nargin lt 2 292 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples error ERROR download Insufficient input parmaeters end if length iqWave lt 60 error ERROR download iqWave must contain 60 or more points end if nargin lt 3 name NO NAME end if nargin lt 4 markers zeros 4 length iqWave markers 1 4 1 end if nargin lt 5 header end if length iqWave length markers error ERROR download The length of the iqWave and the marker arrays must be the same end Process waveform and marker data iqData rms FormatWaveform iqWave mkrData FormatMarkers markers Download the Waveform wfmCmd CreateWaveformCommand name length iqWave mkrCmd CreateMarkerCommand name length markers hdrCmd CreateHeaderCommand name rms header bufSize 8192 t tcpip tcpipAddress 5025 t OutputBuffer
40. present or pending or data in the output queue has been lost Device Specific Errors 399 to 300 201 to 703 and 800 to 810 indicate that a device operation did not properly complete possibly due to an abnormal hardware or firmware condition These codes are also used for self test response errors Errors in this class set the device specific error bit bit 3 in the event status register IEEE 488 2 section 11 5 1 The lt error_message gt string for a positive error is not defined by SCPI A positive error indicates that the instrument detected an error within the GPIB system within the instrument s firmware or hardware during the transfer of block data or during calibration Execution Errors 299 to 200 indicate that an error has been detected by the instrument s execution control block Errors in this class set the execution error bit bit 4 in the event status register IEEE 488 2 section 11 5 1 In this case Either a PROGRAM DATA element following a header was evaluated by the device as outside of its legal input range or is otherwise inconsistent with the device s capabilities or a valid program message could not be properly executed due to some device condition Execution errors are reported after rounding and expression evaluation operations are completed Rounding a numeric data element for example is not reported as an execution error Command Errors 199 to 100 indicate that the instrument
41. printf Signal Generator ID Print header for ID printf buffer Print the ID string printf n Print carriage return Flush the read buffer Set sig gen power to 5dbm status viWrite instr ViBuf POW AMPL 5dbm n 15 amp retCount Query the power level status viWrite instr ViBuf POW n 5 amp retCount Read the power level status viRead instr ViBuf buffer MAX COUNT amp retCount buffer retCount 0 Indicate the end of the string printf Power level Print header to the screen printf buffer Print the queried power level printf n status viClose instr Close down the system status viClose defaultRM return 0 7 Sockets LAN Programming and C The program listing shown in Queries for Lan Using Sockets on page 125 consists of two files lanio c and getopt c The lanio c file has two main functions int main and an int mainl The int mainQ function allows communication with the signal generator interactively from the command line The program reads the signal generator s hostname from the command line followed by the SCPI command It then opens a socket to the signal generator using port 5025 and sends the command If the command appears to be a query the program queries the signal generator for a response and prints the response The int mainl after renaming to int main will output a sequence of commands to the signal
42. psg See Agilent psg Pulse RF Blank esg setting 312 n5161a 62a 81a 82a 83a setting 312 Index psg setting 312 Q queries HP Basic using 90 queue error 24 ramp sweep using pass thru commands 115 real time data files generating large 379 TDMA user files 339 rear panel connector Mini B 73 recall states 363 register system overview 165 data questionable See also data questionable registers registers See also data questionable registers See also status registers baseband operation condition 190 event 191 condition description 183 esg overall system 170 171 mxg overall system 168 169 psg overall system 172 173 standard event bits 185 status 185 condition 187 event 188 182 183 remote annunciator 157 remote function HP Basic 81 setting Agilent mxg 20 esg 21 psg 21 21 remote interface programming 2 RS 232 63 USB 71 remote programming hardware layers 2 software layers 2 RS 232 address 69 157 baud rate 65 389 Index cable 66 65 echo setting 65 format parameters 68 HP Basic using queries 70 160 interface 65 3 IO libraries 64 overview 63 program examples 68 157 70 162 69 158 settings baud rate 69 157 verifying operation 67 S samples even number 223 waveform 223 save and recall 363 scaling I Q data 217 SCPI error queue 24 file transfer methods 234 GPIB overview 27 programming languages common 11 regis
43. register 185 standard operation condition register 187 event enable register 188 transition filters 188 state files 363 states saving and recalling using VISA and C 104 status byte esg overall register system 170 171 group 181 mxg overall register system 168 169 psg overall register system 172 173 register 182 status groups baseband operation 189 191 data questionable 390 BERT 207 calibration 204 frequency 198 modulation 201 overview 191 power 195 registers 183 standard event 184 181 status registers See also registers accessing information 175 bit values 174 esg overall system 171 hierarchy 165 in status groups 183 monitoring 175 168 169 overall system 170 programming 165 SCPI commands 177 165 setting and querying 177 165 using 174 STB command 177 storage internal non volatile memory Agilent mxg 315 system requirements 76 T talker 31 TCP IP 11 TCPIP 6 8 118 TDMA data FIR filter 360 user file data memory usage 327 Telnet DOS command prompt 46 example 50 PC 47 UNIX 49 50 using 46 Windows 2000 48 timeslots integer number of multiple timeslots requirement 379 Toolkit Signal Studio 212 257 transition filters baseband operation 190 data questionable BERT 208 modulation 202 negative and positive 194 power 196 Index 205 199 183 negative transition description 183 positive transition description 183 standard o
44. t rdBuffer Reads the response into rdBuffer Prints the source freq mode printf Source frequency mode is s n rdBuffer printf Press any key to continue n printf n Prints new line character to the display getch viPrintf vi OUTP OFF n Turns source RF state off viPrintf vi OUTP n Querys the signal generator s RF state viScanf vi 1i amp num Reads the response integer value Prints the on off RF state if num gt 0 printf Source RF state is on n Jelset printf Source RF state is off n Close the sessions viClose vi viClose defaultRM Generating a CW Signal Using VISA and C This example uses VISA library functions to control the signal generator The signal generator is set for a CW frequency of 500 kHz and a power level of 2 3 dBm Launch Microsoft Visual C 6 0 add the required files and enter the code into your cpp source file visaex4 cpp performs the following functions e verifies the GPIB connections and interface are functional resets the signal generator queries the instrument CW frequency power level frequency mode and RF state reads responses into the rdBuffer CW frequency power level and frequency mode turns signal generator RF state off e verifies RF state off The following program example is available on the signal generator Documentation CD ROM as visaex4 cpp 1 BRR RRR ke kk kk ko IO ek
45. 01 Ol Ol Ol Dl 0l 01 01 01 Ol Ol 0L 0l Q1 Marker 1 on 00000020 01 01 Ol Ol Dl Ol Ol Ol Ol Ol Ol Ol Ol Ol Ol Ol 00000030 01 05 05 05 05 05 05 05 05 05 05 O5 05 05 05 o5 305 Markers 1 and 3 on 00000040 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 Q4 Marker3on 00000050 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 00000060 05 05 05 05 04 04 04 04 04 04 04 04 04 04 04 04 00000070 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 00000080 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 00000090 04 04 04 04 04 04 00 00 00 00 00 00 00 00 00 00 000000a0 00 00 00 00 00 00 00 OO OO 00 OO 00 00 00 00 00 000000b0 00 00 00 00 00 00 O0 OO OO 00 OO 00 00 00 00 00 000000c0 00 00 00 oo oo oo oo oo S 00 No active markers If you create your own marker file its name must be the same as the waveform file If you download I Q data without a marker file the signal generator automatically creates a marker file with all points set to zero For more information on markers see the User s Guide NOTE Downloading marker data using a file name that currently resides on the signal generator overwrites the existing marker file without affecting the I Q waveform file However downloading just the I Q data with the same file name as an existing I Q file also overwrites the existing marker file setting all bits to zero 222 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Waveform Phase Continuity 1 0 Fil
46. 10 RE SAVE ARB IQ file 20 Num points 200 30 ALLOCATE INTEGER Iwfm data 1 Num points Qwfm data 1 Num points 40 DEG 50 FOR I 1 TO Num points 60 Iwfm data I INT 8191 SIN I 360 Num_points 8192 70 Qwfm_data I INT 8191 COS I 360 Num_points 8192 80 NEXT I 90 PRINT Data Generated 100 Nbytes 2 Num_points 110 ASSIGN Esg TO 719 FORMAT ON 120 ASSIGN Esgb TO 719 FORMAT OFF 130 Nbytes VALS Nbytes 140 Ndigits LEN Nbytes 150 Ndigits VAL Ndigits 160 OUTPUT Esg USING K MMEM DATA ARBI file name 1 d 170 OUTPUT Esg USING K Ndigits 180 OUTPUT Esg USING K Nbytes 190 OUTPUT GEsgb Iwfm data 200 OUTPUT Esg END 210 OUTPUT Esg USING K MMEM DATA ARBQ file_name_1 220 OUTPUT Esg USING K Ndigits 230 OUTPUT Esg USING K Nbytes 240 OUTPUT GEsgb Qwfm data 250 OUTPUT Esg END 260 ASSIGN Esg TO 270 ASSIGN Esgb TO 280 PRINT 290 PRINT END 300 END Program Comments 10 Program file name 20 Sets the number of points in the waveform 30 Defines arrays for I and Q waveform points Sets them to be integer arrays 40 Sets HP BASIC to use degrees for cosine and sine functions 50 Sets up loop to calculate waveform points 60 Calculates I waveform points 70 Calculates Q waveform points 310 Agilent Signal Generators Programming Guide Program Comments Continued Creating and Downloading Wa
47. 2 1992 See the IEEE website http www ieee org for details on these standards The following sections contain information for installing a GPIB interface card or NI GPIB interface card for your PC or UNIX based system e Installing the GPIB Interface on page 27 e Set Up the GPIB Interface on page 29 Verify GPIB Functionality on page 30 Installing the GPIB Interface NOTE You can also connect GPIB instruments to a PC USB port using the Agilent 82357A USB GPIB Interface Converter which eliminates the need for a GPIB card For more information refer to the table on page 28 or go to http www agilent com find gpib A GPIB interface card can be installed in a computer Two common GPIB interface cards are the Agilent GPIB interface card and the National Instruments NI PCI GPIB card Follow the interface card instructions for installing and configuring the card The following table provide lists on some of the available interface cards Also see the Agilent website http www agilent com for details on GPIB interface cards Agilent Signal Generators Programming Guide 2 Using 10 Interfaces Using GPIB Interface Operating IO Library Languages Backplane Max IO Buffering Type System BUS kB sec Agilent USB GPIB Interface Converter for PC Based Systems Agilent 82357A Windows VISA SICL C C Visual USB 2 0 850 Built in Converter 98 SE ME Basic Agi
48. 200 Num BINAND Stat 7 Gets the AND value 210 CONTROL 9 4 Num Sets parity to NONE 220 OUTPUT 9 RST Outputs reset to the sig gen Interface Check Using VISA and C This portion of the example program Interface Check Using VISA and C on page 69 uses VISA library functions to communicate with the signal generator The program verifies that the RS 232 connections and interface are functional In this example the COM2 port is used The serial port is referred to in the VISA library as ASRLI or ASRL2 depending on the computer serial port you are using The following program example is available on the signal generator Documentation CD ROM as rs232exl cpp For the full text of this program refer to Interface Check Using VISA and C on page 158 or to the signal generator s documentation CD ROM int baud 9600 Set baud rate to 9600 ViSession defaultRM vi Declares a variable of type ViSession for instrument communication on COM 2 port ViStatus viStatus 0 Opens session to RS 232 device at serial port 2 viStatus viOpenDefaultRM amp defaultRM viStatus viOpen defaultRM ASRL2 INSTR VI NULL VI NULL amp vi viStatus viEnableEvent vi VI EVENT IO COMPLETION VI QUEUE VI NULL viClear vi Sends device clear command Set attributes for the session viSetAttribute vi VI ATTR ASRL BAUD baud viSetAttribute vi VI ATTR ASRL DATA BITS 8 Agilent Signal Generators Programming Guide 69 Using IO
49. 226 internal non volatile memory Agilent mxg 315 waveform memory 226 USB non volatile memory Agilent mxg 315 memory See also media allocation 228 317 checking available 319 defined 226 315 location user data file type available memory checking 319 bit 319 FIR 319 flatness 319 instrument state 319 PRAM 319 225 315 non volatile NVWFM 233 signal generator maximum 319 230 318 volatile WFM1 233 315 memory usage user file data custom 327 TDMA 327 Microsoft NET Framework overview 364 Mini B 5 pin Rear panel connector 73 MSB 214 MSB and LSB 322 MS DOS Command Prompt 39 46 multiple of 8 bits requirement user file data 379 multiple timeslots integer number of timeslots 379 mxg LXI class B 3 11 See Agilent mxg MXG ATE web enabled accessing 13 n5161a 62a 81a 82a 83a Pulse RF Blank configuring 312 National Instruments NI 488 2 31 80 VISA 10 31 64 72 80 negative transition filter description 183 NI libraries SICL GPIB I O libraries selecting 10 NI 488 2 EnableRemote 81 functions 10 GPIB I O libraries selecting 10 iblcr 82 84 80 83 LAN I O libraries selecting 10 queries using C 91 RS 232 I O libraries selecting 64 SetRWLS 81 USB I O libraries selecting 72 VISA 10 64 non volatile memory available SCPI query 320 external media Agilent mxg 315 internal media Agilent mxg 315 memory allocation 318 Agilent mxg 229 317 esg 230 p
50. 361 custom modulation 361 TDMA format 360 W CDMA modulation 361 carrier activating 361 data limitations 359 firmware loading older versions caution 1 firmware status monitoring 175 framed data usage volatile memory PRAM 328 front panel USB connector Type A 73 flash memory sticks 73 media 73 USB media 73 FTP commands for downloading and extracting files 357 downloading and extracting files commands 237 238 internet explorer using 338 methods 234 procedures for downloading files 239 337 using 50 web server procedure 241 338 G Getting Started Wizard 30 global settings Agilent mxg 21 312 esg 22 312 psg 22 312 GPIB 8757d addresses 116 address 29 118 Agilent mxg setting address 29 configuration 29 31 esg setting address 30 interface 3 29 27 79 IO libraries 10 listener 31 overview 27 79 program examples 31 80 86 93 SCPI commands 31 talker 31 30 using VISA and C 86 verifying operation 30 GPIB address psg setting address 30 hardware layers remote programming 2 status monitoring 175 help mode setting Agilent mxg 21 esg 22 psg 22 hex editor binary file modifying 336 337 hexadecimal data 299 hostname 34 118 hostname setting Agilent mxg 36 34 DHCP LAN esg 38 37 esg psg 36 35 HP BASIC 11 HP Basic T O library 64 local lockout 87 programming examples 304 queries 90 RS 232 control 64 queries 70 160 HyperTerminal 67
51. 37 and Configuring the VXI 11 for LAN ESG PSG on page 35 76 Agilent Signal Generators Programming Guide Programming Examples Using the Programming Interface Examples C C Examples Interface Check for GPIB Using VISA and C on page 86 Queries for RS 232 Using VISA and C on page 162 Local Lockout Using NI 488 2 and C on page 88 Queries Using NI 488 2 and Visual C on page 91 Queries for GPIB Using VISA and C on page 93 Generating a CW Signal Using VISA and C on page 95 Generating an Externally Applied AC Coupled FM Signal Using VISA and C on page 97 Generating an Internal FM Signal Using VISA and C on page 99 Generating a Step Swept Signal Using VISA and C on page 101 Reading the Data Questionable Status Register Using VISA and C on page 107 Reading the Service Request Interrupt SRQ Using VISA and C on page 111 e VXI 11 Programming Using SICL and C on page 119 e VXI 11 Programming Using VISA and C on page 120 e Sockets LAN Programming and C on page 122 e Interface Check Using VISA and C on page 158 Queries for RS 232 Using VISA and C on page 162 Running C Examples To run the example program State Files cs on page 364 you must have the NET framework installed on your computer You must also have the Agilent IO Libraries installed on your computer The NET framework can be downloaded from the Microsoft website For m
52. 6 7 8 Unused These bits are always set to 0 9d DCFM DC4 M Null in Progress A 1 in this bit position indicates that the signal generator is currently performing a DCFM DCQOM zero calibration 10 Baseband is Busy A 1 in this bit position indicates that the baseband generator is communicating or processing This is a summary bit See the Baseband Operation Status Group on page 189 for more information 119 Sweep Calculating A 1 in this bit position indicates that the signal generator is currently doing the necessary pre sweep calculations 12b BERT Synchronizing A 1 in this bit position is set while the BERT is synchronizing to BCH then TCH and then to PRBS 13 14 Unused These bits are always set to 0 15 Always 0 a In the N5161A 81A E4428C E8257D and E8663B this bit is always set to 0 b Always set to 0 if Option UN7 not present E4438C only c Option 300 is only available on the E4438C d This bit is always set to 0 e In the N5161A 81A and N5162A 824 this bit is always set to 0 Query Response Example STATus OPERation CONDition The decimal sum of the bits set to 1 The decimal value 520 is returned The decimal sum 512 bit 9 8 bit 3 Agilent Signal Generators Programming Guide 187 Programming the Status Register System Status Groups Standard Operation Transition Filters negative and positive The Standard Operation Transition Filters specify which types of bit s
53. 6 KHz deviation of 14 3 KHz Bessel null of dev rate 2 404 to the Agilent MXG PSG vector signal generator nchirp m This programming example calculates and downloads an arbitrary waveform file that simulates a simple compressed pulse RADAR signal using non linear FM chirp to the PSG vector signal generator pulse m This programming example calculates and downloads an arbitrary waveform file that simulates a simple pulse signal to the PSG vector signal generator pulsedroop m This programming example calculates and downloads an arbitrary waveform file that simulates a simple pulse signal with pulse droop to the PSG vector signal generator Downloading a Waveform Markers and Setting the Waveform Header NOTE This example works on either a 32bit or 64bit system that is connected over the LAN So the Waveform Download Assistant which only works on 32bit systems is not required to use this program Additional documentation is available on this program through Matlab by adding your PC s path to the Matlab s path and then from the Matlab command line type help download This is example is used to download a waveform to the instrument On the documentation CD this programming example s name is Download m This MATLAB programming example performs the following functions downloads a waveform downloads the waveform s marker information downloads the waveform s header information function Download tcpipAdd
54. 700 MHz n Sets carrier frequency to 700 MHz 98 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples viPrintf vi POW AMPL 2 5 dBm n Sets the power level to 2 5 dBm viPrintf vi FM STAT ON n Turns on frequency modulation viPrintf vi OUTP STAT ON n Turns on RF output Print user information printf Power level 2 5 dBm n printf FM state on n printf RF output on n printf Carrier Frequency 700 MHZ n printf Deviation 20 kHZ n printf EXT2 and AC coupling are selected Wn printf n Prints a carrage return Close the sessions viClose vi viClose defaultRM Generating an Internal FM Signal Using VISA and C In this example the VISA library is used to generate an internal FM signal at a carrier frequency of 900 MHz and a power level of 15 dBm The FM rate will be 5 kHz and the peak deviation will be 100 kHz Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file visaex6 cpp performs the following functions error checking resets the signal generator sets up the signal generator for FM path 2 and internal FM rate of 5 kHz sets up FM path 2 deviation to 100 kHz sets carrier frequency to 900 MHz sets the power level to 15 dBm turns on frequency modulation and RF output The following program example is available on the signal generator Docum
55. A num2str length B wfmCmd MEM DATA UNPR WFM1 file name A B end function mkrCmd CreateMarkerCommand file name points B num2str points Bytes in marker file A num2str length B mkrCmd MEM DATA UNPR MKR1 file name A B end Playing Downloaded Waveforms NOTE This example works on either a 32bit or 64bit system that is connected over the LAN So the Waveform Download Assistant which only works on 32bit systems is not required to use this program Additional documentation is available on this program through Matlab by adding your PC s path to the Matlab s path and then from the Matlab command line type help PlayWaveform This is a simple example to play a waveform that was downloaded to the instrument This example can be easily modified to send additional SCPI commands On the documentation CD this programming example s name is PlayWaveform m This MATLAB programming example performs the following functions plays a waveform that has been downloaded function PlayWaveform tcpipAddress name Agilent Signal Generators Programming Guide 297 Creating and Downloading Waveform Files Programming Examples PlayWaveform tcpipAddress name Copyright 2009 Agilent Technologies Inc E Play the waveform in the Signal Generator E INPUT PARAMETERS amp tcpipAddress 141 121 148 188 Whatever works for your signal Generator i name Waveform nam
56. Agilent Signal Generators Programming Guide Programming Examples Using GPIB Running MATLAB Examples For information regarding programming examples and files required to create and play waveform files refer to Chapter 5 NOTE To communicate with the signal generator over the LAN interface you must enable the VXI 11 SCPI service For more information refer to Configuring the VXI 11 for LAN Agilent X Series and MXG on page 34 and Configuring the VXI 11 for LAN ESG PSG on page 35 Running Perl Examples The Perl example Sockets LAN Programming Using Perl on page 147 uses PERL script to control the signal generator over the sockets LAN interface Using GPIB GPIB enables instruments to be connected together and controlled by a computer GPIB and its associated interface operations are defined in the ANSI IEEE Standard 488 1 1987 and ANSI IEEE Standard 488 2 1992 See the IEEE website http www ieee org for details on these standards The following sections contain information for installing a GPIB interface card or NI GPIB interface card for your PC or UNIX based system Installing the GPIB Interface Card on page 79 For more information on setting up a GPIB interface card or NI GPIB interface card refer to e Set Up the GPIB Interface on page 29 Verify GPIB Functionality on page 30 NOTE You can also connect GPIB instruments to a PC USB port using the Agilent 82357A USB GPIB In
57. Baseband 1 Communicating lo Data Questionable Status Group 3 lo Data Questionable Status Group 5 lo Data Questionable Status Group 7 lo Data Questionable Status Group 8 o Data Questionable Status Group 12 o Standard Operation Status Group 10 Data Quest BERT Status Group Option UN7 amp 300 only No Clock No Data Change PRBS SyncLoss Unused Unused Unused Unused Unused Unused Unused Unused Downconv Demod Out of Lock Demod DSP Ampl Out of Range Sync to BCH TCH PDCH Waiting for TCH PDCH Always Zero 0 Trans Filter Trans Filter Event Register Event Enable Reg Condition Register Baseband Operation Status Group Option 001 601 and 002 602 Baseband 1 Busy Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Trans Filter Event Register Event Enable Reg Condition Register Trans Filter Agilent Signal Generators Programming Guide Programming the Status Register System Overview Figure 4 4 E4428C 38C Overall Status Byte Register System 2 of 2 Status Byte Register From Data Questionable Power Status Group Data Questionable Status Summary Bit From Data Quest Frequency Status Group Data Questionable Status Group From Data Quest Modulation Status Group Unused Req Serv Sine Bit RQS 6 tt Unused Std Operation
58. Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 viPrintf vi RST n Reset the signal generator viPrintf vi FREQ 500 kHz n Set the source CW frequency for 500 kHz viPrintf vi FREQ CW n Query the CW frequency viScanf vi t rdBuffer Read signal generator response printf Source CW frequency is s n rdBuffer Print the frequency viPrintf vi POW AMPL 2 3 dBm n Set the power level to 2 3 dBm viPrintf vi POW AMPL n Query the power level viScanf vi t rdBuffer Read the response into rdBuffer printf Source power dBm is s n rdBuffer Print the power level viPrintf vi OUTP STAT ON n Turn source RF state on viPrintf vi OUTP n Query the signal generator s RF state viScanf vi 1i amp num Read the response integer value Print the on off RF state if num gt 0 96 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples printf Source RF state is on n Jelse printf Source RF state is off n printf n printf Verify RF state then press continue n printf n getch viClear vi viPrintf vi OUTP STAT OFF n Turn source RF state off viPrintf vi OUTP n Query the signal generator s RF state viScanf vi 1i amp num Read the response Print the on off RF state if num
59. FREQ MODE LIST 7 Sets the MXG to expect a list of powers Send the following SCPI command POW MODE LIST 58 Agilent Signal Generators Programming Guide 10 11 12 13 14 15 16 Using 10 Interfaces Using LAN Sets the MXG how the lists will be entered Send the following SCPI command LIST TYPE LIST An arbitrary list will be used instead of range and step size arguments Send the MXG a list of frequencies Send the following SCPI command LIST FREO 100MHz 200MHz 300MHz 400MHz 500MHz The MXG will put out signals at these frequencies and in this order Send the MXG a list of powers Send the following SCPI command LIST POW OdBm 1dBm 2dBm 3dBm 4dBm The MXG will put out signals at these powers and in this order Turn off MXG signal modulation Send the following SCPI command OUTP MOD OFF Turn MXG signal output on Send the following SCPI command OUTP ON Configure the MXG s LXI Output LAN Event Send the following SCPI commands LXI EVENt OUTPut LAN DRIVe LANO NORMal LXI EVENt OUTPut LAN SLOPe LANO POS LXI EVENt OUTPut LAN SOURce LANO Waiting For Trigger Together these commands will cause the MXG to send a LANO peer to peer message every time the Waiting For Trigger instrument event changes state Set the MXG s trigger source Send the following SCPI command LIST TRIG SOUR LAN Enable the MXG
60. File The marker file uses one byte per I Q waveform point to set the state of the four markers either on 1 or off 0 for each I Q point When a marker is active on it provides an output trigger signal to the rear panel EVENT 1 connector Marker 1 only or and the AUX IO event 2 connector pin Markers 1 2 3 or 4 that corresponds to the active marker number For more information on active markers and their output trigger signal location refer to your signal generator s User s Guide Because markers are set at each waveform point the marker file contains the same number of bytes as there are waveform points For example for 200 waveform points the marker file contains 200 bytes Although a marker point is one byte the signal generator uses only bits 0 3 to configure the markers bits 4 7 are reserved and set to zero The following example shows a marker byte Agilent Signal Generators Programming Guide 221 Creating and Downloading Waveform Files Waveform Structure 4 3 2 1 Marker Number Position Marker Byte 0000 1011 Reserved Example of Setting a Marker Byte Binary 0000 0101 Hex 05 Sets markers 1 and 3 on for a waveform point The following example shows a marker binary file all values in hex for a waveform with 200 points Notice the first marker point Of shows all four markers on for only the first waveform point 00000000 Of Ol Ol Ol O1 Dl Ol Ol Ol Ol Ol Dl Ol Ol Ol Ol Of All markers on 00000010 01 01 01
61. Interfaces RS 232 Programming Interface Examples Queries Using HP Basic and RS 232 This portion of the example program Queries Using HP Basic and RS 232 on page 70 example program demonstrates signal generator query commands over RS 232 Query commands are of the type IDN and are identified by the question mark that follows the mnemonic Start HP Basic type in the following commands and then RUN the program The following program example is available on the signal generator Documentation CD ROM as rs232ex2 txt For the full text of this program refer to Queries Using HP Basic and RS 232 on page 160 or to the signal generators documentation CD ROM 190 OUTPUT 9 IDN Querys the sig gen ID 200 ENTER 9 Str Reads the ID 210 WAIT 2 Waits 2 seconds 220 PRINT ID Str Prints ID to the screen 230 OUTPUT 9 POW AMPL 5 dbm Sets the the power level to 5 dbm 240 OUTPUT 9 POW Querys the power level of the sig gen Queries for RS 232 Using VISA and C This portion of the example program Queries for RS 232 Using VISA and C on page 70 uses VISA library functions to communicate with the signal generator The program verifies that the RS 232 connections and interface are functional The following program example is available on the signal generator Documentation CD ROM as rs232ex2 cpp For the full text of this program refer to Queries for RS 232 Using VISA and C on page 162 or to the signal generato
62. LAN can be described as an internet address that combines Internet Protocol IP with a device port number and represents a single connection between two pieces of software The socket can be accessed using code libraries packaged with the computer operating system Two common versions of socket libraries are the Berkeley Sockets Library for UNIX systems and Winsock for Microsoft operating systems Your signal generator implements a sockets Applications Programming Interface APT that is compatible with Berkeley socket for UNIX systems and Winsock for Microsoft systems The signal generator is also compatible with other standard sockets APIs The signal generator can be controlled using SCPI commands that are output to a socket connection established in your program Agilent Signal Generators Programming Guide 45 Using IO Interfaces Using LAN Before you can use sockets LAN you must select the signal generator s sockets port number to use Standard mode Available on port 5025 Use this port for simple programming TELNET mode The telnet SCPI service is available on port 5023 NOTE For backward compatibility on the E8663B ESG and PSG the signal generator also accepts references to the Telnet SCPI service at port 7777 and sockets SCPI service at port 7778 Ports 7777 and 7778 are disabled on the Agilent MXG For the MXG beginning with firmware versions A 01 51 and greater the default telnet port is 5024 Telnet port 5023 is s
63. LAN interface hardware that are required to remotely program the signal generator through LAN to a LAN based computer and combining those choices with one of several possible LAN interface protocols e Setting Up the LAN Interface on page 34 e Verifying LAN Functionality on page 38 Agilent Signal Generators Programming Guide 33 Using IO Interfaces Using LAN Setting Up the LAN Interface For LAN operation the signal generator must be connected to the LAN and an IP address must be assigned to the signal generator either manually or by using DHCP client service Your system administrator can tell you which method to use Most modern LAN networks use DHCP NOTE Verify that the signal generator is connected to the LAN using a 100Base T LAN or 10Base T LAN cable Configuring the VXI 11 for LAN Agilent X Series and MXG eruices SCPI Services mm a am Confirm Change Utility gt 10 Config FIP Server Sockets SCPI C Instrument off EX off Will Reboot e VXI 11 SCPI OFF Wu LAN Setups LAN Services etul Remote Language QNI LD e 0 cet Hi D Ku on Proceed With Reconfiguration NOTE To communicate with the signal generator over the LAN you must enable the VXI 11 SCPI service Select VXI 11 until On is highlighted Default condition is On For optimum performance use a 100Base T LAN cable to connect the signal generator to the LAN For detai
64. MXG 02 RRR RRR RR ertas ees 71 Selecting IO Libraries for USB 44e kee we ret kaper eek dae AREER SEE wee RHO TA Setting Up the USB Interface 449 o OX RA dE dec T2 Programming Examples Using the Programming Interface Examples celer s 75 Programming Examples Development Environment llle 76 Runing De Progra S aede 9 Rew b dedo qe dep ERED EG DES OR SSE Apex doped 76 Running CH DxaeniDle idg esc de 2 bG280 4 408 doro m Rx E Ge EG OPE RR OR Re CER A Ti R nning Base Pxamples 534 co6446 94 84 SP REP RRPS EEE ES ERS bn b EWR TT R nming Java Examples sa 6 ook 6 ek eA Re Ree CRURA EUR E RE RA de Ee do ol 78 Running MATLAB Examples lt 445 lt 45446456 55446589 PEE R450 EF X NOR S55 HGR SEN 79 Running Perl Examples uu voa op ce oak RR ee Ron opo aga ened eed age eee ee eee amp 79 Usna GRE o zou d ages due wvtueqd m due ed dqadued qe eed edd e ood eee tad 79 Installing the GPIB Interface Card 4 24 046454 Seb SE ASEEER ASR EERE SS AR SS 79 GPIB Programming Interlace Examples 4443849 4469444440484 0R REOR REDO RDO REED 80 Before Using ihe GPIB Examples 2444648545 GO OX X 9X 9 3 9 o RO HES ESS 80 GPIB Function Statements Command Messages aaa 80 Interface Check using HP Basic and GPIB lll celle eee 84 Interface Check Using NI 4882 and C cle eee 85 Interface Check for GPIB Using VISA and C 86 Local Lockout Using HP Basic and GPIB wi uses a
65. Notes Results Incorrect put lt filename wfm gt user waveform lt filenamel wfm gt Produces two separate and put lt filename mkr gt user marker lt filenamel mkr gt incompatible files 240 Agilent Signal Generators Programming Guide Table 5 13 Put Command Examples Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data put lt filename mkr gt user marker lt filename1 gt Command Local Remote Notes Results Correct put lt filename wfm gt user waveform filenamel Creates a waveform file and a compatible marker file To get a file type get user waveform file namel1 file name where file name gt is the file to download from the signal generator s user waveform directory and file name is the name designator for the local PC UNIX e If a marker file is associated with the data file use the following command to download it to the local PC UNIX directory get user markers file namel marker file name where marker file namel is the name of the marker file to download from the signal generator s user markers directory and marker file name is the name of the file to be downloaded to the local PC UNIX For more examples of get command usage refer to Table 5 14 Table 5 14 Get Command Examples Command Local Remote Notes Results Incorrect get user waveform file fil
66. On Preset LAN Services Setup Memory CatalooP SCPI commands SYSTem COMMunicate SERial ECHO ON OFF SYSTem COMMunicate SERial ECHO Instrument Info Help Mode For details on each key use the key help described in User s Guide For additional SCPI command information refer to the SCPI Command Reference 3 Connect an RS 232 cable from the computer s serial connector to the ESG signal generator s RS 232 connector or the PSG s AUXILIARY INTERFACE connector Refer to Table 2 2 for RS 232 cable information Table 2 2 RS 232 Serial Interface Cable Quantity Description Agilent Part Number 1 Serial RS 232 cable 9 pin male to 9 pin female 8120 6188 NOTE Any 9 pin male to 9 pin female straight through cable that directly wires pins 2 3 5 7 and 8 may be used 66 Agilent Signal Generators Programming Guide Using 10 Interfaces Using RS 232 ESG and PSG Only Verifying RS 232 Functionality You can use the HyperTerminal program available on your computer to verify the RS 232 interface functionality To run the HyperTerminal program connect the RS 232 cable between the computer and the signal generator and perform the following steps 1 On the PC click Start gt Programs gt Accessories gt Communications gt HyperTerminal 2 Select HyperTerminal 3 Enter a name for the session in the text box and select an icon 4 Select COM1 COM2 can be used if COM1 is
67. Only Reads the value of register 4 Gets the AND value Sets the parity to NONE Querys the sig gen ID Reads the ID Waits 2 seconds Prints ID to the screen Sets the the power level to 5 dbm Querys the power level of the sig gen Reads the queried value Prints the power level to the screen End the program 161 Programming Examples RS 232 Programming Interface Examples ESG PSG Only Queries for RS 232 Using VISA and C This example uses VISA library functions to communicate with the signal generator The program verifies that the RS 232 connections and interface are functional Launch Microsoft Visual C add the required files and enter the following code into your cpp source file rs232ex2 cpp performs the following functions error checking reads the signal generator response flushes the read buffer queries the signal generator for power reads the signal generator power The following program example is available on the signal generator Documentation CD ROM as rs232ex2 cpp J CECKCkCk kk H e kk kk IOI ok ko ko kk kk ko kk kk ke kk IOI IO IO II II IOI ok koe ko IO ck kk kk II IO I IO I IO I IO I Ke PROGRAM NAME rs232ex2 cpp PROGRAM DESCRIPTION This code example uses the RS 232 serial interface to control the signal generator Connect the computer to the signal generator using the RS 232 serial cable and enter the following code into the project cpp source file
68. RII IO ok ko ke kk IO IO II IOI IO IO IOI IO II IOI IO ko Kk II IOI IO III IO IO I IO I IO I IO I kk de include stdafx h include lt sicl h gt include lt stdlib h gt include lt stdio h gt int main int argc char argv INST id Device session id int opcResponse Variable for response flag char instrumentName xxxxx Put your instrument s hostname here char instNameBuf 256 Variable to hold instrument name char buf 256 Variable for id string ionerror I ERROR EXIT Register SICL error handler Agilent Signal Generators Programming Guide 119 Programming Examples LAN Programming Interface Examples Open SICL instrument handle using VXI 11 protocol sprintf instNameBuf lan s instO0 instrumentName id iopen instNameBuf Open instrument session itimeout id 1000 Set 1 second timeout for operations printf Setting frequency to 1 Ghz n iprintf id freq 1 GHz n Set frequency to 1 GHz printf Waiting for source to settle n iprintf id opc n Query for operation complete iscanf id d amp opcResponse Operation complete flag if opcResponse 1 If operation fails prompt user printf Bad response to OPC n iclose id exit 1 iprintf id FREQ n Query the frequency iscanf id t amp buf Read the signal generator frequency printf n Print the frequency to the display printf Frequency of signal gener
69. Register The Data Questionable Calibration Event Enable Register lets you choose which bits in the Data Questionable Calibration Event Register set the summary bit bit 8 of the Data Questionable Condition register to 1 Command STATus QUEStionable CALibration ENABle value where value is the sum of the decimal values of the bits you want to enable Example Enable bit 1 and bit 0 so that whenever either of those bits are set to 1 the Data Questionable Calibration summary bit of the Data Questionable Condition Register is set to 1 Send the command STAT QUES CAL ENAB 520 2 1 Query STATus QUEStionable CALibration ENABle Response Decimal value of the sum of the bits previously enabled with the STATus QUEStionable CALibration ENABle value command 206 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable BERT Status Group NOTE This status group applies only to the E4438C with Option UN7 Refer to Table 4 13 on page 208 for more information The Data Questionable BERT Status Group is used to determine the specific event that set bit 12 in the Data Questionable Condition Register The Data Questionable Status group consists of the Data Questionable BERT Condition Register the Data Questionable BERT Transition Filters negative and positive the Data Questionable BERT Event Register and the Data Questionable BERT Event Enable Register No C
70. Request n printf n printf The signal generator will be set up for a step sweep mode operation An printf An will be printed while the instrument is sweeping The end of Nn printf sweep will be indicated by an SRQ on the GPIB and the program will end n printf n printf Press Enter to continue n printf n getch 112 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples viPrintf vi CLS n Clears signal generator status byte viPrintf vi STAT OPER NTR 8 n Sets the Operation Status Group Negative Transition Filter to indicate a negative transition in Bit 3 Sweeping which will set a corresponding event in the Operation Event Register This occurs at the end of a sweep viPrintf vi STAT OPER PTR 0 n Sets the Operation Status Group Positive Transition Filter so that no positive transition on Bit 3 affects the Operation Event Register The positive transition occurs at the start of a sweep viPrintf vi STAT OPER ENAB 8 n Enables Operation Status Event Bit 3 to report the event to Status Byte Register Summary Bit 7 viPrintf vi SRE 128 n Enables Status Byte Register Summary Bit 7 The next line of code indicates the function to call on an event viStatus vilnstallHandler vi VI EVENT SERVICE REQ interupt rdBuffer The next line of code enables the det
71. SCPI Command Reference 36 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN DHCP Configuration If the DHCP server uses dynamic DNS to link the hostname with the assigned IP address the hostname may be used in place of the IP address Otherwise the hostname is not usable For more information on the DHCP configuration refer to Configuring the DHCP LAN Agilent X Series and MXG on page 37 or Configuring the DHCP LAN ESG PSG on page 38 AUTO DHCP Auto IP Configuration Agilent X Series and MXG DHCP and Auto IP are used together to make automatic AUTO mode for IP configuration Automatic mode attempts DHCP first and then if that fails Auto IP is used to detect a private network If neither is found Manual is the final choice If the DHCP server uses dynamic DNS to link the hostname with the assigned IP address the hostname may be used in place of the IP address Otherwise the hostname is not usable Auto IP provides automatic TCP IP set up for instruments on any manually configured networks For more information on the AUTO DHCP Auto IP configuration refer to Configuring the DHCP LAN Agilent X Series and MXG on page 37 Configuring the DHCP LAN Agilent X Series and MXG AUTO DHCP Auto IP Request a new IP address in the following sequence 1 from the DHCP server based LAN 2 Auto IP private network without a network administrator or if neither is available 3 Manual settin
72. SCPI command TRIGger SOURce LAN3 3 Enable a Trigger LAN Event Send the following SCPI command TRIGger LXI LAN ENABled LANO 1 Verifying an LXI Trigger using LXI Interactive Peer to peer message transmission can be verified by running LXI Interactive from a PC on the same subnet as the MXG l Open Interactive LXI From a PC connected to the same subnet as the instrument go to Start gt All Programs gt Agilent 10 Libraries Suite gt Utilities gt Interactive LXI 2 Choose LAN Event Select the desired LAN trigger from the EventID dropdown menu 3 Send LAN Event Press the Send button This puts the trigger out on the line 56 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN 4 Monitor Response as on page 55 This may be done assuming that the Output LAN event had been configured from the front panel page 54 or SCPI commands page 55 Using the LXI Event Log The LXI subsystem also provides an Event Log The event log records all of the enabled LXI Event and Instrument Event activity and associates each action with an IEEE 1588 timestamp Instrument Events are enabled by default and will therefore appear in the log Since many instrument events occur during every sweep logging all of them may flood the event log They may be disabled by sending the SCPI command LXI EVENt STATus ENABled instrumentEvent 0 where the parameter instrumentEvent may be any event
73. SOCKET return s DERI IOI ko kk ke kk ok ko ko kk ok Ck ok ko kk e kk IOI IO IO II II IOI IO II IO I kk ke kk ek IO koe v Function commandInstrument Description send a SCPI command to the instrument Parameters x FILE file pointer associated with TCP IP socket const char command SCPI command string S Return char a pointer to the result string SErrors returns 0 if send fails FI II II II ke kk ok koe kk kk ck ek II IOI ok koe k III II II III IO I IO III II I I II IO A IO A a k f int commandInstrument SOCKET sock const char command int count fprintf stderr Sending s n command if strchr command n NULL fprintf stderr Warning missing newline on command s n command count send sock command strlen command 0 130 Agilent Signal Generators Programming Guide if count SOCKET_ERROR return COMMAND_ERROR return NO_CMD_ERROR Programming Examples LAN Programming Interface Examples DIR III IO IOI e kk ok koe III IO IOI IOI IO I IO III IOI IO IOI IO IO koe Ik ae recv_line similar to fgets but uses recv FIO IO E FE IOI OIG IOI ok ko kk de kk ko k IO III IO II ko ko ko kk IOI IOI I IO I IO III IO IO A k k Y char recv_line SOCKET sock ifde f WINSOCK int cur length 0 int count char ptr result int err 1 while cur length max
74. Status Sum Bit From Data Quest Calibration Status Group Unused summary Ti Y o From Data Quest BERT Status Group EMPerature VEN COLD summary Unused summary From Baseband Operation Status Group summary On oar QM AO Condition Register SELFtest Unused Unused summary Unused Unused Always Zero 0 Oper Complete Req Bus Control Query Error Dev Dep Error Execution Error Command Error User Request Power On UO CALibrating Settling Unused SWEeping MEASuring Waiting for TRIGer Unused Unused Unused DCFM DCIM Null in Progress rans Filter vent Register Event Enable Reg Service Request Always Zero 0 Enable Register Agilent Signal Generators Programming Guide 71 Programming the Status Register System Overview Figure 4 5 E8257N 57D 67D and E8663B 63D Overall Status Byte Register System 1 of 2 Data Questionable Power Status Group R P P Tripped Unleveled Unused Unused o o Unused 4 B15 15 9 Unused 4 5 DE E E fo Unused 6 ee d s ote Unused 4 7 SISIS oe c To Data Questionable Status Group 3 unused S EJE IE S le Unuced j 10 Sie b ps To Data Questionable Status Group 5 Unused E Unused c Unused To Data Questionable Status Group 7 Unused Always Zero 0 To Data Questionable Status Group 8 Synth Unlocked 10 MHz Ref Unlocked 1 GHz Ref Unlocked Baseband 1 Unlocked Unused
75. Technologies E8254A SN USO0000004 220 Firmware Mar 28 2001 11 23 18 220 Hostname 000lp1 220 IP 000 000 00 000 220 FTP server lt Version 1 0 gt ready User lt 000 000 00 000 lt none gt gt 331 Password required Password 230 Successful login ftp gt ls 200 Port command successful 150 Opening data connection USER 226 Transfer complete 35 bytes received in 0 00 seconds lt 35000 00 Kbytes sec gt ftp gt _ Using 10 Interfaces Using LAN The following steps outline a sample FTP session from the MS DOS Command Prompt 1 2 On the PC click Start gt Programs gt Command Prompt At the command prompt enter ftp lt IP address gt or lt hostname gt At the user name prompt press enter At the password prompt press enter You are now in the signal generator s user directory Typing help at the command prompt will show you the FTP commands that are available on your system Type quit or bye to end your FTP session Type exit to end the command prompt session Agilent Signal Generators Programming Guide 51 Using IO Interfaces Using LAN Using LXI NOTE Full LXI B feature implementation is only available on instruments with firmware gt A 01 50 A license may be required to enable this feature and to download firmware versions 24 01 50 For information on new firmware releases go to http www agilent com find upgradeassistant This section assumes general famil
76. The program queries the signal generator ID string and sets and queries the power level Query results are printed to the screen The default attributes e g 9600 baud parity 8 data bits 1 stop bit are used These attributes can be changed using VISA functions IMPORTANT Set the signal generator BAUD rate to 9600 for this test VA aooaa RII IOI ok IOI k Ck ok III IOI IO IO III II IOI ok II IO III IOI IO I IO I IO I I I koe include lt visa h gt include lt stdio h gt include StdAfx h include stdlib h include lt conio h gt define MAX COUNT 200 int main void ViStatusstatus Declares a type ViStatus variable 162 Agilent Signal Generators Programming Guide Programming Examples RS 232 Programming Interface Examples ESG PSG Only ViSessiondefaultRM instr Declares type ViSession variables ViUInt32retCount Return count for string I O ViCharbuffer MAX COUNT Buffer for string I O status viOpenDefaultRM amp defaultRM Initializes the system Open communication with Serial Port 2 status viOpen defaultRM ASRL2 1NSTR VI NULL VI NULL amp instr if status If problems then prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf Win exit 0 Set timeout for 5 seconds viSetAttribute instr VI ATTR TMO VALUE 5000 Asks for sig gen ID string status viWrite instr ViBuf IDN n 6 amp
77. The signal generator can be queried for conditions and setup parameters Query commands are identified by the question mark as in the identify command IDN basicex3 txt performs the following functions clears the signal generator queries the signal generator s settings The following program example is available on the signal generator Documentation CD ROM as basicex3 txt 10 DI III III III III ISI III ko ko ke 20 30 PROGRAM NAME basicex3 txt 40 50 PROGRAM DESCRIPTION In this example query commands are used with response 60 data formats 70 80 CLEAR and RESET the controller and RUN the following program 90 100 DI KK Kk KC III III III ISI IIIS III ko ko ko ek 110 120 DIM A 10 C 100 D 10 Declares variables to hold string response data 130 INTEGER B Declares variable to hold integer response data 140 Sig gen 719 Declares variable to hold signal generator address 150 LOCAL Sig gen Puts signal generator in Local mode 160 CLEAR Sig gen Resets parser and clears any pending output 170 CLEAR SCREEN Clears the controller s display 180 OUTPUT Sig gen RST Puts signal generator into a defined state 190 OUTPUT Sig gen FREQ CW Querys the signal generator CW frequency setting 200 ENTER Sig gen F Enter the CW frequency setting 210 Print frequency setting to the controller display 220 PRINT Present source CW frequency is F 1 E 6 MHz 230 PRINT 240 OUTPUT Sig gen POW AMP
78. Version 5 88 Build 21955 Melcome to Microsoft Telnet Client Telnet Client Build 5 880 99206 1 Escape Character is CTRL 1 Microsoft Telnet The Standard UNIX Telnet Command Synopsis telnet host port Description This command is used to communicate with another host using the Telnet protocol When the command telnet is invoked with host or port arguments a connection is opened to the host and input is sent from the user to the host Options and Parameters The command telnet operates in character at a time or line by line mode In line by line mode typed text is echoed to the screen When the line is completed by pressing the Enter key the text line is sent to host In character at a time mode text is echoed to the screen and sent to host as it is typed At the UNIX prompt type man telnet to view the options and parameters available with the telnet command NOTE If your Telnet connection is in line by line mode there is no local echo This means you cannot see the characters you are typing until you press the Enter key To remedy this change your Telnet connection to character by character mode Escape out of Telnet and at the telnet prompt type mode char If this does not work consult your Telnet program s documentation Agilent Signal Generators Programming Guide 49 Using IO Interfaces Using LAN Unix Telnet Example To connect to the instrument with host name myInstrument and port number 502
79. WriteDevice uint device string scpiCmd bool sendEnd byte buf Encoding ASCII GetBytes scpiCmd if sendEnd Do not send the END line character Visalnterop SetAttribute device VisaAttribute SendEndEnable 0 uint retCount Visalnterop Write device buf uint buf Length out retCount if sendEnd Set the bool sendEnd true Visalnterop SetAttribute device VisaAttribute SendEndEnable 1 This method reads an ASCII string from the specified device static public string ReadDevice uint device Agilent Signal Generators Programming Guide 369 Creating and Downloading User Data Files Save and Recall Instrument State Files string retValue byte buf new byte MAX_READ_DEVICE_STRING uint retCount if VisaInterop Read device retValue Encoding ASCII GetString buf return retValue 1024 bytes maximum read uint buf Length 1 out retCount 0 int retCount The following method reads a SCPI definite block from the signal generator and writes the contents to a file on your computer newline character is NOT consumed by the read static public void ReadFileBlock uint device Create the new empty data file FileStream fs new FileStream fileName Read the definite block header uint retCount 0 byte buf new byte 10 VisaInterop Read device buf VisaInterop Read device buf out retCount uint buf 1 0
80. addressed at 7 and the signal generator at 19 The GPIB address designator for other libraries is typically GPIBO or GPIB1 The following sections contain HP Basic and C lines of programming removed from the programming interface examples in Chapter 3 Programming Examples these portions of programming demonstrate the important features to consider when developing programming for use with the GPIB interface Interface Check using HP Basic and GPIB This portion of the example program Interface Check using HP Basic and GPIB on page 31 causes the signal generator to perform an instrument reset The SCPI command RST places the signal generator into a pre defined state and the remote annunciator R appears on the front panel display The following program example is available on the signal generator Documentation CD ROM as basicex1 txt For the full text of this program refer to Interface Check using HP Basic and GPIB on page 84 or to the signal generator s documentation CD ROM 160 Sig_gen 719 Declares a variable to hold the signal generator s address Agilent Signal Generators Programming Guide 31 Using IO Interfaces GPIB Programming Interface Examples 170 LOCAL Sig gen Places the signal generator into Local mode 180 CLEAR Sig gen Clears any pending data I O and resets the parser 190 REMOTE 719 Puts the signal generator into remote mode 200 CLEAR SCREEN Clears the controllers display 210 REMOTE 719
81. allow all instrument changes to be completed before the next command Lines 70 80 This is added to ensure that the instrument has completed all operations before switching languages Lines 70 and 80 can only be used when the signal generator is in single sweep mode Line 110 This takes the network analyzer out of pass thru command mode and puts it back in control Any analyzer command can now be entered NOTE Verify the signal generator is in single sweep mode Refer to the SCPI Command Reference or the User s Guide as required Example 3 1 Pass Thru Program 10 ABORT 7 20 CLEAR 716 30 OUTPUT 716 PT19 C1 116 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples 40 OUTPUT 717 SYST LANG SCPI END 50 WAIT 5 60 OUTPUT 717 OUTP STAT OFF 70 OUTPUT 717 OPC 80 ENTER 717 Reply 90 OUTPUT 717 SYST LANG COMP END 100 WAIT 5 110 OUTPUT 716 C2 120 END Setting the PSG Sweep Time Requirements PSG with Firmware gt 4 92 By default the PSG sweep time is automatically adjusted to the fastest possible sweep when exiting Pass Thru mode To disable this feature and retain specific time selection set the 8757D system time to Manual The front panel key sequence is Sweep gt Sweep Type gt 8757D System Sweep Time to Manual The SCPI command sequence is SOURce SWEep TIME COMP AUTO OFF NOTE The changes to sweep tim
82. and Bit Positions Ah T L al A lel e e S t E l E 5 0 BI ej amp Bit Function Bit 31 1 1 I EE el et el ahve Eae E S 92 8 g E g Decimal 9 9 9 9 IBI I g al amp d Value Bit Position 7 6 5 4 3 2 1 0 Bit Pattern 1 1 0 1 0 1 0 1 213 1 1 0 1 0 1 0 0 212 1 1 0 1 0 0 0 1 209 1 1 0 1 0 0 0 0 208 1 0 0 1 0 1 0 1 149 1 0 0 1 0 0 0 1 145 1 0 0 1 0 0 0 0 144 0 1 0 1 0 1 0 1 85 0 1 0 1 0 1 0 0 84 0 1 0 1 0 0 0 1 81 0 1 0 1 0 0 0 0 80 0 0 0 1 0 1 0 1 21 0 0 0 1 0 1 0 0 20 0 0 0 1 0 0 0 1 17 0 0 0 1 0 0 0 0 16 Viewing the PRAM Waveform After the waveform data is written to PRAM the data pattern can be viewed using an oscilloscope There is approximately a 12 symbol delay between a state change in the burst bit and the corresponding effect at the RF out This delay varies with symbol rate and filter settings and requires compensation to advance the burst bit in the downloaded PRAM file Agilent Signal Generators Programming Guide 347 Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D PRAM File Size Because volatile memory resides on the baseband generator BBG the maximum PRAM file size depends on the installed baseband generator option as shown in Table 6 11 Table 6 11 Maximum PRAM User File Size Payload Bits Only Baseband Generator Option Modu
83. and bit 3 are set the decimal sum will be 136 bit 7 128 and bit 3 8 NOTE Multiple Status Byte Register bits can assert an SRQ however only one bit at a time can set the RQS bit All bits that are asserting an SRQ will be read as part of the status byte when it is queried or serial polled The SRQ process asserts SRQ as true and sets the status byte s RQS bit to 1 Both actions are necessary to inform the controller that the signal generator requires service Asserting SRQ informs the controller that some device on the bus requires service Setting the RQS bit allows the controller to determine which signal generator requires service This process is initiated if both of the following conditions are true The corresponding bit of the Service Request Enable Register is also set to 1 The signal generator does not have a service request pending A service request is considered to be pending between the time the signal generator s SRQ process is initiated and the time the controller reads the status byte register If a program enables the controller to detect and respond to service requests it should instruct the controller to perform a serial poll when SRQ is true Each device on the bus returns the contents of its status byte register in response to this poll The device whose request service summary RQS bit is set to 1 is the device that requested service NOTE When you read the signal generator s Status Byte Regist
84. and connections n printf n exit 0 viPrintf vi RST n initializes signal generator prints to the output window printf The signal generator should now be in REMOTE The remote indicator n printf annunciator R should appear on the signal generator display n printf n viClose vi closes session viClose defaultRM closes default session Local Lockout Using HP Basic and GPIB This example demonstrates the Local Lockout function Local Lockout disables the front panel signal generator keys basicex2 txt performs the following functions e resets instrument places signal generator into local places signal generator into remote The following program example is available on the signal generator Documentation CD ROM as basicex2 txt 10 KKK Ck Ck ck KK KK KR KK KKK ck ck ck KK KKK KR KK ckckckckckckckckckckckckckckckckck KK KKK ck ck ck kck ckckckckckckckck ck ck ck kkk kkk 20 30 PROGRAM NAME basicex2 txt 40 50 PROGRAM DESCRIPTION In REMOTE mode access to the signal generators 60 functional front panel keys are disabled except for 70 the Local and Contrast keys The LOCAL LOCKOUT 80 command will disable the Local key 90 The LOCAL command executed from the controller is then 100 the only way to return the signal generator to front panel Agilent Signal Generators Programming Guide 87 Programming Examples GPIB Programming Interface Examples 110
85. as the Data Source 2 00005 335 Modulating and Activating the Carrier lt s a a R 20 2488 RR ERROR REOR OR Re 336 Modifying User File Data lt lt 44 de A ow R ROR SESERRRARASASRSRAES HORDES 336 vii Contents Understanding Framed Transmission For Real Time TDMA 339 Real Time Custom High Data Rates 20 0 aaa ee es 343 Pattern RAM PRAM Data Downloads E4438C and E8267D anaana aaa 344 Understanding PRAM Filet 24444944664 44444 444408 S64 GHEE eG Ee e OR 345 PRAM PIO SEE 55 3 Sao en dd dox dox do ob REA SRR EHS SES OS OSG EE ERE CE 348 SCPI Command for a List Format Download llle 350 SCPI Command for a Block Data Download 002000 eee 350 Selecting a Downloaded PRAM File as the Data Source anaana aaa 353 Modulating and Activating the Carrier 2l 354 Storing a PRAM File to Non Volatile Memory and Restoring to Volatile Memory 354 Extracting a PRAM Piles lt lt 4 42462 46 85 64 POP ER ERG MER AES SHS EEE OOS qu 355 Modibang PRAM PASS renren e p eas ees BG OR RC RR eae dae OLOR Ie Reb Web SH eS 357 FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D 358 Dats LTE 244 004 62 244 8h 8S b MEAG A SSD SHE EROR ERS ABE hE deos OS 358 Data LAMA ONS xu oa oe OO RR wee RRR EO POH ACE AERA eR eS ho 359 Downloading FIR Filter Coefficient Data 0 00 ee eee 360 Selecting a Downloaded User FIR Filter as the Active Fi
86. as the last byte of the waveform data e iwrite writes the data n to the signal generator session identifier specified in id The third argument of write 1 sends one byte to the signal generator The fourth argument of write 1 is the END of file indicator which the program uses to terminate the data download To verify the user file data download see Command for Bit File Downloads on page 333 and Commands for Binary File Downloads on page 334 Command for Bit File Downloads Because the signal generator adds a 10 byte file header during a bit file download you must use the SCPI command shown in Table 6 7 If you FTP or copy the file for the initial download the signal generator does not add the 10 byte file header and it does recognize the data in the file no data in the transmitted signal Bit files enable you to control how many bits in the file the signal generator modulates onto the signal Even with this file type the signal generator requires that all data be contained within bytes For more information on bit files see Bit File Type Data on page 322 Table 6 7 Bit File Type SCPI Commands Type Command Syntax Command MEM DATA BIT lt file name bit count block data This downloads the file to the signal generator Agilent Signal Generators Programming Guide 333 Creating and Downloading User Data Files User File Data Bit Binary Downl
87. binary files see Binary File Type Data on page 325 There are two ways to download the file to be able to extract the file or not Each method uses a different SCPI command which is shown in Table 6 8 Table 6 8 Binary File Type Commands Command Command Syntax Type For SCPI MEMory DATA UNPRotected bin file_name lt datablock gt Extracti Sila This downloads the file to the signal generator You can extract the file within the context of a program FTp put lt file_name gt user bin file_name No MEM DATA bin file_name lt block data tracti SEE This downloads the file to the signal generator You cannot extract the file 334 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Table 6 8 Binary File Type Commands Command Command Syntax Type Query MEM DATA bin file name This returns information on the named file bit count block data Within the context of a program this query extracts the user file provided it was download with the proper command Query MEM CAT BIN This lists all of the files in the bit file directory and shows the remaining non volatile memory bytes used by bit files gt lt available non volatile memory gt lt file_names gt a See FTP Procedures on page 337 File Name Syntax There are three ways to format
88. bytes to represent larger values The following shows two bytes and the resulting integer value 01101110 10110011 28339 decimal value The maximum value for two unsigned bytes is 65535 Since binary strings lengthen as the value increases it is common to show binary values using hexadecimal hex values base 16 which are shorter The value 65535 in hex is FFFF Hexadecimal consists of the values 0 1 2 3 4 5 6 7 8 9 A B C D E and F In decimal hex values range from 0 to 15 F It takes 4 bits to represent a single hex value 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 For I and Q data the signal generator uses two bytes to represent an integer value LSB and MSB Bit Order Within groups strings of bits we designate the order of the bits by identifying which bit has the highest value and which has the lowest value by its location in the bit string The following is an example of this order Most Significant Bit MSB This bit has the highest value greatest weight and is located at the far left of the bit string Least Significant Bit LSB This bit has the lowest value bit position zero and is located at the far right of the bit string Bit Position 15 14 1312 1110 9 8 7 654 321 0 Data 101 101 11 11101001 MSB LSB Because we are using 2 bytes of data the LSB appears in the second byte Little Endian and Big End
89. center ceil len 2 centeredTime 1 center 1 timeDomain center 1 end centeredTime center len timeDomain 1 center else even topHalf length timeDomain 2 1 centeredTime 1 topHalf 1 timeDomain topHalf end centeredTime topHalf len timeDomain 1 topHalf 1 end else already centered in time domain centeredTime timeDomain end if abs destRate rate gt le 6 154 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples resampledTime resample centeredTime destRate rate 30 resampledTime resampledTime rate destRate else resampledTime centeredTime end clip off the center 256 if necessary if length resampledTime gt 256 maxval index max abs resampledTime center index left center 127 right left 255 clippedTime resampledTime left right else clippedTime resampledTime end corrFilter clippedTime end Example 4 Downloading a FIR filter in Matlab to the MXG NOTE For X Series signal generators N5172B 82B replace the 125MHz value with 200MHz This example uses Matlab to control the MXG over the TCP IP LAN interface This example takes a filter in Matlab and writes it to a FIR file in the MXG This example can be can be used in combination with either the automatable loadPsaEqFilterFreq m example 1 or the loadVsaEqFilter m example 3 to manually work with the VSA 89600 software Th
90. condition The following program example is available on the signal generator Documentation CD ROM as visaex 9 cpp f RR n ke e ke e he ke ke ke he ke ke e ho ek e kc e kc kc e ke kc e kc KER e ke he khe ke he khe khe ke he ke he khe ke he ke ke e ho e he e ko e e ke ko e e ke he e e e e e ke e e e e e e e A PROGRAM NAME visaex9 cpp PROGRAM DESCRIPTION In this example the data questionable status register is read The data questionable status register is enabled to read an unleveled condition The signal generator is then set up for an unleveled condition and the data questionable status register read The results are then displayed to the user The status questionable register is then setup to monitor a modulation error condition The signal generator is set up for a modulation error condition and the data Agilent Signal Generators Programming Guide 107 Programming Examples GPIB Programming Interface Examples questionable status register is read The results are displayed to the active window 7 RRR III IO IOI e kk ek koe k IOI ke kk ICI ke kk IO IO IOI III III IO IO E E II IOI III IO IO KIO include lt visa h gt include StdAfx h include lt iostream gt include lt conio h gt void main ViSession defaultRM vi Declares a variables of type ViSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications
91. either click the front panel keys or enter SCPI commands Agilent Signal Generators Programming Guide FTP enables the transfer of files between the instrument and a computer The FTP access button provides drag and drop file capability Agilent Signal Generators Programming Guide Getting Started with Remote Operation Using the Web Browser Welcome te your Web Enabled MXG voor en about this Web Enibied MIG enz vr ry a R Py Agrar res 1824 1 69 vera 10 10 0328 Laad M advanced intermanon spout rs Hat En sari MX0 Ue te repar pr ene etm aromas veas Mo ve ane mpr pet Tests pes ve 2008 The FTP access softkey opens to show the folders containing the signal generator s memory catalog files Y ftp 141 121 91 244 Microsoft Internet Explorer proviled by Agilent Technologies Inc File Edit View Favorites T Help O Qo sen RE Folders Fiz Address TA ftp 141 121 91 244f Other Places ARBI ARBQ BBG1 BBG BIN Z Internet Explorer iE My Documents My Network Places MARKER NVARBI NVARBQ SECUREWAVE SEQ WAVEFORM Use the FTP window to drag and drop files from the FTP page to your computer Getting Started with Remote Operation Using the Web Browser LAN Configuration System Defaults Agilent X Series and MXG NOTE The instrument s LAN configuration system information can be found on the signal generator s h
92. following examples 1 148 Example 1 Reading Out the Channel Response and Calculating Corrections for an Equalization Filter Using Matlab Example 2 Reading a PXA Trace and Setting up the Equalization Filter Using Matlab Example 3 Reading a VSA Trace and Setting up the Equalization Filter Using Matlab Example 4 Downloading a FIR filter in Matlab to the MXG Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples Example 1 Reading Out the Channel Response and Calculating Corrections for an Equalization Filter Using Matlab NOTE For X Series signal generators N5172B 82B replace the 125MHz value with 200MHz This example reads out the channel response from a PSA and calculates a correction equalization filter that can be loaded into the MXG The following program example is available on the signal generator Documentation CD ROM as loadPsaEQFilterFreq m function corrFilter loadPsaEqFilter psaDev destRate corrFilter loadPsaEqFilter psaDev destRate Reads out the current Equalization filter active on the PSA specified The communication is over TCP IP LAN destRate is assumed to be 125e6 if missing Example corrFilter loadPsaEqFilter psa4 output of corrFilter is in time domain NOTE The equalization filter feature in the PSA Digital Modulation Modulation Analysis mode must be ON for this script to work It can be set to E
93. functional Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file visaexl cpp performs the following functions e verifies the GPIB connections and interface are functional switches the signal generator into remote operation mode The following program example is available on the signal generator Documentation CD ROM as visaex1 cpp J OCIO IO IO Ok OK OK Ok Ck OK OK OK KR KR KO KO KOICROK OK KOKCKOKCKOK ROI OK KO KO KR III III III II III IIe PROGRAM NAME visaexl cpp PROGRAM DESCRIPTION This example program verifies that the GPIB connections and and interface are functional Turn signal generator power off then on and then run the program 8 RRR e H k e e e e e IO IOI kk ke kk ok IG IOI IO IO IOI ok ko ko IOI ok IO II IO II III IO IO II I IO I IO I kk de include lt visa h gt include lt stdio h gt include StdAfx h include lt stdlib h gt void main 86 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples ViSession defaultRM vi Declares a variable of type ViSession for instrument communication ViStatus viStatus 0 Opens a session to the GPIB device at address 19 viStatus viOpenDefaultRM amp defaultRM viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus printf Could not open ViSession n printf Check instruments
94. idn and if the connection fails displays an error message Line Code Open a Connection Session io agt newconnection tcpip IP address io agt newconnection gpib primary address secondary address 2 status status description query result agt query io idn 3 if status 1 4 display fail to connect to the signal generator 5 end Agilent Signal Generators Programming Guide 249 Creating and Downloading Waveform Files Downloading Waveform Data Line Code Description Open a Connection Session with the Signal Generator Sets up a structure indicated above by io used by subsequent function calls to establish a LAN connection to the signal generator agt newconnection is the function of Agilent Waveform Download Assistant used in MATLAB to build a connection to the signal generator If you are using GPIB to connect to the signal generator provide the board primary address and secondary address io agt_newconnection gpib 0 19 Change the GPIB address based on your instrument setting Send a query to the signal generator to verify the connection agt query is an Agilent Waveform Download Assistant function that sends a query to the signal generator If signal generator receives the query idn status returns zero and query result returns the signal generator s model number serial number and firmware version 3 5 If the query fails displ
95. is started first causing it to source the first signal in its list We then start the MXA s list sweep The OperationComplete instrument event transitions low causing an OperationComplete output event to go out on the LAN with a falling edge The MXA takes a measurement at the first frequency in its list When the MXA has finished its measurement it moves on to the next entry in its list The Waiting For Trigger instrument event transitions high causing a LAN1 output event to go out onto the LAN with a rising edge and the MXA waits for its next trigger The MXG receives the LAN1 event and triggers The MXG s Waiting For Trigger instrument event transitions low and a LANO output event goes onto the LAN with a falling edge The MXA takes no action since it is configured to trigger only on rising edges The MXG is now sourcing the next signal in its list Once that signal has settled it prepares to move on to its list s next entry The MXG s Waiting For Trigger instrument event transitions high and a LANO output event goes onto the LAN with a rising edge The MXG waits for its next trigger Agilent Signal Generators Programming Guide 57 Using IO Interfaces Using LAN The MXA receives the LANO event and triggers The MXA s Waiting For Trigger instrument event transitions low and a LAN1 output event goes onto the LAN with a falling edge The MXG takes no action since it is configured to trigger only on rising edges The MXA completes its measur
96. ka eda ee inp Eer Ree Ow we eS A 87 Local Lockout Using Nbd852 and Ft 4044544 bee ekha k GRAMME owe eed ee d 88 Queries Using HP Basic and GPIB ccc hk kak HS AREA RAR RE ARR KE SSA RK RE RS S 90 Queries Using NI 488 2 and Visual C exe RRR RRR HEE HEE DR OOH Ee EES 91 Contents Queries far GPIB Using VISA and s ARA RE AER RE EX kx Xd XOReb A E RS 93 Generating a CW Signal Using VISA and C 95 Generating an Externally Applied AC Coupled FM Signal Using VISA and C 97 Generating an Internal FM Signal Using VISA and C 99 Generating a Step Swept Signal Using VISA and C 02000000 ae 101 Generating a Swept Signal Using VISA and Visual Cr 102 Saving and Recalling States Using VISA and C 104 Reading the Data Questionable Status Register Using VISA and C 107 Reading the Service Request Interrupt SRQ Using VISA and C 111 Using 8757D Pass Thru Commands PSG with Option 007 Only 115 LAN Programming Interface Examples 2 118 Vode Ll Priming deg ced oe Rae ee ed EUR ERI RewWah dee KER RES RSG DSRS 118 WALT Programming Using SIGL and QR X AKA AE EERE E ee DEERE EEE SOE 119 VXI 11 Programming Using VISA and Cr ea a RR ee REA REG RR 120 Sockets LAN Programme and C lt lt soe oe REPRESSES HO bre hEr ORE DORE N 122 Queries for Lan Using SOCkets i424 44 444240446 040846885 500 OR RSS R RR EGS 125 Sockets LAN Programming Using Ja 4 6645
97. listed in Table 2 1 Note that the event must be re enabled before being used as the source of an LXI Output LAN Event To view the LXI Event Log from the front panel press the hard key System and then the softkeys Show LXI LXI Event Log Once the Event Log is displayed the arrow keys may be used to scroll through the list The Event Log may also be queried through SCPI command Setting up and executing a list sweep measurement The following examples will illustrate procedures for setting up and executing a list sweep measurement using an MXA and an MXG synchronized with LXI Before launching into the procedure it is important to understand the theory behind the method The MXA and MXG use their LXI Output LAN Events to communicate internal state changes to each other In the following synchronization the rising edge of the Waiting For Trigger instrument event will be used to communicate to the other device that the next step may be executed For clarity the MXG s Waiting For Trigger instrument event is mapped to the LANO output event Likewise the MXA s Waiting For Trigger instrument event is mapped to the LAN1 output event The MXA is configured to trigger when it receives the LANO event with a rising edge The MXG is configured to trigger when it receives the LAN1 event with a rising edge Also the OperationComplete output event is enabled which has the OperationComplete instrument event mapped to it by default The MXG s list sweep
98. lngDone printf The instrument is now in it s Reset operating state Lh Ld Resets the signal generator Sets sig gen frequency Turns ALC Off Sets power for 3 2 dBm Turns RF output On Checks for operation complete Waits for setup to complete Saves sig gen state to register 1 Print user information state will be saved n press Enter n Ly Prints new line character Wait for user input Resets the operation complete flag Resets the signal generator Checks for operation complete Waits for setup to complete Print user infromation Press the n printf Enter key to return the signal generator to the Register 1 printf n getch ingDone 0 viPrintf vi RCL 1 n viPrintf vi OPC n while lngDone viScanf vi d amp lngDone 106 Lf Prints new line character Waits for user input Reset the operation complete flag Recalls stored register 1 state Checks for operation complete Waits for setup to complete Print user information Agilent Signal Generators Programming Guide state n Programming Examples GPIB Programming Interface Examples printf The signal generator has been returned to it s Register 1 state n printf Press Enter to continue n printf n Prints new line character getch Waits for user input lngDone 0 Reset the operation complete flag v
99. minAmp fabs minAmp if minAmp gt maxAmp maxAmp minAmp Convert to short integers and interleave I Q data scale 32767 maxAmp Watch out for divide by zero for i 0 i lt points i waveform 2 i short floor Iwave i scale 0 5 waveform 2 i 1 short floor Qwave i scale 0 5 If on a PC swap the bytes to Big Endian if strcmp computer PCWIN 0 if PC pChar char amp waveform 0 Character pointer to short int data for i20 i 2 points i buf pChar pChar pChar 1 pChar 1 buf pChar 2 264 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples Save the data to a file Use FTP or one of the download assistants to download the file to the signal generator char filename C Temp PSGTestFile FILE stream NULL stream fopen filename wtb Open the file if stream NULL perror Cannot Open File int numwritten fwrite void waveform sizeof short points 2 stream fclose stream Close the file 3 Load the internal Arb format file xxxdxxXXXXXXXXd kd k d k KK k This process is just the reverse of saving the waveform Read in waveform as unsigned short integers Swap the bytes as necessary Normalize between 1 De interleave the I Q Data Open the file and load the internal format data stream fopen filename
100. need to interleave the I and Q data This buffer is used for that purpose In this case this buffer must hold both I and Q data so it needs to be four times as big as the data arrays char iqbuffer MAXSAMPLES 4 Declare variables which will be used later bool done FILE infile int index numsamples il i2 ivalue In this example we ll assume the data files have the I and Q data in binary form as unsigned 16 bit integers This next block reads those binary files If your data is in some other format then replace this block with appropriate code for reading your format First read I values done false index 0 infile fopen ifile rb if infile NULL perror Error opening file to read 278 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples while done il fgetc infile read the first byte if il EOF break i2 fgetc infile read the next byte if i2 2 EOF break ivalue il i2 256 put the two bytes together note that the above format is for a little endian processor such as Intel Reverse the order for a big endian processor such as Motorola HP or Sun idata index ivalue if index MAXSAMPLES break fclose infile Then read Q values index 0 infile fopen qfile rb if infile NULL perror Error opening file to read while done il
101. number gt US40000001 C 02 00 Agilent Signal Generators Programming Guide 67 Using IO Interfaces RS 232 Programming Interface Examples Character Format Parameters The signal generator uses the following character format parameters when communicating through RS 232 Character Length Eight data bits are used for each character excluding start stop and parity bits Parity Enable Parity is disabled absent for each character Stop Bits One stop bit is included with each character If You Have Problems l Verify that the baud rate parity and stop bits are the same for the computer and signal generator Verify that the RS 232 cable is identical to the cable specified in Table 2 2 3 Verify that the application is using the correct computer COM port and that the RS 232 cable is properly connected to that port 4 Verify that the controller s flow control is set to RTS CTS RS 232 Programming Interface Examples NOTE The portions of the programming examples discussed in this section are taken from the full text of these programs that can be found in Chapter 3 Programming Examples Interface Check Using HP BASIC on page 69 e Interface Check Using VISA and C on page 69 Queries Using HP Basic and RS 232 on page 70 Queries for RS 232 Using VISA and C on page 70 Before Using the Examples Before using the examples On the signal generator select the following settings Baud R
102. of the number of bytes in the command string The signal generator parses the string to determine the number of I Q data bytes it expects to receive e The fourth argument of iwrite 0 means there is no END of file indicator for the string This lets the session remain open so the program can download the I Q data Agilent Signal Generators Programming Guide 253 Creating and Downloading Waveform Files Loading Playing and Verifying a Downloaded Waveform Line Code Description Download the I Q data 15 Send the generated waveform data stored in the I Q array igbuffer to the signal generator e iwrite sends the data specified in iqbuffer to the signal generator session identifier specified in id The third argument of iwrite bytesToSend contains the length of the iqbuffer in bytes In this example it is 2000 The fourth argument of iwrite 0 means there is no END of file indicator in the data In many programming languages there are two methods to send SCPI commands and data Method 1 where the program stops the data download when it encounters the first zero END indicator in the data Method 2 where the program sends a fixed number of bytes and ignores any zeros in the data This is the method used in our program For your programming language you must find and use the equivalent of method two Otherwise you may only achieve a partial download of the I and Q data 16 Send the terminating
103. page 48 The Standard UNIX Telnet Command on page 49 A Telnet example is provided in Unix Telnet Example on page 50 Using Telnet and MS DOS Command Prompt 1 On your PC click Start gt Programs gt Command Prompt 46 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN At the command prompt type in telnet Press the Enter key The Telnet display screen will be displayed Click on the Connect menu then select Remote System A connection form Figure 2 5 is displayed Figure 2 5 Connect Form Agilent IO Library version J 01 0100 Host Name Instrument name Port 5023 TermType EXIT Cancel Enter the hostname port number and TermType then click Connect Host Name IP address or hostname e Port 5023 Term Type vt100 At the SCPI gt prompt enter SCPI commands Refer to Figure 2 6 on page 48 To signal device clear press Ctrl C on your keyboard Select Exit from the Connect menu and type exit at the command prompt to end the Telnet session Using Telnet On a PC With a Host Port Setting Menu GUI 1 2 3 On your PC click Start gt Run Type telnet then click the OK button The Telnet connection screen will be displayed Click on the Connect menu then select Remote System A connection form is displayed See Figure 2 5 Enter the hostname port number and TermType then click Connect Host Name signal generator s IP address or hostname e Port 5023 T
104. parameter list NI 488 2 The NI 488 2 library function addresses the GPIB and writes ibwrt parameter list data to the signal generator The parameter list includes the instrument address session id and the data to send SICL The Agilent SICL function converts data using the format iprintf parameter string The format string specifies how the argument is list converted before it is output The function sends the characters in the format string directly to the instrument The parameter list includes the instrument address data buffer to write and so forth Agilent Signal Generators Programming Guide 83 Programming Examples GPIB Programming Interface Examples Enter Function The HP Basic function ENTER reads formatted data from the signal generator Other IO libraries use similar functions to read data from the signal generator Library Function Statement Initialization Command HP Basic The function ENTER 719 puts the signal generator into 10 ENTER 719 remote mode makes it a talker and assigns data or status information to a designated variable VISA Library The VISA library uses the viScanf function and an viScanf parameter list associated parameter list to receive data This function receives data from the instrument formats it using the format string and stores the data in the argument list The parameter list includes the session id and string argument NI 488 2 Th
105. programming example s name is pulsepat m This MATLAB programming example performs the following functions and Q data creation for 10 pulses marker file creation data scaling downloading using Agilent Waveform Download Assistant functions see Using the Download Utilities on page 257 for more information Script file pulsepat m 96 Purpose To calculate and download an arbitrary waveform file that simulates a simple antenna scan pulse pattern to the Agilent MXG PSG vector signal generator 96 Define Variables n counting variable no units t time seconds rise raised cosine pulse rise time definition samples on pulse on time definition samples fall raised cosine pulse fall time definition samples i in phase modulation signal q quadrature modulation signal n 4 defines the number of points in the rise time and fall time 1 2 n 1 2 n number of points translated to time rise 1 sin t pi 2 2 defines the pulse rise time shape on ones 1 120 defines the pulse on time characteristics fall 1 sin t pi 2 2 defines the pulse fall time shape off zeros 1 896 defines the pulse off time characteristics 288 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples arrange the i samples and scale the amplitude to simulate an antenna scan pattern comprised of 10 pulses i 707 rise o
106. registers filters BERT transition 208 calibration transition 205 frequency transition 199 modulation transition 202 power transition 196 transition 194 groups BERT status 207 calibration status 204 frequency status 198 modulation status 201 power status 195 status 191 status register reading using VISA and C 107 data questionable registers BERT event 209 208 calibration condition 205 206 192 event 194 frequency condition 199 200 modulation condition 202 203 power condition 196 197 data rates high custom real time 343 data requirements FIR filter downloads 358 data types binary 314 defined 314 FIR filter states 314 PRAM 314 user flatness correction 314 decryption 233 developing programs 76 device add 9 DHCP 11 37 directory root 317 DNS 39 DOS command prompt 46 384 download binary file data 325 322 FIR filter coefficient data 358 user file data FTP procedures 337 unencrypted files for extraction 357 963 Agilent Signal Studio Toolkit 212 IntuiLink for signal generators 212 Waveform Download Assistant 212 waveform data advanced programming languages 251 commands 232 e443xb signal generator files 217 258 238 236 FTP procedures 239 memory locations 233 overview 211 248 simulation software 249 unencrypted files for extraction 236 313 download libraries 10 downloaded PRAM files data sources 353 downloading block data SCPI command 350 35
107. s 20 char cmd 200 bytesToSend numsamples 4 calculate the number of bytes sprintf s d bytesToSend create a string s with that number of bytes The SCPI command has four parts Part 1 MEM DATA filename Part length of Part 3 when written to a string 2 Part 3 length of the data in bytes This is in s from above 4 Part the buffer of data Build parts 1 2 and 3 for the I and Q data sprintf cmd MEM DATA WFM1 FILE1 d d strlen s bytesToSend Send parts 1 2 and 3 iwrite id cmd strlen cmd 0 0 Send part 4 Be careful to use the correct command here In many programming languages there are two methods to send SCPI commands Method 1 stop at the first 0 in the data 74 Method 2 send a fixed number of bytes ignoring 0 in the data You must find and use the correct command for Method 2 iwrite id iqbuffer bytesToSend 0 0 Send a terminating carriage return iwrite id Mn 1 1 0 printf Loaded file using the E4438C E8267C and E8267D format in return 0 270 Agilent Signal Generators Programming Guide Importing and Downloading 1 0 Data Big Endian Order Creating and Downloading Waveform Files Programming Examples On the documentation CD this programming example s name is impDwnLd_c t txt This C programming example compiled using Metrowerks CodeWarrier 3 0 assumes that the data is in big
108. scaled using the AMPLITUDE constant of 32767 and then stored in an array named iq data The AMPLITUDE scaling allows for full range I Q modulator DAC values Data must be in 2 s complemant MSB LSB big endian format If your PC uses LSB MSB format then the integer bytes must be swapped This program converts the integer array values to hex data types and then swaps the byte positions before saving the data to the IQ DataVB file VR KKK KK KK KK KK KK KK RK KKK EK EK KK KR KK KK KK KK EK ck ck RK ck ck KK KK KEK KK KK KK KKK KK KKK KKK KKK KKK KEK ck ckck ck ck ck ck K Private Sub Create IQData Dim index As Integer Dim AMPLITUDE As Integer Dim pi As Double Dim loByte As Byte Dim hiByte As Byte Dim loHex As String Dim hiHex As String Dim strSrc As String Dim numPoints As Integer Dim FileHandle As Integer Dim data As Byte Dim iq data As Byte Dim strFilename As String strFilename C IQ_DataVB Const SAMPLES 200 Number of sample PAIRS of I and Q integers for the waveform Agilent Signal Generators Programming Guide 299 Creating and Downloading Waveform Files Programming Examples AMPLITUDE 32767 Scale the amplitude for full range of the signal generators I Q modulator DAC pi 3 141592 Dim intIQ Data 0 To 2 SAMPLES 1 Array for I and Q integers 400 ReDim iq data 0 To 4 SAMPLES 1 Need MSB and LSB bytes for each integer value 800 Create an integer array of I Q pairs For ind
109. signal generator expects to see waveform data as block data binary files The IEEE standard 488 2 1992 section 7 7 6 defines block data The following example shows how to structure a SCPI command for downloading waveform data ABC represents the block data MMEM DATA file name gt ABC lt file_name gt the I Q file name and file path within the signal generator indicates the start of the data block A the number of decimal digits present in B B a decimal number specifying the number of data bytes to follow in C C the actual binary waveform data The following example demonstrates this structure MMEM DATA WEM1 my_file 3 240 12 S 4 amp 07 8g Y9 7 file_name A B C WFMI the file path my file the I Q file name as it will appear in the signal generator s memory catalog indicates the start of the data block 3 B has three decimal digits 240 240 bytes of data to follow in C 12 S 4 amp 07 8g Y9 7 the ASCII representation of some of the binary data downloaded to the signal generator however not all ASCII values are printable Commands and File Paths for Downloading and Extracting Waveform Data NOTE Filenames should not exceed 23 characters You can download or extract waveform data using the commands and file paths in the following tables Table 5 7 Downloading Unencrypted Files for No Extraction Extraction allowed on the X Series and MXG Only on page 236 Table 5 8 Downloadi
110. such utilities For more information and to install the utilities refer to the following URLs e Agilent Signal Studio Toolkit 2 http www agilent com find signalstudio This software provides a graphical interface for downloading files e Agilent IntuiLink for Agilent PSG ESG E8663B Signal Generators http uww agilent com find intuilink This software places icons in the Microsoft Excel and Word toolbar Use the icons to connect to the signal generator and open a window for downloading files Agilent Signal Generators Programming Guide 257 Creating and Downloading Waveform Files Downloading E443xB Signal Generator Files NOTE Agilent Intuilink is not available for the Agilent MXG e Agilent Waveform Download Assistant http www agilent com find downloadassistant This software provides functions for the MATLAB environment to download waveform data Features Agilent Signal Agilent Agilent Studio Toolkit 2 IntuiLink Waveform Download Assistant Downloads encrypted waveform files X Downloads complex MATLAB waveform data X Downloads MATLAB files mat X Downloads unencrypted interleaved 16 bit I Q files b Interleaves and downloads earlier 14 bit E443xB I and Q files Swaps bytes for little endian order Manually select big endian byte order for 14 bit and 16 bit I Q X files Downloads user created marker files X X X Performs scaling X X X Starts waveform play bac
111. the SCPI port Return int 2 2 5505 A file descriptor similar to open 1 SErrors returns 1 if anything goes wrong RRR kk ck k kk hk Ck KERR KER EKER ERE RE RE RE RE RE RE RE RRR RRR KERR KERR KER RE RE RE RE RERERERERE SOCKET openSocket const char hostname int portNumber struct hostent hostPtr struct sockaddr_in peeraddr_in SOCKET s memset amp peeraddr_in 0 sizeof struct sockaddr in FOR kk koe k ck ok koe IO ko kk ko k IO I IO koc IOI IO kk koe OK map the desired host name to internal form AAA hostPtr gethostbyname hostname if hostPtr NULL fprintf stderr unable to resolve hostname s n hostname return INVALID SOCKET FOR RK IK ke KIO I koe create a socket RERRRERRRERERERERER s socket AF_INET SOCK_STREAM 0 if s INVALID_SOCKET fprintf stderr unable to create socket to s s n hostname strerror errno return INVALID_SOCKET Agilent Signal Generators Programming Guide 129 Programming Examples LAN Programming Interface Examples memcpy amp peeraddr_in sin_addr s_addr hostPtr gt h_addr hostPtr gt h_length peeraddr_in sin_family AF_INET peeraddr in sin port htons unsigned short portNumber if connect s const struct sockaddr amp peeraddr in sizeof struct sockaddr in SOCKET ERROR fprintf stderr unable to create socket to s s n hostname strerror errno return INVALID
112. the bits you want to enable Queries STATus QUEStionable POWer NTRansition STATus QUEStionable POWer PTRansition Data Questionable Power Event Register The Data Questionable Power Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATus QUEStionable POWer L EVENt 196 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable Power Event Enable Register The Data Questionable Power Event Enable Register lets you choose which bits in the Data Questionable Power Event Register set the summary bit bit 3 of the Data Questionable Condition Register to 1 Command STATus QUEStionable POWer ENABle value where value is the sum of the decimal values of the bits you want to enable Example Enable bit 3 and bit 2 so that whenever either of those bits are set to 1 the Data Questionable Power summary bit of the Data Questionable Condition Register is set to 1 Send the command STAT QUES POW ENAB 520 8 4 Query STATus QUEStionable POWer ENABle Response Decimal value of the sum of the bits previously enabled with the STATus QUEStionable POWer ENABle value command Agilent Signal Generators Programming Guide 197 Programming the Status Register System Status Groups D
113. the code example below type in the hostname or IP address of your signal generator For example String instrumentName your signal generator s hostname 2 Copy the program as ScpiSockTest java and save it in a convenient directory on your computer For example save the file to the C jdk1 3 0_2 bin javac directory Launch the Command Prompt program on your computer Click Start gt Programs gt Command Prompt 4 Compile the program At the command prompt type javac ScpiSockTest java The directory path for the Java compiler must be specified For example C gt jdk1 3 0_02 bin javac ScpiSockTest java Run the program by typing java ScpiSockTest at the command prompt 6 Type exit at the command prompt to end the program Generating a CW Signal Using Java The following program example is available on the signal generator Documentation CD ROM as javaex txt TBR RRR IRI IOI CIO ko kk hok IOC OR IO II I IOI IO IO I IO II IO IO IO Ik PROGRAM NAME javaex txt Sample java program to talk to the signal generator via SCPI over sockets This program requires Java version 1 1 or later Save this code as ScpiSockTest java Compile by typing javac ScpiSockTest java Run by typing java ScpiSockTest The signal generator is set for 1 GHz and queried for its id string RRR III ke kk OIG ok koe k IO II ko kk IOI IO koe IO I IO ko kk II IO A Ik import java io import java net class ScpiSockTest public
114. the file name which must also include the file path BIN file name file nameGBIN user BIN file name Command Syntax Example The following command downloads a file that contains 34 bytes MEM DATA BIN new_file 2347 S 4 amp 07 8g Y9 7 Ru y3 _ gt 1 After execution of this command the signal generator creates a file in the Binary Bin directory memory catalog named new_file that contains 34 bytes For information on downloading block data see Downloading User Files on page 330 Selecting a Downloaded User File as the Data Source This section describes how to format SCPI commands for selecting a user file using commands from the GSM and Custom modulation formats While the commands shown come from only two formats the concept remains the same when making the data selection for any of the other real time modulation formats that accept user data To find the data selection commands for both framed and unframed data for the different modulation formats see the signal generator s SCPI Command Reference 1 For TDMA formats select either framed or unframed data RADio GSM BURSt ON OFF 1 0 ON 1 framed OFF 0 unframed Agilent Signal Generators Programming Guide 335 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D 2 Select the user file Unframed Data RADio CUSTom DATA BIT file name RADio CUSTom DATA BIN file name Framed Data
115. the problem either reduce the file size of the FIR file or delete unnecessary files from memory User FIR filter has too many coefficients PRIOR 220 Too M chdata The filter specification cannot have more than 1024 taps 2048 coefficients for a complex filter Data Requirements Data must be in ASCII format Downloads must be in list format Filters containing more symbols than the hardware allows 32 for real time modulation filters 512 for Arb Custom Modulation filters and 256 for Equalization filters will not be selectable for the configuration Agilent Signal Generators Programming Guide 381 Creating and Downloading User Data Files Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only 382 Agilent Signal Generators Programming Guide Symbols NET framework 363 Numerics 2 s complement data format 219 8757d GPIB addresses 116 pass thru commands 115 116 A abort function 80 address GPIB address 29 IP address 34 Agilent BASIC See HP BASIC esg global settings configuring 22 312 memory allocation non volatile memory 230 318 317 Pulse RF Blank configuring 312 setting GPIB address 30 volatile memory types 315 Waveform Download Assistant 258 web server on 15 IO Libraries Suite 5 40 version 15 0 6 44 8 44 72 mxg global settings configuration 21 312 memory allocation non volatile memory 229 317 318 317 setting GPIB address 29 v
116. the signal generator s Documentation CD ROM NOTE The State_Files cs example uses the ESG in the programming code but can be used with the PSG MXG or X Series signal generators 8 RRR III III IO ICICI IO IO ok IOI II III IO IO IO IO IO IO IO I IO I IO koe k I Ik de FileName State_Files cs TI This C example code saves and recalls signal generator instrument states The saved instrument state files are written to the local computer directory computer where the State_Files exe is located This is a console application that uses DLL importing to allow for calls to the unmanaged Agilent IO Library VISA DLL Agilent Signal Generators Programming Guide 365 Creating and Downloading User Data Files Save and Recall Instrument State Files The Agilent VISA library must be installed on your computer for this example to run Important Replace the visaOpenString with the IP address for your signal generator f BRR RE Kk k ke ERE RE RE RE RE RE KER EKER EKER EKER ER RE RE RE RE RE RE RE RE RE RRR RRR KEKE KEKE KERR ck ck ckck ck ck ckck ck ck ko using System using System IO using System Text using System Runtime InteropServices using System Collections using System Text RegularExpressions namespace State Files class MainApp Replace the visaOpenString variable with your instrument s address static public string visaOpenString TCPIP0 000 000 000 000 GPIBO 19 TCPI
117. the signal generator uses for Arb based waveforms For user data files volatile memory is commonly referred to as pattern ram memory PRAM Because the Custom and TDMA user files use volatile memory their maximum file size depends on the baseband generator BBG option and the amount of available 326 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D PRAM Volatile memory resides on the BBG Table 6 6 shows the maximum file sizes by modulation format and baseband generator option Table 6 6 Maximum User File Size Baseband Generator Option Modulation Format 001 601 002 602 a Custom 800 kB 3 2 MB 6 4 MB TDMA CDMA Gps 10 kB 10 kB 10 kB W CDMA a File size with no other files residing in volatile memory b File size is not affected by the BBG option For more information on signal generator memory see Signal Generator Memory on page 315 To determine how much memory is remaining in non volatile and volatile memory see Checking Available Memory on page 319 Determining Memory Usage for Custom and TDMA User File Data For Custom and TDMA user files the signal generator uses both non volatile and volatile PRAM waveform memory you download the user file to non volatile memory To determine if there is enough non volatile memory check the available non volatile memory and compare it to th
118. third argument of write 1 sends one byte to the signal generator The fourth argument of write 1 is the END of file indicator which the program uses to terminate the data download Selecting a Downloaded PRAM File as the Data Source The following steps show the process for selecting a PRAM file using commands from the GSM TDMA modulation format While the commands shown come from only one format the concept remains the same when making the data selection for any of the other real time modulation formats that support PRAM data To find the commands for Custom and the other TDMA formats refer to the SCPI Command Reference l For real time TDMA formats select unframed data RADio GSM BURSt STATe OFF 2 Select the data type RADio GSM DATA PRAM 3 Select the PRAM file RADio GSM DATA PRAM file name gt Because the command is file specific PRAM there is no need to include the file path with the file name 4 Configure the remaining signal parameters Agilent Signal Generators Programming Guide 353 Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D 5 Turn the modulation format on RADio GSM STATe On Modulating and Activating the Carrier Use the following commands to modulate the carrier and turn on the RF output For a complete listing of SPCI commands refer to the SCPI Command Reference FREQuency FIXed 1 8GHZ POWer LEVel 10 0
119. this procedure to calculate the volatile memory usage for a GSM signal with two active timeslots and two user binary files One user file 57 bytes is for a normal timeslot and another 37 bytes is for a custom timeslot 1 Determine the total number of bits per timeslot A GSM timeslot consists of 156 25 bits control and payload data 2 Calculate the number of bits per frame A GSM frame consists of 8 timeslots 8 x 156 25 1250 bits per frame 3 Determine how many bytes it takes to produce one frame in the signal generator The signal generator creates a 32 bit word for each bit in the frame 1 bit equals 4 bytes 4 x 1250 5000 bytes Each GSM frame uses 5000 bytes of PRAM memory 4 Analyze how many timeslots the user file data will fill A normal GSM timeslot TS uses 114 payload data bits and a custom timeslot uses 148 payload data bits The user file payload data for the normal timeslot contains 57 bytes 456 bits and the user file for the custom timeslot contains 37 bytes 296 bits Normal TS 456 114 4 timeslots Custom TS 296 148 2 timeslots NOTE Because there is an even number of bytes either a bit or binary file works in this scenario If there was an uneven number of bytes a bit file would be the best choice to avoid data discontinuity 5 Compute the number of frames that the signal generator will generate There is enough user file data for four normal timeslots and two custom timeslots so the signal
120. to either the factory default address conditions or to the manually set address conditions Press and release the LAN Reset hardkey once to reset the instrument to the factory default conditions with a default IP address of 169 254 9 16 If there is a DHCP server on the network the N5161A 62A will get an IP address from it first If there is no DHCP server on the network the the instrument will switch to Auto IP mode and assign the default IP address of 169 254 9 16 This is equivalent to sending the following SCPI commands SYSTem COMMunicate LAN DEFaults SYSTem COMMunicate LAN RESTart Press the LAN Reset hardkey for five seconds until the LAN LED blinks to reset the instrument to the manually set conditions If there are multiple N5161A 62A instruments operating on the same network one MS DOS and Visual Basic are registered trademarks of Microsoft Agilent Signal Generators Programming Guide 39 Using 10 Interfaces Using LAN instrument will use the default IP address value and the others will have randomly chosen IP address values If you have not manually set the IP addresses of your N5161A 62A instruments and you need to know the addresses turn each N5161A 62A instrument on one at a time to set the default IP address Then manually configure the IP address of each instrument using the Web Enabled interface as described in Using the Web Browser on page 11 Repeat this process for each N5161A 62A instru
121. unavailable 5 In the COMI or COM2 if selected properties set the following parameters N Bits per second 9600 must match signal generator s baud rate for more information refer to Setting Up the RS 232 Interface on page 65 N Data bits 8 e Parity None e Stop bits 1 e Flow Control None NOTE Flow control through the RTS line is driven by the signal generator For the purposes of this verification the controller PC can ignore this if flow control is set to None However to control the signal generator programmatically or download files to the signal generator you must enable RTS CTS hardware flow control on the controller Note that only the RTS line is currently used Software Flow Control using XON and XOFF is not supported Only RTS CTS hardware flow is supported 6 Go to the HyperTerminal window and select File gt Properties 7 Go to Settings gt Emulation and select VT100 8 Leave the Backscroll buffer lines set to the default value 9 Go to Settings gt ASCII Setup 10 Check the first two boxes and leave the other boxes as default values Once the connection is established enter the SCPI command IDN followed by Ctrl j in the HyperTerminal window The Ctrl j gt is the new line character on the keyboard press the Cntrl key and the j key simultaneously The signal generator should return a string similar to the following depending on model Agilent Technologies instrument model name and
122. values are all positive unsigned and the data is contained within 14 bits plus 2 bits for markers This means that the E443xB DAC has a smaller range e O negative full scale output 8192 0 volts 16383 positive full scale output Although the signal generator uses signed input values it accepts unsigned data created for the E443xB and converts it to the proper DAC values To download an EA443xB files to the signal generator use the same command syntax as for the E443xB models For more information on downloading E443xB files see Downloading E443xB Signal Generator Files on page 258 Scaling DAC Values The signal generator uses an interpolation algorithm sampling between the I Q data points when reconstructing the waveform For common waveforms this interpolation can cause overshoot which may exceed the limits of the signal process path s internal number representation causing arithmatic overload This will be reported as either a data path overload error MXG or a DAC over range error condition ESG PSG Because of the interpolation the error condition can occur even when all the I and Q values are within the DAC input range To avoid the DAC over range problem you must scale reduce the I and Q input values so that any overshoot remains within the DAC range Agilent Signal Generators Programming Guide 217 Creating and Downloading Waveform Files Understanding Waveform Data NOTE Whenever you interchange files b
123. where value is the sum of the decimal values of the bits you want to enable Example Enable bit 4 and bit 3 so that whenever either of those bits are set to 1 the Data Questionable Modulation summary bit of the Data Questionable Condition Register is set to 1 Send the command STAT QUES MOD ENAB 520 16 8 Query STATus QUEStionable MODulation ENABle Response Decimal value of the sum of the bits previously enabled with the STATus QUEStionable MODulation ENABle value command Agilent Signal Generators Programming Guide 203 Programming the Status Register System Status Groups Data Questionable Calibration Status Group NOTE Some bits in this status group do not apply to the N5161A 62A 81A 82A 83A E4428C E8257D E8663B and the E8663D and return zero when queried See Table 4 12 on page 205 for more information The Data Questionable Calibration Status Group is used to determine the specific event that set bit 8 in the Data Questionable Condition Register This group consists of the Data Questionable Calibration Condition Register the Data Questionable Calibration Transition Filters negative and positive the Data Questionable Calibration Event Register and the Data Questionable Calibration Event Enable Register 204 This is the named status register for the E4438C However not all signal generator models use all of the shown events i e some use only a subset of the E4438C s status registers
124. will cause ERROR 208 I O error n Identical to the I and Q sections above except vi a The I and Q data are interleaved b The buffer of I Q is twice as long as the I buffer was c The SCPI command uses WFM1 instead of ARBI and ARBQ bytesToSend numsamples 4 sprintf s d bytesToSend sprintf cmd mem data WFM1 FILE2 4 d d strlen s bytesToSend iwrite id cmd strlen cmd 0 0 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples iwrite id iqbuffer bytesToSend 0 0 iwrite id An 1 1 0 printf Loaded FILE2 using the E4438C E8267C and E8267D formatWin return 0 Calculating the RMS Voltage for a Waveform Programming Using C This example calculates the RMS voltage value of a waveform segment stored as 16 bit alternating I Q twos complement DAC values Refer to the User s Guide On the Documentation CD this example is named calculate rms data c txt NOTE For a short the value must be a 16 bit quantity For waveforms of 4 Gsa or more samples must be an int64 Internally the MXG ignores two or more zeros in a row when calculating RMS voltage values There is no interface version of this example in the Programming Examples chapter include lt math h gt ifndef WIN32 typedef long long int int64 typedef long long unsigned uint64 else WIN32 typedef __int64 int64 typedef unsigned _
125. 0 if count lt 1 ch EOF break End of file if ch tg ch gt 9 break unexpected char numDigits ch 0 Agilent Signal Generators Programming Guide 133 Programming Examples LAN Programming Interface Examples if numDigits read numDigits bytes into result string count recv sock result int numDigits 0 result count 0 null terminate numBytes atol result j if numBytes resultBytes 0 Loop until we get all the bytes we requested Each call seems to return up to 1457 bytes on HP UX 9 05 do int rcount rcount recv sock result int numBytes 0 resultBytes rcount result recount Advance pointer while resultBytes lt numBytes FOI IOI ok koe kk kk ko kk ko kk IOI IO IO IOI IOI IO IOI IO IO I a ke koe For LAN dumps there is always an extra trailing newline Since there is no EOI line For ASCII dumps this is great but for binary dumps it is not needed XORCkckckchckckckckckckckckckckckckckckck ck ckckckckckckckckck ckck ckck ckck ckck KERR ckckckckckckckckckckckckck ck k k if resultBytes numBytes char junk count recv sock amp junk 1 0 else indefinite block dump til we can an extra line feed do if recv line sock result maxLength NULL break if strlen result 1 amp amp result n break resultBytes strlen result result strlen result whi
126. 0 Mbps The FIR filter width is what determines the data rate The following table shows the maximum data rate for each modulation type Because the signal generator s maximum symbol rate is 50 Msps a modulation scheme that has only 1 bit per symbol is always processed in serial mode Modulation Type Bit Rate Range for Internal Data bit rate symbol rate x bits per symbol 16 Symbol Wide FIR Filter 32 Symbol Wide FIR Filter 64 Symbol Wide FIR Filter BPSK 2FSK MSK lbps 50Mbps lbps 25 Mbps lbps 12 5Mbps C4FM OQPSK 4FSK IS95 OQPSK QPSK P4DQPSK IS95 QPSK GRAYQPSK 4QAM 2bps 100Mbps Zbps 50Mbps 2bps 25Mbps D8PSK EDGE 8FSK 8PSK 3bps 150Mbps 3bps 75Mbps 3bps 37 5Mbps 16FSK 16PSK A4bps 200Mbps Abps 100Mbps Abps 50Mbps 16QAM Q32AM 5bps 250Mbps 5bps 125Mbps 5bps 62 5Mbps 64QAM 6bps 300Mbps 6bps 150Mbps 6bps 75Mbps 128QAM Tbps 350Mbps 7bps 175Mbps Tbps 87 5Mbps 256QAM 8bps 400Mbps 8bps 200Mbps 8bps 100Mbps The only external effect of the parallel mode is in the EVENT 1 output signal In serial and parallel mode the signal generator outputs a narrow pulse at the EVENT 1 connector But in parallel mode the output pulse width increases by a factor of bits per symbol wide as shown in the following figure Agilent Signal Generators Programming Guide 343 Creating and Downloading User Data Files Pat
127. 0 PRINT END 290 END Program Comments 10 Program file name 20 Sets the number of points in the waveform 30 Allocates integer data array for I and Q waveform points 40 Sets HP BASIC to use degrees for cosine and sine functions 50 Sets up first loop for I waveform points 60 Calculate and interleave I waveform points 70 End of loop 80 Sets up second loop for Q waveform points 90 Calculate and interleave Q waveform points 100 End of loop 120 Calculates number of bytes in I Q waveform 130 Opens an IO path to the signal generator using GPIB 7 is the address of the GPIB card in the computer and 19 is the address of the signal generator This IO path is used to send ASCII data to the signal generator 140 Opens an IO path for sending binary data to the signal generator 150 Creates an ASCII string representation of the number of bytes in the waveform 160 to 170 Finds the number of digits in Nbytes 190 Sends the first part of the SCPI command MEM DATA along with the name of the file data_file that will receive the waveform data The name data_file will appear in the signal generator s memory catalog 200 to 210 Sends the rest of the ASCII header 230 Sends the binary data Note that PSGb is the binary IO path 240 Sends an End of Line to terminate the transmission Agilent Signal Generators Programming Guide 307 Creating an
128. 00 pp oo oo oo SIGNAL GENERATOR 2 Set an active marker point on the first waveform point for marker one NOTE Select the same waveform selected in Playing the Waveform on page 255 Send the following SCPI commands SOURCe RADio ARB MARKer CLEar ALL WFM1 file name 1 SOURCe RADio ARB MARKer SET WFM1 file name 1 1 1 0 3 Compare the oscilloscope display to the plot of the I and Q data from the text file you created when you generated the data If the oscilloscope display and the I and Q data plots differ recheck your code For detailed information on programmatically creating and downloading waveform data see Creating Waveform Data on page 242 and Downloading Waveform Data on page 248 For information on the waveform data requirements see Waveform Data Requirements on page 213 Building and Playing Waveform Sequences The signal generator can be used to build waveform sequences This section assumes you have created the waveform segment file s and have the waveform segment file s in volatile memory The following SCPI commands can be used to generate and work with a waveform sequence For more information refer to the signal generator s SCPI Command Reference and User s Guide NOTE If you would like to verify the waveform sequence refer to Verifying the Waveform on page 256 256 Agilent Signal Generators Programming Guide Creating and Downloa
129. 00E 000 Press any key to continue_ AD An Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples Queries for Lan Using Sockets lanio c and getopt c perform the following functions establishes TCP IP connection to port 5025 resultant file descriptor is used to talk to the instrument using regular socket I O mechanisms maps the desired hostname to an internal form error checks queries signal generator for ID sets frequency on signal generator to 2 5 GHz sets power on signal generator to 5 dBm gets option letter from argument vector and checks for end of file EOF The following programming examples are available on the signal generator Documentation CD ROM as lanio c and getopt c FOI IOI ok IO III ko kk II IOI IO IOI II II ke kk IO I IO IOI IOI II IO I IO I IO ko k de Header lanio c 04 24 01 Revision 1 1 Date 10 24 01 PROGRAM NAME lanio c Description Functions to talk to an Agilent signal generator via TCP IP Uses command line arguments A TCP IP connection to port 5025 is established and the resultant file descriptor is used to talk to the instrument using regular socket I O mechanisms Examples Query the signal generator frequency anio xxX xxx xx x FREQ Query the signal generator power level anio xx xxx xx x POW Check for errors gets one error anio XX XXX XX X syst err Send a li
130. 023 is available for backwards compatibility i e for firmware versions A 01 50 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Using the Web Browser Modifying the Signal Generator Configuration NOTE Use Help with this Page for assistance with the Web Enabled interface 1 From the welcome page of the Web Enabled interface click View amp Modify Configuration to show the instrument s currently assigned IP address and other parameters Enter the new settings and click Save 3 Click Renew LAN Settings to cause the new settings to take effect Figure 1 2 View amp Modify Configuration 3 Agilent 167A NXG USOCODGCOS Microsett eal Explore Fle Edt View Foces Tous Hap O O didt Paw kan O 2 3 E DaB mDMS Hosiname SONS Senece Name Configuring your MXG Note You must cick Save before changes to parameters become effective Parameters marked with an esterisk also require thet you cick Renew LAN settings before changes tabe effect Factory Deteutta Gam Ss Cae Cees L Sez asy aeae Parameter Currently in use Edit Configuration ar mao a CATO Na The following 3 LAM parameters will be used if Config Type is MANUAL or if DHCP is unavailable IP Address E 141121 0490 Subnet Mask 2552552080 Default Gateway 141 121 883 Modity Configuration
131. 1 652 654 40 MB Standard 4 GB BBG 019 320 MB USB Flash Drive user determined UFD E4438C and E8267D 001 601 32 MB Standard 512 MB BBG 002 BBG 128 MB 005 Hard disk 6 GB 602 BBG 256 MB ae a The internal baseband generator speed upgrade Options 670 671 and 672 are option upgrades that require Option 651 and 652 to have been loaded at the factory refer to the Data Sheet for more information Any references to 651 652 or 654 are inclusive of 671 672 and 674 b For serial numbers MY4818xxxx US4818xxxx and SG4818xxxx the persistent memory value 512 MB c Options 001 and 002 apply to only the E4438C ESG Checking Available Memory Whenever you download a user data file you must be aware of the amount of remaining signal generator memory Table 6 5 shows to where each user data file type is downloaded and from which memory type the signal generator accesses the file data Information on downloading a user data file is located within each user data file section NOTE The Bit PRAM and State user data file types only apply to the E4438C with Option 001 002 601 or 602 and the E8267D with Option 601 or 602 The FIR filter file types only apply to the N5162A and N5182A with Option 651 652 or 654 E4438C with Option 001 002 601 or 602 and the E8267D with Option 601 or 602 Agilent Signal Generators Programming Guide 319 Creating and Downloading User D
132. 1 C using 262 HP Basic 304 MATLAB 288 Visual Basic 301 downloads PRAM data e4438c 344 E e443xb files downloading 258 261 formatting 217 259 programming examples 277 storing 259 programming examples 304 e8663b See Agilent psg e8663d See Agilent psg edit VISA config 9 EnableRemote 81 encryption downloading for extraction 238 236 extracting waveform data 237 238 I Q files 233 securewave directory agilent mxg only 233 Index esg 233 psg 233 waveform data 233 enter function 84 equalization filter 362 errors 24 40 ESE commands 177 esg See Agilent esg even number of samples 223 event enable register description 183 event registers description 183 example programs See programming examples 261 examples pass thru commands 115 save and recall 364 Telnet 50 external media See USB media external memory See USB media externally applied AC coupled FM signals generate using VISA and C 97 extract user file data 357 extracting PRAM files 355 F file size determining PRAM 348 minimum PRAM 349 PRAM 348 file types See data types files decryption 233 encryption 233 24 235 header information 221 233 large generating real time data 379 PRAM modifying 357 transfer methods 234 50 waveform download utilities 257 221 filter equalization 362 user equalization 362 filters See transition filters FIR 385 Index filter data CDMA modulation
133. 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 l Local control kockokeck ke koe koe koe koe koe koe koe koe koe koe I IRR RR RR RR RK OK OK OK OK OK OK OK OK OK ke Sig_gen 719 Declares a variable to hold signal generator address CLEAR Sig_gen Resets signal generator parser and clears any output LOCAL Sig_gen Places the signal generator in local mode REMOTE Sig_gen Places the signal generator in remote mode CLEAR SCREEN Clears the controllers display OUTPUT Sig_gen RST Places the signal generator in a defined state The following print statements are user prompts PRINT The signal generator should now be in remote PRINT Verify that the R and L annunciators are visable PRINT gusce Press Continue PAUSE LOCAL LOCKOUT 7 Puts the signal generator in LOCAL LOCKOUT mode PRINT Prints user prompt messages PRINT Signal generator should now be in LOCAL LOCKOUT mode PRINT PRINT Verify that all keys including Local except Contrast keys have no effect PRINT PRINT ogg gare Press Continue PAUSE PRINT LOCAL 7 Returns signal generator to Local control The following print statements are user prompts PRINT Signal generator should now be in Local mode PRINT PRINT Verify that the signal generator s front panel keyboard is functional PRINT PRINT To re start this program press RUN E
134. 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 Programming Examples GPIB Programming Interface Examples KKK KKK KK KKK KKK KKK KKK KK KKK KKK KR KKK KK KK KK KK KK KR KK KK KK KK KKK KK RK KK KK KK KKK KKK kck KK ckckok Sig_gen 719 Declares a variable to hold the signal generator s address LOCAL Sig_gen Places the signal generator into Local mode CLEAR Sig_gen Clears any pending data I O and resets the parser REMOTE 719 Puts the signal generator into remote mode CLEAR SCREEN Clears the controllers display REMOTE 719 OUTPUT Sig gen RST Places the signal generator into a defined state PRINT The signal generator should now be in REMOTE PRINT PRINT Verify that the remote R annunciator is on Press the Local key PRINT on the front panel to return the signal generator to local control PRINT PRINT Press RUN to start again END Program ends Interface Check Using NI 488 2 and C This example uses the NI 488 2 library to verify that the GPIB connections and interface are functional Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file The following program example is available on the signal generator Documentation CD ROM as niex1 cpp A FOR kk kk ko k oko kk kk ko ko k ck ok Ck ok ko kk hok k ko kc koe k ko kk ok ck kk E kk ok koe kk o kk ek koe k IOI IO IO I IOI IO I IO I kde LS T LE
135. 157 Interface Check Using VISA and C on page 158 Queries Using HP Basic and RS 232 on page 160 e Queries for RS 232 Using VISA and C on page 162 Before Using the Examples Before using the examples On the signal generator select the following settings Baud Rate 9600 must match computer s baud rate e RS 232 Echo Off Use an RS 232 cable that is compatible with Table 2 2 on page 66 Interface Check Using HP BASIC This example program causes the signal generator to perform an instrument reset The SCPI command RST will place the signal generator into a pre defined state The serial interface address for the signal generator in this example is 9 The serial port used is COMI Serial A on some computers Refer to Using RS 232 ESG and PSG Only on page 63 for more information Watch for the signal generator s Listen annunciator L and the remote preset message on the front panel display If there is no indication check that the RS 232 cable is properly connected to the computer serial port and that the manual setup listed above is correct If the compiler displays an error message or the program hangs it is possible that the program was typed incorrectly Press the signal generator s Reset RS 232 softkey and re run the program Refer to Agilent Signal Generators Programming Guide 157 Programming Examples RS 232 Programming Interface Examples ESG PSG Only If You Have Problems o
136. 168 through Figure 4 6 on page 173 for register location and names 2 Send the unique SCPI query that reads that register 3 Examine the bit to see if the condition has changed Determining What to Monitor You can monitor the following conditions current signal generator hardware and firmware status whether a particular condition bit has occurred Monitoring Current Signal Generator Hardware and Firmware Status To monitor the signal generator s operating status you can query the condition registers These registers represent the current state of the signal generator and are updated in real time When the condition monitored by a particular bit becomes true the bit sets to 1 When the condition becomes false the bit resets to O Monitoring Whether a Condition Bit has Changed The transition registers determine which bit transition condition change should be recorded as an event The transitions can be positive to negative negative to positive or both To monitor a certain condition enable the bit associated with the condition in the associated positive and negative registers Once you have enabled a bit through the transition registers the signal generator monitors it for a change in its condition If this change in condition occurs the corresponding bit in the event register will be set to 1 When a bit becomes true set to 1 in the event register it stays set until the event register is read or is cleared You can th
137. 1A 82A 83A with firmware gt A 01 50 A license may be required to enable this feature and to download firmware versions gt A 01 50 For information on new firmware releases go to http www agilent com find upgradeassistant e Programming and Software Hardware Layers on page 2 Interfaces on page 3 e IO Libraries and Programming Languages on page 4 e Using the Web Browser on page 11 e Preferences on page 20 Error Messages on page 24 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Programming and Software Hardware Layers Programming and Software Hardware Layers Agilent X Series MXG ESG PSG signal generators support the following interfaces Instrument Interfaces Supported Agilent X Series GPIB LAN and USB 2 0 Agilent MXG GPIB LAN and USB 2 0 Agilent PSG GPIB LAN and ANSI EIA232 RS 232 serial connection Agilent ESG GPIB LAN and ANSI EIA232 RS 232 serial connection a The PSG s AUXILIARY INTERFACE connector is compatible with ANSI EIA232 RS 232 serial connection but GPIB and LAN are recommended for making faster measurements and when downloading files Refer to Using RS 232 ESG and PSG Only on page 63 and the User s Guide Use these interfaces in combination with IO libraries and programming languages to remotely control a signal generator Figure 1 1 uses GPIB as an example of the relationships between the interface IO libraries
138. 2 I bytes and 2 Q byt char iqbuffer NUMSAMPLES 4 Interleave I and Q and swap bytes from litt endian order to big endian order for index 0 index numsamples index int ivalue idata index int qvalue qdata index iqbuf fer index 4 ivalue gt gt 8 amp OxFF iqbuffer index 4 1 ivalue amp OxFF iqbuffer index 4 2 qvalue gt gt 8 amp OxFF iqbuffer index 4 3 qvalue amp OxFF ys es le high byte of i low byte of i high byte of q low byte of q Big Endian order data uncomment the following lines of code Interleave the I and Q data short igbuffer NUMSAMPLES 2 for index 0 index lt numsamples index t igbuffer index 2 idata index igbuffer index 241 qdata index Open a connection to write to the instrument INST id iopen instOpenString if id Agilent Signal Generators Programming Guide Big Big Big Big Big Big endian endian endian endian endian endian order order order order order order uncomment uncomment uncomment uncomment uncomment uncomment this this this this this this line line line line line line 269 Creating and Downloading Waveform Files Programming Examples fprintf stderr iopen failed s n instOpenString return 1 Declare variables to hold portions of the SCPI command int bytesToSend char
139. 220 OUTPUT Sig gen RST Places the signal generator into a defined state Interface Check Using NI 488 2 and C This portion of the example program Interface Check Using NI 488 2 and C on page 32 uses the NI 488 2 library to verify that the GPIB connections and interface are functional The following program example is available on the signal generator Documentation CD ROM as niexl cpp For the full text of this program refer to Interface Check Using NI 488 2 and C on page 85 or to the signal generator s documentation CD ROM include stdafx h include lt iostream gt include windows h include Decl 32 h using namespace std int GPIBO 0 Board handle Addr4882_t Address 31 Declares an array of type Addr4882_t int main void int sig Declares a device descriptor variable sig ibdev 0 19 0 13 1 0 Aquires a device descriptor ibclr sig Sends device clear message to signal generator ibwrt sig RST 4 Places the signal generator into a defined state 32 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN Using LAN The Agilent X Series and MXG are capable of 100Base T LAN communication The ESG PSG and E8663B are designed to connect with a 10Base T LAN Where auto negotiation is present the ESG PSG and E8663B can connect to a 100Base T LAN but communicate at 10Base T speeds For more information refer to http www ieee org The signa
140. 3 enter the following command on the command line telnet myInstrument 5023 When you connect to the signal generator the UNIX window will display a welcome message and a SCPI command prompt The instrument is now ready to accept your SCPI commands As you type SCPI commands query results appear on the next line When you are done break the Telnet connection using an escape character For example Ctrl where the control key and the are pressed at the same time The following example shows Telnet commands telnet myinstrument 5023 Trying Connected to signal generator Escape character is Agilent Technologies E44xx SN US00000001 Firmware Hostname your instrument IP XXX XX XXX XXX SCPI gt Using FTP FTP allows users to transfer files between the signal generator and any computer connected to the LAN For example you can use FTP to download instrument screen images to a computer When logged onto the signal generator with the FTP command the signal generator s file structure can be accessed Figure 2 8 shows the FTP interface and lists the directories in the signal generator s user level directory NOTE File access is limited to the signal generator s user directory 50 Agilent Signal Generators Programming Guide Figure 2 8 FTP Screen Dx Command Prompt ftp 000 000 00 000 lt C gt Copyrights 1985 1996 Microsoft Corp C gt ftp 000 000 00 000 connected to 000 000 00 000 220 Agilent
141. 31 Declares a variable of type Addr4882_t int main int sig Declares variable to hold interface descriptor sig ibdev 0 19 0 13 1 0 Opens and initialize a device descriptor ibclr sig Sends GPIB Selected Device Clear SDC message ibwrt sig RST 4 Places signal generator in a defined state cout lt lt The signal generator should now be in REMOTE The remote mode R endl cout lt lt annunciator should appear on the signal generator display endl cout Press Enter to continue lt lt endl cin ignore 10000 n SendIFC GPIBO Resets the GPIB interface Address 0 19 Signal generator s address Address 1 NOADDR Signifies end element in array Defined in DECL 32 H SetRWLS GPIBO Address Places device in Remote with Lockout State cout lt lt The signal generator should now be in LOCAL LOCKOUT Verify that all keys endl cout including the Local key are disabled Contrast keys are not affected lt lt endl cout Press Enter to continue lt lt endl cin ignore 10000 n ibloc sig Returns signal generator to local control cout lt lt endl cout lt lt The signal generator should now be in local mode n return 0 7 Agilent Signal Generators Programming Guide 89 Programming Examples GPIB Programming Interface Examples Queries Using HP Basic and GPIB This example demonstrates signal generator query commands
142. 32767 SIN I 360 Num points 70 NEXT I 80 FOR I 2 TO Num_points 2 STEP 2 90 Int_array I INT 32767 COS I 360 Num_points 100 NEXT I 110 PRINT Data Generated 120 Nbytes 4 Num_points 130 ASSIGN PSG TO 719 140 ASSIGN PSGb TO 719 FORMAT MSB FIRST 150 Nbytes VALS Nbytes 160 Ndigits LEN Nbytes Windows and MS Windows are U S registered trademarks of Microsoft Corporation 304 Agilent Signal Generators Programming Guide 170 180 190 200 210 220 230 240 250 260 270 280 290 Creating and Downloading Waveform Files Programming Examples Ndigits VALS Ndigits WAIT 1 OUTPUT OUTPUT OUTPUT WAIT 1 OUTPUT OUTPUT ASSIGN ASSIGN PRINT PRINT END PSG USING K MMEM DATA WFM1 data_file PSG USING K Ndigits PSG USING K Nbytes PSGb Int_array PSG END PSG TO PSGb TO U END Program Comments 10 Program file name 20 Sets the number of points in the waveform 30 Allocates integer data array for I and Q waveform points 40 Sets HP BASIC to use degrees for cosine and sine functions 50 Sets up first loop for I waveform points 60 Calculate and interleave I waveform points 70 End of loop 80 Sets up second loop for Q waveform points 90 Calculate and interleave Q waveform points 100 End of loop 120 Calculates number of bytes in I Q waveform 130 Opens an IO path to the signal ge
143. 37 and Configuring the DHCP LAN ESG PSG on page 38 If you are using the Windows NT platform refer to Windows NT and Agilent IO Libraries M and Earlier on page 8 for information on using Agilent IO Libraries versions M or earlier to configure the interface For Agilent IO library version J 01 0100 the Identify devices at run time check box must be unchecked Refer to Figure 2 4 44 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN Figure 2 4 Show Devices Form Agilent IO Library version J 01 0100 Show Devices Cancel Devices present on interface GPIBT Add device Remove device Auto Add devices E pad atas _Bemove device Lo Add devices Using Sockets LAN NOTE Users with Windows XP operating systems and newer can use this section to better understand how to use the signal generator with port settings For more information refer to the help software of the IO libraries being used Sockets LAN is a method used to communicate with the signal generator over the LAN interface using the Transmission Control Protocol Internet Protocol TCP IP A socket is a fundamental technology used for computer networking and allows applications to communicate using standard mechanisms built into network hardware and operating systems The method accesses a port on the signal generator from which bidirectional communication with a network computer can be established Sockets
144. 4 MSa 5 GB 009 7 5 GSa 30 GB USB Flash Drive user determined UFD N5162A 82A 651 652 654 BBG 8 MSa 40 MB Standard N5182A 800 MSa 4 GB 019 BBG 64 MSa 320 MB USB Flash Drive user determined UFD a On the N5162A 82A 512 bytes is reserved for each waveform s header file i e The largest waveform that could be played with a N5162A 82A with Option 019 320 MB is 320 MB 512 bytes 319 999 488 MB b For serial numbers MY4818xxxx US4818xxxx and SG4818xxxx the persistent memory value 512 MB Volatile Memory and Non Volatile Memory E4438C and E8267D Only NOTE When considering volatile memory it is not necessary to keep track of marker data as this memory is consumed automatically and proportionally to the I Q data created i e 1 marker byte for every 4 bytes of I Q data On the E4438C and E8267D the fixed file system overhead on the signal generator is used to store directory information When calculating the available volatile memory for waveform files it is important to consider the fixed file system overhead for the volatile memory of your signal generator Table 5 5 Fixed File System Overhead Volatile WFM1 Memory and Fixed File Overhead Option Size Maximum Memory Bytes Used for Memory Available Number of Fixed File System for Waveform Files Overhead Samples MaxNumFiles 16 44 x MaxNumFiles E4438C and E8267D Agilent Signal Gener
145. 4 Unused These bits are always set to 0 15 Always 0 a In the N5161A 81A E4428C E8257D E8663B and the E8663D this bit is set to 0 b In the N5161A 81A and N5162A 82A this bit is set to 0 Query STATus QUEStionable CALibration CONDition Response The decimal sum of the bits set to 1 Data Questionable Calibration Transition Filters negative and positive The Data Questionable Calibration Transition Filters specify which type of bit state changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus QUEStionable CALibration NTRansition value negative transition or STATus QUEStionable CALibration PTRansition value positive transition where value is the sum of the decimal values of the bits you want to enable Queries STATus QUEStionable CALibration NTRansition STATus QUEStionable CALibration PTRansition Data Questionable Calibration Event Register The Data Questionable Calibration Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATus QUEStionable CALibration EVENt Agilent Signal Generators Programming Guide 205 Programming the Status Register System Status Groups Data Questionable Calibration Event Enable
146. 44 448444 r EOE EHLERS v RR HH 145 Sockets LAN Programming Using Perl 0 0c eee eee RR R eens 147 TCP IP LAN Programming Using Matlab n cs a aR 46 86h BARKS ROR ROBE 148 RS 232 Programming Interface Examples ESG PSG Only llle 157 Before Using the Examples krenes ees abe eee Oe XR eRe aS OBOE RHE RSE GES HEE 157 Interface Check Using HP BASIC 22 54 5644 664 Sy HHH ORS EE REY OR HOH YE 157 Interface Check Using VISA and Gag cp 342 62 AEE BAR CABELAS EES CREEL ER ARGS 158 Queries Using HP Basic atid RS lt 232 24644 eb ed 8999 9 9 RERD ERE RO Sk ROEM 160 Queries for RS 252 Using VISA and Cin saci cc aed vad wed drid G3 RE RA as 162 Programming the Status Register System VION gonna bE eRe eee Pek eb ae Sh aaa dee CSS xeu qo d eee eke de 165 Overall Status Byte Register Systems 22 167 Status Resister Bit Values 42 34 33 44 osos d RA eR A RR BOR RR AO RB PERE ERE REA ERE ED 174 Example Enable a Register 4233 3404904 dedob ob 44822835 AUR UEM Ecke od de qe de 174 Example Query A Redster 6 2 4 625 544 446 Ra GREG RGORGdg RREqo Ring 4dg xu 174 Accessing Status Register InfOPmotion 444 64 bee OE REGE RE d ES hd y ROER d EY S 175 Determuning What to Monitor eee 49e 33494999 REG 3 4 EOS 175 Deciding How to Monitor 4o ede RA REOS AUR A REEERE ORO LE Roe UR RC eR AREA EELS 175 Status Register SCPI Commands lt ss sea K rao o o Hee ORO ESR ESR EN C P S 177 Stave Dye GEIOU 24 4 ser PCR RE E Rh S ee gud W
147. 4438C and E8267D Line Code Description Download User File Data 1 Define an integer variable bytesToSend to store the number of bytes to send to the signal generator 2 Calculate the total number of bytes and store the value in the integer variable defined in line 1 3 Create a string large enough to hold the bytesToSend value as characters In this code string s is set to 20 bytes 20 characters one character equals one byte 4 Create a string and set its length cmd 200 to hold the SCPI command syntax and parameters In this code we define the string length as 200 bytes 200 characters 5 Store the value of bytesToSend in string s For example if bytesToSend 2000 s 2000 sprintf is a standard function in C which writes string data to a string variable 6 Store the SCPI command syntax and parameters in the string cmd The SCPI command prepares the signal generator to accept the data e strlen is a standard function in C which returns length of a string If bytesToSend 2000 then s 2000 strlen s 4 so cmd MEM DATA BIN FILE1 42000 7 Send the SCPI command stored in the string cmd to the signal generator contained in the variable id e iwwrite is a SICL function in Agilent IO library which writes the data block data specified in the string cmd to the signal generator The third argument of iwrite strlen cmd informs the signal generator of the number of
148. 6k 1024 MB 2048 MB 32K 2048 MB 4096 MB 64K 4096 MB 8192 MB 128K 8192 MB 16384 MB 256K Non Volatile Memory ESG and PSG The signal generator allocates non volatile memory in blocks of 512 bytes For files less than or equal to 512 bytes the file uses only one block of memory For files larger than 512 bytes the signal generator allocates additional memory in multiples of 512 byte blocks For example a file that has 21 538 bytes consumes 43 memory blocks 22 016 bytes Memory Size For the E4438C and E8267D the maximum volatile memory size for user data is less than the maximum size for waveform files This is because the signal generator permanently allocates a portion of the volatile memory for waveform markers The values in Table 6 4 is the total amount of memory after deducting the waveform marker memory allocation The amount of available memory volatile and non volatile varies by signal generator option and the size of the other files that share the memory The baseband generator BBG options contain the volatile memory Table 6 4 shows the maximum available memory assuming that there are no other files residing in memory 318 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Signal Generator Memory Table 6 4 Maximum Signal Generator Memory Volatile WFM1 PRAM Non Volatile NVWFM Memory Memory Option Size Option Size N5162A and N5182A 65
149. 81A N5183A E8663B 63D E4428C and the E8257D b Waveform sequences are always in non volatile memory Non volatile Storage memory where files survive cycling of the signal generator power Files remain until overwritten or deleted Refer to Table 6 2 on page 316 for the file types that share this memory Agilent Signal Generators Programming Guide 315 Creating and Downloading User Data Files Signal Generator Memory Table 6 2 Signal Generators and Non Volatile Memory Types Non Volatile Memory Type Model of Signal Generator N5162A N5182A E4438C with E8267D Option All Other with Option Option 001 601 or 602 models 651 652 or 654 002 601 or 602 IQ x x x Marker x x x File header x x x Sweep List x X x User PRAM x x User Binary x x x User Bit x x User FIR x x x Instrument State x x x x Waveform Sequences x x x multiple I Q files played together a N5161A N5181A N5183A E8663B 63D E4428C and the E8257D The following figure shows the signal generator s directory structure for the user data files 316 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Signal Generator Memory Root directory Agilent X Series and MXG Only Internal LJ Storage media i e Nonvolatile memory i Volatile memory directory DOOD CJ m USER B
150. 88 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Baseband Operation Status Group NOTE This status group does not apply to the E4428C E8257D E8663B and the E8663D and if queried returns zero See Table 4 7 on page 190 for more information This status group does not apply to the N5161A 62A 81A 82A 83A If queried the signal generator will not respond The Baseband Operation Status Group is used to determine the specific event that set bit 10 in the Standard Operation Status Group This group consists of the Baseband Operation Condition Register the Baseband Operation Transition Filters negative and positive the Baseband Operation Event Register and the Baseband Operation Event Enable Register This is the named status register for Baseband 1 Busy the E4438C Baseband 1 Communicating However not all signal generator Unused models use all of Unused the shown events Unused i e some use only a subset of the Unused E4438C s status Unused registers Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Conon PM on a 14 13 12 11 10987654321 EEEREETITETTET aseband Operation Positive er E aa 13 12 11 109876543210 pd dm EMEEMEEZRZZZEZZEZE Negative cin LLL ransition Filter R Y v Y VY Y vtt v vv v vo Event Register UZ i 1211109876543210 mal LLLI amp RTTE 15 14 13 12 11 10987 654 32 1 0 Il T I T L
151. 9 bits and bytes 213 216 commands for downloading and extracting 232 241 330 339 242 DAC input values 216 data requirements 213 encrypted data 229 233 238 213 232 236 237 I and Q interleaving 219 LSB and MSB 214 saving to a text file for review 245 waveform download utilities differences 257 waveform downloads advanced programming languages using 251 download utilities using 257 HP BASIC using 304 309 memory 226 allocation 228 317 size 230 318 volatile and non volatile 226 samples 223 249 223 troubleshooting files 311 392 using advanced programming languages 251 with Visual Basic 6 0 301 waveform files creating 211 downloading 211 waveform generation C 262 HP Basic using 304 MATLAB using 284 Visual Basic 6 0 using 299 waveforms loading 254 playing 254 sequences building 256 verifying 254 347 W CDMA modulation data FIR filter See FIR web server Agilent mxg 15 communicating with 11 esg 15 internal 338 Windows 2000 48 6 98 5 ME 5 NT 5 8 Vista Business 6 XP 6 48 WriteIEEEBlock 301 Index 393 Index 394
152. A and C on page 120 e Sockets LAN Programming and C on page 122 e Sockets LAN Programming Using Java on page 145 e Sockets LAN Programming Using Perl on page 147 e TCP IP LAN Programming Using Matlab on page 148 For additional LAN programming examples that work with user data files refer to Save and Recall Instrument State Files on page 363 VXI 11 Programming The signal generator supports the VXI 11 standard for instrument communication over the LAN interface Agilent IO Libraries support the VXI 11 standard and must be installed on your computer before using the VXI 11 protocol Refer to Using VXI 11 on page 44 for information on configuring and using the VXI 11 protocol The VXI 11 examples use TCPIPO as the board address Using VXI 11 with GPIB Programs The GPIB programming examples that use the VISA library and are listed in GPIB Programming Interface Examples on page 80 can be easily changed to use the LAN VXI 11 protocol by changing the address string For example change the GPIB 19 INSTR address string to TCPIP hostname INSTR where hostname is the IP address or hostname of the signal generator The VXI 11 protocol has the same capabilities as GPIB See the section Setting Up the LAN Interface on page 34 for more information NOTE To communicate with the signal generator over the LAN interface you must enable the VXI 11 SCPI service For more information refer to Confi
153. ANALYZER Detector scaler netwk pc Agilent Signal Generators Programming Guide 115 Programming Examples GPIB Programming Interface Examples GPIB Address Assignments Figure 3 1 describes how GPIB addresses should be assigned for sending pass thru commands These are the same addresses used in Example 3 1 Table 3 1 Instrument GPIB Key Presses Description Address PSG E8663B 19 Press Utility gt GPIB RS 232 LAN gt GPIB Address gt 19 gt Enter 8757D 16 Press LOCAL gt 8757 gt 16 gt Enter 8757D Sweeper 19 This address must match the PSG Press LOCAL gt SWEEPER gt 19 gt Enter Pass Thru 17 The pass thru address is automatically selected by the 8757D by inverting the last bit of the 8757D address Refer to the 8757D documentation for more information Verify that no other instrument is using this address on the GPIB bus Example Pass Thru Program Example 3 1 on page 116 is a sample Agilent BASIC program that switches the 8757D to pass thru mode allowing you to send operating commands to the PSG After the program runs control is given back to the network analyzer The following describes the command lines used in the program Line 30 PT is set to equal the source address C1 is added but not needed to specify the channel Lines 40 90 The END statement is required to complete the language transition Lines 50 100 A WAIT statement is recommended after a language change to
154. Agilent Signal Generators Programming Guide 323 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Even though the signal generator views the downloaded data on a bit basis it groups the data into bytes and when the designated number of bits is not a multiple of 8 bits the last byte into one or more 4 bit nibbles To make the last nibble the signal generator adds bits with a value of zero The signal generator does not show the added bits in the bit editor and ignores the added bits when it modulates the data onto the signal but these added bits do appear in the hex value displayed in the bit file editor The following example which uses the same three bytes of data further demonstrates how the signal generator displays the data when only two bits of the last byte are part of the bits of interest SCPI command to download the data MEM DATA BIT Sbyte 18 13Z amp x Designated 18 bits Downloaded Data 010110100010011001 11100 0 p EEXEEELTTEETERET EI Jiss DENT MSB Y Y Byte 1 Byte 2 Byte 3 Hex Value 5A 26 78 As Seen in the Signal Generator s Bit File Editor FREQUENCY LITUDE Added bits 4 000 000 000 00 s ie 136 00 wm as seen in heh Designated number of bits 3 Dis ex vayg Hex value changes to 5A264 J Bit File Editor Pos 0 e Cag n Offset i Designated bits 5A 26 4 As Seen in a Hex Editor Designated number of bits hex value 18 decimal
155. Agilent Signal Studio software product you can use the FTP process and the securewave directory or SCPI commands to extract the encrypted file to the non volatile memory on the signal generator Refer to File Transfer Methods on page 234 Encrypted 1 0 Files and the Securewave Directory The signal generator uses the securewave directory to perform file encryption extraction and decryption downloads The securewave directory is not an actual storage directory but rather a portal for the encryption and decryption process While the securewave directory contains file names these are actually pointers to the true files located in signal generator memory volatile or non volatile When you download an encrypted file the securewave directory decrypts the file and unpackages the contents into its file header I Q data and marker data When you extract a file the securewave directory packages the file header I Q data and marker data and encrypts the waveform data file When you extract the waveform file I Q data file it includes the other two files so there is no need to extract each one individually The signal generator uses the following securewave directory paths for file extractions and encrypted file downloads Volatile user bbg I securewanve file name or swufm file name Non volatile user securewave or snvwfml file name NOTE To extract files other than user created I Q files and to download encrypted files you must u
156. Agilent Technologies Signal Generators E4428C 38C ESG RF E8663B E8663D PSG RF Analog N5161A 62A 81A 82A MXG RF N5171B 72B 81B 82B X Series E8257D 67D PSG Microwave N5183A MXG Microwave Programming Guide With Remote Operation and File Downloads EE Agilent Technologies Notices Agilent Technologies Inc 2006 2012 No part of this manual may be reproduced in any form or by any means including elec tronic storage and retrieval or translation into a foreign language without prior agree ment and written consent from Agilent Technologies Inc as governed by United States and international copyright laws Manual Part Number 8251 90355 Edition October 2012 Printed in USA Agilent Technologies Inc 3501 Stevens Creek Blvd Santa Clara CA 95052 USA Warranty The material contained in this docu ment is provided as is and is sub ject to being changed without notice in future editions Further to the max imum extent permitted by applicable law Agilent disclaims all warranties either express or implied with regard to this manual and any information contained herein including but not limited to the implied warranties of merchantability and fitness for a par ticular purpose Agilent shall not be liable for errors or for incidental or consequential damages in connec tion with the furnishing use or per formance of this document or of any information contained herein Should Agilent and th
157. BIT or BIN directory At the ftp prompt type bye 7 At the command prompt type exit Understanding Framed Transmission For Real Time TDMA Specifying a user file as the data source for a framed transmission provides you with an easy method to multiplex real data into internally generated TDMA framing The user file fills the data fields of the active timeslot in the first frame and continue to fill the same timeslot of successive frames as long as there is more data in the file with enough bits to fill the data field This functionality enables a communications system designer to download and modulate proprietary data sequences specific PN sequences or simulate multiframe transmission such as those specified by some mobile communications protocols As the example in the following figure shows a GSM multiframe transmission requires 26 frames for speech Figure 6 1 GSM Multiframe Transmission S CLINI Tm TTT Speech MultiFrame TCH 26 Frames 32 500 bits 120 ms LY TII HT Frame 8 Timeslots 1250 bits 4 615 ms tso e TS2 133 tsa TS5 Iss s7 cem Normal GSM Timeslot s 57 26 1 ls 8 25 156 25 bits 576 92 us Tail Data Steal Steal Data Tail Guard Bits Field 1 Bit Bit Field 42 Bits Period Midamble When you select a user file as the data source for a framed transmission the signal generator s firmware loads PRAM with the framing protocol of the active TDMA f
158. Before you can communicate and control the signal generator you must have an IO library installed on your computer The Agilent IO libraries are included on an Automation Ready CD with your signal generator and Agilent GPIB interface board or they can be downloaded from the Agilent website http www agilent com Agilent Signal Generators Programming Guide Getting Started with Remote Operation IO Libraries and Programming Languages CAUTION For long strings of commands and waveform downloads upgrading to Agilent IO Libraries 15 0 and above can decrease RS 232 performance potentially resulting in an Error 310 NOTE To learn about using IO libraries with Windows XP or newer operating systems refer to the Agilent IO Libraries Suite s help located on the Automation Ready CD that ships with your signal generator Other sources of this information can be found with the Agilent GPIB interface board s CD or downloaded from the Agilent website http www agilent com To better understand setting up Windows XP operating systems and newer using PC LAN port settings refer to Chapter 2 Agilent IO Libraries Suite The Agilent IO Libraries Suite replaces earlier versions of the Agilent IO Libraries Agilent IO Libraries Suite does not support Windows NT If you are using the Windows NT platform you must use Agilent IO Libraries version M or earlier Windows 98 and Windows ME are not supported in the Agilent IO Libraries Suite versi
159. Byte Bit Function Value Comments 0 Data 0 1 This is the data payload bit It is unspecified when burst bit 2 is set to 0 1 Reserved 0 Always 0 2 Burst 0 1 1 RF on 0 RF off For non bursted non TDMA systems to have a continuous signal set this bit to 1 for all bytes For framed data set this bit to 1 for on timeslots and 0 for off timeslots 3 Reserved 0 Always 0 4 Reserved 1 Always 1 5 Reserved 0 Always 0 6 EVENTI 0 1 To have the signal generator output a single pulse at the EVENT 1 connector set this bit Output to 1 Use this output for functions such as a triggering external hardware to indicate when the data pattern begins and restarts or creating a data synchronous pulse train by toggling this bit in alternate bytes 7 Pattern Reset 0 1 0 7 continue to next sequential memory address 1 end of memory and restart memory playback This bit is set to 0 for all bytes except the last byte of PRAM To restart the pattern set the last byte of PRAM to 1 380 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only User FIR Filter Coefficient File Download Problems Table 6 21 User FIR File Download Trouble Symptoms and Causes Symptom Possible Cause There is not enough memory available for the FIR coefficient file being downloaded ERROR 321 Out of memory To solve
160. Char Used for byte swapping bool PC true Set flag as appropriate double phaseInc 2 0 3 141592654 cycles points double phase 0 tot ay Er 03 for i 0 i points i phase i phaseInc Iwave i cos phase Qwave i sin phase ff 2 7 Save waveform in internal format y de dede e de e ne jede ee e e ee e ee e e ee ee oe e e L Convert the I and Q data into the internal arb format The internal arb format is a single waveform containing interleaved IQ data The I Q data is signed short integers 16 bits The data has values scaled between 32767 where DAC Value Description 32767 Maximum positive value of the DAC 0 Zero out of the DAC 32767 Maximum negative value of the DAC The internal arb expects the data bytes to be in Big Endian format This is opposite of how short integers are saved on a PC Little Endian Agilent Signal Generators Programming Guide 263 Creating and Downloading Waveform Files Programming Examples For this reason the data bytes are swapped before being saved Find the Maximum amplitude in I and Q to normalize the data between 1 maxAmp Iwave 0 minAmp Iwave 0 for i 0 i points i if maxAmp Iwave i maxAmp Iwave il else if minAmp Iwave i minAmp Iwave i if maxAmp Qwave i maxAmp Qwave il else if minAmp gt Qwave il minAmp Qwave il maxAmp fabs maxAmp
161. Chronizing Unused Unused Always Zero 0 Gonditon Regio BEBEREEZEEZZZZZEERE g Standard Operation Positive 15 14 13 12 111009 87 654 32 1 0 Transition Filter st PY VY VY VV YVYY tv v vi andard Operation ingre LLL Se my wc m Standard Operation TTT T Een x 15 1413 12 31 10 98 76 54 32 1 0 nable Register To Status Byte Register Bit 7 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Standard Operation Condition Register The Standard Operation Condition Register continuously monitors the hardware and firmware status of the signal generator Condition registers are read only Table 4 6 Standard Operation Condition Register Bits Bit Description 0 I Q Calibrating A 1 in this position indicates an I Q calibration is in process 1 Settling A 1 in this bit position indicates that the signal generator is settling 2 Unused This bit position is always set to 0 3 Sweeping A 1 in this bit position indicates that a sweep is in progress 4 Measuring A 1 in this bit position indicates that a bit error rate test is in progress RY Waiting for Trigger A 1 in this bit position indicates that the source is in a wait for trigger state When option 300 is enabled a 1 in this bit position indicates that TCH PDCH synchronization is established and waiting for a trigger to start measurements
162. Creating and Downloading Waveform Files return 0 7 if fseek file 0 SEEK_END lt 0 fprintf stderr Cannot lseek to the end of file n return 0 long lenToSend ftell file Number of bytes in the file printf File size d n lenToSend if fseek file 0 SEEK_SET lt 0 fprintf stderr Cannot lseek to the start of file n return 0 Programming Examples unsigned char buf new unsigned char BUFFER_SIZE Allocate char buffer memory if buf amp amp lenToSend Do not send the EOI end of instruction terminator on any write except the last one viSetAttribute vi VI ATTR SEND END EN 0 Prepare and send the SCPI command header char s 20 sprintf s d lenToSend int lenLen strlen s unsigned char s2 256 Write the command mmem data and the header The number lenLen represents the number of bytes and the actual number of bytes is the variable lenToSend sprintf char s2 mmem data s d d instDestFile lenLen lenToSend Send the command and header to the signal generator Agilent Signal Generators Programming Guide 215 Creating and Downloading Waveform Files Programming Examples viWrite vi s2 strlen char s2 0 long numRead Send file in BUFFER_SIZE chunks to the signal generator 276 do numRead fread buf sizeof char BUFFER_SIZE file viWrite vi buf numRead 0 while numRea
163. DBM OUTPut MODulation STATe ON OUTPut STATe ON Storing a PRAM File to Non Volatile Memory and Restoring to Volatile Memory After you download the file to volatile memory waveform memory you can then save it to non volatile memory Remember that a PRAM file downloads to waveform memory Conversely when you store a PRAM file to non volatile memory it uses the same directory as waveform files When storing or restoring a file you must include the file path as part of the file name variable Command Syntax The first file name variable is the current location of the file and its name the second file name variable is the destination to store the file and its name There are three ways to format the file name variable to include the file path Volatile Memory to Non Volatile Memory EMory COPY WFM1 file name NVWFM file name EMory COPY file nameGWFM1 file nameQNVWFM EMory COPY user bbgl waveform file name user waveform file name Non Volatile Memory to Volatile Memory EMory COPY NVWFM file name WFM1 file name EMory COPY file nameGNVWFM file nameQWFMI EMory COPY user waveform file name user bbg1l waveform file name 2 354 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Extracting a PRAM File When you extract a PRAM file you are extracting the translated 32 bit word per byte file You c
164. Data 235 PIF TOUR e os eee ee bee See ee Ae P E ORES ORE EO ee eee d 239 Creating Waveform Dali id 65 4 ar hE eS S HES ADR LRA A BEd REA dq EGACAUR RED EEE 242 Code Pod E EEUU 242 vi Contents Downloading Waveform Data lt 2 466 ok moo RR RAR LAR AAR A ESRB on Ro RR OR OR 248 Using Simulation SOIUWADS la eg m K L ER x EXERCERE AO RRR ORO 39 RRR Roe RO e Rs 249 Using Advanced Programming Languages 0 00 eee eee eee 251 Loading Playing and Verifying a Downloaded Waveform 06005 e eee anes 254 Loading a File from Non Volatile Memory llle 254 Piayinge the WOOD ne cerent a hoe a eR ORS EHS OM AOE ERE SR eR HAO 255 Verifying the Waveror ena lt ae 4 eo Rh 0F O XE 3 o ERS p deg EADS ES SRY x 256 Building and Playing Waveform Sequences 0 02 eee eee ee eee eee 256 Using the Download UHKUS 2 lt 2h 6665 Ue xbox OR EPS HELO CHS TRG FHS EP x9 257 Downloading E443xB Signal Generator Files llle 258 ESdOXB Data Formate oa6ee 2606 eee oo y ARES AnA ERAS HERERO RE OOS 259 Storage Locations for E443xB ARB files ss gaa Rag RRR RRR RRR es 259 GOPI COMMAS v a9 43 X39 SH EES LES LEYS CHEESES HEEL ORL dede ESS 261 Programming ExamploS 24444 9393 e ee ees 99 op WX ERE ESE BRE BER KU OR RU 261 C Programming e eisers ke KS AR AOR ESD RECO ERR bm R RR 262 MATLAB Programming Examples RRR RR dredy ttri rre 284 Visual Basic Programming Examples 2 240800 m Rp eee ERR EES EE COR NO
165. Data Big and Little Endian Order on page 262 Creating and Storing I Q Data Little Endian Order on page 266 Creating and Downloading I Q Data Big and Little Endian Order on page 267 Importing and Downloading I Q Data Big Endian Order on page 271 Importing and Downloading Using VISA Big Endian Order on page 273 Importing Byte Swapping Interleaving and Downloading I and Q Data Big and Little Endian Order on page 277 Calculating the RMS Voltage for a Waveform Programming Using C on page 283 Creating and Storing Offset 0 Data Big and Little Endian Order On the documentation CD this programming example s name is offset_iq_ct txt This C programming example compiled using Microsoft Visual C 6 0 follows the same coding algorithm as the MATLAB programming example Creating and Storing I Q Data on page 284 and performs the following functions error checking e data creation data normalization data scaling e UQ signal offset from the carrier single sideband suppressed carrier signal byte swapping and interleaving for little endian order data and Q interleaving for big endian order data binary data file storing to a PC or workstation reversal of the data formatting process byte swapping interleaving and normalizing the data After creating the binary file you can use FTP one of the download utilities or one of the C download programming examples t
166. Data on page 248 Loading Playing and Verifying a Downloaded Waveform on page 254 Using the Download Utilities on page 257 Downloading E443xB Signal Generator Files on page 258 Programming Examples on page 261 Troubleshooting Waveform Files on page 311 Agilent Signal Generators Programming Guide 211 Creating and Downloading Waveform Files Overview of Downloading and Extracting Waveform Files Overview of Downloading and Extracting Waveform Files The signal generator lets you download and extract waveform files You can create these files either external to the signal generator or by using one of the internal modulation formats ESG PSG only The signal generator also accepts waveforms files created for the earlier E443xB ESG signal generator models For file extractions the signal generator encrypts the waveform file information The exception to encrypted file extraction is user created I Q data The signal generator lets you extract this type of file unencrypted After extracting a waveform file you can download it into another Agilent signal generator that has the same option or software license required to play it Waveform files consist of three items 1 I Q data 2 Marker data 3 File header NOTE This order of download is required as the I Q data downloads results in the overwriting of all of these three parts of the file The signal generator automatically creates the marker file and the file h
167. Declares variables of type ViSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications long lngDone 0 Operation complete flag viStatus viOpenDefaultRM amp defaultRM Initialize VISA session Open session to gpib device at address 19 viStatus viOpen defaultRM GPIB 19 1NSTR VI NULL VI NULL amp vi Agilent Signal Generators Programming Guide 105 Programming Examples GPIB Programming Interface Examples if viStatus If problems then prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 printf n viClear vi viPrintf vi CLS n printf Programming example using the Clears the signal generator Resets the status byte register Print user information SAV RCL SCPI commands Wn printf used to save and recall an instrument s state n printf n viPrintf vi RST n viPrintf vi FREQ 5 MHz n viPrintf vi POW ALC OFF n viPrintf vi POW AMPL 3 2 dBm n viPrintf vi OUTP STAT ON n viPrintf vi OPC n while lngDone viScanf vi d amp lngDone viPrintf vi SAV 1n printf The current signal generator operating printf to Register 1 Observe the state then printf n getch ingDone 0 viPrintf vi RST n viPrintf vi OPC n while lngDone viScanf vi d amp
168. EStionable R Y V Y v YvYvY Y v v v Transition Filter k k gk L rt L KKL ae Event Register S w aro EEA LO 8 NC CA E a ee E O T D DataGuestionabe f ti ttt i Event 15 14 13 12 131 100987 654 32 1 0 Enable Register To Data Questionable Status Register Bit 7 ck708c Agilent Signal Generators Programming Guide 201 Programming the Status Register System Status Groups Data Questionable Modulation Condition Register The Data Questionable Modulation Condition Register continuously monitors the hardware and firmware status of the signal generator Condition registers are read only Table 4 11 Data Questionable Modulation Condition Register Bits Bit Description 0 Modulation 1 Undermod A 1 in this bit position indicates that the External 1 input ac coupling on is less than 0 97 volts 1 Modulation 1 Overmod A 1 in this bit position indicates that the External 1 input ac coupling on is more than 1 03 volts 2 Modulation 2 Undermod A 1 in this bit position indicates that the External 2 input ac coupling on is less than 0 97 volts 3 Modulation 2 Overmod A 1 in this bit position indicates that the External 2 input ac coupling on is more than 1 03 volts 4 Modulation Uncalibrated A 1 in this bit position indicates that modulation is uncalibrated 5 14 Unused This bit is always set to 0 15 Always 0 Query STATus QUEStionable MODulation CONDition
169. Even Number of Bytes i Data repeats at the symbol boundary i 1 16QAM 4 bits symbol ee ee ee E Y Ra BA i EA C repeats Symbol Symbol Symbol Symbol Symbol Symbol Symbol Symbol Agilent Signal Generators Programming Guide 325 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Framed Binary Data When using framed data ensure that you use an even number of bytes and that the bytes contain enough bits to fill the data fields within a timeslot or frame When there are not enough bits to fill a single timeslot or frame the signal generator replicates the data pattern until it fills the timeslot frame The signal generator creates successive timeslots frames when the user file contains more bits than what it takes to fill a single timeslot or frame When there are not enough bits to completely fill successive timeslots or frames the signal generator truncates the data at the bit location where there is not enough bits remaining and repeats the data pattern This results in a data pattern discontinuity For example a frame structure that uses 348 data bits requires a minimum file size of 44 bytes 352 bits but uses only 43 5 bytes 348 bits In this situation the signal generator truncates the data from bit 3 to bit 0 bits in the last byte Remember that the signal generator views the data from MSB to LSB For this example to have an even number of bytes and enough bits to fill th
170. Frequency Status Group on page 198 6 Unused This bit is always set to 0 7 Modulation summary This is a summary bit taken from the QUEStionable MODulation register A 1 in this bit position indicates that one of the following may have happened modulation source 1 underrange modulation source 1 overrange modulation source 2 underrange modulation source 2 overrange or modulation uncalibrated See the Data Questionable Modulation Status Group on page 201 for more information gab Calibration summary This is a summary bit taken from the QUEStionable CALibration register A 1 in this bit position indicates that one of the following may have happened an error has occurred in the DCFM DC M zero calibration or an error has occurred in the I Q calibration See the Data Questionable Calibration Status Group on page 204 for more information 9 Self Test A 1 in this bit position indicates that a self test has failed during power up Reset this bit by cycling the signal generator s line power CLS will not clear this bit 10 11 Unused These bits are always set to 0 12 BERT summary This is a summary bit taken from the QUEStionable BERT register A 1 in this bit position indicates that one of the following occurred no BCH TCH synchronization no data change no clock input PRBS not synchronized demod DSP unlocked or demod unleveled See the Data Questionable BERT Status Group on page 207 for more information 13 14 U
171. I MMEM DATA NVARBI file name I waveform block data non volatile memory MMEM DATA NVARBQ lt file_name gt lt Q waveform block data The variables lt I waveform block data and lt Q waveform block data represents data in the E443xB file format The string variable file name is the name of the I and Q data file After downloading the data the signal generator associates a file header and marker file with the I Q data file Programming Examples NOTE The programming examples contain instrument specific information However users can still use these programming examples by substituting in the instrument specific information for your signal generator Model specific exceptions for programming use will be noted at the top of each programming section The programming examples use GPIB or LAN interfaces and are written in the following languages e C page 262 MATLAB page 284 Visual Basic page 299 HP Basic page 304 See Chapter 2 of this programming guide for information on interfaces and IO libraries The example programs are also available on the signal generator Documentation CD ROM which allows you to cut and paste the examples into an editor Agilent Signal Generators Programming Guide 261 Creating and Downloading Waveform Files Programming Examples C Programming Examples This section contains the following programming examples Creating and Storing Offset I Q
172. I 11 SCPI service For more information refer to Configuring the VXI 11 for LAN Agilent X Series and MXG on page 34 and Configuring the VXI 11 for LAN ESG PSG on page 35 You can start a new Standard EXE project and add the required references Once the required references are included you can copy the example programs into your project and add a command button to Form1 that will call the program The example Visual Basic 6 0 programs are available on the signal generator Documentation CD ROM enabling you to cut and paste the examples into your project Visual Basic Examples The Visual Basic examples enable the use of waveform files and are located in Chapter 5 Creating I Q Data Little Endian Order on page 299 Downloading I Q Data on page 301 HP Basic Examples Interface Check using HP Basic and GPIB on page 84 Local Lockout Using HP Basic and GPIB on page 87 Queries Using HP Basic and GPIB on page 90 Queries Using HP Basic and RS 232 on page 160 Using 8757D Pass Thru Commands PSG with Option 007 Only on page 115 Running Java Examples The Java program Sockets LAN Programming Using Java on page 145 connects to the signal generator through sockets LAN This program requires Java version 1 1 or later be installed on your PC For more information on sockets LAN programming with Java refer to Sockets LAN Programming Using Java on page 145 78
173. IB LAN or RS 232 connection char instOpenString gpib0 19 Pick some maximum number of samples based on the amount of memory in your computer and your waveforms const int MAXSAMPLES 50000 int main int argc char argv These are the I and Q input files Some compilers will allow in the directory names Older compilers might need in the directory names It depends on your operating system and compiler char ifile c SignalGenerator data BurstAl1I bin char qfile c SignalGenerator data BurstA1Q bin Agilent Signal Generators Programming Guide 277 Creating and Downloading Waveform Files Programming Examples This is a text file to which we will write the I and Q data just for debugging purposes It is a good programming practice to check your data in this way before attempting to write it to the instrument char ofile c SignalGenerator data iq txt Create arrays to hold the I and Q data int idata MAXSAMPLES int qdata MAXSAMPLES Often we must modify scale or offset the data before loading it into the instrument These buffers are used for that purpose Since each sample is 16 bits and a character only holds 8 bits we must make these arrays twice as long as the I and Q data arrays char ibuffer MAXSAMPLES 2 char qbuffer MAXSAMPLES 2 For the E4438C or E8267C 67D we might also
174. IN FIR STATE _USERFLAT WAVEFORM Volatile memory data X Series and MXG only USB media rc File listing with extensions WFM1 WAVEFORM PRAM U n i E CJ Agilent MXG Agilent ESG and PSG Only NONVOLATILE Nonvolatile memory 5 S E M p p BIN BIT FIR STATE USERFLAT WAVEFORM This NONVOLATILE directory shows the files with the same extensions as the USB media and is useful with ftp The Agilent X Series and MXG use an optional USB media to store non volatile waveform data Memory Allocation Volatile Memory The signal generator allocates volatile memory in blocks of 1024 bytes For example a user data file with 60 bytes uses 1024 bytes of memory For a file that is too large to fit into 1024 bytes the signal generator allocates additional memory in multiples of 1024 bytes For example the signal generator allocates 3072 bytes of memory for a file with 2500 bytes 3 x 1024 bytes 3072 bytes of memory As shown in the examples files can cause the signal generator to allocate more memory than what is actually used which decreases the amount of available memory User data blocks consist of 1024 bytes of memory Each user data file has a file header that uses 512 bytes for the Agilent X Series and MXG or 256 bytes for the ESG PSGin the first data block for each user data file Non Volatile Memory Agilent X Series and MXG Non volatile files are stored on the non vo
175. IO IO II II ko kk II IOI IO III II II IOI IO I IO ko kk II IOI I I IO A IO A k k include lt stdio h gt For NULL EOF include lt string h gt For strchr char optarg Global argument pointer int optind 0 Global argv index Agilent Signal Generators Programming Guide 143 Programming Examples LAN Programming Interface Examples static char scan NULL Private scan pointer int getopt int argc char const argv const char optstring char c char posn optarg NULL if scan NULL scan 0 if optind 0 optind if optind gt argc argv optind 0 argv optind 1 0 return EOF if stremp argv optind 0 optind return EOF scan argv optind 1 optind Cc scan posn strchr optstring c DDP if poan NULL e fprintf stderr s unknown option c n argv 0 c return posn if posn if scan t 0O optarg scan scan NULL else optarg argv optind optind 144 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples return c Sockets LAN Programming Using Java In this example the Java program connects to the signal generator through sockets LAN This program requires Java version 1 1 or later be installed on your PC To run the program perform the following steps 1 In
176. L Querys the signal generator power level 250 ENTER Sig gen W Enter the power level 260 Print power level to the controller display 270 PRINT Current power setting is W dBM 280 PRINT 290 OUTPUT Sig gen FREQ MODE Querys the signal generator for frequency mode 300 ENTER Sig gen A Enter in the mode CW Fixed or List 310 Print frequency mode to the controller display 320 PRINT Source s frequency mode is A 330 PRINT 90 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples 340 OUTPUT Sig gen OUTP OFF Turns signal generator RF state off 350 OUTPUT Sig gen OUTP Querys the operating state of the signal generator 360 ENTER Sig gen B Enter in the state 0 for off 370 Print the on off state of the signal generator to the controller display 380 IF B gt 0 THEN 390 PRINT Signal Generator output is on 400 ELSE 410 PRINT Signal Generator output is off 420 END IF 430 OUTPUT Sig gen IDN Querys for signal generator ID 440 ENTER Sig gen C Enter in the signal generator ID 450 Print the signal generator ID to the controller display 460 PRINT 470 PRINT This signal generator is a C 480 PRINT 490 The next command is a query for the signal generator s GPIB address 500 OUTPUT Sig gen SYST COMM GPIB ADDR 510 ENTER Sig gen D Enter in the signal generator s address 520 Print the signal generator s GPIB address to the contro
177. Length Get a byte into ptr count recv sock ptr 1 0 If no chars to read stop if count 1 break cur length count If we hit a newline stop if ptr n L ptr err 0 break j ptr ptr TND if err Agilent Signal Generators Programming Guide char result int maxLength 131 Programming Examples LAN Programming Interface Examples return NULL else return result telse EER RKR RRK RRR RE RE RE RE RE RE Ch hc RE KER EKER EERE RE RE RE RE RE RE RE RE RRR ER RK ER RRR KEKE Simpler UNIX version using file I O recv version works too This demonstrates how to use file I O on sockets in UNIX FIO IO III ko kk oko k ok k IO koe k ke kk ek IO IOI I IO II III ok koe ko IOI II II III IO I IO A Y FILE instFile instFile fdopen sock r if instFile NULL fprintf stderr Unable to create FILE structure s n strerror errno exit 2 return fgets result maxLength instFile endif DIRIGO ko kk IOI IOI III II IOI IOI IO IO I kk II IOI IO I E E IO I IO II e e IO A E gt Function queryInstrument Description send a SCPI command to the instrument return a response X Parameters ka FILE file pointer associated with TCP IP socket const char command SCPI command string char result where to put the result size t maxLength
178. M IO Libraries Agilent 8 version M IO Libraries Agilent 5 viPrintf 83 VISA 7 10 64 72 C generating a step swept signal 101 77 computer to instrument communication 8 automatic 6 9 manual 7 9 CW signals generating 95 data questionable status register reading 107 FM signals generating internally applied 99 generating externally applied AC coupled FM signals 97 T O libraries 10 LAN client 40 10 library 31 80 299 NI 488 2 10 RS 232 using 64 scanf 84 111 104 USB using 72 viPrintf 83 Visual C generating a swept signal 102 viTerminate 80 VXI 11 118 CW signals See VISA and C VISA and C CW signals generating 95 GPIB interface check for 86 queries 93 VISA Assistant GPIB functionality verifying 30 IO Config 6 8 40 troubleshooting 42 verifying instrument communication 40 Visual Basic IDE 77 programming examples 299 11 references 77 Visual C NI 488 2 queries using 91 VISA generating a swept signal 102 Visual C and VISA generating a swept signal 102 viTerminate 80 volatile memory file decryption 233 memory allocation 228 Agilent esg 317 securewave directory 233 memory volatile WFM1 233 315 types signal generators 315 waveform 226 volatile memory available SCPI query 320 VXI 11 118 configuration 44 programming 118 SICL using 119 using 44 VISA using 120 Ww waveform data 2 s complement data format 21
179. M Download Problems on page 379 User FIR Filter Coefficient File Download Problems on page 381 Each section contains the following troubleshooting information a list of symptoms and possible causes of typical problems encountered while downloading data to the signal generator reminders regarding special considerations and file requirements tips on creating data transferring data data application and memory usage User File Download Problems Table 6 18 Use File Download Trouble Symptoms and Causes Symptom Possible Cause Data does not completely fill an integer number of timeslots At the RF output If a user file fills the data fields of more than one timeslot in a continuously repeating framed some data modulated transmission the user file will be restarted after the last timeslot containing completely filled some data missing data fields For example if the user file contains enough data to fill the data fields of 3 5 timeslots firmware will load 3 timeslots with data and restart the user file after the third timeslot The last 0 5 timeslot worth of data will never be modulated Data Requirements The user file selected must entirely fill the data field of each timeslot The user file must be a multiple of 8 bits so that it can be represented in ASCII characters Available volatile memory must be large enough to support both the data field bits and the framing bits 378 Agilent Signal Ge
180. ND Local Lockout Using NI 488 2 and C This example uses the NI 488 2 library to set the signal generator local lockout mode Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file niex2 cpp performs the following functions all front panel keys except the contrast key places the signal generator into remote prompts the user to verify the signal generator is in remote places the signal generator into local The following program example is available on the signal generator Documentation CD ROM as niex2 cpp 7 RII IO IOI ke kk ok ko ko k ke kk ek k ok k ok ck ok II ko kk oko kk e ko III IOI IO III IOI IO I IOI I IO Ik A ak 88 Agilent Signal Generators Programming Guide An Programming Examples GPIB Programming Interface Examples PROGRAM NAME niex2 cpp PROGRAM DESCRIPTION This program will place the signal generator into LOCAL LOCKOUT mode All front panel keys except the Contrast key will be disabled The local command ibloc sig executed via program code is the only way to return the signal generator to front panel Local control KR KKK KK KK RK RK KK RK EK ck ck EK KK EK KK EK RK KK KK KK KK KK RK KK KK KKK KK KK KK KK KK KK KK KEKE ck ck ck ck ck ck ck EK include stdafx h include lt iostream gt include windows h include Decl 32 h using namespace std int GPIBO 0 Board handle Addr4882_t Address
181. NOTE The following sections are specific to Agilent IO Libraries versions M and earlier and apply only to the Windows NT platform Agilent Signal Generators Programming Guide 41 Using IO Interfaces Using LAN Using VISA Assistant Use the VISA Assistant available with the Agilent IO Library versions M and earlier to communicate with the signal generator over the LAN interface However you must manually configure the VISA LAN client Refer to the Help menu for instructions on configuring and running the VISA Assistant program Run the IO Config program Click on TCPIPO in the Available Interface Types text box Click the Configure button Then Click OK to use the default settings Click on TCPIPO in the Configured Interfaces text box Click Edit Click the Edit VISA Config button Click the Add device button Enter the TCPIP address of the signal generator Leave the Device text box empty Penden PF OW NY a Click the OK button in this form and all subsequent forms to exit the IO Config program If You Have Problems 1 Verify the signal generator s IP address is valid and that no other instrument is using the IP address 2 Switch between manual LAN configuration and DHCP using the front panel LAN Config softkey and run the ping program using the different IP addresses NOTE For Agilent IO Libraries versions M and earlier you must manually configure the VISA LAN client in the IO Config program if you want to us
182. OE Kew eee de cup ce 181 Gaus Byte a a d a 09b d 8 6 RR bee i EP ea dod E a eed a4 dd dee eR 182 Service Request Enable Register eller 182 OP QD SOIT a ce ee a ed ah he Oa OA OE ee Eo eh ee Se ers 183 Contents 5 Standard Event Status Groups ook ados Rok RR AOR ARH ERWEERES BORE WAE DS OS 184 Standard Operation Status Group 46546468 2 o ESHER RR RET ERE ES 186 Baseband Operation Status Group 2445585 RR X 4 SORA EG HASSE RRR ERE RS 189 Data Questionable Status Group i244 45464 560 Be 43 33 G9 EX RR RA S OS 191 Data Questionable Power Status Group 0 e ee ee eee 195 Data Questionable Frequency Status Group 4 esos ke ERR RR 198 Data Questionable Modulation Status Group e e ee ee eee 201 Data Questionable Calibration Status Group eee ee es 204 Data Questionable BERT Status Group 20 000 eee ee ee eee 207 Creating and Downloading Waveform Files Overview of Downloading and Extracting Waveform Files aana aa aa aaa aaa 212 Waverorm Data Requiremeruibss 2404256446042 ktera UU Er REDE EHS OR EUR ORS OD 213 Understanding Waveform Data iik 244244525444 2 SdAGRAERALRSA ER RON A ORES GG 213 Bits and Bios geo we rakte RI RS Wd S SOPS3 ed ed qoe i a dd d d 213 LSB and MSB Bib Order lt gR K d R KR 6S EES EERE ESSE SES CHG A C OR ROS 214 Little Endian and Big Endian Byte Order 2 20 eee eee eee nee 214 Byte SWADBH 244249 9 949 3493 end pee EU EGER ER X A
183. OI IO koe k kk k IG II IOI IOI IO IOI IO II III IO IO I IO A Ok ie PROGRAM NAME Download_Visa_c cpp PROGRAM DESCRIPTION Sample test program to download ARB waveform data Send a file in chunks of ascii data to the signal generator NOTE You must have the Agilent IO Libraries installed to run this program This example uses the LAN TCPIP to download a file to the signal generator s non volatile memory The program allocates a memory buffer on the PC or workstation of 102400 bytes 100 1024 bytes The actual size of the buffer is limited by the memory on your PC or workstation so the buffer size can be increased or decreased to meet your system limitations While this program uses the LAN TCPIP to download a waveform file into non volatile memory it can be modified to store files in volatile memory WFM1 using GPIB by setting the instrOpenString TCPIPO xxx xxx xxx xxx INSTR declaration with GPIB 19 INSTR The program also includes some error checking to alert you when problems arise while trying to download files This includes checking to see if the file exists 1A IOI I ke kk ek ko ko k ke kk III IO koe k koe kk ko kk k koe k ck IO III IO ko kk ko k koe kk IO II IO e E dee IMPORTANT Replace the xxx xxx xxx xxx IP address in the instOpenString declaration in the code below with the IP address of your signal generator or you can use the i
184. Only Setting Up the RS 232 Interface 1 Setting the RS 232 Interface Baud Rate ESG PSG E8663B GPIB fiddress 19 GPIB AS 232 E Remote Languaes Reset RS 232 Instrument RS 232 Echo Adjustments num nd On Select a baud rate of 9600 RS 232 Timeout 25 sec Power n Preset Memory Catalog Instrument Info Help Mode SCPI commands SYSTem COMMunicate SERial BAUD number SYSTem COMMunicate SERial BAUD For details on each key use the key help described in User s Guide For additional SCPI command information refer to the SCPI Command Reference NOTE Configure your computer to use baud rates 57600 or lower only Select the signal generator s baud rate to match the baud rate of your computer or UNIX workstation or adjust the baud rate settings on your computer to match the baud rate setting of the signal generator The default baud rate for VISA is 9600 This baud rate can be changed with the VI ATTR ASRL BAUD VISA attribute Agilent Signal Generators Programming Guide 65 Using IO Interfaces Using RS 232 ESG and PSG Only 2 Setting the RS 232 Echo Softkey GPIB Address RS 232 Baud Rate 19 57600 GPIB RS 232 Remote Language Reset RS 232 can SCPI aljstrument mno Toggle RS 232 Echo Off On until Off is highlighted Selecting On echoes or returns AS 232 Timeout characters sent to the signal generator and 5 sec prints them to the display Power
185. P ES 216 PAC Inpub Vales io oben dos 9 RR XO ECKE NOR oS 4 ORE AERP EDEL Ne qe dC Rae KES 216 28 Complement Data Format 4269 Y Yo 49 C84 R9 X e SEX OE X SR YE Xo 219 I and Q interleaving uo eoe SEES AXE SU UE GR Edo RP AS 3 Re ARS OG EX Ed AE Rx s 219 br inum lucc vc 45nd ee ba ULTIMUM 221 Pile S e 1 444 ob doR E OE ey 42R REOR UR e a dore de do cde Ro ede dra 221 Marker TIG 545 49b EE RISE RS d ee dra 4 RC E P SE aw dade dde v ere gos 221 pO Ia 434324 994 24 423 RR e Xe abo eb dk Enid db de bod dede GSR 223 Waverton lt 6 6 os 4a ra Bee eee SEP Se Heed OO Oe BES EAREARSHAS ACE AEDS OS 223 Waveform Phase Conunuiiy 5 246 245855 RR EEE RP P HER ER R ERE YE PRX 223 Phase Discontinuity Distortion and Spectral Regrowth aaas aaeeea 223 Avoiding Phase Discontinuiti s lt gt lt s 565 4 44285 esre ieties eripi it r tes 224 Mavetunn Momar 43 ob od C2 Rh RR RRS RUE GUE A GED Se kOLASHR ASS AD SR 226 Memory AUOCAON 62 2 6446 64454445468 ROX OR eR EURO SERED OR SR ER eo o 228 MOM BEDS ans a hk kK EEE eS SSA SPREAD adde OR RE R OP Qe ADI d Ub SEEM debo d 230 Commands for Downloading and Extracting Waveform Data llle 232 Waveform Data Encryption 2422449 645 5464 2688 Se 9 3 UXOR ORES 3 Y OR EES 233 Pile Tronster Methods 3 04 sad RE RE RUE ERRARE A GARE SAUL X AUG e SOA a do Ge SOS 234 SCPI Command Line Structure lt lt s o9 RR R96 e oh x 9 RO RO DOHC GS 23b Commands and File Paths for Downloading and Extracting Waveform
186. PIBO 0 Board handle Addr4882_t Address 31 Declare a variable of type Addr4882 t int main int sig Declares variable to hold interface descriptor int num char rdVal 100 Declares variable to read instrument responses sig ibdev 0 19 0 13 1 0 Open and initialize a device descriptor ibloc sig Places the signal generator in local mode ibclr sig Sends Selected Device Clear SDC message ibwrt sig RST 4 Places signal generator in a defined state ibwrt sig FREQuency CW 14 Querys the CW frequency ibrd sig rdVal 100 Reads in the response into rdVal rdVal ibcntl 0 Null character indicating end of array cout lt lt Source CW frequency is lt lt rdVal Print frequency of signal generator cout Press any key to continue endl cin ignore 10000 n ibwrt sig POW AMPL 10 Querys the signal generator ibrd sig rdVal 100 Reads the signal generator power level rdVal ibcntl 0 Null character indicating end of array Prints signal generator power level cout lt lt Source power dBm is lt lt rdVal cout lt lt Press any key to continue endl cin ignore 10000 n ibwrt sig FREQ MODE 11 Querys source frequency mode ibrd sig rdVal 100 Enters in the source frequency mode rdVal ibcntl 0 Null character indicating end of array cout lt lt Source frequency mode is lt lt rdVal Print source
187. PO ESG3 INSTR public const uint DEFAULT_TIMEOUT 30 1000 Instrument timeout 30 seconds public const int MAX READ DEVICE STRING 1024 Buffer for string data reads public const int TRANSFER BLOCK SIZE 4096 Buffer for byte data The main entry point for the application STAThread static void Main string args uint defaultRM Open the default VISA resource manager if VisaInterop OpenDefaultRM out defaultRM 0 If no errors proceed uint device Open the specified VISA device the signal generator if VisaInterop Open defaultRM visaOpenString VisaAccessMode NoLock DEFAULT TIMEOUT out device 0 if no errors proceed 366 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Save and Recall Instrument State Files bool quit false while quit Get user input Console Write 1 Backup state files n 2 Restore state files n 3 Quit nEnter 1 2 or 3 Your choice string choice Console ReadLine switch choice case 1 BackupInstrumentState device Write instrument state break files to the computer case 2 RestoreInstrumentState device Read instrument state break files to the sig gen j case 3 quit true break j default break VisaInterop Close device Close the device 7 else Console WriteLine Unable to open visaOpenString j V
188. Professional and Vista Business Agilent IO Libraries 15 0 and Newer NOTE Windows NT is not supported on Agilent IO Libraries 14 0 and newer For additional information on older versions of Agilent IO libraries refer to the Agilent Connection Expert in the Agilent IO Libraries Help The Agilent IO libraries are included with your signal generator or Agilent GPIB interface board or they can be downloaded from the Agilent website http www agilent com VISA Assistant VISA is an industry standard IO library API It allows the user to send SCPI commands to instruments and to read instrument data in a variety of formats Refer to the VISA Assistant Help menu and the Agilent VISA User s Manual available on Agilent s website for more information VISA Configuration Automatic 1 Run the VISA Assistant program Start gt All Programs gt Agilent 10 Libraries Suite gt Agilent Connection Expert gt Tools gt Visa Assistant gt 2 Click on the interface you want to use for sending commands to the signal generator 3 Click the Formatted 1 0 tab 4 Select SCPI in the Instr Lang section You can enter SCPI commands in the text box and send the command using the viPrintf button 6 Agilent Signal Generators Programming Guide Getting Started with Remote Operation IO Libraries and Programming Languages Using VISA Configuration Manual Use the Agilent IO Libraries Suite 15 0 to perform the following steps to use the Connec
189. Q Hold ON amp Typically followed with something like writeMxgFir a n5182a 00211 EQ 1GHZ 62MHZ corrFilter if nargin lt 1 nargin gt 2 error corrFilter loadPsaEqFilter psaDev destRate destRate is assumed to be 125e6 if missing end if nargin lt 2 destRate 125e6 end contact PSA using LAN t tcpip psaDev 5025 t OutputBufferSize 1 1024 1024 t InputBufferSize 1 1024 1024 fopen t fprintf t FETCh EVM9 n magDb readArrayOfDoubles t fprintf t FETCh EVM10 n phaseDeg readArrayOfDoubles t fprintf t FETCh EVM21 n xSteps readArrayOfDoubles t fclose t freqStep xSteps 1 9 2 1 Agilent Signal Generators Programming Guide 149 Programming Examples LAN Programming Interface Examples oversample 1 xSteps 1 8 2 1 10 compensates for issue with PSA should be 20 this issue will be corrected in a future release linmag 10 magDb 10 2 compensates for issue with PSA should be 1 this issue will be corrected in a future release phaseRad phaseDeg 360 2 pi 2 coeffs linmag cos phaseRad j linmag sin phaseRad rate oversample round freqStep length coeffs frequency range is also rate we now have a centered frequency domain version of the channel response invert so that we will cancel the channel response invertedFreqDomain 1 coeffs convert to time domain first placing the 0 f
190. R UR RUE A 299 HP Basic Programming Examples 2 4 24 4445 999900 94 Cee ON EHS EH RC 304 Troubleshooting Waveform Files 4 24024 465 405 45 Sb RAs ERA RR RED eS 311 Configuring the Pulse RF Blank Agilent X Series and MXG 312 Configuring the Pulse RF Blank ESG PSG llle 312 Creating and Downloading User Data Files VEIN dou Lar equ qe d vq SERS Gee borea ORE OES CRESS Oh A See OE KER S ES 314 Signal Generator Memory 43 43 43343 944 94 439 1 A SOS PESE ER EESS EH SHE CES ES 315 Memory AUOCAUON cu Neb ke 3 4 RAD EER ARR RE OLDER DEAE ADE SE REL OR ERR 317 oun sm rc P ned oe RE Ce RS HAR OHO RED KOR eH Ee ees 318 Checking Available Memor ss 24444554604 GRAS EK ROECR OE E TEASERS DREREE RES 319 User File Data Bit Binary Downloads E4438C and E8267D aaaea aaa 321 User File Bit Order LSB and MSB ccc asc ey es ter RR ER REE ERE EV otea 322 Bit Pile Type Dala ou 6 ie Rehab ee doe isidhe heh eS Eo ded de SERS GES 322 Binary Pile Type Data 404 2644 ee de ereere nr iia YeX X eR XO RON RO e OR Rex XX XX 325 Hur Pe RICE ot iuwawsqd uda debere uo wade e ceed qe E Wee du hup 326 Determining Memory Usage for Custom and TDMA User File Data 327 Downloading User Piles coca dic nace dw Ra wR ERR EER he s RAR GEES CER ER ROMS 330 Command Tor Bit File Downloads 3 26444 4 4 2248026 k rt bia ee e Ee OR 9 EES 333 Commands for Binary File Downloads l2 za 64 444d ERR RRR ERR RO 334 Selecting a Downloaded User File
191. Response The decimal sum of the bits set to 1 Data Questionable Modulation Transition Filters negative and positive The Data Questionable Modulation Transition Filters specify which type of bit state changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus QUEStionable MODulation NTRansition value negative transition or STATus QUEStionable MODulation PTRansition value positive transition where value is the sum of the decimal values of the bits you want to enable Queries STATus QUEStionable MODulation NTRansition STATus QUEStionable MODulation PTRansition Data Questionable Modulation Event Register The Data Questionable Modulation Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATus QUEStionable MODulation EVENt 202 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable Modulation Event Enable Register The Data Questionable Modulation Event Enable Register lets you choose which bits in the Data Questionable Modulation Event Register set the summary bit bit 7 of the Data Questionable Condition Register to 1 Command STATus QUEStionable MODulation ENABle value
192. SG USING K MMEM DATA NVWFM testfile As discussed at the beginning of this section I and Q waveform data is interleaved into one file in 2 s compliment form and a marker file is associated with this I Q waveform file In the Output commands USING K formats the data The pound symbol 3 suppresses the automatic EOL End of Line output This allows multiple output commands to be concatenated as if they were a single output The K instructs HP BASIC to output the following numbers or strings in the default format 10 RE SAVE UNIX file 20 Num points 200 30 ALLOCATE INTEGER Int array 1 Num points 2 40 DEG 50 FOR I 1 TO Num points 2 STEP 2 60 Int array I INT 32767 SIN I 360 Num points 70 NEXT I 80 FOR I 2 TO Num_points 2 STEP 2 90 Int_array I INT 32767 COS I 360 Num_points 100 NEXT I 110 PRINT Data generated 120 Nbytes 4 Num_points 130 ASSIGN PSG TO 719 FORMAT ON 140 ASSIGN PSGb TO 719 FORMAT OFF 150 Nbytes VALS Nbytes 160 Ndigits LEN Nbytes 170 Ndigits VALS Ndigits 180 WAIT 1 190 OUTPUT PSG USING K MMEM DATA WFM1 data file 4 200 OUTPUT PSG USING K Ndigitss 306 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples 210 OUTPUT PSG USING K Nbytes 220 WAIT 1 230 OUTPUT PSGb Int array 240 WAIT 2 241 OUTPUT PSG END 250 ASSIGN PSG TO 260 ASSIGN PSGb TO 270 PRINT 28
193. SIE Unused 2 2 y TS Unused 8 S 10 Unused E H o 5 Unused FAFE E Unused Unused Unused Unused Always Zero 0 Unused DCFM DCOM Zero Failure Unused Unused o v lw le l Unused p 19 9 t Unused a C IC ole Unused alale e Unused SISI 17 U eefe U nused IES la Unused Oki 5 Unused zi Unused Unused Unused Unused Always Zero 0 168 Agilent Signal Generators Programming Guide Programming the Status Register System Overview Figure 4 2 MXG Overall Status Byte Register System 2 of 2 Status Byte Register Unused Unused From Data Questionable Power Status Group Error Event Queue Summary Bi Data Questionable Status Summary Bi From Data Quest Frequency Status Group Data Questionable Message Available MAV 1 Status Group Std Event Status Sum Bi Unused Req Serv Sum Bit RQS il Std Operation Status Sum Bi Unused Unused summary Unused Unused Unused SELFtes Unused Trans Filter Trans Filter Condition Register Event Register Event Enable Reg Unused Unused Unused Unused Always Zero 0 Oper Complete Req Bus Control Query Error Dev Dep Error Execution Error Command Error User Request Power On IO CALibrating Settling Unused SWeEeping Unused T a la lF Waiting for TRIGer I3 9 E G Unused mnc w o cjic D Unused SIS Fels 2 je Unused o fe NE E Unused gt Unused Sweep Calculating Unused U
194. Signal Generator N5172B N5162A E4438C with E8267D Option N5182B with N5182A with Option 001 601 or 602 option 653 or Option 651 002 601 or 656 652 or 654 602 Marker x x x x File header x x x x Sweep List x x x x User Data x x x x User PRAM x x x Instrument State x x x x Waveform Sequences x x x x multiple I Q files played together The following figure on Figure 5 1 on page 228 shows the locations within the signal generator for volatile and non volatile waveform data Agilent Signal Generators Programming Guide 221 Creating and Downloading Waveform Files Waveform Memory Figure 5 1 File Structure Map Root directory erra L Agilent X Series and E c MXG Only 4 E443xB Volatile E443xB Non volatile NONVOLATILE waveform data waveform data X Series and MXG only USB media CJ CJ LJ LJ File listing with extensions 2 ARBI ARBQ NVARBI NVARBQ Non volatile cum Waveform sequences CJ y Non volatile waveform data internal storage se R R R HEADER MARKERS WAVEFORM SECUREWAVE Volatile waveform directory BBG1 Volatile waveform data HEADER MARKERS WAVEFORM SECUREWAVE 1For information on using the E443xB directories see Downloading E443xB Signal Generator Files on page 258 The Agilent X Series and MXG use an optional USB media to store
195. Size bufSize Order dependency on download 1 Waveform 2 Markers 3 Header fopen t fprintf t s wfmCmd Sfwrite t iqData int16 Use loop to prevent the need for a buffer as big as waveform WriteData t iqData 2 bufSize fprintf t n fprintf t syst err fgets t fprintf t s mkrCmd Agilent Signal Generators Programming Guide 293 Creating and Downloading Waveform Files Programming Examples Sfwrite t mkrData int8 WriteData t mkrData 1 bufSize fprintf t n fprintf t syst err fgets t fprintf t sWMn hdrCmd fprintf t syst err fgets t fclose t end function WriteData fid data format bufSize Write data using a loop to support large waveforms without having to specify a huge buffer INPUT PARAMETERS fid file id ij data all the data E format data size to output in bytes 1 2 4 etc amp bufSize Buffer size in bytes buf floor bufSize format fullChunks floor length data buf partialChunk length data fullChunks buf sfmt int32 if format 1 sfmt int8 elseif format sfmt inti16 end stop 0 for i 0 fullChunks 1 start 1 i buf stop i 1 buf fwrite fid data start stop sfmt end if partialChunk gt 0 fwrite fid data stop 1 end sfmt end 294 Agilent Signal Generators Programming Guide end function data rms FormatWaveform iqWave Scale the waveform to DAC va
196. Standard Event Status summary bit of the Status Byte Register is set to 1 Send the command ESE 192 128 64 Query ESE Response Decimal value of the sum of the bits previously enabled with the ESE lt data gt command Agilent Signal Generators Programming Guide 185 Programming the Status Register System Status Groups Standard Operation Status Group NOTE Some of the bits in this status group do not apply to the E4428C E8257D E8267D E8663B E8663D E8663D and the N5161A 62A 81A 82A 83A and returns zero when queried See Table 4 6 on page 187 for more information The Agilent MXG SCPI command STAT OPER SUPP can suppress the managing of this status group and save 50 us from the switching time Refer to the SCPI Command Reference The Operation Status Group is used to determine the specific event that set bit 7 in the Status Byte Register This group consists of the Standard Operation Condition Register the Standard Operation Transition Filters negative and positive the Standard Operation Event Register and the Standard Operation Event Enable Register 186 This is the named I Q CALibrating status register for n the E4438C Settling However not all Unused signal generator SWEeping models use all of MEASuring the shown events w i e some use only Waiting for TRIGger a subset of the Unused pea status Unused 9 Unused DCFM DCoM Null in Progress Baseband is busy SWEep Calculating BERT SYN
197. TB Response The decimal sum of the bits set to 1 including the master summary status bit MSS bit 6 Example The decimal value 136 is returned when the MSS bit is set low 0 Decimal sum 128 bit 7 8 bit 3 The decimal value 200 is returned when the MSS bit is set high 1 Decimal sum 128 bit 7 8 bit 3 64 MSS bit Service Request Enable Register The Service Request Enable Register lets you choose which bits in the Status Byte Register trigger a service request 182 SRE lt data gt lt data gt is the sum of the decimal values of the bits you want to enable except bit 6 Bit 6 cannot be enabled on this register Refer to Figure 4 1 on page 168 through Figure 4 6 on page 173 Example To enable bits 7 and 5 to trigger a service request when either corresponding status group register summary bit sets to 1 send the command SRE 160 128 32 Query SRE Response The decimal value of the sum of the bits previously enabled with the SRE lt data gt command Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Status Groups The Standard Operation Status Group and the Data Questionable Status Group consist of the registers listed below The Standard Event Status Group is similar but does not have negative or positive transition filters or a condition register Condition Register A condition register continuously monitors the hardware and firmware status of th
198. Table 1 1 LAN Configuration Summary Values Getting Started with Remote Operation Using the Web Browser Parameter Default TCP Keep Alive On Domain Name lt empty gt TCP Keep Alive Timeout 1800 0 sec Signal Generator Web Server Interface Description Agilent model number serial number SICL Interface Name gpibO Web Password agilent a The Domain Name defaults to a null field b This information is part of the Advanced Information about this Web Enabled signal generator model number Displaying the LAN Configuration Summary Agilent X Series and MXG Confirm Restore Settings to Factory Defaults Confirming this action configures the signal generator to its original factory default settings For informatign regarding those default settings refer to Table 1 1 on page 18 LAN Setup LAN Services Setup Remote Language SCPI Utility gt IO Config SCPI command Not applicable Domain Name oL A onitorin Off Pon Dunamic Hostname Services Config Type Manual Manual Config Settings V TCP Keep Alive Setup Advanced DHCP Timeout Proceed With Reconfiguration For details on each key use the key help described in the User s Guide Agilent Signal Generators Programming Guide estore LAl Settinas torf Default Values p Getting Started with Remote Operation Preferences Preferences The following commonly used m
199. Time Data for Large Files When the data fields must be continuous data streams and the size of the data exceeds the available PRAM real time data and synchronization can be supplied by an external data source to the front panel DATA DATA CLOCK and SYMBOL SYNC connectors This data can be continuously transmitted or can be framed by supplying a data synchronous burst pulse to the EXT1 INPUT connector on the front panel Additionally the external data can be multiplexed into internally generated framing PRAM Download Problems Table 6 19 PRAM Download Symptoms and Causes Symptom Possible Cause Pattern reset bit not set The transmitted pattern is interspersed with random unwanted data Insure that the pattern reset bit bit 7 value 128 is set on the last byte of your downloaded data Agilent Signal Generators Programming Guide 379 Creating and Downloading User Data Files Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only Table 6 19 PRAM Download Symptoms and Causes Symptom Possible Cause ERROR 223 Too much data PRAM download exceeds the size of PRAM memory Either use a smaller pattern or get more memory by ordering the appropriate hardware option Data Requirements The signal generator requires a file with a minimum of 60 bytes For every data bit bit 0 you must provide 7 bits of control information bits 1 7 Table 6 20 PRAM Data
200. Up XO p X RR LAOH HOH SES ORO OR 38 Veriiying LAN Functionality ug dA RE e AA AR AE isk OE A AO SOROR d RAE DEAS 38 Using VXI Il amp 2i229 4Fe 9 Gk Rd EOO Y o X PORA Y EY Y E ux deg 44 Usima Sockets LAN cciacia edere cse we dhe ca Ro do Bn HRS Rb ba ee ae ae 4 45 Contents Using Telnet LAN sac sen aeebead edad igh dee hgh hShe 69eP E ede ege bees 46 Using PIP 25 445 45 04 dk PRE ORO A ROO E dex de QUESO FES OG Poo Op P eso os 50 p 345 Bhd SSSA TEER EAE SPADE ADS OSH SE RAK Rad ee 52 Using R35 252 EGC and PEG OUNi 6 cg s RA a ee ECR E P GROW d EE Rx d rds 63 Selecting IO Libraries for RB 28Z 2 02554 265464 8S 4 KSA GRE REE RRR E OR ERR ERE ERE 64 Setting Up the H5 234 E c eg eee HR E ERA aktar EE REE HES CR PUER 65 Verifying BS 292 Funetionaliiy ssr n 46 454 ER 4 R HOR PEPE 9 SEH SEH EHR 67 Character Format Parameters lt amp ce hac qose ck eed wea wd oe OU GS RSE RC Oe ade S 68 H You Have Problems 4 2 6665 444 S694 BEERS SEE LED GES NOR ESHER ENG OR 68 RS 232 Programming Interface Examples 0 002 eee eee eee ee eee 68 Before Using the Exemples 2233 eom 44 442 425 HO eREEEEEE SPO EEA HERES 9 68 Interface Check Using HP BASIC 44244 4 4240244684548 644 0454 08 SEE EO RO A Re 69 Interface Check Using VISA aiid G eka Gk RL EERE EE SER SERSEREE DEKH SE EE E 69 Queries Using HP Basie and RS 2382 22 4 62 ick bE RES RA ERR ADRES RHE ERE 70 Queries for RS 232 Using VISA and C 70 Using USB Agilent X Series and
201. _int64 uint64 endif WIN32 static const int NUM_DAC_BITS 16 static const int DAC_MAX 1 lt lt NUM DAC BITS calculates the rms of a chunk of a waveform stored as 16 bit alternating I Q twos complement DAC values NOTE short must be a 16 bit quantity Also NOTE For 4Gsa or more samples must be an int64 double calcRmsWaveformSegment const signed short iq data unsigned samples a double cannot hold the full number accurately for very long waveforms This type can handle up to but not including 8Gsa uint64 sum_of_squares_accum 0 int ival int qval Agilent Signal Generators Programming Guide 283 Creating and Downloading Waveform Files Programming Examples unsigned mag_squared double rmsDac unsigned i for i 0 i samples i ival int iq_data i 2 qval int iq_data i 2 1 mag squared unsigned ival ival unsigned qval qval sum of squares accum mag squared the rms in DAC counts 0 32768 rmsDac sqrt double sum of squares accum double samples convert to normalized form 0 1 414 return rmsDac 2 0 double DAC_MAX MATLAB Programming Examples This section contains the following programming examples Creating and Storing I Q Data on page 284 Creating and Downloading a Pulse on page 288 Downloading a Waveform Markers and Setting the Waveform Header on page 291 Playing Downloaded W
202. a File MSB Offset Binary LSB ARBI waveform name a a Q File 14 bits DAC Data inak Offset Binary arb data Storage Locations for E443xB ARB files Place waveforms in either volatile memory or non volatile memory The signal generator supports the E443xB directory structure for waveform file downloads i e ARBI ARBQ NVARBI and NVARBQ see also SCPI Commands on page 261 Volatile Memory Storage Locations e user arbi e user arbq Non Volatile Memory Storage Locations e user nvarbi e user nvarbq Loading files into the above directories volatile or non volatile memory does not actually store them in those directories Instead these directories function as pipes to the format translator The signal generator performs the following functions on the E443xB data Converts the 14 bit I and Q data into 16 bit data the format required by the signal generator Subtract 8192 left shifts the data and appends two bits zeros before the least significant bit i e the offset binary values are converted to 2 s complement values by the signal generator Agilent Signal Generators Programming Guide 259 Creating and Downloading Waveform Files Downloading E443xB Signal Generator Files E443xB 14 Bit Data data Q data ae a d E E 1001 10110111 001 0000100111011001 Marker bits 14 data bits Reserved bits 14 data bits Subtracts 8192 Left Shifts and Adds Zeros Rem
203. a waveform file to the signal generator The program downloads a file the previously created IQ DataVB file to the signal generator Refer to the Programming Guide for information on binary Agilent Signal Generators Programming Guide 301 Creating and Downloading Waveform Files Programming Examples data requirements for file downloads The waveform data IQ DataVB is downloaded to the signal generator s non volatile memory NVWFM USER WAVEFORM IQ_DataVB For volatile memory WFM1 download to the USER BBG1 WAVEFORM IQ_DataVB directory You must reference the Agilent VISA COM Resource Manager and VISA COM 1 0 Type Library in your Visual Basic project in the Project References menu The VISA COM 1 0 Type Library corresponds to VISACOM tlb and the Agilent VISA COM Resource Manager corresponds to AgtRM DLL The VISA COM 488 2 Formatted I O 1 0 corresponds to the BasicFormattedIO dll Use a statement such as Dim Instr As VisaComLib FormattedI0488 to create the formatted I O reference and use Set Instr New VisaComLib FormattedIO488 to create the actual object LA A kc ce ck ce ck ck ck e ck ce ck ce ck ce ck ce ck ce ke ce ke ke ke ce ce ce ce KKK ce ce ce ce ke ce KEKE KERR RRR KKK ce ce ck che ce ce ce cese cese ce ce L ke ck sk ke ke kv sk ke ko kc koe IMPORTANT Use the TCPIP address of your signal generator in the rm Open declaraion If you are using the GPIB interface in your projec
204. able Register 15 1413 12 31 10 98 7654 3 2 1 0 To Status Byte Register Bit 3 the signal generator Condition registers are read only 192 Agilent Signal Generators Programming Guide Ck722k Programming the Status Register System Status Groups Table 4 8 Data Questionable Condition Register Bits Bit Description 0 1 2 Unused These bits are always set to 0 3 Power summary This is a summary bit taken from the QUEStionable POWer register A 1 in this bit position indicates that one of the following may have happened The ALC Automatic Leveling Control is unable to maintain a leveled RF output power i e ALC is UNLEVELED the reverse power protection circuit has been tripped See the Data Questionable Power Status Group on page 195 for more information 4 N5161A 62A 81A 82A 83A ALC Heater Detector COLD A 1 in this bit position indicates that the ALC detector is cold E4428C 38C ES257D 67D and E8663B Temperature OVEN COLD A 1 in this bit position indicates that the internal reference oscillator reference oven is cold 5 Frequency summary This is a summary bit taken from the QUEStionable FREQuency register A 1 in this bit position indicates that one of the following may have happened synthesizer PLL unlocked 10 MHz reference VCO PLL unlocked 1 GHz reference unlocked sampler YO loop unlocked or baseband 1 unlocked For more information see the Data Questionable
205. abled MXG Information about thir Wes Enabled MXG BOR QUA AEA AEQ TER 271222171724 725238221 22 278402 ATE V 22 506 BEALI E LEE L Mv eed intutmatun abast this Wez Erablez MAS Uaa Ine Huan aar on me etm acces pog WD and regu renra Sapien Tecteogec m 2d The Agilent MXG N51xxA supports LXI Class B functionality For more information on the LXI standards refer to http www Ixistandard org home LXI Class B Compliance testing using IEEE 1588 2008 not available at release Enter Password Pasanna m curently ast pa sm enn To operate the signal generator click the keys Note If you do not see this window check to see if the window is hidden behind your browser window or your web browser settings are set to block pop ups To use this feature you need to set your web browser to allow pop ups for your instrument s IP address Remote SCPI commands requires the Telnet feature on the computer The Telnet feature is available from a variety of sources Some software updates can block break this Telnet connection e g Internet Explorer 7 When using Internet Explorer as a browser only versions Internet Explorer 7 enable the Web Enabled MXG SCPI feature If the SCPI Telnet softkey is not active to display the SCPI Telnet box 1 On the PC click Start Run 2 In the dialogue box type Telnet IP address of MXG 5024 This is the port number for connecting to the MXG Note Telnet port 5
206. acted later you must use the MEM DATA UNPRotected command If you use FTP commands no special command syntax is necessary NOTE On the X Series and MXG MEM DATA enables file extraction On the X Series and MXG the MEM DATA UNPRotected command is not required to enable file extraction For more information refer to the SCPI Command Reference You can download or extract waveform data created in any of the following ways with signal simulation software such as MATLAB or Agilent Advanced Design System ADS with advanced programming languages such as C VB or VEE with Agilent Signal Studio software with the signal generator 232 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data Waveform Data Encryption You can download encrypted waveform data extracted from one signal generator into another signal generator with the same option or software license for the modulation format You can also extract encrypted waveform data created with software such as MATLAB or ADS providing the data was downloaded to the signal generator using the proper command When you generate a waveform from the signal generator s internal ARB modulation format ESG PSG only the resulting waveform data is automatically stored in volatile memory and is available for extraction as an encrypted file When you download an exported waveform using a
207. added complexity of setting up an SRQ handler The service request SRQ method In the SRQ method described in the following section the signal generator takes a more active role It tells the controller when there has been a condition change without the controller asking Use the SRQ method to detect changes using the polling method where the program must repeatedly read the registers Use the SRQ method if you must know immediately when a condition changes Use the SRQ method in the following situations when you need time critical notification of changes when you are monitoring more than one device that supports SRQs when you need to have the controller do something else while waiting when you can t afford the performance penalty inherent to polling Using the Service Request SRO Method The programming language I O interface and programming environment must support SRQ interrupts for example BASIC or VISA used with GPIB and VXI 11 over the LAN Using this method you must do the following Determine which bit monitors the condition Send commands to enable the bit that monitors the condition transition registers Send commands to enable the summary bits that report the condition event enable registers Send commands to enable the status byte register to monitor the condition Qo g Tio Be Ea Enable the controller to respond to service requests The controller responds to the SRQ as soon as it oc
208. aded file size by four 89 bytes x 4 356 bytes n See also Signal Generator Memory on page 315 and Checking Available Memory on page 319 348 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Minimum File Size A PRAM file requires a minimum of 60 bytes to create a signal If the downloaded file contains less than 60 bytes the signal generator replicates the file until the file size meets the 60 byte minimum This replication process occurs after you select the file and turn the modulation format on The following example shows this process using a downloaded 14 byte file During the file download the 14 bytes are translated into 56 bytes fourteen 32 bit words 14 bytes x 4 56 bytes FREQUENCY 4 000 000 000 00 s AMPLITUDE 136 00 an 4 a File size increases by a factor of 4 Catalog of Ur Files 1656 bytes used 134033408 but ree File Hame Tupe Size Tlodified 1 PRAMS_LIST_AUBYTES HFri 55J i 2 RAMP_TEST_WFM En ff s After selecting and turning the format on the signal generator replicates the file contents to create the 60 byte minimum file size 60 bytes 14 bytes 4 29 file replications The signal generator rounds this real value up to the next highest integer In this example the signal generator replicates the fourteen 32 bit words 56 bytes by a factor of 5 which make
209. ame write to buffer viWrite vi str strlen char str 0 write the command to the PSG printf nFlatness Data saved to file s n n fileName load corrections sprintf char str corr flat load s n fileName write to buffer viWrite vi str strlen char str 0 write command to the PSG turn on corrections sprintf char str corr on n viWrite vi str strlen char str 0 printf nFlatness Corrections Enabled n n for int k 0 k lt lenArray k delete pairsList k free up memory delete pairsList free up memory viClose vi close the sessions viClose defaultRM return 0 Agilent Signal Generators Programming Guide 377 Creating and Downloading User Data Files Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only NOTE The section User FIR Filter Coefficient File Download Problems applies to X Series vector models with Option 653 or 656 MXG vector models with Option 651 652 or 654 the E4438C with Option 001 002 601 or 602 and the E8267D with Option 601 or 602 The remaining sections User File Download Problems and PRAM Download Problems apply only to the E4438C with Option 001 002 601 or 602 and the E8267D with Option 601 or 602 This section is divided by the following data transfer methods User File Download Problems on page 378 PRA
210. ame 8 timeslots bits speech multiframe TCH 26 frames superframe 51 speech multiframes 1 Calculate the number of bits in the superframe 156 25 x 8 x 26 x 51 1 657 500 bits 2 Calculate the size of the PRAM file 1 657 500 bits x 4 bytes 32 bit words 6 630 000 bytes 3 Calculate how much memory the PRAM file will occupy 6 630 000 bytes 1 024 bytes per PRAM block 6 474 6 memory blocks 4 Round the quotient up to the next integer value 6 475 blocks x 1 024 bytes per block 6 630 400 bytes NOTE For the total PRAM memory usage be sure to add the number of PRAM blocks that the user file occupies to the PRAM file size For more information see Calculating Volatile Memory PRAM Usage for Framed Data on page 328 342 Agilent Signal Generators Programming Guide Real Time Custom High Data Rates Custom has two modes for processing data serial and parallel When the data bit rate exceeds 50 Mbps the signal generator processes data in parallel mode which means processing the data symbol by symbol versus bit by bit serial This capability exists in only the Custom format when Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D using a continuous data stream This means that it does not apply to a downloaded PRAM file type covered later in this chapter In parallel mode for a 256QAM modulation scheme Custom has the capability to reach a data rate of up to 40
211. and generator for playback status status description agt_waveformload io IQData pulsepat sampclk play no normscale Markers 6 turn on RF output power status status description agt sendcommand io OUTPut STATe ON You can test your program by performing a simulated plot of the in phase modulation signal in Matlab see Figure 5 2 on page 290 To do this enter plot i at the Matlab command prompt Figure 5 2 Simulated Plot of In Phase Signal The following additional Matlab M file pulse programming examples are also available on the Documentation CD ROM for your signal generator 290 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples NOTE For the Agilent X Series and MXG the SOURce FREQuency 20000000000 value must be changed as required in the following programs For more information refer to the Data Sheet barker m This programming example calculates and downloads an arbitrary waveform file that simulates a simple 7 bit barker RADAR signal to the PSG vector signal generator chirp m This programming example calculates and downloads an arbitrary waveform file that simulates a simple compressed pulse RADAR signal using linear FM chirp to the PSG vector signal generator FM m This programming example calculates and downloads an arbitrary waveform file that simulates a single tone FM signal with a rate of
212. annot extract just the downloaded data Extracting a PRAM file is similar to extracting a waveform file in that you use the same commands and the PRAM file resides in either volatile memory waveform memory or the waveform directory for non volatile memory After extraction you can download the file to the same signal generator or to another signal generator with the proper option configuration that supports the downloaded file There are two ways to download a file after extraction with the ability to extract later with no extraction capability CAUTION Ensure that you do not use the MEMory DATA PRAM FILE BLOCk command to download an extracted file If you use this command the signal generator will treat the file as a new PRAM file and translate the LSB of each byte into a 32 bit word corrupting the file data Agilent Signal Generators Programming Guide 355 Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Command Syntax This section lists the commands for extracting PRAM files and downloading extracted PRAM files To download an extracted file you must use block data For information on block data see SCPI Command for a Block Data Download on page 350 In addition there are three ways to format the file_name variable which must also include the file path as shown in the following tables There are two commands for file extraction e MEM DATA file name
213. anual command sections are included here Configuring the Display for Remote Command Setups Agilent X Series and MXG on page 20 Configuring the Display for Remote Command Setups ESG PSG on page 21 Getting Help Agilent X Series and MXG on page 21 Setting the Help Mode ESG PSG on page 22 Setting the Help Mode ESG PSG on page 22 Configuring the Display for Remote Command Setups Agilent X Series and MXG Select Color Palettep Bright Color Brightness Select Update in Remote until On is 100 Contrast Update in Remote m UEP n ighlighted Screen Saver Activate Screen Saver DISPlay REMote ON OFF 1 0 Power On lode Preset Light Only 1 hr DISPlay REMote Screen Saver Delau Hore 1 of 2 _ For details on each key use the key help described in the User s Guide 20 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Preferences Configuring the Display for Remote Command Setups ESG PSG Brightness 50 SCPI commands DISPlay REMote ON OFF 1 0 DISPlay REMote GPIB RS 232 Screen Saver LAN on Instrument Screen Saver Mode Adjustments Light Only Utility i Screen Saver Delau 1 hr Power n Inverse Video Preset On Memoru Catalog Update in Remote Select Update in Remote until On is highlighted More Using the Update in Remote softkey updates the display but not the 1 of 2 softkeys on each SCPI command
214. aracter and ends when the sweep has completed and an SRQ received TBR RRR III IO III IO koe k ko k ke k IO IOC IOI IO IO III IOI IO IO koe k IO IO IO IO koe ek include visa h include lt stdio h gt include StdAfx h include windows h include conio h define MAX CNT 1024 Agilent Signal Generators Programming Guide 111 Programming Examples GPIB Programming Interface Examples int sweep 1 End of sweep flag Prototypes ViStatus _VI_FUNCH interupt ViSession vi ViEventType eventType ViEvent event ViAddr addr int main ViSession defaultRM vi Declares variables of type ViSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications char rdBuffer MAX_CNT Declare a block of memory data viStatus viOpenDefaultRM amp defaultRM Initialize VISA session if viStatus lt VI_SUCCESS If problems then prompt user printf ERROR initializing VISA exiting n printf n return 1 Open session to gpib device at address 19 viStatus viOpen defaultRM GPIB 19 1NSTR VI NULL VI NULL amp vi if viStatus L If problems then prompt user printf ERROR Could not open communication with instrument n printf n return 1 viClear vi Clears the signal generator viPrintf vi RST n Resets signal generator Print program header and information printf End of Sweep Service
215. ata Files Signal Generator Memory Table 6 5 User Data File Memory Location User Data File Download Access Type Memory Memory Bit Non volatile Volatile Binary Non volatile Volatile PRAM Volatile Volatile Instrument Non volatile Non volatile State FIR Non volatile Non volatile Flatness Non volatile Non volatile Bit and binary files increase in size when the signal generator loads the data from non volatile to volatile memory For more information see User File Size on page 326 Use the following SCPI commands to determine the amount of remaining memory Volatile Memory MMEM CAT WFM1 The query returns the following information memory used gt lt memory remaining file names Non Volatile Memory MEM CAT ALL The query returns the following information memory used gt lt memory remaining file names NOTE The signal generator calculates the memory values based on the number of bytes used by the files residing in volatile or non volatile memory and not on the memory block allocation To accurately determine the available memory you must calculate the number of blocks of memory used by the files For more information on memory block allocation see Memory Allocation on page 317 320 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D User File Data Bit Binar
216. ata Questionable Frequency Status Group NOTE Some bits in this status group do not apply to the N5161A 62A 81A 82A 83A E4428C E8257D E8663B and the E8663D and returns zero when queried See Table 4 10 on page 199 for more information The Data Questionable Frequency Status Group is used to determine the specific event that set bit 5 in the Data Questionable Condition Register This group consists of the Data Questionable Frequency Condition Register the Data Questionable Frequency Transition Filters negative and positive the Data Questionable Frequency Event Register and the Data Questionable Frequency Event Enable Register This is the named A Synthesizer Unlocked statue register tor 10 MHz Reference Unlocked However not all 1 GHz Reference Unlocked signal generator Baseband 1 Unlocked models use all of Lnussd the shown events i e some use only Sampler Loop Unlocked a subset of the YO Loop Unlocked Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Data QUEStionable a MN Data QUEStionable t 6 VY Y Vititvt t tv itd Transition Filter Data QUEStionable EXE v Y vvv v vi DE Transition Filter f k r tL Er KL tL C Dua Questionable Event Register 541 a Z n OO ul LA amp O AS amp A 8 patacuestionabe 111 ERRER pen 15 14 13 12 11 010 987 654 32 1 0 Enable Register To Data Questionable Status Register Bit 5 ck706c 198 Agilent Signa
217. ate 9600 must match computer s baud rate e RS 232 Echo Off The following sections contain HP Basic and C lines of programming removed from the programming interface examples in Chapter 3 Programming Examples these portions of programming demonstrate the important features to consider when developing programming for use with the RS 232 interface NOTE For RS 232 programming examples refer to RS 232 Programming Interface Examples ESG PSG Only on page 157 68 Agilent Signal Generators Programming Guide Using 10 Interfaces RS 232 Programming Interface Examples Interface Check Using HP BASIC This portion of the example program Interface Check Using HP BASIC on page 69 causes the signal generator to perform an instrument reset The SCPI command RST will place the signal generator into a pre defined state The serial interface address for the signal generator in this example is 9 The serial port used is COMI Serial A on some computers Refer to Using RS 232 ESG and PSG Only on page 63 for more information The following program example is available on the signal generator s Documentation CD ROM as rs232exl txt For the full text of this program refer to Interface Check Using HP BASIC on page 157 or to the signal generator s documentation CD ROM 170 CONTROL 9 0 1 Resets the RS 232 interface 180 CONTROL 9 3 9600 Sets the baud rate to match the sig gen 190 STATUS 9 4 Stat Reads the value of register 4
218. ating Volatile Memory PRAM Usage for Framed Data Framed data is not a selection for Custom but it is for TDMA formats To frame data the signal generator adds framing overhead data such as tail bits guard bits and sync bits These framing bits are in addition to the user file data For more information on framed data see Understanding Framed Transmission For Real Time TDMA on page 339 When using framed data the signal generator views the data framing and user file bits in terms of the number of bits per frame even if only one timeslot within a frame is active This means that the signal generator creates a 32 bit word for each bit in a frame for both active and inactive timeslots You can create a user file so that it fills a timeslot once or multiple times When the user file fills a timeslot multiple times the signal generator creates the same number of frames as the number of timeslots that the user file fills For example if a file contains enough data to fill a timeslot three times the signal produces three new frames before the frames repeat Each new frame increases the 328 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D AUTOGEN_PRAM_1 file size If you select different user files for the timeslots within a frame the user file that produces the largest number of frames determines the size of the AUTOGEN_PRAM_1 file Use
219. ator Memory on page 315 Use the following SCPI command line to download FIR filter coefficients file from the PC to the signal generator s FIR directory MEMory DATA FIR file name REAL osr coefficient MEMory DATA FIR lt file_name gt COMPlex osr realCoefficient imaginaryCoefficient Use the following SCPI command line to query list data from the FIR file MEMory DATA FIR lt file_name gt Sample Command Line The following SCPI command will download a typical set of real modulation FIR filter coefficient values and name the file FIR1 MEMory DATA FIR FIR1 4 0 0 0 0 0 0 000001 0 000012 0 000132 0 001101 0 006743 0 030588 0 103676 0 265790 0 523849 0 809508 1 1 0 809508 0 523849 0 265790 0 103676 0 030588 0 006743 0 001101 0 000132 0 000012 0 000001 0 0 0 0 0 FIR1 assigns the name FIR1 to the associated OSR over sample ratio and coefficient values the file is then represented with this name in the FIR File catalog specifies the oversample ratio 00001 the FIR filter coefficients Selecting a Downloaded User FIR Filter as the Active Filter NOTE For information on manual key presses for the following remote procedures refer to the User s Guide FIR Filter Data for TDMA Format The following remote command selects user FIR filter data as the active filter for a TDMA modulation format RADio desired format FILTer lt file_name gt This command selects t
220. ator is s n buf ipromptf id IDN n t buf Query for id string printf Instrument ID s n buf Print id string to display iclose id Close the session return 0 7 VXI 11 Programming Using VISA and C The following program uses the VXI 11 protocol and the VISA library to control the signal generator The signal generator is set to a 5 dBm power level and queried for its ID string Before running this code you must set up the interface using the Agilent IO Libraries IO Config utility vxivisa cpp performs the following functions sets signal generator to a 5 dBm power level queries signal generator for an ID string error checking The following program example is available on the signal generator Documentation CD ROM as vxivisa cpp f RRR RERRRE RRR ERE RE RRR SK KC RRR EKER EKER EKER EERE RE RE RE RE RE RE KR kchckckckchckckckckckckckckckckckckck ch ck ER ERE ck ckck ck ck ko PROGRAM FILE NAME vxivisa cpp Sample test program using the VISA libraries and the VXI 11 protocol 120 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples NOTE You must have the Agilent Libraries installed on your computer to run this program PROGRAM DESCRIPTION This example uses the VXI 11 protocol and VISA to query the signal generator for its ID string The ID string is then printed to the screen Next the signal generator is set for a 5
221. ators Programming Guide 231 Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data Table 5 5 Fixed File System Overhead Volatile WFM1 Memory and Fixed File Overhead 001 601 BBG 8 MSa 40 MB 1024 46 080 8 377 088 Samples 002 BBG 32 MSa 160 MB 4096 181 248 33 509 120 Samples 602 BBG 64 MSa 320 MB 8192 361 472 67 018 496 Samples a The expression 16 44 x MaxNumFiles has been rounded up to nearest memory block 1024 bytes To find the I Q waveform sample size this resulting value needs to be divided by 4 Table 5 6 4438C and E8267D Non Volatile NVWFM Memory Non Volatile NVWFM Memory Option Size E4438C and E8267D Standard 3 MSa 15 MB 005 Hard disk 1 2 GSa 6 GB Commands for Downloading and Extracting Waveform Data You can download I Q data the associated file header and marker file information collectively called waveform data into volatile or non volatile memory For information on waveform structure see Waveform Structure on page 221 The signal generator provides the option of downloading waveform data either for extraction or not for extraction When you extract waveform data the signal generator may require it to be read out in encrypted form The SCPI download commands determine whether the waveform data is extractable If you use SCPI commands to download waveform data to be extr
222. aveforms on page 297 Creating and Storing 1 0 Data On the documentation CD this programming example s name is offset_iq_ml m This MATLAB programming example follows the same coding algorithm as the C programming example Creating and Storing Offset I Q Data Big and Little Endian Order on page 262 and performs the following functions error checking data creation data normalization data scaling e I Q signal offset from the carrier single sideband suppressed carrier signal byte swapping and interleaving for little endian order data and Q interleaving for big endian order data binary data file storing to a PC or workstation e reversal of the data formatting process byte swapping interleaving and normalizing the data function main Program name offset_iq ml Using MatLab this example shows how to 1 Create a simple IQ waveform 284 Agilent Signal Generators Programming Guide de ce ce ce Creating and Downloading Waveform Files 2 Save the waveform into the ESG PSG Internal Arb format This format is for the N5182A E4438C E8267C E8267D This format will not work with the ESG E443xB 3 Load the internal Arb format file into a MatLab array aes Create Simple IQ Signal ck ck ck ke ke ke ke ce ce ke ke ce ke ke ke KKK KKK ck ck ck ke ck ck ke ke kk kc Sk ck ck ck ck kck ok ok This signal is a single tone on the upper side of the carrier and is usually refered to as a Singl
223. ay a message 2 Download the 1 Q data The following code downloads the generated waveform data to the signal generator and if the download fails displays a message Line 6 oo 250 Code Download the I Q data status status description agt waveformload io IQwave waveformfilel 2000 no play norm scale if status 1 display fail to download to the signal generator end Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Downloading Waveform Data Line Code Description Download the I Q data 6 Download the I Q waveform data to the signal generator by using the function call agt_waveformload from the Agilent Waveform Download Assistant Some of the arguments are optional as indicated below but if one is used you must use all arguments previous to the one you require Notice that with this function you can perform the following actions download complex I Q data name the file optional argument set the sample rate optional argument If you do not set a value the signal generator uses its preset value of 125 MHz N5162A 82A or 100 MHz E4438C E8267D or if a waveform was previously play the value from that waveform start or not start waveform playback after downloading the data optional argument Use either the argument play or the argument no play whether to normalize and scale the I Q data optional argument If you normalize a
224. been tripped There is no output in this state Any conditions that may have caused the problem should be corrected Reset the RPP circuit by sending the remote SCPI command OUTput PROTection CLEar Resetting the RPP circuit bit resets this bit to 0 1 Unleveled A 1 in this bit position indicates that the output leveling loop is unable to set the output power gb IQ Mod Overdrive A 1 in this bit position indicates that the signal level into the IQ modulator is too high 3 Lowband Detector Fault A 1 in this bit position indicates that the lowband detector heater circuit has failed 4 14 Unused These bits are always set to 0 15 Always 0 a In the N5161A 62A 81A 82A with Option 506 the N5183A and the E4428C 38C with Option 506 this bit is set to 0 b In the N5161A 62A 81A 82A 83A E4428C E8257D 67D and E8663B this bit is set to 0 Query STATus QUEStionable POWer CONDition Response The decimal sum of the bits set to 1 Data Questionable Power Transition Filters negative and positive The Data Questionable Power Transition Filters specify which type of bit state changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus QUEStionable POWer NTRansition value negative transition or STATus QUEStionable POWer PTRansition value positive transition where value is the sum of the decimal values of
225. beginning with to access the higher level summary registers refer to the SCPI Command Reference Access Lower level registers by using STATus commands 166 Agilent Signal Generators Programming Guide Programming the Status Register System Overview Overall Status Byte Register Systems MXG Overall Status Byte Register System 1 of 2 on page 168 MXG Overall Status Byte Register System 2 of 2 on page 169 e EA4428C 38C Overall Status Byte Register System 1 of 2 on page 170 e F4428C 38C Overall Status Byte Register System 2 of 2 on page 171 e E8257N 57D 67D and E8663B 63D Overall Status Byte Register System 1 of 2 on page 172 e E8257N 57D 67D and E8663B 63D Overall Status Byte Register System 2 of 2 on page 173 Agilent Signal Generators Programming Guide 167 Programming the Status Register System Overview Figure 4 1 MXG Overall Status Byte Register System 1 of 2 Data Questionable Power Status Group R P P Tripped Unleveled Unused Unused ALC Heater Detector Cold Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Data Quest Frequency Status Group To Data Questionable Status Group 8 Synth Unlocked 10 MHz Ref Unlocked To Data Questionable Status Group 3 Trans Filter Trans Filter To Data Questionable Status Group 5 Condition Register Unused Unused Unused lel Unused 212 z x Unused ic lic
226. between O to 127 The default value is O 52 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN Verifying Time Synchronization To verify that both instruments are running PTP open the Interactive LXI tool from a PC which is connected to the same switch as the MXA and MXG This program is bundled with the Agilent IO Libraries Suite 1 Open Interactive LXI From a PC connected to the same subnet as the instrument go to Start gt All Programs gt Agilent 10 Libraries Suite gt Utilities gt Interactive LXI 2 Open the Timing menu Click on the tab labeled Timing 3 Choose an active domain From the Active Domain pull down menu select the PTP domain entered in step 3 4 Update the clocks Click Update Clock List 5 Check that the MXA and MXG are located in the expected domain Click on the Clock Names listed in the Clock List then examine the Clock Information panel for the IP Addresses of the MXA and MXG 6 View the PTP LAN traffic Click the PTP Messages tab and select the Timing Messages checkbox Agilent Signal Generators Programming Guide 53 Using IO Interfaces Using LAN Peer to Peer Messaging The MXA and MXG are capable of sending and receiving LXI specific LAN packets The packets are configurable and may be sent when various instrument events occur during a measurement or state recall Each instrument event has an associated sense of 0 or 1 to indicate whether or not the event is a
227. ble Status Summary Bi From Data Quest Frequency Status Group Data Questionable Message Available MAV 1 Status Group Std Event Status Sum Bi From Data Quest Modulation Status Group Unused Req Serv Sum Bit RQS 11 Unused Std Operation Status Sum Bi From Data Quest Calibration Status Group Unused summary TEMPerature OVEN COLD summary Unused summary From Baseband Operation Status Group summary Trans Filter Trans Filter SELFtes Unused Condition Register Event Register Event Enable Reg Unused Unused Unused Unused Always Zero 0 Oper Complete Req Bus Control Query Error Dev Dep Error Execution Error Command Error User Request Power On IO CALibrating Settling Unused SWeEeping F DCFM DCOM Null in Progress Baseband is Busy MEASuring D Waiting for TRIGer a o 9 H2 LG FH Unused LE foje v o 9 IQ Unused Sls ls 8 S fe n Unused ale zle gt im Sweep Calculating Unused Unused Unused Always Zero 0 Service Request Enable Register Agilent Signal Generators Programming Guide 173 Programming the Status Register System Status Register Bit Values Status Register Bit Values Each bit in a register is represented by a decimal value based on its location in the register see Table 4 1 To enable a particular bit in a register send its value with the SCPI command Refer to the signal generator s SCPI command lis
228. buffer array referenced in line 8 3 Create a string large enough to hold the bytesToSend value as characters plus a null character value In this code string s is set to 4 bytes 8 characters for the bytesToSend value and one null character one character equals one byte 4 Create a string and set its length cmd 200 to hold the SCPI command syntax and parameters In this code we define the string length as 200 bytes 200 characters 5 Store the value of bytesToSend in string s For this example bytesToSend 240 s 240 6 Store the SCPI command syntax and parameters in the string cmd The SCPI command prepares the signal generator to accept the data e sprintfO is a standard function in C which writes string data to a string variable e strlen is a standard function in C which returns length of a string bytesToSend 240 then s 240 plus the null character strlen s 4 so cmd MEM DATA PRAM FILE BLOCk FILE1 3240 7 Send the SCPI command stored in the string cmd to the signal generator contained in the variable id e iwwrite is a SICL function in Agilent IO library which writes the data block data specified in the string cmd to the signal generator The third argument of iwrite strlen cmd informs the signal generator of the number of bytes in the command string The signal generator parses the string to determine the number of data bytes it expects to receive e The fourth argument of
229. bytes in the command string The signal generator parses the string to determine the number of data bytes it expects to receive The fourth argument of iwrite 0 means there is no END of file indicator for the string This lets the session remain open so the program can download the user file data 332 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Line Code Description Download User File Data 8 Send the user file data stored in the array databuffer to the signal generator e write sends the data specified in databuffer to the signal generator session identifier specified in id The third argument of dwrite bytesToSend contains the length of the databuffer in bytes In this example it is 2000 The fourth argument of 4write 0 means there is no END of file indicator in the data In many programming languages there are two methods to send SCPI commands and data Method 1 where the program stops the data download when it encounters the first zero END indicator in the data Method 2 where the program sends a fixed number of bytes and ignores any zeros in the data This is the method used in our program For your programming language you must find and use the equivalent of method two Otherwise you may only achieve a partial download of the user file data 9 Send the terminating carriage Nn
230. carriage Nn as the last byte of the waveform data e iwrite writes the data Xn to the signal generator session identifier specified in id The third argument of 4write 1 sends one byte to the signal generator The fourth argument of iwrite 1 is the END of file indicator which the program uses to terminate the data download To verify the waveform data download see Loading Playing and Verifying a Downloaded Waveform on page 254 Loading Playing and Verifying a Downloaded Waveform The following procedures show how to perform the steps using SCPI commands For front panel key commands refer to the User s Guide or to the Key help in the signal generator Loading a File from Non Volatile Memory Select the downloaded I Q file in non volatile waveform memory NVWFM and load it into volatile waveform memory WFM1 The file comprises three items I Q data marker file and file header information Send one of the following SCPI command to copy the I Q file marker file and file header information I MEMory COPY NAME lt NVWFM file_name gt lt WFM1 file_name gt MEMory COPY NAMI J lt NVMKR file name MKR1 file name gt MEMory COPY NAME lt NVHDR file name gt lt HDR file name gt 254 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Loading Playing and Verifying a Downloaded Waveform NOTE When you co
231. ceptions are indicated in the sections On the Agilent MXG the internal baseband generator speed upgrade Options 670 671 and 672 are option upgrades that require Option 651 and 652 to have been loaded at the factory refer to the Data Sheet for more information Any references to 651 652 or 654 are inclusive of 671 672 and 674 The following sections and procedures contain remote SCPI commands For front panel key commands refer to the User s Guide Key and Data Field Reference ESG and PSG or to the Key Help in the signal generator For the N5161A 62A the softkey menus and features mentioned in this chapter are only available through the Web Enabled MXG or through SCPI commands Refer to Using the Web Browser on page 11 and to the SCPI Command Reference This chapter explains the requirements and processes for creating and downloading user data and contains the following sections e User File Data Bit Binary Downloads E4438C and E8267D on page 321 e Pattern RAM PRAM Data Downloads E4438C and E8267D on page 344 FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D on page 358 e Using the Equalization Filter X Series and MXG with Baseband Generator on page 362 e Save and Recall Instrument State Files on page 363 e User Flatness Correction Downloads Using C and VISA on page 374 e Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only on page 378 Agilent Signal Generators Pr
232. ck ckckck kk ko f static void usage char basename fprintf stderr Usage s nqu hostname lt command gt n basename Agilent Signal Generators Programming Guide 127 Programming Examples LAN Programming Interface Examples fprintf stderr s nqu hostname lt stdin n basename fprintf stderr n number output lines n fprintf stderr q quiet do NOT echo lines n fprintf stderr e show messages in error queue when done n ifdef WINSOCK int init_winsock void WORD wVersionRequested WSADATA wsaData int err wVersionRequested MAKEWORD 1 1 wVersionRequested MAKEWORD 2 0 err WSAStartup wVersionRequested amp wsaData if err 0 Tell the user that we couldn t find a useable winsock dll fprintf stderr Cannot initialize Winsock 1 1 n return 1 return 0 int close_winsock void WSACleanup return 0 endif WINSOCK ORR III ko kk ke kk ok III II ek koe k koe k IO II II IOI IO I E E IO I IO II e I IO A k gt Function openSocket Description open a TCP IP socket connection to the instrument 128 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples X Parameters const char hostname Network name of instrument b This can be in dotted decimal notation int portNumber The TCP IP port to talk to Use 5025 for
233. command line as shown above but instead resides in a binary file on the PC UNIX When the program executes the SCPI command the command line notifies the signal generator that it is going to receive block data of the stated size and to place the file in the signal generator file directory with the indicated name Immediately following the command execution the program downloads the binary file to the signal generator This is shown in the following section Command Format in a Program Routine Some commands are file location specific and do not require the file location as part of the file name An example of this is the bit file SCPI command shown in Command for Bit File Downloads on page 333 Command Format in a Program Routine This section demonstrates the use of the download SCPI command within the confines of a C program routine The following code sends the SCPI command and downloads user file data to the signal generator s Binary memory catalog directory Line Code Download User File Data 1 int bytesToSend 2 bytesToSend numsamples 3 char s 20 4 char cmd 200 5 sprintf s d bytesToSend 6 sprintf cmd MEM DATA BIN FILE1 d d strlen s bytesToSend 7 iwrite id cmd strlen cmd 0 0 8 iwrite id databuffer bytesToSend 0 0 9 iwrite id n 1 1 0 Agilent Signal Generators Programming Guide 331 Creating and Downloading User Data Files User File Data Bit Binary Downloads E
234. common language runtime class libraries and Active Server Pages called ASP NET Refer to the Microsoft website for more information on the NET Framework The NET Framework must be installed on your computer before you can run the State Files program The framework can be downloaded from the Microsoft website and then installed on your computer 364 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Save and Recall Instrument State Files Perform the following steps to run the State_Files program 1 Copy the State_Files cs file from the CD ROM programming examples section to the directory where the NET Framework is installed 2 Change the TCPIPO address in the program from TCPIP0 000 000 000 000 to your signal generator s address Save the file using the cs file name extension 4 Run the Command Prompt program Start gt Run gt cmd exe Change the directory for the command prompt to the location where the NET Framework was installed 5 Type csc exe State Files cs at the command prompt and then press the Enter key on the keyboard to run the program The following figure shows the command prompt interface Command Prompt 3 Mi ft Windows 2000 Ve on 5 66 21951 lt C Copyright 1985 2080 Microsoft Corp C WINNT Microsoft NET Framework vi 1 4322 gt csc exe State Files cs The State_Files cs program is listed below You can copy this program from the examples directory on
235. complete programming examples in Programming Examples on page 261 You can use various programming environments to create ARB waveform data Generally there are two types Simulation software this includes MATLAB Agilent Technologies EESof Advanced Design System ADS Signal Processing WorkSystem SPW and so forth Advanced programming languages this includes C VB VEE MS Visual Studio Net Labview and so forth No matter which programming environment you use to create the waveform data make sure that the data conforms to the data requirements shown on page 213 To learn about I Q data for the signal generator see Understanding Waveform Data on page 213 Code Algorithm This section uses code from the C programming example Importing Byte Swapping Interleaving and Downloading I and Q Data Big and Little Endian Order on page 277 to demonstrate how to create and scale waveform data There are three steps in the process of creating an I Q waveform 1 Create the I and Q data 2 Save the I and Q data to a text file for review 3 Interleave the I and Q data to make an I Q file and swap the byte order for little endian platforms For information on downloading I Q waveform data to a signal generator refer to Commands and File Paths for Downloading and Extracting Waveform Data on page 235 and Downloading Waveform Data on page 248 1 Create and Q data The following lines of code
236. connections and problems 38 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN From a UNIX workstation type UNIX is a registered trademark of the Open Group ping hostname or IP address 64 10 where hostname or IP address is your instrument s name or IP address 64 is the packet size and 10 is the number of packets transmitted Type man ping at the UNIX prompt for details on the ping command From the MS DOS Command Prompt or Windows environment type ping n 10 hostname or IP address where hostname or IP address is your instrument s name or IP address and 10 is the number of echo requests Type ping at the command prompt for details on the ping command NOTE In DHCP mode if the DHCP server uses dynamic DNS to link the hostname with the assigned IP address the hostname may be used in place of the IP address Otherwise the hostname is not usable and you must use the IP address to communicate with the signal generator over the LAN If You Have Problems If you are experiencing problems with the LAN connection on the signal generator verify the rear panel LAN connector green LED is on For additional information on troubleshooting your LAN connection refer to the Help in the Agilent IO Libraries and documentation for LAN connections and problems NOTE The N5161A 62A signal generators have a LAN Reset hardkey on the front panel that can be pressed to reset the instrument
237. create scaled I and Q data for a sine wave The I data consists of one period of a sine wave and the Q data consists of one period of a cosine wave 242 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Creating Waveform Data Line Code Create I and Q data 1 const int NUMSAMPLES 500 2 main int argc char argv 3 4 short idata NUMSAMPLES 5 short qdata NUMSAMPLES 6 int numsamples NUMSAMPLES 7 for int index 0 index numsamples index 8 9 idata index 23000 sin 2 3 14 index numsamples 10 qdata index 23000 cos 2 3 14 index numsamples 11 Line Code Description Create I and Q data 1 Define the number of waveform points Note that the maximum number of waveform points that you can set is based on the amount of available memory in the signal generator For more information on signal generator memory refer to Waveform Memory on page 226 2 Define the main function in C 4 Create an array to hold the generated I values The array length equals the number of the waveform points Note that we define the array as type short which represents a 16 bit signed integer in most C compilers 5 Create an array to hold the generated Q values signed 16 bit integers 6 Define and set a temporary variable which is used to calculate the I and Q values Agilent Signal Generators Programming Guide 243 Creating and D
238. ction you may also save the data to a binary file and use one of the download utilities to download the waveform data see Using the Download Utilities on page 257 If you do not need the level of detail this section provides you can find complete programming examples in Programming Examples on page 261 Prior to downloading the I Q data ensure that it conforms to the data requirements shown on page 213 To learn about I Q data for the signal generator see Understanding Waveform Data on page 213 For creating waveform data see Creating Waveform Data on page 242 NOTE To avoid overwriting the current waveform in volatile memory before downloading files into volatile memory WFM1 change the file name or turn off the ARB For more information on manually turning off the ARB refer to the User s Guide To turn off the ARB remotely send SOURce RADio ARB STATe OFF Using Simulation Software This procedure uses a complex data array created in MATLAB and uses the Agilent Waveform Download Assistant to download the data To obtain the Agilent Waveform Download Assistant see Using the Download Utilities on page 257 There are two steps in the process of downloading an I Q waveform 1 Open a connection session 2 Download the I Q data 1 Open a connection session with the signal generator The following code establishes a LAN connection with the signal generator sends the IEEE SCPI command
239. ctive The instrument events that can cause an MXG to send an LXI LAN packet are summarized in the table below Table 2 1 LXI LAN Packets Instrument Event Description OperationComplete Indicates whether or not an operation is underway e For example a single sweep will result in e OperationComplete 1 before the sweep e OperationComplete 0 during the sweep e OperationComplete 1 after the sweep Settling Indicates the instrument is settling Sweeping Indicates whether or not the instrument is currently performing a sweep Waiting For Trigger Indicates whether or not the instrument is waiting for a trigger event before a measurement begins Enabling the LXI Event Subsystem Due to the high priority response time demands of handling events enabling the LXI event subsystem can adversely impact certain specifications such as frequency and power switching speed This becomes more noticeable at higher rates of LXI event traffic By default the subsystem is disabled To enable the LXI event subsystem from the front panel Press Utility gt More gt LXI B gt LXI B Enabled To enable or disable the LXI event subsystem from SCPI e LXI STATe ON OFF NOTE The LXI Event subsystem state is a persistent instrument state it is not affected by normal preset operations 54 Agilent Signal Generators Programming Guide Using IO Interfaces Using LAN Using the Front Panel to Configure LXI Even
240. cture Waveform Structure To play back waveforms the signal generator uses data from the following three files File header Marker file UQ file All three files have the same name the name of the I Q data file but the signal generator stores each file in its respective directory headers markers and waveform For information on file extractions see Commands for Downloading and Extracting Waveform Data on page 232 File Header The file header contains settings for the ARB modulation format such as sample rate marker polarity I Q modulation attenuator setting and so forth When you create and download I Q data the signal generator automatically creates a file header with all saved parameters set to unspecified With unspecified header settings the waveform either uses the signal generator default settings or if a waveform was previously played the settings from that waveform Ensure that you configure and save the file header settings for each waveform NOTE If you have no RF output when you play back a waveform ensure that the marker RF blanking function has not been set for any of the markers The marker RF blanking function is a header parameter that can be inadvertently set active for a marker by a previous waveform To check for and turn RF blanking off manually refer to Configuring the Pulse RF Blank Agilent X Series and MXG on page 312 and Configuring the Pulse RF Blank ESG PSG on page 312 Marker
241. curs As a result the time the controller would otherwise have used to monitor the condition as in a loop method can be used to perform other tasks The application determines how the controller responds to the SRQ When a condition changes and that condition has been enabled the request service summary RQS bit in the status byte register is set In order for the controller to respond to the change the Service Request Enable Register needs to be enabled for the bit s that will trigger the SRQ Generating a Service Request The Service Request Enable Register lets you choose the bits in the Status Byte Register that will trigger a service request Send the SRE num command where num is the sum of the decimal values of the bits you want to enable For example to enable bit 7 on the Status Byte Register so that whenever the Standard Operation Status register summary bit is set to 1 a service request is generated send the command SRE 128 176 Agilent Signal Generators Programming Guide Programming the Status Register System Accessing Status Register Information Refer to Figure 4 1 on page 168 through Figure 4 6 on page 173 for bit positions and values The query command SRE returns the decimal value of the sum of the bits previously enabled with the SRE lt num gt command To query the Status Byte Register send the command STB The response will be the decimal sum of the bits which are set to 1 For example if bit 7
242. d BUFFER_SIZE Send the terminating newline and EOI viSetAttribute vi VI_ATTR_SEND_END_EN 1 char newLine n viWrite vi unsigned char newLine 1 0 delete buf else fprintf stderr Could not allocate memory for copy bufferin fclose file viClose vi viClose defaultRM return 0 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples Importing Byte Swapping Interleaving and Downloading and Q Data Big and Little Endian Order On the documentation CD this programming example s name is impDwnLd2_ct txt This C programming example compiled using Microsoft Visual C 6 0 performs the following functions JA EL AE error checking binary file importing earlier E443xB or current model signal generators byte swapping and interleaving for little endian order data data interleaving for big endian order data data scaling binary file download for earlier E443xB data or current signal generator formatted data This C program is an example of loading I and Q data into an E443xB E4438C E8267C or E8267D signal generator It reads the I and Q data from a binary data file and then writes the data to the instrument Include the standard headers for SICL programming include lt sicl h gt include lt stdlib h gt include lt stdio h gt include lt string h gt JL Choose a GP
243. d VXI 11 is an instrument control protocol based on Open Network Computing Remote Procedure Call ONC RPO interfaces running over TCP IP It is intended to provide GPIB capabilities such as SRQ Service Request status byte reading and DCAS Device Clear State over a LAN interface This protocol is a good choice for migrating from GPIB to LAN as it has full Agilent VISA SICL support NOTE It is recommended that the VXI 11 protocol be used for instrument communication over the LAN interface Configuring for VXI 11 The Agilent IO library has a program IO Config that is used to setup the computer signal generator interface for the VXI 11 protocol Download the latest version of the Agilent IO library from the Agilent website Refer to the Agilent IO library user manual documentation and Help menu for information on running the IO Config program and configuring the VXI 11 interface Use the IO Config program to configure the LAN client Once the computer is configured for a LAN client you can use the VXI 11 protocol and the VISA library to send SCPI commands to the signal generator over the LAN interface Example programs for this protocol are included in LAN Programming Interface Examples on page 118 of this programming guide NOTE To communicate with the signal generator over the LAN interface you must enable the VXI 11 SCPI service For more information refer to Configuring the DHCP LAN Agilent X Series and MXG on page
244. d ibstop int ud write or command operation that is in progress The parameter ud is the interface or device descriptor 80 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples Library Function Statement Initialization Command SICL The Agilent SICL function aborts any command currently executing with the session id This function is supported with C C on Windows 3 1 and Series 700 HP UX iabort id Remote Function The HP Basic function REMOT from local operation to remote operation In remote operation the front panel keys are disabled except for the Local key and the line power switch Pressing the Local key restores manual operation E and the other listed IO library functions change the signal generator Library Function Statement Initialization Command HP Basic The REMOTE 719 function disables the front panel operation of all keys with the exception of the Local key 10 REMOTE 719 VISA Library The VISA library at this time does not have a similar command N A the id parameter into remote mode and disables the front panel keys Pressing the Local key on the signal generator front panel restores manual operation The parameter id is the session identifier NI 488 2 The NI 488 2 library function asserts the Remote Enable EnableRemote parameter REN GPIB line All devices li
245. d Downloading Waveform Files Programming Examples Program Comments Continued 250 to 260 Closes the connections to the signal generator 290 End the program Creating and Downloading E443xB Waveform Data Using HP BASIC for Windows On the documentation CD this programming example s name is e443xb_hpbasicWin2 tat The following program shows you how to download waveforms using HP Basic for Windows into volatile ARB memory This program is similar to the following program example as well as the previous examples The difference between BASIC for UNIX and BASIC for Windows is the way the formatting for the most significant bit MSB on lines 110 and 120 is handled To download into non volatile ARB memory replace line 160 with 160 OUTPUT ESG USING K MMEM DATA NVARBI testfile and replace line 210 with 210 OUTPUT ESG USING K MMEM DATA NVARBQ testfile First the I waveform data is put into an array of integers called Iwfm data and the Q waveform data is put into an array of integers called Qwfm data The variable Nbytes is set to equal the number of bytes in the I waveform data This should be twice the number of integers in Twfm data since an integer is 2 bytes Input integers must be between 0 and 16383 In the Output commands USING K formats the data The pound symbol 3 suppresses the automatic EOL End of Line output This allows multiple output commands to be concate
246. d MXGT1 leen 21 Getme Help CESG PESGU nk ce eae eee tee ee CHS ERA ERR SESS ETHEL RO ous 21 Setting the Help Mode BSG PSU iis maa RRACEOR ORG E X SRR OR OR OR X RRR ROR ACA OR A 22 duce 1 IIQUi EE ae eae I T T5179 19 220 wo wwe eRe oe Se 23 Error Messages on do 93 493 a SEES gt ESS ARG 394 24 24 R K Yee ER CRY 35 24 Error Messace Tile ick ce bk ASe bee dcum Ae A EE ede eed edo es ded ES 24 Error Message Types 264 6446 R4 x9 4 X ROG eq RC ERS EEDEEVES EES EE Yo d R Ox EON ES ES 25 Using 10 Interfaces Lens GPIB x34 o X ERO d RKAAKAL SSMS OARS debo A ux db eb Rod d dod qood d BG 27 Inetalling the GPIB Interlace 12 ues o hoe RRR RES KER OAS EHE SRE SE DEG WES 27 Set Bp the GPIB Interlace 6 24 664 866 Se E EES OPES FREE CAG BH EWE EHS EES PS 29 Verily GPIB Putctiondlity ous 4 eee Re a RRA kak eA R AAE EAER BHR a a 30 GPIB Interface Terms 545 Dg RR EGA SEA REREAD dE m EEE cR OR eode VAS RET EERE o 31 GPIB Programming Interface Examples 6 244 044 544554545644 R5 4G CAG S244 MOS dE 31 Before Using the GPIB Examples 464644454 65 484 ORE dep REO EAE EOL ORS OSES 31 Interface Check using HP Basic and GPIB 2 42 4 5 64 za 8 eA Re eR RR EK RR RO 31 Interface Check Using NI 488 2 and Crt ics seo soe DRE ERD DEERE DOO HO 32 Using LAN x24 65 odao URRUR C dE SEER EEG qeu EERE P xe Y ed FSP qu vx 33 Getting Up the LAN Interfit 2a eoe RR ROS ROO RO EUR CAO ROB REOR EC RO GOS nO 34 petting up Private LAN oem eR RU RO
247. d other user defined parameters The instrument state settings are saved in memory and organized into sequences and registers There are 10 sequences with 100 registers per sequence available for instrument state settings These instrument state files are stored in the USER STATE directory See also Signal Generator Memory on page 315 The save function does not store data such as Arb waveforms table entries list sweep data and so forth The save function saves a reference to the waveform or data file name associated with the instrument state Use the store commands or store softkey functions to store these data file types to the signal generator s memory catalog Before saving an instrument state that has a data file or waveform file associated with it store the file For example if you are editing a multitone arb format store the multitone data to a file in the signal generator s memory catalog multitone files are stored in the USER MTONE directory Then save the instrument state associated with that data file The settings for the signal generator such as frequency and amplitude and a reference to the multitone file name will be saved in the selected sequence and register number Refer to the signal generator s User s Guide Key and Data Field Reference or the signal generator s Help hardkey for more information on the save and recall functions Save and Recall SCPI Commands The following command sequence saves the current instrum
248. dBm power level and then queried for the power level The power level is printed to the screen IMPORTANT Set up the LAN Client using the IO Config utility 7 8 RRR IRI IO IOI kk ek Ck ok IG hok koe k IO IOI IO II IOI E E IO ok k IO II III IO IO I IOI IO I IO I a de include lt visa h gt include lt stdio h gt include StdAfx h include lt stdlib h gt include lt conio h gt define MAX COUNT 200 int main void ViStatus status Declares a type ViStatus variable ViSession defaultRM instr Declares a type ViSession variable ViUInt32 retCount Return count for string I O ViChar buffer MAX COUNT Buffer for string I O status viOpenDefaultRM amp defaultRM Initialize the system Open communication with Serial Port 2 status viOpen defaultRM TPCIP0 19 INSTR VI NULL VI NULL amp instr if status L If problems then prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 Set timeout for 5 seconds viSetAttribute instr VI_ATTR_TMO_VALUE 5000 Ask for sig gen ID string Agilent Signal Generators Programming Guide 121 Programming Examples LAN Programming Interface Examples status viWrite instr ViBuf IDN n 6 amp retCount Read the sig gen response status viRead instr ViBuf buffer MAX COUNT amp retCount buffer retCount 0 Indicate the end of the string
249. ding Waveform Files Using the Download Utilities 1 List the waveform files from the volatile memory waveform list Send the following SCPI command MMEMory CATalog WFM1 2 Select the waveform segment file s from the volatile memory waveform list Send the following SCPI command SOURCe RADio ARB WAVeform WFM1 lt file_name gt 3 Save the waveform segment s lt waveform1 gt lt waveform2 gt to non volatile memory as a waveform sequence lt file_name gt define the number of repetitions reps each waveform segment plays and enable disable markers M1 M2 M3 M4 for each waveform segment Send the following SCPI command SOURCe RADio ARB SEQuence file name waveforml reps M1 w2 w3 M4 lt waveform2 gt lt reps gt ALL SOURCe RADio ARB SEQuence lt file name gt NOTE ni w2 w3 M4 represent the number parameter of the marker selected i e 1 2 3 4 Entering M1 M2 M3 M4 causes the signal generator to display an error For more information on this SCPI command refer to the signal generator s SCPI Command Reference 4 Play the waveform sequence Send the following SCPI commands SOURce RADio ARB STATe ON OUTPut MODulation STATe ON OUTPut STATe ON Using the Download Utilities Agilent provides free download utilities to download waveform data into the signal generator The table in this section describes the capabilities of three
250. don t care 0 0 2 1 on 1406 1561 set by GSM standard 42 bits amp 1 on 0 remaining bits of user file 2 2 through 6 1562 2342 0 1 don t care 0 0 off 2 7 2343 2499 0 1 don t care 0 1 1 in offset 2499 only Agilent Signal Generators Programming Guide 341 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Event 1 output is set to 0 or 1 depending on the sync out selection which enables the EVENT 1 output at either the beginning of the frame beginning of a specific timeslot or at all timeslots SCPI command RADio GSM SOUT FRAME SLOT ALL Because timeslots are configured and enabled within the signal generator a user file can be individually assigned to one or more timeslots A timeslot cannot have more than one data source PN sequence or user file specified for it The amount of user file data that can be mapped into hardware memory depends on both the amount of PRAM available on the baseband generator and the number and size of each frame See Determining Memory Usage for Custom and TDMA User File Data on page 327 PRAM adds 31 bits to each bit in a frame which forms 32 bit words The following shows how to calculate the amount of PRAM storage space required for a GSM superframe Bits per superframe normal GSM timeslot x timeslot per frame x speech multiframe TCH x superframe size of normal GSM timeslot 156 25 timeslots per fr
251. dress in the instOpenString declaration in the code below with the IP address of your signal generator RRR IR III IOI ek ko ke k ck IO II ko kk de kk ok koe k IO III IOI IOI I IO III II IO I IO I IO I E I a I include lt stdlib h gt include lt stdio h gt include visa h include lt string h gt IMPORTANT Configure the following IP address correctly before compiling and running char instOpenString TCPIP0 000 000 000 000 INSTR your PSG s IP address const int MAX STRING LENGTH 20 length of frequency and power strings const int BUFFER_SIZE 256 length of SCPI command string int main int argc char argv ViSession defaultRM vi ViStatus status 0 status viOpenDefaultRM amp defaultRM open the default resource manager TO DO Error handling here status viOpen defaultRM instOpenString VI_NULL VI_NULL amp vi Agilent Signal Generators Programming Guide 375 Creating and Downloading User Data Files User Flatness Correction Downloads Using C and VISA 376 if status if any errors then display the error and exit the program fprintf stderr viOpen failed s n instOpenString return 1 printf Example Program to Download User Flatness Corrections n n printf Enter number of frequency and amplitude pairs int num 0 scanf d amp num if num gt 0 int lenArray num 2 length of the pairsList array This array will hold the f
252. ds to transfer files from the PC to the signal generator or from the signal generator to the PC For more information see Waveform Structure on page 221 For more information on waveform data see Understanding Waveform Data on page 213 Understanding Waveform Data The signal generator accepts binary data formatted into a binary I Q file This section explains the necessary components of the binary data which uses ones and zeros to represent a value Bits and Bytes Binary data uses the base two number system The location of each bit within the data represents a value that uses base two raised to a power an The exponent is n 1 because the first position is zero The first bit position zero is located at the far right To find the decimal value of the binary data sum the value of each location 1101 1 x 2 1 x22 0 x 25 1 x 29 2 1x8 1x4 0x 2 1x D 13 decimal value Notice that the exponent identifies the bit position within the data and we read the data from right to left The signal generator accepts data in the form of bytes Bytes are groups of eight bits 01101110 0 x27 1 x 2 1 x 25 0 x 25 1 x23 1 x 22 1 x 24 0 x 29 110 decimal value Agilent Signal Generators Programming Guide 213 Creating and Downloading Waveform Files Understanding Waveform Data The maximum value for a single unsigned byte is 255 11111111 or 28_1 but you can use multiple
253. e The I Q file contains the interleaved I and Q data points signed 16 bit integers for each I and Q data point Each I Q point equals one waveform point The signal generator stores the I Q data in the waveform directory NOTE If you download I Q data using a file name that currently resides on the signal generator it also overwrites the existing marker file setting all bits to zero and the file header setting all parameters to unspecified Waveform A waveform consists of samples When you select a waveform for playback the signal generator loads settings from the file header When the ARB is on it creates the waveform samples from the data in the marker and I Q waveform files The file header while required does not affect the number of bytes that compose a waveform sample One sample contains five bytes UO Data Marker Data z 1 Waveform Sample 2bytes 2 bytes Q 1byte 8 bits 5 bytes 16 bits 16 bits Bits 4 7 reserved Bits 0 3 set To create a waveform the signal generator requires a minimum of 60 samples To help minimize signal imperfections use an even number of samples for information on waveform continuity see Waveform Phase Continuity on page 223 When you store waveforms the signal generator saves changes to the waveform file marker file and file header Waveform Phase Continuity Phase Discontinuity Distortion and Spectral Regrowth The most common arbitrary waveform generation use case is
254. e 21 characters max E EXAMPLE E name My Test Waveform name amp tcpipAddress 141 121 151 129 Signal Generator IP Address i PlayWaveform tcpipAddress name play the waveform playCmd RAD ARB WAV WFM1 name t tcpip tcpipAddress 5025 fopen t fprintf t s n playCmd fprintf t syst err fgets t fclose t 298 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples Visual Basic Programming Examples Creating 1 0 Data Little Endian Order On the documentation CD this programming example s name is Create_IQData_vb txt This Visual Basic programming example using Microsoft Visual Basic 6 0 uses little endian order data and performs the following functions error checking an Q integer array creation an Q data interleaving byte swapping to convert to big endian order binary data file storing to a PC or workstation Once the file is created you can download the file to the signal generator using FTP see FTP Procedures on page 239 RR KKK RK RK RK KK KK KK KK KKK KKK RK KKK KKK KR KKK KKK KK KK KEK KEK KK KK KKK KKK KKK ckck ck ck ckck ck ck ckckckck ck ck ck ckck ck ck ckckokok Program Name Create IQData Program Description This program creates a sine and cosine wave using 200 I Q data samples Each I and Q value is represented by a 2 byte integer The sample points are calculated
255. e This is due to the I Q array shifting by one location for each I and Q operation index 4 n Interleaved I Q Array in Big Endian Order IR 8 Toss Q d5 sss 8 7 o Bit Position 1011011111101001 1110010101101011 Data uw e OX I Data Q Data Agilent Signal Generators Programming Guide 247 Creating and Downloading Waveform Files Downloading Waveform Data Line Code Interleaving I and Q data for Big Endian Order 20 short iqbuffer NUMSAMPLES 2 21 for index 0 index numsamples index 22 23 iqbuffer index 2 idata index 24 igbuffer index 241 qdata index 25 26 return 0 Line Code Description Interleaving I and Q data for Big Endian Order 20 Define a 16 bit integer short array to store the interleaved I and Q data The array size increases by two times to accommodate two bytes of I data and two bytes of Q data NOTE In rare instances a compiler may define short as larger than 16 bits If this condition exists replace short with the appropriate object or label that defines a 16 bit integer 21 25 Create a loop to do the following Store the I data values to the I Q array location index 2 Store the Q data values to the I Q array location index 2 1 Interleaved I Q Array in Big Endian Order 15 stes 8 Tanna Pd e A mor Bombus o Bit Position 1011011111101001 clit sad res Data Da T Yo Data Q Data To download the data created in the above exam
256. e 200MHz value with 125MHz This example reads a PXA trace of Eq Ch Freq Resp or Eq Impls Resp and creates an equalization filter compatible with the X Series and MXG signal generators function corrFilter loadPxaEgFilter pxaAddress destRate displayCorr corrFilter loadPxaEqFilter pxaAddress destRate displayCorr Reads out the current Equalization filter active on the PXA specified The communication is over TCP IP LAN destRate is assumed to be 200e6 if missing displayCorr is assumed to 0 off if missing Example corrFilter loadPxaEqFilter pxa4 output of corrFilter is in time domain NOTE The equalization filter feature on the PXA must be ON for this script to work It can be EQ Hold ON iJ amp ij amp ij ij ij ij ij ij Typically followed with something like writeMxgFir a n5182b 00211 EQ 1GHZ 62MHZ corrFilter if nargin lt 1 nargin gt 3 error corrFilter loadPxaEqFilter pxaAddress destRate displayCorr destRate is assumed to be 200e6 if missing end if nargin lt 2 destRate 200e6 end if nargin lt 3 displayCorr 0 end contact PXA Agilent Signal Generators Programming Guide 151 Programming Examples LAN Programming Interface Examples t tcpip pxaAddress 5025 t OutputBufferSize 1 1024 1024 t InputBufferSize 1 1024 1024 fopen t fprintf t DISPlay DDEM TRAC2 FEED Eq Impulse Responsel in fprintf t DISP DDEM TRAC
257. e ESG PSG signal generators allocate non volatile memory in blocks of 512 bytes For files less than or equal to 512 bytes the file uses only one block of memory For files larger than 512 bytes the signal generator allocates additional memory in multiples of 512 byte blocks For example a file that has 21 538 bytes consumes 43 memory blocks 22 016 bytes Memory Size The amount of available memory volatile and non volatile varies by option and the size of the other files that share the memory When we refer to waveform files we state the memory size in samples one sample equals five bytes The ESG and PSG baseband generator BBG options 001 002 601 or 602 the Agilent MXG baseband generator BBG Option 651 652 and 654 and the X Series baseband generator BBG Option 653 or 656 contain the waveform playback memory Refer to Tables 5 4 on page 231 through Table 5 6 on page 232 for the maximum available memory 230 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Waveform Memory Volatile and Non Volatile Memory N5172B 82B N5162A 82A Table 5 4 N5172B 82B N5162A 82A Volatile BBG and Non Volatile Internal Storage and USB Media Memory Volatile BBG Memory Non Volatile Internal Storage and USB Media Memory Option Size Option Size N5172B 82B 653 656 BBG 32 MSa 160 MB Standard 800 MSa 4 GB 022 BBG 512 MSa 2 5 GB 006 2 GSa 8 GB 023 BBG 102
258. e EVENT 1 connector bursts the data pattern 1100 seven times over 28 bytes transmits 32 non bursted bytes resets the data pattern so it starts again MEMory DATA PRAM FILE LIST lt new_file gt 85 21 20 20 21 21 20 20 21 21 20 20 21 21 20 20 21 21 20 20 21 21 20 20 21 21 20 20 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 144 The following list defines the meaning of the different bytes seen in the command line 85 Send a pulse to the EVENT 1 output and burst the signal with a data bit of 1 21 Burst the signal with a data bit of 1 20 Burst the signal with a data bit of 0 16 Do not burst the signal RF output off and set the data bit to 0 144 Reset the data pattern do not burst the signal RF output off and set the data bit to 0 SCPI Command for a Block Data Download The IEEE standard 488 2 1992 section 7 7 6 defines block data The signal generator is able to download block data significantly faster than list formatted data see page 350 because it does not have to parse the data When creating the data remember that the signal generator requires a minimum of 60 bytes For more information on file size limits see PRAM File Size on page 348 350 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Command Syntax MEMory DATA PRAM FILE BLOCk lt file_name
259. e NI 488 2 library function addresses the GPIB reads ibrd parameter list data bytes from the signal generator and stores the data into a specified buffer The parameter list includes the instrument address and session id SICL The Agilent SICL function reads formatted data converts it iscanf parameter list and stores the results into the argument list The conversion is done using conversion rules for the format string The parameter list includes the instrument address formatted data to read and so forth Interface Check using HP Basic and GPIB This simple program causes the signal generator to perform an instrument reset The SCPI command RST places the signal generator into a pre defined state and the remote annunciator R appears on the front panel display The following program example is available on the signal generator Documentation CD ROM as basicex1 txt 10 LEK Ckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckck ck KKK KKK KKK KKK KK KK KKK KR KK 20 30 PROGRAM NAME basicexl txt 40 50 PROGRAM DESCRIPTION This program verifies that the GPIB connections and 60 interface are functional 70 80 Connect a controller to the signal generator using a GPIB cable 90 100 110 CLEAR and RESET the controller and type in the following commands and then 120 RUN the program 130 84 Agilent Signal Generators Programming Guide
260. e Side Band Suppressed Carrier SSBSC signal It is nothing more than a cosine wavefomm in I and a sine waveform in Q points 1000 Number of points in the waveform cycles 101 Determines the frequency offset from the carrier phaselnc 2 pi cycles points phase phaseInc 0 points 1 Iwave cos phase Qwave sin phase oe de X de ce ce ce ce ce ce ce ce dp Alternate way to calculate the waveform RMS voltage rms sqrt sum Iwave Iwave Qwave Qwave points 25 Save waveform in internal format ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ck ockckckckckckckckck ck ck ck ck Convert the I and Q data into the internal arb format The internal arb format is a single waveform containing interleaved IQ data The I Q data is signed short integers 16 bits The data has values scaled between 32767 where DAC Value Description 32767 Maximum positive value of the DAC 0 Zero out of the DAC 32767 Maximum negative value of the DAC The internal arb expects the data bytes to be in Big Endian format This is opposite of how short integers are saved on a PC Little Endian For this reason the data bytes are swapped before being saved Interleave the IQ data waveform 1 2 2 points Iwave waveform 2 2 2 points Qwave Agilent Signal Generators Programming Guide Programming Examples 285 Creating and Downloading Waveform Files Programming Examples Iwave Qwave Swavef
261. e and the easiest to use When you download a bit file you designate how many bits in the file the signal generator can modulate onto the signal During the file download the signal generator adds a 10 byte file header that contains the information on the number of bits the signal generator is to use Although you download the data in bytes when the signal generator uses the data it recognizes only the bits of interest that you designate in the SCPI command and ignores the remaining bits This provides greater flexibility in designing a data pattern without the concern of using an even number of bytes as is needed with the binary file data format The following figure illustrates this concept The example in the figure shows the bit data SCPI command formatted to download three bytes of data but only 23 bits of the three bytes are designated as the bits of interest For more information 322 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D on the bit data SCPI command format see Downloading User Files on page 330 and Command for Bit File Downloads on page 333 SCPI Command MEM DATA BIT lt file_name gt lt bit_interest gt lt datablock gt MEM DATA BIT 3byte 23 4 113 Z amp x M 4 ASCII representation of the data 3 bytes Start block data number of bytes number of decimal digits Bits of interest
262. e data fields the file needs 87 bytes 696 bits This is enough data to fill two frames while maintaining the integrity of the data pattern as illustrated in the following figure Framed Data Uneven Number of Bytes some data truncated Frame 1 Frame 2 Ctrl 348 data bits Ctrl Ctrl 348 data bits Ctrl 352 bits 44 bytes 110100110110 011011114 LSB Frame 1 data repeated Em 9 Y l Frame 1 data Truncated data bits 0 3 MSB not enough bits remaining to fill the next frame Even Number of Bytes all bits used Frame 1 Frame 2 Ctrl 348 data bits Ctrl Ctrl 348 data bits Ctrl 696 bits 87 bytes 011101100110110101110100110110 01101111 Data fills both frames 348 bits per frame with no truncated bits For information on editing a file after downloading see Modifying User File Data on page 336 User File Size You download user files into non volatile memory For CDMA GPS and W CDMA the signal generator accesses the data directly from non volatile memory so the file size up to the maximum file size shown in Table 6 6 for these formats is limited only by the amount of available non volatile memory As seen in the table the baseband generator option does not affect these file sizes For Custom and TDMA however when the signal generator creates the signal it loads the data from non volatile memory into volatile memory which is also the same memory that
263. e filter coefficients which are specified as I jQ in the time domain Filter lengths of up to 1024 taps are allowed The oversample ratio OSR is the number of filter taps per symbol Oversample ratios from 1 through 32 are possible The sampling period At is equal to the inverse of the sampling rate FS For modulation filters the sampling rate is equal to the symbol rate multiplied by the oversample ratio For example the GSM symbol rate is 270 83 ksps With an oversample ratio of 4 the sampling rate is 1083 32 kHz and At inverse of FS is 923 088 nsec Table 6 17 Filter Type Oversampling Ratio Number of Taps Symbols Coefficients OSR Maximum Maximum Equalization 1 256 b ARB Custom 22 512 1024 Modulation Dual ARB 22 32 1024 Real Time Modulation a When 170 timing skew 170 delay or the ACP internal I Q channel optimization features are active the effective number of taps for the equalization filter are reduced b The filter may be sampled to a higher or lower OSR c The filter will be decimated to a 16 or lower OSR depending on the symbol rate Agilent Signal Generators Programming Guide Creating and Downloading User Data Files FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D Downloading FIR Filter Coefficient Data The signal generator stores the FIR files in the FIR USER FIR directory which utilizes non volatile memory see also Signal Gener
264. e information on the manual configuration refer to Manually Configuring the Agilent X Series and MXG LAN on page 36 or to Manually Configuring the ESG PSG LAN on page 36 Agilent Signal Generators Programming Guide 35 Using 10 Interfaces Using LAN Manually Configuring the Agilent X Series and MXG LAN EC uto l 9 Tupe fanual Config D Settings Auto IP Utility gt IO Config LAN Setup LAN Services Setup Remote Language SCPI P4 Your hostname can be up to 20 characters long Advanced Proceed With Reconfiguration Confirm Change Instrument Will Reboot SCPI commands SYSTem COMMunicate LAN CONFig MANual SYSTem COMMunicate LAN CONFig For details on each key use the key help described in User s Guide For additional SCPI command information refer to the SCPI Command Reference Manually Configuring the ESG PSG LAN I he Hostname sottkey is available only when LAN Contig Manual DHCP is set to Utility gt IO Config Manual Your hostname can be up to 20 characters long SCPI commands SYSTem COMMunicate LAN CONFig MANual SYSTem COMMunicate LAN CONFig Confirm Change CInstrument Will Rebook ue Hostname GPIB em COBRALP 1 IP Address pavze komeke 141 121 60 53 E Subnet Mask Default Gateway For details on each key use the Key and Data Field Rocchi LU Reference For additional SCP command information refer to the
265. e mode are persistent For more information on persistent memory refer to the User s Guide The SCPI command to set up sweep time is SWE TIME lt val gt lt units gt For more on SCPI commands refer to the SCPI Command Reference Setting the PSG Sweep Time Requirements PSG with Firmware lt 4 91 By default the PSG sweep time is automatically adjusted to the fastest possible sweep when exiting Pass Thru mode To select a different sweep time these additional steps are required 1 Insert line 25 that saves state 1 SV1 25 OUTPUT 716 SV1 2 Insert line 55 that sets the sweep time of the source SWE TIME val 55 OUTPUT 717 SWE TIME 200S 3 Insert line 56 that saves the state into the register sequence 0 register 1 SAV lt reg_num gt lt seq_num gt SAV 1 0 56 OUTPUT 717 SAV 1 0 Agilent Signal Generators Programming Guide 117 Programming Examples LAN Programming Interface Examples 4 Insert line 115 that recalls state 1 RC1 115 OUTPUT 717 RC1 LAN Programming Interface Examples NOTE The LAN programming examples in this section demonstrate the use of VXI 11 and Sockets LAN to control the signal generator To use these programming examples you must change references to the IP address and hostname to match the IP address and hostname of your signal generator e VXI 11 Programming Using SICL and C on page 119 e VXI 11 Programming Using VIS
266. e n getch viClear vi Clears the signal generator viPrintf vi RST n Resets the signal generator viPrintf vi FM2 INT FREQ 5 kHz n Sets FM path 2 to internal at a modulation rate of 5 kHz viPrintf vi FM2 DEV 100 kHz n Sets FM path 2 modulation deviation rate of 100 kHz viPrintf vi FREQ 900 MHz n Sets carrier frequency to 900 MHz viPrintf vi POW 15 dBm n Sets the power level to 15 dBm viPrintf vi FM2 STAT ON n Turns on frequency modulation viPrintf vi OUTP STAT ON n Turns on RF output printf n Prints a carriage return Print user information printf Power level 15 dBm n printf FM state on n printf RF output on n printf Carrier Frequency 900 MHZ n printf Deviation 100 kHZ n printf Internal modulation 5 kHz n printf n Print a carrage return Close the sessions viClose vi 100 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples viClose defaultRM Generating a Step Swept Signal Using VISA and C In this example the VISA library is used to set the signal generator for a continuous step sweep on a defined set of points from 500 MHz to 800 MHz The number of steps is set for 10 and the dwell time at each step is set to 500 ms The signal generator will then be set to local mode which allows the user to make adjustments from the front panel Launch M
267. e service request SRQ interrupt technique to avoid status polling therefore giving a speed advantage The signal generator s instrument status system provides complete SCPI compliant data structures for reporting instrument status using the register model The SCPI register model of the status system has multiple registers that are arranged in a hierarchical order The lower priority status registers propagate their data to the higher priority registers using summary bits The Status Byte Register is at the top of the hierarchy and contains the status information for lower level registers The lower level registers monitor specific events or Agilent Signal Generators Programming Guide 165 Programming the Status Register System Overview conditions The lower level status registers are grouped according to their functionality For example the Data Questionable Frequency Status Group consists of five registers This chapter may refer to a group as a register so that the cumbersome longer description is avoided For example the Standard Operation Status Group s Condition Register can be referred to as the Standard Operation Status register Refer to Status Groups on page 183 for more information Figure 4 1 Figure 4 2 Figure 4 3 Figure 4 4 Figure 4 5 and Figure 4 6 shows each signal generator model s signal generator s status byte register system and hierarchy The status register systems use IEEE 488 2 commands those
268. e signal generator There is no latching or buffering for a condition register it is updated in real time Negative Transition Filter A negative transition filter specifies the bits in the condition register that will set corresponding bits in the event register when the condition bit changes from 1 to 0 Positive Transition Filter A positive transition filter specifies the bits in the condition register that will set corresponding bits in the event register when the condition bit changes from 0 to 1 Event Register An event register latches transition events from the condition register as specified by the positive and negative transition filters Once the bits in the event register are set they remain set until cleared by either querying the register contents or sending the CLS command Event Enable Register An enable register specifies the bits in the event register that generate the summary bit The signal generator logically ANDs corresponding bits in the event and enable registers and ORs all the resulting bits to produce a summary bit Summary bits are in turn used by the Status Byte Register A status group is a set of related registers whose contents are programmed to produce status summary bits In each status group corresponding bits in the condition register are filtered by the negative and positive transition filters and stored in the event register The contents of the event register are logically ANDed with the cont
269. e size of the file to be downloaded After you select a user file and turn the format on the signal generator loads the file into volatile memory for processing It translates each data bit into a 32 bit word 4 bytes The 32 bit words are not saved to the original file that resides in non volatile memory It creates an expanded data file named AUTOGEN_PRAM_1 in volatile memory while also maintaining a copy of the original file in volatile memory It is the AUTOGEN_PRAM_1 file that contains the 32 bit words and accounts for most of the user file PRAM memory space e If the transmission is using unframed data and there are not enough bits in the data file to create 60 symbols the signal generator replicates the data pattern until there is enough data for 60 symbols For example GSM uses 1 bit per symbol If the user file contains only 24 bits enough for 24 symbols the signal generator replicates the data pattern two more times to create a file with 72 bits The expanded AUTOGEN PRAM 1 file size would show 288 bytes 72 bits x 4 bytes bit Use the following procedures to calculate the required amount of volatile memory for both framed and unframed TDMA signals Calculating Volatile Memory PRAM Usage for Unframed Data on page 328 e Calculating Volatile Memory PRAM Usage for Framed Data on page 328 Agilent Signal Generators Programming Guide 327 Creating and Downloading User Data Files User File Data Bit Binary Dow
270. e the VISA Assistant to verify LAN configuration Refer to the IO Libraries Installation Guide for information on configuring IO interfaces The IO Config program interface is shown in Figure 2 4 on page 45 42 Agilent Signal Generators Programming Guide Using 10 Interfaces Using LAN Figure 2 3 10 Config Form Windows NT xt the interface in Available Interface Types and clic the interface in Configured Interfaces and click E vith click Auto Config Interface Description E SICL Name RS 232 COM Ports ASRL1 VISA LAN Client e g E5810 ASRL2 82350 PCI GPIB Card E x 82341 ISA GPIB Card 82357 USB to GPIB VISA LAN Client e g E5810 GPIB VXI Command Module LAN Client LAN Instruments USB Instruments VISA LAN Client for USB E8431 IEEE 1394 to VXI LAN Server PC as Server E Edt Remove Check to see that the Default Protocol is set to Automatic 1 Run the IO Config program 2 Click on TCPIP in the Configured Interfaces text box If there is no TCPIPO in the box follow the steps shown in the section Using VISA Assistant on page 42 Click the Edit button Click the radio button for AUTO automatically detect protocol Click OK OK to end the IO Config program Agilent Signal Generators Programming Guide 43 Using 10 Interfaces Using LAN Using VXI 11 The signal generator supports the LAN interface protocol described in the VXI 11 standar
271. e user have a separate written agreement with warranty terms covering the material in this document that conflict with these terms the warranty terms in the sep arate agreement shall control Technology Licenses The hardware and or software described in this document are furnished under a license and may be used or copied only in accor dance with the terms of such license Restricted Rights Legend U S Government Restricted Rights Soft ware and technical data rights granted to the federal government include only those rights customarily provided to end user cus tomers Agilent provides this customary commercial license in Software and techni cal data pursuant to FAR 12 211 Technical Data and 12 212 Computer Software and for the Department of Defense DFARS 252 227 7015 Technical Data Commercial Items and DFARS 227 7202 3 Rights in Commercial Computer Software or Com puter Software Documentation Safety Notices CAUTION A CAUTION notice denotes a haz ard It calls attention to an operat ing procedure practice or the like that if not correctly performed or adhered to could result in damage to the product or loss of important data Do not proceed beyond a CAUTION notice until the indicated conditions are fully understood and met A WARNING notice denotes a hazard It calls attention to an operating procedure practice or the like that if not correctly per formed or adhered to could result in pe
272. e2 FORMat REAL n fprintf t calc DDEM DATA2 n realTime readArrayOfDoubles t fprintf t DISP DDEM TRACe2 FORMat IMAG n fprintf t calc DDEM DATA2 n imagTime readArrayOfDoubles t coeffs realTime 1i imagTime fprintf t calc DDEM DATA2 HEAD XDelta n timeStep readArrayOfDoubles t rate ceil 1 timeStep 1e 9 mirror coefficients coeffs coeffs length coeffs 1 1 convert to frequency coefficients null group delay with ifftshift coeffs fft ifftshift coeffs invert phase in frequency domain mag abs coeffs ang angle coeffs coeffs mag cos ang li mag sin ang display the frequency domain version again fprintf t DISPlay DDEM TRAC2 FEED Ch Frequency Responsel n fprintf t DISPlay DDEM TRAC2 FORMat MLOG n fprintf t DISPlay DDEM TRAC2 Y AUTO ONCEMn must center frequency domain to match what comes in frequency domain coeffs fftshift coeffs fclose t convert to time domain first placing the 0 frequency at the left edge timeDomain ifft ifftshift coeffs centeredTime fftshift timeDomain if abs destRate rate 1e 6 this simple resample function may be insuffient for some rates resampledTime resample centeredTime destRate rate 30 resampledTime resampledTime rate destRate else resampledTime centeredTime end BSB display resulting corrections 152 Agilent Signal Generators Programm
273. eader lt file_name gt lt blockdata gt a Refer to note on page 232 Table 5 8 Downloading Encrypted Files for No Extraction Extraction allowed on the X Series and MXG Only Download Method Memory Type Command Syntax Options SCPI volatile memory MMEM DATA user bbgl securewave file name blockdata MMEM DATA SWFM1 lt file_name gt lt blockdata gt MMEM DATA file_name SWFM1 lt blockdata gt SCPI non volatile memory MMEM DATA user securewave lt file_name gt lt blockdata gt MMEM DATA SNVWFM lt file_name gt lt blockdata gt MMEM DATA file_name SNVWFM lt blockdata gt a Refer to note on page 232 Table 5 9 Downloading Unencrypted Files for Extraction Memory Type Download Method Command Syntax Options SCPI volatile memory MEM DATA UNPRotected user bbgl waveform file name blockdata DATA UNPRotected user bbgl markers file name blockdata DATA UNPRotected user bbgl header file name blockdata DATA UNPRotected WFM1 file name blockdata DATA UNPRotected MKR1 file name blockdata DATA UNPRotected HDR1 file name blockdata DATA UNPRotected file_name WFM1 lt blockdata gt DATA UNPRotected file_name MKR1 lt blockdata gt DATA UNPRotected file_name HDR1 lt blockdata gt 236 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Commands for Downloading and Extracti
274. eader if the two items are not part of the download In this situation the signal generator sets the file header information to unspecified no settings saved and sets all markers to zero off There are three ways to download waveform files FTP programmatically or using one of three available free download utilities created by Agilent Technologies e N7622A Signal Studio Toolkit 2 http www agilent com find signalstudio Agilent Waveform Download Assistant for use only with MATLAB http www agilent com find downloadassistant e ntuilink for Agilent PSG ESG Signal Generators http www agilent com find intuilink NOTE Agilent Intuilink is not available for the Agilent MXG 212 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Understanding Waveform Data Waveform Data Requirements To be successful in downloading files you must first create the data in the required format Signed 2 s complement e 2 byte integer values Input data range of 32768 to 32767 Minimum of 60 samples per waveform 60 I and 60 Q data points Interleaved I and Q data Big endian byte order The same name for the marker header and I Q file This is only a requirement if you create and download a marker file and or file header otherwise the signal generator automatically creates the marker file and or file header using the I Q data file name NOTE FTP can be used without programming comman
275. ected as the filtering mechanism for the active digital communications standard Data Requirements There are two requirements for user defined FIR filter coefficient files l Data must be in ASCII format The signal generator processes FIR filter coefficients as floating point numbers 2 Data must be in List format FIR filter coefficient data is processed as a list by the signal generator s firmware See Sample Command Line 358 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D Data Limitations NOTE Modulation filters are real and have an oversample ratio OSR of two or greater On the N5162A N5182A with Options 651 652 654 only equalization filters are typically complex and must have an OSR of one refer to Using the Equalization Filter X Series and MXG with Baseband Generator on page 362 and to the User s Guide The X Series and MXG support both Real and Complex filters Complex filters can only be used with equalization filters Refer to Table 6 16 and to Table 6 17 For more on equalization filters refer to Using the Equalization Filter X Series and MXG with Baseband Generator on page 362 Table 6 16 Type of Description Filter Real The I and Q samples are independently filtered by a single set of real coefficients Complex The samples are treated as complex I jQ and convolved with th
276. ection Downloads Using C and VISA User Flatness Correction Downloads Using C and VISA This sample program uses C and the VISA libraries to download user flatness correction values to the signal generator The program uses the LAN interface but can be adapted to use the GPIB interface by changing the address string in the program You must include header files and resource files for library functions needed to run this program Refer to Running C Programs on page 76 for more information The FlatCal program asks the user to enter a number of frequency and amplitude pairs Frequency and amplitude values are entered through the keyboard and displayed on the console interface The values are then downloaded to the signal generator and stored to a file named flatCal data The file is then loaded into the signal generator s memory catalog and corrections are turned on The figure below shows the console interface and several frequency and amplitude values Use the same format shown in the figure below for entering frequency and amplitude pairs for example 12ghz 1 2db Figure 6 3 FlatCal Console Application Example Program to Download User Flatness Corrections Enter number of frequency and amplitude pairs 2 Enter Freq 1 12ghz Enter Power 1 2 3db Enter Freq 2 15ghz Enter Power 2 2 4db Flatness Data saved to file flatCal data Flatness Corrections Enabled Press any key to continue The program uses VISA library
277. ection of an event viStatus viEnableEvent vi VI EVENT SERVICE REO VI HNDLR VI NULL viPrintf vi FREQ MODE LIST n Sets frequency mode to list viPrintf vi LIST TYPE STEP n Sets sweep to step viPrintf vi LIST TRIG SOUR IMM n Immediately trigger the sweep viPrintf vi LIST MODE AUTO n Sets mode for the list sweep viPrintf vi FREQ STAR 40 MHZ n Start frequency set to 40 MHz viPrintf vi FREQ STOP 900 MHZ n Stop frequency set to 900 MHz viPrintf vi SWE POIN 25 n Set number of points for the step sweep viPrintf vi SWE DWEL 5 S n Allow 5 sec dwell at each point viPrintf vi INIT CONT OFF n Set up for single sweep viPrintf vi TRIG SOUR IMM n Triggers the sweep viPrintf vi INIT n Takes a single sweep printf n While the instrument is sweeping have the program busy with printing to the display The Sleep function defined in the header file windows h will pause the program operation for 5 seconds while sweep 1 printf Sleep 500 printf n The following lines of code will stop the events and close down the session viStatus viDisableEvent vi VI ALL ENABLED EVENTS VI ALL MECH viStatus viUninstallHandler vi VI EVENT SERVICE REQ interupt rdBuffer viStatus viClose vi Agilent Signal Generators Programming Guide 113 Programming Examples GPIB Programming Interface Examples viStatus v
278. ed s n instOpenString return 1 NO oP W PD Agilent Signal Generators Programming Guide 251 Creating and Downloading Waveform Files Downloading Waveform Data Line Code Description Open a Connection Session 1 Assign the signal generator s LAN hostname IP address or GPIB address to a character string This example uses the Agilent IO library s open SICL function to establish a LAN connection with the signal generator The input argument lan hostname or IP address contains the device interface or commander address Change it to your signal generator host name or just set it to the IP address used by your signal generator For example ian 999 137 240 9 e If you are using GPIB to connect to the signal generator use the commented line in place of the first line Insert the GPIB address based on your instrument setting for example gpibO 19 For the detailed information about the parameters of the SICL function iopen refer to the online Agilent SICL User s Guide for Windows 2 Open a connection session with the signal generator to download the generated I Q data The SICL function iopen is from the Agilent IO library and creates a session that returns an identifier to id If iopen succeeds in establishing a connection the function returns a valid session id The valid session id is not viewable and can only be used by other SICL functions If iopen generates an error before making
279. efer to the SCPI Command Reference Memory Cataloap Proceed With Instrument Info A Help Mode Reconf Laura ion SCPI commands SYSTem COMMunicate LAN CONFig DHCP DHCP Request a new IP address from the DHCP server each power cycle SYSTem COMMunicate LAN CONFig Confirming this action configures the signal generator as a DHCP client In DHCP mode the signal generator will request a new IP address from the DHCP server upon rebooting to determine the assigned IP address Setting up Private LAN You can connect the Agilent X Series MXG ESG or PSG directly to a PC using a crossover cable To do this you should either choose to set IP addresses of the PC and signal generator to differ only in the last digit example PC s IP 1 1 1 1 and Signal generator s IP 1 1 1 2 or you can use the DHCP feature or Auto IP feature if your PC supports them For more information go to www agilent com and search on the Connectivity Guide E2094 90009 or use the Agilent Connection Expert s Help to see the Connection Guide Verifying LAN Functionality Verify the communications link between the computer and the signal generator remote file server using the ping utility Compare your ping response to those described in LAN Ping Responses on page 40 NOTE For additional information on troubleshooting your LAN connection refer to If You Have Problems on page 39 and to the Help in the Agilent IO Libraries and documentation for LAN
280. efines block data This section contains two examples to explain how to format the SCPI command for downloading user file data The examples use the binary user file SCPI command however the concept is the same for the bit file SCPI command Command Format Command Format in a Program Routine on page 331 Command Format This example conceptually describes how to format a data download command ABC represents the block data MEM DATA file name gt ABC lt file_name gt the data file path and name indicates the start of the block data A the number of decimal digits present in B B a decimal number specifying the number of data bytes to follow in C 330 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D C the file data in bytes MEM DATA bin qmy f ile 32401285 4 amp 0788g Y907 2s file location file name A B C bin the location of the file within the signal generator file system my file the data file name as it will appear in the signal generator s memory catalog indicates the start of the block data 3 B has three decimal digits 240 240 bytes 1 920 bits of data to follow in C 12 3S 4 amp 07 8g Y9 7 the ASCII representation of some of the block data binary data downloaded to the signal generator however not all ASCII values are printable In actual use the block data is not part of the
281. eforms by simulating an integer number of cycles when you create your waveform segment NOTE If there are N samples in a complete cycle only the first N 1 samples are stored in the waveform segment Therefore when continuously playing back the segment the first and Nth waveform samples are always the same preserving the periodicity of the waveform By adding off time at the beginning of the waveform and subtracting an equivalent amount of off time from the end of the waveform you can address phase discontinuity for TDMA or pulsed periodic waveforms Consequently when the waveform repeats the lack of signal present avoids the issue of phase discontinuity However if the period of the waveform exceeds the waveform playback memory available in the arbitrary waveform generator a periodic phase discontinuity could be unavoidable N5110B Baseband Studio for Waveform Capture and Playback alleviates this concern because it does not rely on the signal generator waveform memory It streams data either from the PC hard drive or the installed PCI card for N5110B enabling very large data streams This eliminates any restrictions associated with waveform memory to correct for repetitive phase discontinuities Only the memory capacity of the hard drive or the PCI card limits the waveform size 224 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Waveform Phase Continuity Sampled Sinewave with No Discontinuity
282. el Results in filel containing only the ker data get user marker file filel MATTE Cata Correct get user waveform file filel wfm Creates a waveform file and a get URA filel mkr compatible marker file It is easier to keep files associated by varying the extenders 6 At the ftp prompt type bye 7 At the command prompt type exit Using the Signal Generator s Internal Web Server 1 Enter the signal generator s hostname or IP address in the URL http host name gt or IP address gt 2 Click the Signal Generator FTP Access button located on the left side of the window The signal generator files appear in the web browser s window 3 Drag and drop files between the PC and the browser s window For more information on the web server feature see Chapter 1 Agilent Signal Generators Programming Guide 241 Creating and Downloading Waveform Files Creating Waveform Data Creating Waveform Data This section examines the C code algorithm for creating I Q waveform data by breaking the programming example into functional parts and explaining the code in generic terms This is done to help you understand the code algorithm in creating the I and Q data so you can leverage the concept into your programming environment The SCPI Command Reference contains information on how to use SCPI commands to define the markers polarity routing and other marker settings If you do not need this level of detail you can find the
283. ement and prepares to move on to the next frequency in its list The MXA s Waiting For Trigger instrument event transitions high and a LAN1 output event goes onto the LAN with a rising edge The MXA waits for its next trigger The two instruments continue to step through their lists until the MXA has completed measurements at every frequency in its list Once the final measurement has completed the OperationComplete instrument event transitions high causing the OperationComplete output event to go out onto the LAN with a rising edge This event may be caught by a controller to signal the end of the measurement The controller may then retrieve the list sweep measurement results from the MXA Synchronize a List Sweep Measurement Between an MXA and an MXG using Peer to Peer Messages 1 Disable LXI Output LAN Events on the MXG Send the following SCPI command LXI EVENt OUTPut LAN DISable ALL 2 Reset the MXG Send the following SCPI command RST 3 Choose the MXG s PTP domain Send the following SCPI command LXI CLOCk PTP DOMain 0 The parameter may be any integer between 0 to 127 4 Choose the MXG s LXI domain Send the following SCPI command LXI EVENt DOMain 0 The parameter may be any integer between 0 to 127 5 Preset the MXG s list sweep Send the following SCPI command LIST TYPE LIST INIT PRES 6 Sets the MXG to expect a list of frequencies Send the following SCPI command
284. endian order and performs the following functions error checking binary file importing from the PC or workstation binary file download to the signal generator Description Send a file in blocks of data to a signal generator include lt sicl h gt include lt stdlib h gt include lt stdio h gt include lt string h gt ATTENTION Configure these three lines appropriately for your instrument and use before compiling and running char instOpenString gpib7 19 for LAN replace with lan lt hostname or IP address gt const char localSrcFile D home TEST_WAVE enter file location on PC workstation const char instDestFile USER BBG1 WAVEFORM TEST WAVE for non volatile memory remove BBG1 from file path Size of the copy buffer const int BUFFER SIZE 100 1024 int main INST id iopen instOpenString if id fprintf stderr iopen failed s n instOpenString return 1 FILE file fopen localSrcFile rb if file fprintf stderr Could not open file s n localSrcFile return 0 Agilent Signal Generators Programming Guide 271 Creating and Downloading Waveform Files Programming Examples if fseek file 0 SEEK_END lt 0 fprintf stderr Cannot seek to the end of file n return 0 long lenToSend ftell file printf File size d n lenToSend if fseek file 0 SEEK_SET lt 0 fprintf
285. ent state using the SAV command in register 01 sequence 1 A comment is then added to the instrument state SAV 01 1 MEM STAT COMM 01 1 Instrument state comment If there is a waveform or data file associated with the instrument state there will be a file name reference saved along with the instrument state However the waveform data file must be stored in the signal generators memory catalog as the SAV command does not save data files For more information on storing file data such as modulation formats arb setups and table entries refer to the signal generator s User s Guide NOTE On the N5162A N5182A E4438C and E8267D if a saved instrument state contains a reference to a waveform file ensure that the waveform file resides in volatile memory before recalling the instrument state For more information see the User s Guide Agilent Signal Generators Programming Guide 363 Creating and Downloading User Data Files Save and Recall Instrument State Files The recall function recalls a saved instrument state If there is a data file associated with the instrument state the file will be loaded along with the instrument state The following command recalls the instrument state saved in register 01 sequence 1 RCL 01 1 Save and Recall Programming Example Using VISA and C The following programming example uses VISA and C to save and recall signal generator instrument states Instruments states are saved to and reca
286. entation CD ROM as visaex6 cpp f RRRRERRRERER ERE RE RE RE RE KER EKER EKER EKER EERE RE RE RE RE RE RE RE RE RRR ERR KER kchckck kchckch ck ER ERE ck ckck ckck ko PROGRAM FILE NAME visaex6 cpp PROGRAM DESCRIPION This example generates an internal FM signal at a 900 MHz carrier frequency and a power level of 15 dBm The FM rate is 5 kHz and the peak deviation 100 kHz 8 RRR III k ke kk III OIG III ko kc IO IOI ok ko ko IOI IO koe Kk ok IO ko kk IOI IO IO I IO I ek I IO IO kde include lt visa h gt include StdAfx h include lt iostream gt include lt stdlib h gt Agilent Signal Generators Programming Guide 99 Programming Examples GPIB Programming Interface Examples include lt conio h gt void main ViSession defaultRM vi Declares variables of type ViSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications viStatus viOpenDefaultRM amp defaultRM Initialize VISA session open session to gpib device at address 19 viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus L If problems then prompt user printf Could not open ViSession Nn printf Check instruments and connections Mn printf n exit 0 printf Example program to set up the signal generator n printf for an AC coupled FM signal n n print printf Press any key to continu
287. ents of the enable register and the result is logically ORed to produce a status summary bit in the Status Byte Register Agilent Signal Generators Programming Guide 183 Programming the Status Register System Status Groups Standard Event Status Group The Standard Event Status Group is used to determine the specific event that set bit 5 in the Status Byte Register This group consists of the Standard Event Status Register an event register and the Standard Event Status Enable Register This is the named status register for the E4438C However not all ignal generator S shat Request Bus Control the shown events i e some use only Query Error a subset of the E4438C s status registers Operation Complete Device Dependent Error Execution Error Command Error User Request Power On Event Register 7 6 5 4 83 2 bl HAE Ere T 4 NENNEN Oro Event Enable Register To Status Byte Register Bit 5 ck728a 184 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Standard Event Status Register Table 4 5 Standard Event Status Register Bits Bit Description 0 Operation Complete A 1 in this bit position indicates that all pending signal generator operations were completed following execution of the OPC command 1 Request Control This bit is always set to 0 The signal generator does not request control 2 Query Error
288. er with a serial poll the RQS bit is reset to 0 Other bits in the register are not affected If the status register is configured to SRQ on end of sweep or measurement and the mode set to continuous restarting the measurement INIT command can cause the measuring bit to pulse low This causes an SRQ when you have not actually reached the end of sweep or measurement condition To avoid this do the following 1 Send the command INITiate CONTinuous OFF 2 Set enable the status registers 3 Restart the measurement send INIT Status Register SCPI Commands Most monitoring of signal generator conditions is done at the highest level using the IEEE 488 2 common commands listed below You can set and query individual status registers using the commands in the STATus subsystem CLS clear status clears the Status Byte Register by emptying the error queue and clearing all the event registers Agilent Signal Generators Programming Guide 177 Programming the Status Register System Accessing Status Register Information ESE ESE event status enable sets and queries the bits in the Standard Event Enable Register which is part of the Standard Event Status Group ESR event status register queries and clears the Standard Event Status Register which is part of the Standard Event Status Group OPC OPC operation complete sets bit 0 in the Standard Event Status Register to 1 when all commands have completed The query s
289. ere are three ways to FTP files use Microsoft s Internet Explorer FTP feature use the PC s or UNIX command window use the signal generator s internal web server following the firmware requirements in the table below Signal Generator Firmware Version Required for Web Server Compatibility N516xA N518xA All E44x8C C 03 10 E82x7D E8663B 63D All a The N5161A and N5162A require firmware versions A 0140 or newer Using Microsoft s Internet Explorer 1 Enter the signal generator s hostname or IP address as part of the FTP URL JStp lt host name gt or Jtp J IP address gt 2 Press Enter on the keyboard or Go from the Internet Explorer window The signal generator files appear in the Internet Explorer window 3 Drag and drop files between the PC and the Internet Explorer window Using the Command Window PC or UNIX This procedure downloads to non volatile memory To download to volatile memory change the file path Agilent Signal Generators Programming Guide 239 Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data CAUTION Get and Put commands write over existing files by the same name in destination directories Remember to change remote and local filenames to avoid the loss of data NOTE If a filename has a space quotations are required around the filename Always transfer the waveform file before transferring the marker file
290. erm Type vt100 At the SCPI gt prompt enter SCPI commands Refer to Figure 2 6 on page 48 To signal device clear press Ctrl C Select Exit from the Connect menu to end the Telnet session Agilent Signal Generators Programming Guide 47 Using IO Interfaces Using LAN Figure 2 6 Telnet Window Windows 2000 of Telnet pvipt LT x Connect Edt emai Hep Agilent Technologies E8254A SN USODODOUDL Firmware Har 28 2001 11 23 18 Hostname 8081p1 IP 008 008 00 000 SCPI gt IDN Agilent Technologies E8254A USDOUO0004 C 01 00 SCPI gt RST SCPI gt POW AMPL 10 dbn SCPI POW 1 080009000E 001 sce B Using Telnet On Windows 2000 1 2 48 On your PC click Start gt Run Type telnet in the run text box then click the OK button The Telnet connection screen will be displayed See Figure 2 7 on page 49 Windows 2000 Type open at the prompt and then press the Enter key The prompt will change to to At the to prompt enter the signal generator s IP address followed by a space and 5023 which is the Telnet port associated with the signal generator At the SCPI gt prompt enter SCPI commands Refer to commands shown in Figure 2 6 on page 48 To escape from the SCPI gt session type Ctrl Type quit at the prompt to end the Telnet session Agilent Signal Generators Programming Guide Using IO Interfaces Using LAN Figure 2 7 Telnet 2000 Window Microsoft R gt Windows 2808080 TM
291. erms An instrument that is part of a GPIB network is categorized as a listener talker or controller depending on its current function in the network listener A listener is a device capable of receiving data or commands from other instruments Several instruments in the GPIB network can be listeners simultaneously talker A talker is a device capable of transmitting data To avoid confusion a GPIB system allows only one device at a time to be an active talker controller A controller typically a computer can specify the talker and listeners including itself for an information transfer Only one device at a time can be an active controller GPIB Programming Interface Examples NOTE The portions of the programming examples discussed in this section are taken from the full text of these programs that can be found in Chapter 3 Programming Examples Interface Check using HP Basic and GPIB on page 31 Interface Check Using NI 488 2 and C on page 32 Before Using the GPIB Examples If the Agilent GPIB interface card is used the Agilent VISA library should be installed along with Agilent SICL If the National Instruments PCI GPIB interface card is used the NI VISA library along with the NI 488 2 library should be installed Refer to Selecting IO Libraries for GPIB on page 10 and the documentation for your GPIB interface card for details HP Basic addresses the signal generator at 719 The GPIB card is
292. es and MXG the MI b See FTP Procedures on page 239 Table 5 12 Extracting Encrypted Waveform Data EM DATA UNPRotected command is not required to be able to extract files i e use MEM DATA For more information refer to the SCPI Command Reference MMEM DATA Download Command Syntax Options Method Memory Type SCPI volatile MMEM DATA user bbgl securewave file name memory MMEM DATA SWFM1 file name file name8SWFMl SCPI non volatile memory MMEM DATA MMEM DATA MMEM DATA user securewave file name SNVWFM file name file nameQSNVWFM FTP volatile memory get user bbgl securewave file name FTP non volatile memory get user securewave file name a See FTP Procedures on page 239 238 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data FTP Procedures CAUTION Avoid using the OPC or WAI commands to verify that the FTP process has been completed These commands can potentially hang up due to the processing of other SCPI parser operations Refer to the SCPI Command Reference NOTE If you are remotely FTPing files and need to verify the completion of the FTP process then query the instrument by using SCPI commands such as MEM DATA MEM CAT STB FREQ IDN OUTP STAT Refer to the SCPI Command Reference Th
293. ether you are using unframed or framed data The following two sections illustrate the complexities of using the binary file format You can eliminate these complexities by using the bit file format see Bit File Type Data on page 322 Unframed Binary Data When creating unframed data you must think in terms of bits per symbol so that your data pattern begins and ends on the symbol boundary with an even number of bytes For example to use 16QAM modulation the user file needs to contain 32 bytes enough data to fill 16 states 4 times end on a symbol boundary create 64 symbols the signal generator requires a minimum of 60 symbols for unframed data To do the same with 32QAM requires a user file with 40 bytes When you do not use an even number of bytes the signal generator repeats the data in the same symbol where the data stream ends This means that your data would not end on the symbol boundary but during a symbol This makes it harder to identify the data content of a symbol The following figure illustrates the use of an uneven number of bytes and an even number of bytes Unframed Data MSB LSB Data pattern 1 0 1 1011011001100 Uneven Number of Bytes Data repeats during a symbol i 1 I 32QAM 5bits symbo 4 0 1104101140011 0010110110174001 103 0 0 v 7v RA TRA v n MMC Symbol Symbol Symbol symbol Symbol Symbol Symbo Using an uneven number of bytes makes it harder to identify the data within a symbol
294. etween signal generator models ensure that all scaling is adequate for that signal generator s waveform Interpolation Interpolation 32767 Max input value _ __ Scaling effect T DAC over range No over range 32768 There is no single scaling value that is optimal for all waveforms To achieve the maximum dynamic range select the largest scaling value that does not result in a DAC over range error There are two ways to scale the I Q data Reduce the input values for the DAC Use the SCPI command RADio ARB RSCaling val to set the waveform amplitude as a percentage of full scale NOTE The signal generator factory preset for scaling is 70 If you reduce the DAC input values ensure that you set the signal generator scaling RADio ARB RSCaling to an appropriate setting that accounts for the reduced values To further minimize overshoot problems use the correct FIR filter for your signal type and adjust your sample rate to accommodate the filter response 218 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Understanding Waveform Data NOTE FIR filter capability is only available on the N5172B 82B with Option 653 or 656 the N5162A 82A with Option 651 652 or 654 the E4438C with Option 001 002 601 or 602 and on the E8267D with Option 601 or 602 2 s Complement Data Format The signal generator requires signed values for the input data
295. ex 0 To SAMPLES 1 intIQ Data 2 index CInt AMPLITUDE Sin 2 pi index SAMPLES intIQ Data 2 index 1 CInt AMPLITUDE Cos 2 pi index SAMPLES Next index Convert each integer value to a hex string and then write into the iq data byte array MSB LSB ordered For index 0 To 2 SAMPLES 1 strSrc Hex intIQ Data index convert the integer to a hex value If Len strSrc 4 Then strSrc String 4 Len strSrc 0 amp strSrc Convert to hex format i e 800F End If Pad with 0 s if needed to get 4 characters i e 0 to 0000 hiHex Mid strSrc 1 2 Get the first two hex values MSB loHex Mid strSrc 3 2 Get the next two hex values LSB loByte CByte amp H amp loHex Convert to byte data type LSB hiByte CByte amp H amp hiHex Convert to byte data type MSB iq data 2 index hiByte MSB into first byte iq data 2 index 1 loByte LSB into second byte Next index Now write the data to the file FileHandle FreeFile Get a file number numPoints UBound iq data Get the number of bytes in the file Open strFilename For Binary Access Write As FileHandle Len numPoints 1 300 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples On Error GoTo file_error For index 0 To numPoints data iq data index Put FileHandle index 1 data Write the I Q data to the file Next index Close Fi
296. fgetc infile read the first byte if il EOF break i2 fgetc infile read the next byte if i2 2 EOF break ivalue il i2 256 put the two bytes together note that the above format is for a little endian processor such as Intel Reverse the order for a big endian processor such as Motorola HP or Sun qdata index ivalue if index MAXSAMPLES break fclose infile Remember the number of samples which were read from the file numsamples index Print the I and Q values to a text file If you are having trouble look in the file and see if your I and Q data looks correct Plot the data from this file if that helps you to diagnose the problem FILE outfile fopen ofile w Agilent Signal Generators Programming Guide 279 Creating and Downloading Waveform Files Programming Examples if outfile NULL perror Error opening file to write for index 0 index lt numsamples index fprintf outfile d d n idata index qdata index fclose outfile The E443xB E4438C E8267C or E8267D all use big endian processors If your software is running on a little endian processor such as Intel then you will need to swap the bytes in the data before sending it to the signal generator The arrays ibuffer and qbuffer are used to hold the data after any byte swapping shifting or scaling In this example we ll assume that the data is in
297. frequency mode cout lt lt Press any key to continue endl cin ignore 10000 n ibwrt sig OUTP OFF 12 Turns off RF source 92 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples ibwrt sig OUTP 5 Querys the on off state of the instrument ibrd sig rdVal 2 Enter in the source state rdVal ibcntl 0 num int rdVal 0 0 if num gt O cout lt lt Source RF state is On endl Jelset cout lt lt Source RF state is Off lt lt endl cout lt lt endl ibwrt sig IDN 5 Querys the instrument ID ibrd sig rdVal 100 Reads the source ID rdVal ibcntl 0 Null character indicating end of array cout Source ID is rdVal Prints the source ID cout lt lt Press any key to continue endl cin ignore 10000 n ibwrt sig SYST COMM GPIB ADDR 20 Querys source address ibrd sig rdVal 100 Reads the source address rdVal ibcntl 0 Null character indicates end of array Prints the signal generator address cout lt lt Source GPIB address is lt lt rdVal cout endl cout Press the Local key to return the signal generator to LOCAL control endl cout endl return 0 7 Queries for GPIB Using VISA and C This example uses VISA library functions to query different instrument states and conditions Launch Microsoft Visual C 6 0 add the required files
298. functions 50 Sets up loop to calculate waveform points 60 Calculates I waveform points 70 Calculates Q waveform points 80 End of loop 160 and 210 The I and Q waveform files have the same name 90 to 300 See the table on page 305 for program comments Creating and Downloading E443xB Waveform Data Using HP Basic for UNIX On the documentation CD this programming example s name is e443xb hpbasicUx2 tat The following program shows you how to download waveforms using HP BASIC for UNIX It is similar to the previous program example The difference is the way the formatting for the most significant bit MSB on lines is handled First the I waveform data is put into an array of integers called Iwfm data and the Q waveform data is put into an array of integers called Qw m data The variable Nbytes is set to equal the number of bytes in the I waveform data This should be twice the number of integers in Twfm data since an integer is represented 2 bytes Input integers must be between 0 and 16383 In the Output commands USING K formats the data The pound symbol suppresses the automatic EOL End of Line output This allows multiple output commands to be concatenated as if they were a single output The K instructs HP BASIC to output the following numbers or strings in the default format Agilent Signal Generators Programming Guide 309 Creating and Downloading Waveform Files Programming Examples
299. functions The non formatted viWrite VISA function is used to output data to the signal generator Refer to the Agilent VISA User s Manual available on Agilent s website http www agilent com for more information on VISA functions The program listing for the FlatCal program is shown below It is available on the Documentation CD ROM in the programming examples section as flatcal cpp 374 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User Flatness Correction Downloads Using C and VISA 1 8 RRR IRI IOI IOI e kk ok ko kk IOI IOI IO IO III II IOI IO II IO III II IO I IO I IO I IO I koe PROGRAM NAME FlatCal cpp PROGRAM DESCRIPTION C Console application to input frequency and amplitude pairs and then download them to the signal generator NOTE You must have the Agilent IO Libraries installed to run this program This example uses the LAN TCPIP interface to download frequency and amplitude correction pairs to the signal generator The program asks the operator to enter the number of pairs and allocates a pointer array listPairs sized to the number of pairs The array is filled with frequency nextFreq and amplitude nextPower values entered from the keyboard TRO II OIC ICICI IOI CIC OIC CCI CII CIC KE E KE E KE E HE KE AE KE HE KE E E E AE KE FE KE EKE HE E E E E AE KE E KE E ICI O ICI KE E KE IOI I Ak IMPORTANT Replace the 000 000 000 000 IP ad
300. g NI 488 2 functions will not run on a computer with Agilent SICL Agilent GPIB interface card Selecting IO Libraries for LAN The TELNET and FTP protocols do not require IO libraries to be installed on your computer However to write programs to control your signal generator an IO library must be installed on your computer and the computer configured for instrument control using the LAN interface The Agilent IO libraries Suite is available on the Automation Ready CD which was shipped with your signal generator The libraries can also be downloaded from the Agilent website The following is a discussion on these libraries Agilent VISA VISA is an IO library used to develop IO applications and instrument drivers that comply with industry standards Use the Agilent VISA library for programming the signal generator over the LAN interface SICL Agilent SICL is a lower level library that is installed along with Agilent VISA NI VISA is a registered trademark of National Instruments Corporation 10 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Using the Web Browser Programming Languages Along with Standard Commands for Programming Instructions SCPI and IO library functions you use a programming language to remotely control the signal generator Common programming languages include e C C CH MATLAB MATLAB is a registered trademark of The MathWorks HP Basic e LabView Ja
301. g files you need to take into consideration the file size and the amount of remaining signal generator memory For more information see Signal Generator Memory on page 315 314 Agilent Signal Generators Programming Guide Signal Generator Memory Creating and Downloading User Data Files Signal Generator Memory The signal generator provides two types of memory volatile and non volatile NOTE User BIT and User PRAM references are only applicable to the E4438C with Options 001 002 601 or 602 and E8267D with Options 601 or 602 User FIR references are only applicable to the N5162A and N5182A with Options 651 652 or 654 E4438C with Options 001 002 601 or 602 and E8267D with Options 601 or 602 Volatile Random access memory that does not survive cycling of the signal generator power This memory is commonly referred to as waveform memory WFM1 or pattern RAM PRAM Refer to Table 6 1 for the file types that share this memory Table 6 1 Signal Generators and Volatile Memory File Types Volatile Memory Type Model of Signal Generator multiple I Q files played together N5162A N5182A E4438C with E8267D Option All Other with Option Option 001 601 or 602 models 651 652 or 654 002 601 or 602 IQ x x x Marker x x x File header x x x User PRAM x x User Binary x x x User Bit x x Waveform Sequences n ab n a n a a N5161A N51
302. g is selected DHCP Request a new IP address from the DHCP server each power cycle Confirming this action configures the signal generator as a DHCP client In DHCP mode the signal generator will request a new IP address from the DHCP server upon rebooting to determine the assigned IP address LAH Confio Ruto DHCP Auto IP DHCP Auto IP o omn GPIB Setup LAN Setup LAN Services Setup Remote Language SCPI Utility gt IO Config Manual Config Settings Advanced Settings Proceed With Reconfiguration 4 Confirm Change Instrument SCPI commands Will Reboot SYSTem COMMunicate LAN CONFig DHCP AUTO SYSTem COMMunicate LAN CONFig For details on each key use the key help described in User s Guide For additional SCPI command information refer to the SCPI Command Reference Agilent Signal Generators Programming Guide 37 Using 10 Interfaces Using LAN Configuring the DHCP LAN ESG PSG Utility Hostname Confirm Change Instrument COBRRLP1 will Reboot GPIB Address 19 IP Address Remote Language Sg 141 121 60 53 PT Instrument Subnet Mask Adjustments Default Gat NOTE efault catenas Use a 10Base T LAN cable to connect the signal generator to the LAN Power Onl Preset For details on each key refer to the Key and Data Field LAN Reference For additional SCPI command information r
303. g timeoutMS long 2 npoints 015 dwell 1000 set the VISA timeout stat viSetAttribute inst VI_ATTR_TMO_VALUE timeoutMS set continuous trigger mode off stat viPrintf inst INIT CONT OFF n turn list sweep on stat viPrintf inst FREQ MODE LIST n int sweepNo 0 while intCounter gt 0 start the sweep initialize stat viPrintf inst INIT n printf Sweep d started n sweepNo wait for the sweep completion with OPC int res stat viPrintf inst OPC n stat viScanf inst d amp res handle possible errors here most likely a timeout err handler inst stat puts Sweep ended delay before sending next INIT since instrument may not be ready to receive it yet Sleep 15 intCounter intCounter 1 printf End of Program n n Saving and Recalling States Using VISA and C In this example instrument settings are saved in the signal generator s save register These settings can then be recalled separately either from the keyboard or from the signal generator s front panel 104 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file visaex8 cpp performs the following functions error checking clears the signal generator e resets the status byte register resets the
304. generator You can use the format as a template and then add your own code This program is available on the signal generator Documentation CD ROM as lanio c Sockets on UNIX In UNIX LAN communication through sockets is very similar to reading or writing a file The only difference is the openSocket routine which uses a few network library routines to create the TCP IP network connection Once this connection is created the standard fread and fwrite routines are used for network communication The following steps outline the process l Copy the lanio c and getopt c files to your home UNIX directory For example users mydir 122 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples 2 At the UNIX prompt in your home directory type cc Aa O o lanio lanio c 3 At the UNIX prompt in your home directory type lanio xxxxx IDN where xxxxx is the hostname for the signal generator Use this same format to output SCPI commands to the signal generator The int main1 function will output a sequence of commands in a program format If you want to run a program using a sequence of commands then perform the following 1 Rename the lanio c int mainl to int main and the original int main to int mainl 2 In the main openSocket function change the your hostname here string to the hostname of the signal generator you want to control 3 Re save the lanio c
305. gt MMEM DATA lt filename gt The following table uses the first command to illustrate the command format however the format is the same if you use the second command Table 6 13 Extracting a PRAM File Extraction Method Memory Type Command Syntax Options SCPI volatile memory MEM DATA WFM1 file name MEM DATA file name WFM1 MEM DATA user bbgl waveform file name SCPI non volatile MEM DATA NVWFM file name memory MEM DATA file nameQNVWFM MEM DATA user waveform file name FTP volatile memory get user bbgl waveform file name FTP non volatile memory get user waveform file name a See FTP Procedures on page 337 356 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Table 6 14 Downloading a File for Extraction Download Method Command Syntax Options Memory Type DATA UNPRotected WFM1 file_name lt blockdata gt DATA UNPRotected file_name WFM1 lt blockdata gt DATA UNPRotected user bbgl waveform file name blockdata SCPI volatile memory SCPI non volatile MEM DATA UNPRotected NVWFM file name blockdata memory MEM DATA UNPRotected file nameQNVWFEM blockdata MEM DATA UNPRotected user waveform file name blockdata FTP volatile memory put file name user bbgl waveform file name FTP no
306. gt using namespace std int main void ofstream out_stream write the I Q data to a file const unsigned int SAMPLES 200 number of sample pairs in the waveform const short AMPLITUDE 32000 amplitude between 0 and full scale dac value 266 const double two_pi 6 2831853 allocate buffer for waveform short iqData new short 2 SAMPLES need two bytes for each integer if iqData cout lt lt Could not allocate data buffer lt lt endl return 1 out stream open IQ data create a data file if out stream fail cout Input file opening failed endl exit 1 generate the sample data for I and Q The I channel will have a sine wave and the Q channel will a cosine wave Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files for int i 0 i lt SAMPLES i iqData 2 i AMPLITUDE sin two_pi i float SAMPLES iqData 2 i 1 AMPLITUDE cos two_pi i float SAMPLES make sure bytes are in the order MSB most significant byte first PC only char cptr char iqData cast the integer values to characters for int i 0 i lt 4 SAMPLES i 2 4 SAMPLES char temp cptr i swap LSB and MSB bytes cptr i cptr i 1 cptr i 1 temp now write the buffer to a file out_stream write char iqData 4 SAMPLES return 0 7 Creating and Downloading 0 Data Big and Little Endian Order Programm
307. gt lt blockdata gt The following sections explain how to format the SCPI command for downloading block data Command Syntax Example Command Syntax in a Program Routine Command Syntax Example This example conceptually describes how to format a block data download command ABC represents the block data MEMory DATA PRAM FILE BLOCk lt file_name gt ABC file name the file name as it will appear in the signal generator indicates the start of the block data the number of decimal digits present in B a decimal number specifying the number of data bytes to follow in C the PRAM file data in bytes QW pP d MEMory DATA PRAM FILE BLOCk my file4 F 32401235 4 amp 07 8g Y9 7 file_name A B C my file the PRAM file name as it will appear in the signal generators WFM1 memory catalog d indicates the start of the block data 3 B has three decimal digits 240 240 bytes of data to follow in C 12 S 4 amp 07 8g Y9 7 the ASCII representation of some of the block data binary data downloaded to the signal generator however not all ASCII values are printable In actual use the block data is not part of the command line as shown above but instead resides in a binary file on the PC UNIX When the program executes the SCPI command the command line notifies the signal generator that it is going to receive block data of the stated size and to place the file in the signal generator file directory w
308. guring the VXI 11 for LAN Agilent X Series and MXG on page 34 and Configuring the VXI 11 for LAN ESG PSG on page 35 118 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples VXI 11 Programming Using SICL and C The following program uses the VXI 11 protocol and SICL to control the signal generator Before running this code you must set up the interface using the Agilent IO Libraries IO Config utility vxisicl cpp performs the following functions sets signal generator to 1 GHz CW frequency queries signal generator for an ID string error checking The following program example is available on the signal generator Documentation CD ROM as vxisicl cpp BRR RR RK RK ko kk kk RK kk RK RK kk RK RK RK RK RK OK OK RK RK OK IR RR ck kc ke kk kc kk kc kk kk ko k ko k k k kk kk RK RK e koe PROGRAM NAME vxisicl cpp PROGRAM DESCRIPTION Sample test program using SICL and the VXI 11 protocol NOTE You must have the Agilent IO Libraries installed to run this program This example uses the VXI 11 protocol to set the signal generator for a 1 gHz CW frequency The signal generator is queried for operation complete and then queried for its ID string The frequency and ID string are then printed to the display IMPORTANT Enter in your signal generators hostname in the instrumentName declaration where the xxxxx appears 1 8
309. he INIT command is sent The Sleep function is available with the windows h header file which is included in the project NOTE Change the TCPIPO address in the instOpenString declaration to match the IP address of your signal generator 8 RRR IRI ke kk ke kk ok ko ko kk IO III II IO ITO IO II II IOI IO II IO II IO IO A Ok include stdafx h include visa h include lt iostream gt include windows h void main viStatus stat ViSession defaultRM inst int npoints 101 double dwell 0 01 int intCounter 5 char instOpenString TCPIP0 141 121 93 101 INSTR stat viOpenDefaultRM amp defaultRM stat viOpen defaultRM instOpenString VI NULL VI NULL amp inst preset to start clean stat viPrintf inst RST n set power level for 10dBm stat viPrintf inst POW 10DBM n set the start and stop frequency for the sweep stat viPrintf inst FREQ START 1GHZ n stat viPrintf inst FREQ STOP 2GHZ n setup dwell per point stat viPrintf inst SWEEP DWELL e n dwell setup number of points Agilent Signal Generators Programming Guide 103 Programming Examples GPIB Programming Interface Examples stat viPrintf inst SWEEP POINTS d n npoints set interface timeout to double the expected sweep time sweep takes 15ms dwell per point number of points the timeout should not be shorter then the sweep set it longer lon
310. he National Instruments website or the Agilent website See also IO Libraries and Programming Languages on page 4 for information on IO libraries The following is a discussion on these libraries CAUTION Because of the potential for portability problems running Agilent SICL without the VISA overlay is not recommended by Agilent Technologies VISA VISA is an IO library used to develop IO applications and instrument drivers that comply with industry standards It is recommended that the VISA library be used for programming the signal generator The NI VISA and Agilent VISA libraries are similar implementations of VISA and have the same commands syntax and functions The differences are in the lower level IO libraries NI 488 2 and SICL respectively It is best to use the Agilent VISA library with the Agilent GPIB interface card or NI VISA with the NI PCI GPIB interface card SICL Agilent SICL can be used without the VISA overlay The SICL functions can be called from a program However if this method is used executable programs will not be portable to other hardware platforms For example a program using SICL functions will not run on a computer with NI libraries PCI GPIB interface card NI 488 2 NI 488 2 can be used without the VISA overlay The NI 488 2 functions can be called from a program However if this method is used executable programs will not be portable to other hardware platforms For example a program usin
311. he user FIR filter specified by the file name as the active filter for the TDMA modulation format After selecting the file activate the TDMA format with the following command RADio desired format STATe On 360 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D FIR Filter Data for Custom Modulation The following remote command selects user FIR filter data as the active filter for a custom modulation format RADio CUSTom FILTer lt file name gt This command selects the user FIR filter specified by the file name as the active filter for the custom modulation format After selecting the file activate the TDMA format with the following command RADio CUSTom STATe On FIR Filter Data for CDMA and W CDMA Modulation The following remote command selects user FIR filter data as the active filter for a CDMA modulation format The process is very similar for W CDMA RADio desired format gt ARB FILTer file name This command selects the User FIR filter specified by the file name as the active filter for the CDMA or W CDMA modulation format After selecting the file activate the CDMA or W CDMA format with the following command RADio desired format ARB STATe On Modulating and Activating the Carrier The following commands set the carrier frequency and power and turns on the modulation a
312. iClose defaultRM return 0 The following function is called when an SRQ event occurs Code specific to your requirements would be entered in the body of the function ViStatus VI FUNCH interupt ViSession vi ViEventType eventType ViEvent event ViAddr addr ViStatus status ViUInt16 stb status viReadSTB vi amp stb Reads the Status Byte sweep 0 Sets the flag to stop the printing printf n Print user information printf An SRQ indicating end of sweep has occurred n viClose event Closes the event return VI SUCCESS 114 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples Using 8757D Pass Thru Commands PSG with Option 007 Only Pass thru commands enable you to send operating instructions to a PSG or E8257N that is connected to a 8757D scalar analyzer system This section provides setup information and an example program for using pass thru commands in a ramp sweep system Equipment Setup To send pass thru commands set up the equipment as shown in Figure 3 1 Notice that the GPIB cable from the computer is connected to the GPIB interface bus of the 8757D The GPIB cable from the PSG or E8257N is connected to the system interface bus of the 8757D Figure 3 1 COMPUTER BNC Cable BNC Cable BNC Cable GPIB Cable Z Axis Sweep Sweep 8757 Blank Mkrs System Interface SIGNAL GENERATOR SCALAR NETWORK
313. iPrintf vi RST n Resets the signal generator viPrintf vi OPC n Checks for operation complete while lngDone viScanf vi d amp lngDone Waits for setup to complete Print user information printf Press Local on instrument front panel to return to manual modeWn printf XNn j Prints new line character Close the sessions viClose vi viClose defaultRM Reading the Data Questionable Status Register Using VISA and C In this example the signal generator s data questionable status register is read You will be asked to set up the signal generator for error generating conditions The data questionable status register will be read and the program will notify the user of the error condition that the setup caused Follow the user prompts presented when the program runs Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file visaex9 cpp performs the following functions error checking clears the signal generator resets the signal generator the data questionable status register is enabled to read an unleveled condition prompts user to manually set up the signal generator for an unleveled condition queries the data questionable status register for any set bits and converts the string data to numeric based on the numeric value program checks for a corresponding status check value similarly checks for over or undermodulation
314. iSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications char rdBuffer 256 Declares variable to hold string data int num Declares variable to hold integer data Initialize the VISA system viStatus viOpenDefaultRM amp defaultRM Open session to GPIB device at address 19 viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus If problems then prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 viPrintf vi RST n Resets signal generator viPrintf vi FREQ CW n Querys the CW frequency viScanf vi t rdBuffer Reads response into rdBuffer Prints the source frequency printf Source CW frequency is s n rdBuffer printf Press any key to continue n printf n Prints new line character to the display getch viPrintf vi POW AMPL n Querys the power level viScanf vi t rdBuffer Reads the response into rdBuffer Prints the source power level printf Source power dBm is s n rdBuffer printf Press any key to continue n printf n Prints new line character to the display 94 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples getch viPrintf vi FREQ MODE Wn Querys the frequency mode viScanf vi
315. ian Byte Order When you use multiple bytes as required for the waveform data you must identify their order This is similar to identifying the order of bits by LSB and MSB To identify byte order use the terms little endian and big endian These terms are used by designers of computer processors Intel is a registered trademark of Intel Corporation 214 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Understanding Waveform Data Little Endian Order The lowest order byte that contains bits 0 7 comes first BitPosition 7 65 43 2 1 0 15 14 13 12 11 10 9 8 Data 11101001 10110111 Hex values E9 B7 LSB MSB Big Endian Order The highest order byte that contains bits 8 15 comes first Bit Position 15 14 13 12 11 10 9 8 7 654 8321 0 Data 101 101 11 1110100 Hex values B7 E9 k MSD LSB Notice in the previous figure that the LSB and MSB positioning changes with the byte order In little endian order the LSB and MSB are next to each other in the bit sequence NOTE For I Q data downloads the signal generator requires big endian order For each I Q data point the signal generator uses four bytes two integer values two bytes for the I point and two bytes for the Q point The byte order little endian or big endian depends on the type of processor used with your development platform Intel processors and its clones use little endian Intel is a U S registered trade
316. iarity with the LXI C class of instruments and aims to clarify a number of general use cases for measurement synchronization between an MXA signal analyzer and a MXG signal generator using a LAN connection Refer to http www lxistandard org home and to www agilent com find lac This LXI section contains the following IEEE 1588 on page 52 Peer to Peer Messaging on page 54 Configuring LXI Triggers on page 55 Using the LXI Event Log on page 57 Setting up and executing a list sweep measurement on page 57 e Synchronize a List Sweep Measurement Between an MXA and an MXG using Peer to Peer Messages on page 58 e For More Information on page 63 IEEE 1588 The IEEE 1588 standard defines a Precision Time Protocol PTP for synchronizing various clocks connected by Ethernet This will give your measurement instrumentation a common sense of time To ensure that the MXA and MXG are operating with synchronized PTP clocks follow the procedure outlined in the table below Time Synchronization using an MXA Signal Analyzer and a MXG Signal Generator To ensure that the MXA and MXG are operating with synchronized PTP clocks follow this procedure 1 Connect the MXA and MXG to the same Ethernet switch and the ensure that both instruments are configured for LAN operation Power on the MXA and MXG 3 Send the following SCPI command to both the MXA and MXG LXI CLOCk PTP DOMain 1 This parameter may be any integer
317. icrosoft Visual C 6 0 add the required files and enter the following code into your cpp source file visaex7 cpp performs the following functions clears and resets the signal generator sets up the instrument for continuous step sweep sets up the start and stop sweep frequencies sets up the number of steps sets the power level turns on the RF output The following program example is available on the signal generator Documentation CD ROM as visaex7 cpp EE EKR Kk Ke kk kk kk kk ke Kk kkk KER EKER EKER EKER ER RE RE RE RE RE RE RE KR ERE RRR ERR KE RRR ERE KERR ck ck ERE RE ck ckck ko PROGRAM FILE NAME visaex7 cpp PROGRAM DESCRIPTION This example will program the signal generator to perform a step sweep from 500 800 MHz with a 5 sec dwell at each frequency step 8 RRR III IO IO kk kk e IOI kk III ok koe ko kk kk ok II oko kk ok koe kk IOI IO II ke kk IO IO I IOI IO I IO IO a Foe include lt visa h gt include StdAfx h include lt iostream gt void main ViSession defaultRM vi Declares variables of type ViSession vi establishes instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications viStatus viOpenDefaultRM amp defaultRM Initialize VISA session Open session to GPIB device at address 19 viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus If problems then prompt user
318. ifndef _HPUX_SOURCE define _HPUX_SOURCE ifdef WINSOCK 126 Visual C 6 0 will define this endif endif include lt stdio h gt for fprintf and NULL include lt string h gt for memcpy and memset include lt stdlib h gt for malloc atol include lt errno h gt for strerror Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples include windows h ifndef _WINSOCKAPI_ include lt winsock h gt BSD style socket functions endif else UNIX with BSD sockets include lt sys socket h gt for connect and socket include netinet in h for sockaddr in include lt netdb h gt for gethostbyname define SOCKET ERROR 1 define INVALID SOCKET 1 typedef int SOCKET endif WINSOCK ifdef WINSOCK Declared in getopt c See example programs disk extern char optarg extern int optind extern int getopt int argc char const argv const char optstring else include lt unistd h gt for getopt 3C endif define COMMAND ERROR 1 define NO CMD ERROR 0 define SCPI PORT 5025 define INPUT BUF SIZE 64 1024 J ECKCKCKCkCk kk oko kck ok koe e ko kk ko k koh IOI ok koe IOI oko kk ok IOI IOI IO ko kk kk koe Kok do k koe k IO koe IO koe Display usage CKCk KKK RRR KERR KER EKER EK RE KCkcKCkck ckcKckckckchckckckckckchckchckchckchckckckckckckckckckckckckckckck ckckckck ck
319. ignal generator to communicate over the RS 232 refer to Using RS 232 ESG and PSG Only on page 63 The rear panel Type B or Mini B 5 pin connector is a device USB and can be used to connect a controller for remote operation The Type A front panel connector is a host USB and can be used to connect a mouse a keyboard or a USB 1 1 2 0 flash drive USB 2 0 s 64 MBps communication speed is faster than GPIB for data transfers gt 1 KB or RS 232 For additional information refer to the Agilent SICL or VISA User s Guide But the latency for small transfers is longer For more information on connecting the signal generator to the USB refer to the Agilent IO Libraries Suite on page 5 and the Agilent Connection Expert in the Agilent IO Libraries Help For more information on configuring the signal generator to communicate over the USB refer to Using USB Agilent X Series and MXG on page 71 a LXI Class B Compliance testing using IEEE 1588 2008 not available at release b The ESG and PSG s AUXILIARY INTERFACE connector is compatible with ANSI EIA232 RS 232 serial connection but GPIB and LAN are recommended for making faster measurements and when downloading files Refer to Using RS 232 ESG and PSG Only on page 63 and the User s Guide 10 Libraries and Programming Languages The IO libraries is a collection of functions used by a programming language to send instrument commands and receive instrument data
320. ignal generator uses the data either in a continuous data pattern unframed or within framed boundaries Real time Custom uses only unframed data real time TDMA modulation formats use both types and the others use only framed data NOTE For unframed data transmission the signal generator requires a minimum of 60 symbols For more information see Determining Memory Usage for Custom and TDMA User File Data on page 327 You create the user file to either fill a single timeslot frame or multiple timeslots frames To create multiple timeslots frames simply size the file with enough data to fill the number of desired timeslots frames User File Bit Order LSB and MSB The signal generator views the data from the most significant bit MSB to the least significant bit LSB When you create your user file data it is important that you organize the data in this manner Within groups strings of bits a bit s value significance is determined by its location in the string The following shows an example of this order using two bytes Most Significant Bit MSB This bit has the highest value greatest weight and is located at the far left of the bit string Least Significant Bit LSB This bit has the lowest value bit position zero and is located at the far right of the bit string Bit Position 15141312 11 10 98 76 54 3 21 0 Data 101 101 1111 10100 1 MSB LSB Bit File Type Data The bit file is the preferred file typ
321. iles are stored on the non volatile internal signal generator memory internal storage or to an USB media if available The non volatile internal memory is allocated according to a Microsoft compatible file allocation table FAT file system The signal generator allocates non volatile memory in clusters according to the drive size see Table 5 3 on page 230 For example referring to Table 5 3 on page 230 if the drive size is 15 MB and if the file is less than or equal to 4K bytes the file uses only one 4 KB cluster of memory For files larger than 4 KB and with a drive size of 15 MB the signal generator allocates additional memory in multiples of 4KB clusters For example a file that has 21 538 bytes consumes 6 memory clusters 24 000 bytes Microsoft is a registered trademark of Microsoft Corporation Agilent Signal Generators Programming Guide 229 Creating and Downloading Waveform Files Waveform Memory For more information on default cluster sizes for FAT file structures refer to Table 5 3 on page 230 and to http support microsoft com Table 5 3 Drive Size logical volume Drive Size logical volume Cluster Size Bytes Minimum Allocation Size 0 MB 15 MB 4K 16 MB 127 MB 2K 128 MB 255 MB 4K 256 MB 511 MB 8K 512 MB 1023 MB 16K 1024 MB 2048 MB 32K 2048 MB 4096 MB 64K 4096 MB 8192 MB 128K 8192 MB 16384 MB 256K Non Volatile Memory ESG PSG Th
322. imeout 50 seconds Reset the signal generator Get number of bytes in the file 800 bytes Dimension the iq data array to the size of the IQ DataVB file 800 bytes Open the file for binary read Write the IQ DataVB data to the iq data array data index 1 is the record number iq data index data Next index Close FileHandle Write the command to the Header string NOTE Header MEM DATA Now write the data to the signal generator s non volatile memory SigGen WriteIEEEBlock Header SigGen WriteString OPC response SigGen ReadString Call MsgBox Data downloaded to the signal generator Exit Sub errorhandler MsgBox Err Description Exit Sub file_error Call MsgBox Err Description vbOKOnly Close FileHandle End Sub vbExclamation Close the file syntax USER WAVEFORM IQ DataVB NVWFM iq data Wait for the operation to complete Signal generator reponse to the OPC query vbOKOnly Download Error Occurred Err HelpFile Err HelpContext Display any error message Agilent Signal Generators Programming Guide 303 Creating and Downloading Waveform Files Programming Examples HP Basic Programming Examples This section contains the following programming examples Creating and Downloading Waveform Data Using HP BASIC for Windows on page 304 Creating and Downloading Waveform Data Using HP BASIC for UNIX on page 306 Creat
323. in the text box If the initial setup had been configured using the front panel as on page 54 or SCPI commands page 55 two LAN Events are expected per sweep the rising and falling edges of the LAN Event LANO Configuring LXI Triggers The MXA and MXG are capable of reacting to incoming LXI LAN Events Both instruments may be triggered by the receipt of a peer to peer message Agilent Signal Generators Programming Guide 55 Using IO Interfaces Using LAN Using the front panel to configure an LXI Trigger on the MXG The MXG is capable of reacting to an incoming LXI LAN Event by treating it as a trigger The following procedure describes how to set up the MXG sweep trigger to use an LXI event through the front panel soft keys 1 Select the LXI LAN trigger as the source for sweep triggers Press Sweep gt More gt Sweep Trigger gt More gt LXI LAN 2 Select a Trigger LAN Event Press Utility gt More gt LXI B gt Configure LXI Events gt Configure LXI Trigger Events 3 Enable the Trigger LAN Event Press the Toggle Event State softkey Using SCPI to configure an LXI Trigger on the MXG The MXG is capable of reacting to an incoming LXI LAN Event by treating it as a trigger The following procedure describes how to set up the MXG sweep trigger to use an LXI event through SCPI commands l Reset the MXG Send the following SCPI command RST 2 Select the LXI LAN trigger as the source for sweep triggers Send the following
324. ing Examples On the documentation CD this programming example s name is CreateDwnLd Data c txt This C programming example compiled using Microsoft Visual C 6 0 performs the following functions PA Th hf error checking data creation data scaling text file creation for viewing and debugging data byte swapping and interleaving for little endian order data interleaving for big endian order data data saving to an array data block data block download to the signal generator This C program is an example of creating and scaling I and Q data and then downloading the data into the signal generator as an interleaved I Q file This example uses a sine and cosine wave as the I Q data Include the standard headers for SICL programming include lt sicl h gt Agilent Signal Generators Programming Guide 267 Creating and Downloading Waveform Files Programming Examples include include include include Choos char instOpenString lan galgaDhcp1 char instOpenString gpib0 19 Pick some maximum number of samples stdlib h stdio h string h math h e a GPIB LAN or RS 232 connection based on the amount of memory in your computer and the signal generator const in int main t NUMSAMPLES 500 int argc char argv Create a text file to view the waveform prior to downloading it to the signal generator Thi
325. ing Guide Programming Examples LAN Programming Interface Examples if displayCorr 0 fcorr fftshift fft resampledTime displayOversample 100 xcoordsOversample 1 displayOversample length fcorr displayOversample length fcorr 2 2 length fcorr destR ate displayOversample plot amplitude correction figure plot xcoordsOversample resample 20 1log10 abs fcorr displayOversample 1 100 plot phase correction fcorrz fftshift fft ifftshift resampledTime figure plot xcoordsOversample resample unwrap angle fcorrz displayOversample 1 100 pi 180 end clip off the center 256 if necessary if length resampledTime gt 256 index max abs resampledTime center index left center 127 right left 255 clippedTime resampledTime left right else clippedTime resampledTime end corrFilter clippedTime end function array readArrayOfDoubles fid line fgets fid array sscanf line g c end Example 3 Reading a VSA Trace and Setting up the Equalization Filter Using Matlab NOTE For X Series signal generators N5172B 82B replace the 125MHz value with 200MHz This example reads a VSA trace of Eq Ch Freq Resp or Eq Impls Resp and creates an equalization filter compatible with the MXG The following program Matlab example is available on the signal generator Documentation CD ROM as loadVsaEQFilterFreq m function corrFilter loadVsaEqFilter file
326. ing a Swept Signal Using VISA and Visual C This example sets up the signal generator for a frequency sweep from 1 to 2 GHz with 101 points and a 01 second dwell period for each point A loop is used to generator 5 sweep operations The signal generator triggers each sweep with the INIT command There is a wait introduced in the loop to allow the signal generator to complete all operations such as set up and retrace before the next sweep is generated visaexll cpp performs the following functions sets up the signal generator for a 1 to 2 GHz frequency sweep sets up the signal generator to have a dwell time of 01 seconds and 101 points in the sweep sleep function is used to allow the instrument to complete its sweep operation The following program example is available on the signal generator Documentation CD ROM as visaex11 cpp f RC e kk k k RE RE RE RE RE ERE RRR RR KERR KEK RE RE KEKE KEKE KEKE RE RE RE RE RE e e e e e e e x PROGRAM FILE NAME visaex11 cpp PROGRAM DESCRIPTION This program sets up the signal generator to 102 Agilent Signal Generators Programming Guide JI II Programming Examples GPIB Programming Interface Examples sweep from 1 2 GHz A loop and counter are used to generate 5 sweeps Each sweep consists of 101 points with a 01 second dwell at each point The program uses a Sleep function to allow the signal generator to complete it s sweep operation before t
327. ing and Downloading E443xB Waveform Data Using HP BASIC for Windows on page 308 Creating and Downloading E443xB Waveform Data Using HP Basic for UNIX on page 309 Creating and Downloading Waveform Data Using HP BASIC for Windows On the documentation CD this programming example s name is hpbasicWin txt The following program will download a waveform using HP Basic for Windows into volatile ARB memory The waveform generated by this program is the same as the default SINE TEST WFM waveform file available in the signal generator s waveform memory This code is similar to the code shown for BASIC for UNIX but there is a formatting difference in line 130 and line 140 To download into non volatile memory replace line 190 with 190 OUTPUT PSG USING K MMEM DATA NVWFM testfile As discussed at the beginning of this section I and Q waveform data is interleaved into one file in 2 s compliment form and a marker file is associated with this I Q waveform file In the Output commands USING K formats the data The pound symbol 3 suppresses the automatic EOL End of Line output This allows multiple output commands to be concatenated as if they were a single output The K instructs HP Basic to output the following numbers or strings in the default format 10 RE SAVE BASIC Win file 20 Num points 200 30 ALLOCATE INTEGER Int array 1 Num points 2 40 DEG 50 FOR I 1 TO Num points 2 STEP 2 60 Int array I INT
328. ions such as IVI COM or VXIplug amp play can be used in place of VISA VISA VISA is an I O library used to develop I O applications and instrument drivers that comply with industry standards It is recommended that the VISA library be used for programming the signal generator The NI VISA and Agilent VISA libraries are similar implementations of VISA and have the same commands syntax and functions The differences are in the lower level I O libraries used to communicate over the USB NI 488 2 and SICL respectively NI 488 2 NI 488 2 I O libraries can be used to develop applications for the USB interface See National Instrument s website for information on NI 488 2 SICL Agilent SICL can be used to develop applications for the USB interface See Agilent s website for information on SICL CAUTION Because of the potential for portability problems running Agilent SICL without the VISA overlay is not recommended by Agilent Technologies Setting Up the USB Interface Rear Panel Interface Mini B 5 pin To use USB connect the USB cable Refer to Table 2 3 USB Interface Cable on page 72 for USB cable information between the computer and the signal generator s rear panel Mini B 5 pin USB connector Table 2 3 USB Interface Cable Quantity Description Agilent Part Number 1 USB cable Mini B 5 pin to Type A 82357 61601 72 Agilent Signal Generators Programming Guide Using 10 Interfaces Using USB Agi
329. is condition exists replace short with the appropriate object or label that defines a 16 bit integer Save the current Q data array value to a variable Swap the low bytes bits 0 7 of the data with the high bytes of the data done for both 246 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Creating Waveform Data Line Code Description Interleaving and Byte Swapping for Little Endian Order 21 29 the I and Q data and interleave the I and Q data shift the data pointer right 8 bits to the beginning of the high byte value gt gt 8 Little Endian Order 76543 21 0 15 14 13 12 1110 9 8 BitPosition 11101001 101 101 1 1 Data L K A Hex values E9 B7 Data pointer Data pointer shifted 8 bits AND boolean the high I byte with OxFF to make the high I byte the value to store in the IQ array ivalue gt gt 8 amp OxFF 15 14 1312 1110 9 8 101 101 1 1 Hex value B7 1 1 11 11 Hex Value FF 101 101 1 1 Hex value B7 AND boolean the low I byte with OxFF ivalue amp OxFF to make the low I byte the value to store in the I Q array location just after the high byte index 4 1 I Data in I Q Array after Byte Swap Big Endian Order 15 141312 1110 9 8 7 65 4 3 21 0 Bit Position 101101 11 1110100 1 Data Hex value B7 E9 Swap the Q byte order within the same loop Notice that the I and Q data interleave with each loop cycl
330. is example can also be used to create real modulation FIRs The following program example is available on the signal generator Documentation CD ROM as writeMxgFir m function rateAdjustedFilter writeMxgFir host instrumentFilename timeDomainFilter osr rate destRate maxTaps writeMxgEqFir host instrumentFilename timeDomainFilter osr rate destRate maxTaps writes filter to instrumentFilename on host using tcp ip Real or complex is auto detected osr is assumed to be 1 if it is missing rate is assumed to be 125Mhz if missing destRate is assumed to be 125Mhz if missing maxTaps is the hardware limit of the MXG 256 if not specified This value should be 256 for the Equalization filter and 32 osr for the Arb Modulation filter Note that the filter has a rectangular window applied with a width of maxTaps centered about the peak point Example writeMxgEqFir mxgl a 0 1 0 1 0 4 0 1 0 4 0 1 0 1 if nargin lt 3 nargin gt 7 error usage writeMxgFir host instrumentFilename timeDomainFilter osr rate destRate Agilent Signal Generators Programming Guide 155 Programming Examples LAN Programming Interface Examples maxTaps 111 end if nargin lt 4 osr 1 end if nargin lt 5 rate 125e6 end if nargin lt 6 destRate 125e6 end if nargin lt 7 maxTaps 1024 end adjust coefficients for destination rate if rate destRate timeDomainFilter resamp
331. isalInterop Close defaultRM Close the default resource manager j else Console WriteLine Unable to open the VISA resource manager j This method restores all the sequence register state files located in Agilent Signal Generators Programming Guide 367 Creating and Downloading User Data Files Save and Recall Instrument State Files the local directory identified by a STA file name extension to the signal generator static public void RestoreInstrumentState uint device DirectoryInfo di new DirectoryInfo Instantiate object class FileInfo rgFiles di GetFiles STA Get the state files foreach FileInfo fi in rgFiles Match m Regex Match fi Name d _ d d if m Success string sequence m Groups 1 ToString string register m Groups 2 ToString Console WriteLine Restoring sequence sequence register register Save the target instrument s current state to the specified sequence register pair This ensures the index file has an entry for the specified sequence register pair This workaround will not be necessary in future revisions of firmware WriteDevice device SAV register sequence Mn true lt lt on SAME line Overwrite the newly created state file with the state file that is being restored WriteDevice device MEM DATA USER STATE m ToString false lt lt on SAME line WriteFi
332. ist sweep Send the following SCPI commands INIT LIST This will cause the MXA to take a measurement at the first frequency in its list It will also begin waiting for the LANO peer to peer message before moving on to the next measurement Enable the MXA s LAN1 LXI Output LAN Event Send the following SCPI commands LXI EVENt OUTPut LAN ENABled LAN1 1 The LAN1 peer to peer message is now enabled Agilent Signal Generators Programming Guide 61 Using IO Interfaces Using LAN 33 Send the MXG a LAN1 peer to peer message Using Interactive LXI or the Agilent IO Libraries TMFramework LXI library send a LAN1 peer to peer message to the MXG This will start the synchronization sequence 34 The MXA waits for the OperationComplete instrument event Detect the peer to peer traffic using Interactive LXI To programmatically listen for LXI peer to peer messages use the Agilent IO Libraries TMFramework LXI library When the MXA has completed its list it will send the peer to peer message OperationComplete with a rising edge to MXG 35 Send query to MXA for the measurement results FETCh LIST Figure 2 9 Illustration of a List Sweep Measurement Between an MXA and an MXG using Peer to Peer Messages Instrument Events MXA Operation Complete WaitingForTrigger L do E 8 A FA FA twn RTT d II 1g I g dg dog digi Peer t E S z z wo T Jg l
333. it position indicates that the SCPI error queue is not empty The SCPI error queue contains at least one error message Data Questionable Status Summary Bit A 1 in this bit position indicates that the Data Questionable summary bit has been set The Data Questionable Event Register can then be read to determine the specific condition that caused this bit to be set Message Available A 1 in this bit position indicates that the signal generator has data ready in the output queue There are no lower status groups that provide input to this bit Standard Event Status Summary Bit A 1 in this bit position indicates that the Standard Event summary bit has been set The Standard Event Status Register can then be read to determine the specific event that caused this bit to be set Request Service RQS Summary Bit A 1 in this bit position indicates that the signal generator has at least one reason to require service This bit is also called the Master Summary Status bit MSS The individual bits in the Status Byte are individually ANDed with their corresponding service request enable register then each individual bit value is ORed and input to this bit Standard Operation Status Summary Bit A 1 in this bit position indicates that the Standard Operation Status Group s summary bit has been set The Standard Operation Event Register can then be read to determine the specific condition that caused this bit to be set Query S
334. ith the indicated name Immediately following the command execution the program downloads the binary file to the signal generator This is shown in the following section Command Syntax in a Program Routine Command Syntax in a Program Routine This section demonstrates the use of the download SPCI command within the confines of a C program routine The following code sends the SCPI command and downloads a 240 byte PRAM file to the signal generator s WFM1 waveform memory catalog This program assumes that there is a char array databuffer that contains the 240 bytes of PRAM data and that the variable numbytes stores the length of the array Agilent Signal Generators Programming Guide 351 Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Line Code Download PRAM File Data 1 int bytesToSend 2 bytesToSend numbytes 3 char s 4 4 char cmd 200 5 sprintf s d bytesToSend 6 sprintf cmd MEM DATA PRAM FILE BLOCk FILE1 d d strlen s bytesToSend 7 iwrite id cmd strlen cmd 0 0 8 iwrite id databuffer bytesToSend 0 0 9 iwrite id n 1 1 0 Line Code Description Download PRAM File Data 1 Define an integer variable bytesToSend to store the number of bytes to send to the signal generator 2 Store the total number of PRAM bytes in the integer variable defined in line 1 numbytes contains the length of the data
335. ither the demodulator or the down converter is out of lock 12 Demod DSP Ampl out of range A 1 in this bit position indicates the demodulator amplitude is out of range The RST command sets this bit to zero 0 13 Sync to BCH TCH PDCH If the synchronization source is BCH a 1 in this bit position indicates BCH synchronization is not established it does not indicate the TCH PDCH synchronization status If the sync source is TCH or PDCH a 1 in this bit position indicates that TCH or PDCH synchronization is not established RST sets this bit to zero 14 Waiting for TCH PDCH A 1 in this bit position indicates that a TCH or PDCH midamble has not been received This bit is set when bit 13 is set The bit is also set when the TCH or PDCH synchronization was once locked and then lost in this case the front panel displays WAITING FOR TCH or PDCH RST sets this bit to zero 15 Always 0 Query STATus QUEStionable BERT CONDition Response The decimal sum of the bits set to 1 Data Questionable BERT Transition Filters negative and positive The Data Questionable BERT Transition Filters specify which type of bit state changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus QUEStionable BERT NTRansition value negative transition or STATus QUEStionable BERT PTRansition value positive transition
336. itup Pulse RF Blank Trigger Tupe ALC Hold Cont inuous Free Run Select Dual Arb gt More gt Marker Utilities on X Series signal generators to access this menu SCPI commands SOURce RADio 1 ARB MDEStination PULSe NONE M1 M2 M3 M4 SOURCe RADio 1 ARB MDEStination PULSe For details on each key use the key help Refer to Getting Help Agilent X Series and MXG on page 21 and the User s Guide For additional SCPI command information refer to the SCPI Command Reference Configuring the Pulse RF Blank ESG PSG Mode Setup SCPI commands Hardkey SOURce RADio ARB MDEStination PULSe NONE M1 M2 M3 M4 SOURCe RADio ARB MDEStination PULSe If the default marker is Arb ALIGN E used toggle the On Marker Polaritup m SALE Pulse RF Blank None Softkey to None For i j j more information on 1 050000 Hie Reference Setup Marker Routing j ALE Hold markers refer to q L Marker File on Alternate page 221 udo Riu None Noise Seed Random Waveform Utilities gt Marker ARB Setup Utilities For details on each key use the Key and Data Field Reference For additional SCPI command information refer to the SCPI Command Reference 312 Agilent Signal Generators Programming Guide 6 Creating and Downloading User Data Files NOTE Some features apply to only the E4438C with Option 001 002 601 or 602 and E8267D with Option 601 or 602 These ex
337. iwrite 0 means there is no END of file indicator for the string This lets the session remain open so the program can download the PRAM file data 352 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Line Code Description Download PRAM File Data 8 Send the PRAM file data stored in the array databuffer to the signal generator e iwrite sends the data specified in databuffer PRAM data to the signal generator session identifier specified in id The third argument of iwrite bytesToSend contains the length of the databuffer in bytes In this example it is 240 The fourth argument of iwrite 0 means there is no END of file indicator in the data In many programming languages there are two methods to send SCPI commands and data Method 1 where the program stops the data download when it encounters the first zero END indicator in the data Method 2 where the program sends a fixed number of bytes and ignores any zeros in the data This is the method used in our program For your programming language you must find and use the equivalent of method two Otherwise you may only achieve a partial download of the user file data 9 Send the terminating carriage n as the last byte of the waveform data e iwrite writes the data n to the signal generator session identifier specified in id The
338. k X X Sends SCPI Commands and Queries X X Builds a waveform sequence X X a Agilent Intuilink is not available for the Agilent MXG b ASCII or binary format Downloading E443xB Signal Generator Files To download earlier E443xB model I and Q files use the same SCPI commands as if downloading files to an E443xB signal generator The signal generator automatically converts the E443xB files to the proper file format as described in Waveform Structure on page 221 and stores them in the signal generator s memory This conversion process causes the signal generator to take more time to download the earlier file format To minimize the time to convert earlier E443xB files to the proper file format store E443xB file downloads to volatile memory and then transfer them over to non volatile NVWFM memory NOTE You cannot extract waveform data downloaded as E443xB files 258 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Downloading E443xB Signal Generator Files E443xB Data Format The following diagram describes the data format for the E443xB waveform files This file structure can be compared with the new style file format shown in Waveform Structure on page 221 If you create new waveform files for the signal generator use the format shown in Waveform Data Requirements on page 213 E443xB ARB Data Format Marker Data Volatile Memory Path e 14 bits DAC Dat
339. koh IO kk ko kk hok kk kk ok kk kk IO II IOI IOI IO IO koe kk k ko ko k IO I IOI IO I IO ke kk Ree PROGRAM FILE NAME visaex4 cpp ra PROGRAM DESCRIPTION This example demonstrates query commands The signal generator frequency and power level The RF state of the signal generator is turn on and then the state is queried The response will indicate that the RF state is on The RF state is then turned off and queried The response should indicate that the RF state is off The query results are Agilent Signal Generators Programming Guide 95 Programming Examples GPIB Programming Interface Examples printed to the to the display window 8 RRR RII IO ok III IG IOI ko kk ok IOI IOI IOI IOI IOI IO II III IO IO III IO I IO I a I ok include StdAfx h include lt visa h gt include lt iostream gt include lt stdlib h gt include lt conio h gt void main ViSession defaultRM vi Declares variables of type ViSession for instrument communication ViStatus viStatus 0 Declares a variable of type ViStatus for GPIB verifications char rdBuffer 256 Declare variable to hold string data int num Declare variable to hold integer data viStatus viOpenDefaultRM amp defaultRM Initialize VISA system Open session to GPIB device at address 19 viStatus viOpen defaultRM GPIB 19 INSTR VI NULL VI NULL amp vi if viStatus If problems then prompt user printf
340. l Generators Programming Guide Programming the Status Register System Status Groups Data Questionable Frequency Condition Register The Data Questionable Frequency Condition Register continuously monitors the hardware and firmware status of the signal generator Condition registers are read only Table 4 10 Data Questionable Frequency Condition Register Bits Bit Description 0 Synth Unlocked A 1 in this bit position indicates that the synthesizer is unlocked 1 10 MHz Ref Unlocked A 1 in this bit position indicates that the 10 MHz reference signal is unlocked ga 1 GHz Ref Unlocked A 1 in this bit position indicates that the 1 GHz reference signal is unlocked 3b Baseband 1 Unlocked A 1 in this bit position indicates that the baseband generator is unlocked 4 Unused This bit is always set to 0 5P Sampler Loop Unlocked A 1 in this bit position indicates that the sampler loop is unlocked eh YO Loop Unlocked A 1 in this bit position indicates that the YO loop is unlocked 7 14 Unused These bits are always set to 0 15 Always 0 a In the N5161A 81A and N5162A 82A these bits are always set to 0 b In the N5161A 62A 81A 82A 83A E4428C E8257D E8663B and the E8663 this bit is always set to 0 Query STATus QUEStionable FREQuency CONDition Response The decimal sum of the bits set to 1 Data Questionable Frequency Transition Filters negative and positive Specifies which types of bit s
341. l generator can be remotely programmed through a 100Base T LAN interface or 10Base T LAN interface and LAN connected computer using one of several LAN interface protocols The LAN allows instruments to be connected together and controlled by a LAN based computer LAN and its associated interface operations are defined in the IEEE 802 2 standard For more information refer to http www ieee org NOTE For more information on configuring your signal generator for LAN refer to the User s Guide for your signal generator Also for the Agilent MXG refer to www agilent com and search on the FAQs Hardware Configurations and Installation The signal generator supports the following LAN interface protocols e VXI 11 See page 44 e Sockets LAN See page 45 Telephone Network TELNET See page 46 File Transfer Protocol FTP See page 50 LXI See page 52 VXI 11 and sockets LAN are used for general programming using the LAN interface TELNET is used for interactive one command at a time instrument control and FTP is for file transfer LXI is used to communicate with multiple instruments through LAN events using precision time protocols For more information on the LXI standards refer to www agilent com find NOTE For more information on configuring the signal generator to communicate over the LAN refer to Using VXI 11 on page 44 The following sections contain information on selecting and connecting IO libraries and
342. lash drive USB media Refer to the User s Guide ARB waveform encryption of proprietary information is supported Many functions provided by GPIB including GET non SCPI remote languages and remote mode are available using the USB interface NOTE For a list of compatible flash drives to use with the USB external interface Refer to http www agilent com find mag Do not use the Type A front panel USB to connect to a computer The following sections contain information on selecting and connecting I O libraries and the USB interface that are required to remotely program the signal generator through the computer and combining those choices with one of several possible USB interface protocols e Selecting I O Libraries for USB on page 72 e Setting Up the USB Interface on page 72 e Verifying USB Functionality on page 73 Agilent Signal Generators Programming Guide 71 Using IO Interfaces Using USB Agilent X Series and MXG Selecting 1 0 Libraries for USB CAUTION The Agilent X Series and MXG s USB interface requires Agilent IO Libraries Suite 14 1 or newer to run properly For more information on connecting instruments to the USB refer to the Agilent Connection Expert in the Agilent IO Libraries Help The I O libraries can be downloaded from the National Instrument website http www ni com or Agilent s website Attp www agilent com The following is a discussion on these libraries NOTE I O applicat
343. latile internal signal generator memory i e internal storage or to the USB media if available The Agilent X Series and MXG non volatile internal memory allocated according to a Microsoft compatible file allocation table FAT file system The signal generator allocates non volatile memory in clusters according to the drive size see table on Agilent Signal Generators Programming Guide 317 Creating and Downloading User Data Files Signal Generator Memory page 318 For example referring to table on page 318 if the drive size is 15 MB and if the file is less than or equal to 4k bytes the file uses only one 4 KB cluster of memory For files larger than 4 KB and with a drive size of 15 MB the signal generator allocates additional memory in multiples of 4KB clusters For example a file that has 21 538 bytes consumes 6 memory clusters 24 000 bytes On the Agilent X Series and MXG the non volatile memory is also referred to as internal storage and USB media The Internal and USB media files USERS NONVOLATILE Directory contains file names with full extensions i e marker header etc For more information on default cluster sizes for FAT file structures refer to Table 6 3 on page 318 and to http support microsoft com Table 6 3 Drive Size logical volume Cluster Size Bytes Minimum Allocation Size 0 MB 15 MB 4K 16 MB 127 MB 2K 128 MB 255 MB 4K 256 MB 511 MB 8K 512 MB 1023 MB 1
344. lation Format 001 601 002 602 Custom cia Soca E TDMA 8 Mbits 32 Mbits 64 Mbits a File size with no other files residing in volatile memory The maximum PRAM user file size in the table above refers to the maximum number of payload bits After downloading the signal generator translates each downloaded payload bit into a 32 bit word e downloaded payload bit 7 downloaded control bits as shown in Table 6 9 on page 345 e 24 bits added by the signal generator The following table shows the maximum file size after the signal generator has translated the maximum number of payload bits into 32 bit words Table 6 12 Maximum File Size After Downloading Baseband Generator Option Modulation Format 001 601 002 602 Custom E TDMA 32 MBytes 128 MBytes 256 MBytes a File size with no other files residing in volatile memory To properly size a PRAM file you must determine the file size after the 32 bit translation process The signal generator measures a PRAM file size in units of bytes each 32 bit word equals 4 bytes Determining the File Size The following example shows how to calculate a downloaded file size using a PRAM file that contains 89 bytes payload bits plus 7 control bits per payload bit 89 bytes 89 x 24 bits 8 356 bytes Because the file downloads one fourth of the translated 32 bit word another method to calculate the file size is to multiply the downlo
345. le Queries STATus OPERation BASeband NTRansition STATus OPERation BASeband PTRansition 190 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Baseband Operation Event Register The Baseband Operation Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATUS OPERation BASeband EVENt Baseband Operation Event Enable Register The Baseband Operation Event Enable Register lets you choose which bits in the Baseband Operation Event Register can set the summary bit bit 7 of the Status Byte Register Command STATus OPERation BASeband ENABle value where value is the sum of the decimal values of the bits you want to enable Example Enable bit 0 and bit 1 so that whenever either of those bits are set to 1 the Baseband Operation Status summary bit of the Status Byte Register is set to 1 Send the command STAT OPER ENAB 2 1 Query STATus OPERation BASeband ENABle Response Decimal value of the sum of the bits previously enabled with the STATus OPERation BASeband ENABle lt value gt command Data Questionable Status Group NOTE Some of the bits in this status group do not apply to the E4428C E8257D E8267D E8663B E8663D and the N5161A 62A 81A 82A 83A and returns zero when q
346. le 19 Close the text file 3 Interleave the and Q data and byte swap if using little endian order This step has two sets of code e Interleaving and byte swapping I and Q data for little endian order Interleaving I and Q data for big endian order For more information on byte order see Little Endian and Big Endian Byte Order on page 214 Agilent Signal Generators Programming Guide 245 Creating and Downloading Waveform Files Creating Waveform Data Line Code Interleaving and Byte Swapping for Little Endian Order 20 char iqbuffer NUMSAMPLES 4 21 for index 0 index numsamples index 22 23 short ivalue idata index 24 short qvalue qdata index 25 igqbuf fer index 4 ivalue gt gt 8 amp OxFF 26 iqbuffer index 4 1 ivalue K OxFF 27 iqbuffer index 4 2 qvalue gt gt 8 K OxFF 28 iqbuf fer index 4 3 qvalue amp OxFF 29 30 return 0 Line Code Description Interleaving and Byte Swapping for Little Endian Order 20 Define a character array to store the interleaved I and Q data The character array makes byte swapping easier since each array location accepts only 8 bits 1 byte The array size increases by four times to accommodate two bytes of I data and two bytes of Q data 21 29 Create a loop to do the following Save the current I data array value to a variable NOTE In rare instances a compiler may define short as larger than 16 bits If th
347. le 1 134 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples j j else ASCII response not a binary block result char ch if recv line sock result 1 maxLength 1 NULL return 0 REMOVE trailing newline if present And terminate string resultBytes strlen result if result resultBytes 1 n resultBytes 1 result resultBytes 0 while 0 return resultBytes OER IRI ko kk ke kk ok IO IO E A ko kk IOI ok E E e IO III IOI IOI E E II I IO IOI IOI e e E Ok gt Function showErrors Description Query the SCPI error queue until empty Print results S Return void OCKCKk kk kCKCKCK Ck KCKCKCKCKCKCKCKCKCKCKCRCKCKCKCKCKCKCKCKCKCKCK KCKCKCh KCkcR hcKchckchckckckchckckckckckckck ck chckckckckckckckckckckckckckck k void showErrors SOCKET sock const char command SYST ERR n char result_str 256 do queryInstrument sock command result str sizeof result_str 1 ORI III IOI IOI ko kk IO IOI III de kk ok IO III IOI IO IO I IO I IO ke k de Typical result_str m 221 Settings conflict Frequency span reduced 0 No error Agilent Signal Generators Programming Guide 135 Programming Examples LAN Programming Interface Examples Don t bother decoding KR RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE RE KER EKER EKER ERE RR ERE RERERERERERE y if strnemp result str
348. le double timeDomainFilter destRate rate 30 timeDomainFilter timeDomainFilter rate destRate end if length timeDomainFilter gt maxTaps maxval index max abs timeDomainFilter center index left center maxTaps 2 1 if left lt 1 left 1 end right left maxTaps 1 while right gt length timeDomainFilter right right 1 end timeDomainFilter timeDomainFilter left right end rateAdjustedFilter timeDomainFilter open tcp connection t tcpip host 5025 t OutputBufferSize 1024 1024 plenty big for filters write file contents fopen t for writing to a file instead to see what is being output St fopen test w send command with filename fprintf t s horzcat MEM DATA FIR instrumentFilename 156 HRS Agilent Signal Generators Programming Guide Programming Examples RS 232 Programming Interface Examples ESG PSG Only send type if isreal timeDomainFilter fprintf t s REAL else convert complex to a real array fprintf t s COMP temp zeros 1 length timeDomainFilter 2 temp 1 2 end real timeDomainFilter temp 2 2 end imag timeDomainFilter timeDomainFilter temp end output osr fprintf t d osr send coefficients fprintf t g timeDomainFilter send terminator fprintf t n fclose t end RS 232 Programming Interface Examples ESG PSG Only e Interface Check Using HP BASIC on page
349. leBlock device fi Name WriteDevice device Mn true 7 This method reads out all the sequence register state files from the signal generator and stores them in your computer s local directory with a STA extension static public void BackupInstrumentState uint device Get the memory catalog for the state directory WriteDevice device MEM CAT STAT n false 368 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Save and Recall Instrument State Files string catalog ReadDevice device Match the catalog listing for state files which are named sequences register e g 0 01 1 01 2 05 Match m Regex Match catalog d_ d d while m Success Grab the matched filename from the regular expresssion string nextFile m Groups 1 ToString Retrieve the file and store with a STA extension in the current directory Console WriteLine Retrieving state file nextFile WriteDevice device MEM DATA USER STATE nextFile n true ReadFileBlock device nextFile STA Clear newline ReadDevice device Advance to next match in catalog string m m NextMatch j This method writes an ASCII text string SCPI command to the signal generator If the bool sendEnd is true the END line character will be sent at the conclusion of the write If sendEnd is false the END line will not be sent static public void
350. leHandle Call MsgBox Data written to file amp strFilename vbOKOnly Download Exit Sub file_error MsgBox Err Description Close FileHandle End Sub Downloading 1 0 Data On the signal generator s documentation CD this programming example s name is Download_File_vb tat This Visual Basic programming example using Microsoft Visual Basic 6 0 downloads the file created in Creating I Q Data Little Endian Order on page 299 into non volatile memory using a LAN connection To use GPIB replace the instOpenString object declaration with GPIB 19 INSTR To download the data into volatile memory change the instDestfile declaration to USER BBG1 WAVEFORM NOTE The example program listed here uses the VISA COM IO API which includes the WriteIEEEBlock method This method eliminates the need to format the download command with arbitrary block information such as defining number of bytes and byte numbers Refer to SCPI Command Line Structure on page 235 for more information This program also includes some error checking to alert you when problems arise while trying to download files This includes checking to see if the file exists DKK KKK KKK KKK KKK KKK KKK KKK KK KR KKK KEK KK KE KK KKK KKK KKK KKK KKK KKK KKK KKK KKK KEKKKKKKKKKKKKEK KEK Program Name Download File Program Description This program uses Microsoft Visual Basic 6 0 and the Agilent VISA COM I O Library to download
351. leave the I Q Data Open the file and load the internal format data FID message fopen filename r Open file to read data 286 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples if FID 1 error Cannot Open File end internalWave n fread FID uint16 read the IQ file fclose FID close the file internalWave internalWave Conver from column array to row array If on a PC swap the bytes back to Little Endian if strcmp computer PCWIN Put the bytes into the correct order internalWave bitor bitshift internalWave 8 bitshift bitand internalWave 255 8 end convert unsigned to signed representation internalWave double internalWave tmp internalWave 32767 0 65536 iqWave internalWave tmp 32767 and normalize the data De Interleave the IQ data Iwaveln iqWave 1 2 n QwaveIn iqWave 2 2 n Agilent Signal Generators Programming Guide 287 Creating and Downloading Waveform Files Programming Examples Creating and Downloading a Pulse NOTE This section applies only to the Agilent X Series MXG and PSG For the Agilent X Series and MXG the maximum frequency is 6 GHz and the pulsepat m program s SOURce FREQuency 20000000000 value must be changed as required in the following programs For more frequency information refer to the signal generator s Data Sheet On the documentation CD this
352. lent 1 1 compatible 20009 XP VEE HP Basic for Windows NI Labview Agilent GPIB Interface Card for PC Based Systems Agilent 82341C Windows VISA SICL C C Visual ISA EISA 750 Built in for ISA bus 95 98 NT Basic Agilent 16 bit computers VEE HP Basic for 2000 Windows Agilent 82341D Windows VISA SICL C C Visual ISA EISA 750 Built in Plug amp Play for 95 Basic Agilent 16 bit PC VEE HP Basic for Windows Agilent 82350A Windows VISA SICL C C Visual PCI 32 bit 750 Built in for PCI bus 95 98 NT Basic Agilent computers 2000 VEE HP Basic for Windows Agilent 82350B Windows VISA SICL C C Visual PCI 32 bit gt 900 Built in for PCI bus 98 SE ME 2000 Basic Agilent computers XP VEE HP Basic for Windows NI GPIB Interface Card for PC Based Systems National Windows VISA C C PCI 32 bit 1 5 MBps Built in Instruments 95 98 2000 NI 488 2 Visual BASIC PCI GPIB ME NT LabView National Windows VISA C C PCI 32 bit 1 5 MBps Built in Instruments NT NI 488 2 Visual BASIC PCI GPIB LabView Agilent GPIB Interface Card for HP UX Workstations Agilent E2071C HP UX 9 x VISA SICL ANSI C EISA 750 Built in HP UX 10 01 Agilent VEE Agilent BASIC HP UX Agilent E2071D HP UX 10 20 VISA SICL ANSI C EISA 750 Built in Agilent VEE Agilent BASIC HP UX 28 Agilent Signal Generators Programming Guide Using IO Interfaces Using GPIB Interface Operating IO Library Languages Backpla
353. lent X Series and MXG Front Panel USB Type A For details on using the front panel USB Type A and the front panel USB Media operation refer to the User s Guide Verifying USB Functionality Mini B 5 Pin Rear Panel Connector NOTE For information on verifying your Mini B 5 pin USB rear panel functionality refer to the Agilent Connection Expert in the Agilent IO Libraries Help The Agilent IO libraries are included with your signal generator or Agilent GPIB interface board or they can be downloaded from the Agilent website http www agilent com Type A Front Panel USB Connector For details on using the front panel USB Type A and the front panel USB Media operation refer to the User s Guide Agilent Signal Generators Programming Guide 73 Using 10 Interfaces Using USB Agilent X Series and MXG 74 Agilent Signal Generators Programming Guide 3 Programming Examples NOTE For the N5161A 62A the softkey menus and features mentioned in this chapter are only available through the Web Enabled MXG or through SCPI commands Refer to Using the Web Browser on page 11 and to the SCPI Command Reference e Using the Programming Interface Examples on page 75 e GPIB Programming Interface Examples on page 80 e LAN Programming Interface Examples on page 118 e RS 232 Programming Interface Examples ESG PSG Only on page 157 Using the Programming Interface Examples The programming examples for remote control
354. lled from your computer This console program prompts the user for an action Backup State Files Restore State Files or Quit The Backup State Files choice reads the signal generator s state files and stores it on your computer in the same directory where the State_Files exe program is located The Restore State Files selection downloads instrument state files stored on your computer to the signal generator s State directory The Quit selection exists the program The figure below shows the console interface and the results obtained after selecting the Restore State Files operation The program uses VISA library functions Refer to the Agilent VISA User s Manual available on Agilent s website http www agilent com for more information on VISA functions The program listing for the State_Files cs program is shown below It is available on the CD ROM in the programming examples section under the same name AWINNT Microsoft NETFramework v1 1 4322X5tate Filesl exe 1 gt Backup state files 2 gt Restore state files 3 gt Quit Enter 1 2 0r 3 Your choice 2 Restoring sequence 8 register i register register sequence register sequence register register register register register register register register register register C and Microsoft NET Framework The Microsoft NET Framework is a platform for creating Web Services and applications There are three components of the NET Framework the
355. llers display 530 PRINT The GPIB address is D 540 PRINT 550 Print user prompts to the controller s display 560 PRINT The signal generator is now under local control 570 PRINT or Press RUN to start again 580 END Queries Using NI 488 2 and Visual C This example uses the NI 488 2 library to query different instrument states and conditions Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file niex3 cpp performs the following functions resets the signal generator queries the signal generator for various settings reads the various settings The following program example is available on the signal generator Documentation CD ROM as niex3 cpp EE EKR RR kk kk kk kk kk kR kkk k KER EKER EKER EKER EERE RE RE RE RE RE RE RE RE RE RE RR KER ERE RRR ERR ERR EKER kk PROGRAM NAME niex3 cpp PROGRAM DESCRIPTION This example demonstrates the use of query commands The signal generator can be queried for conditions and instrument states These commands are of the type IDN where the question mark indicates Agilent Signal Generators Programming Guide 91 Programming Examples GPIB Programming Interface Examples a query 8 RRR IR II IOI IO ko k III IOI IOI IOI IO III IO II IOI IO IOI IO IO I IOI IO Ik A ak include stdafx h include lt iostream gt include windows h include Decl 32 h using namespace std int G
356. lock No Data Change PRBS Sync Loss Unused Unused Unused Unused Unused Unused Unused Unused Downconv Demod Unlocked Demod DSP Ampl Out of Range Sync to BCH TCH PDCH Waiting for TCH PDCH Always Zero 0 Data QUEStionable BERT Condition Register 15 1413 12 1 100 987 65 43 2 1 Data UEStonabie EEEEEZIIIIIIIIE ransition Filter Data QUESiionable WEENSEYHI TZSITRE S Transition Fiter Goran enrge LL 15 14 13 12 41 100987 65 4 3 2 1 0 ah I CS Data QUEStionable PERE Enable Register To Data Questionable Status Register Bit 12 ck710c Data OUEStonaPe 45 14 13 12 4 00987 6543 2 1 0 BERT Agilent Signal Generators Programming Guide 207 Programming the Status Register System Status Groups Data Questionable BERT Condition Register The Data Questionable BERT Condition Register continuously monitors the hardware and firmware status of the signal generator Condition registers are read only Table 4 13 Data Questionable BERT Condition Register Bits Bit Description 0 No Clock A 1 in this bit position indicates no clock input for more than 3 seconds 1 No Data Change A 1 in this bit position indicates no data change occurred during the last 200 clock signals 2 PRBS Sync Loss A 1 is set while PRBS synchronization is not established RST sets the bit to zero 3 10 Unused These bits are always set to 0 11 Down conv Demod Unlocked A 1 in this bit position indicates that e
357. ls on each key use the key help For information describing the key help refer to Getting Help Agilent X Series and MXG on page 21 and the User s Guide For additional SCPI command information refer to the SCPI Command Reference 34 Agilent Signal Generators Programming Guide Configuring the VXI 11 for LAN ESG PSG FTP Server off Eu GPIB Address 19 f NUN Utility gt GPIB RS 232 LAN Heb geveg Remote Language t SCPID Sockets SCPI off NX XI 11 SCPI Off Num Proceed Reconf igureat NOTE Using 10 Interfaces Using LAN Confirm Change Instrument Will Reboot For details on each key use the Key and Data Field Reference For additional SCPI command information refer to the SCPI Command Reference To communicate with the signal generator over the LAN you must enable the VXI 11 SCPI service Select VXI 11 until On is highlighted Default condition is On Use a 10Base T LAN cable to connect the signal generator to the LAN Where auto negotiation is present the ESG or PSG can connect to 100Base T LAN but will communicate at 10Base T speeds For more information refer to http www ieee org Manual Configuration The Hostname softkey is only available when LAN Config Manual DHCP is set to Manual To remotely access the signal generator from a different LAN subnet you must also enter the subnet mask and default gateway See your system administrator for more information For mor
358. lter 360 Using the Equalization Filter X Series and MXG with Baseband Generator 362 Save and Recall Instrument State Files ee 363 Save and Recall SCPI Commands iusso 44628 ee aOVFEEREE RENO ERE E BHO OS 363 Save and Recall Programming Example Using VISA and CHR anaa aaaea 364 User Flatness Correction Downloads Using C and VISA llle 374 Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only 378 User File Download Problems 24s ookaok em A REI CAO E AR ROGO X Wo RR 378 PRAM Download Problemi i4 uk o4 EAL XO X e 645 444 485 45440449 2 x5 379 User FIR Filter Coefficient File Download Problems llle 381 viii 1 Getting Started with Remote Operation CAUTION Agilent does not recommend going backwards in firmware versions loading older firmware versions into newer instruments as hardware firmware conflicts can result NOTE For the N5161A 62A the softkey menus and features mentioned in this chapter are only available through the Web Enabled MXG or through SCPI commands Refer to Using the Web Browser on page 11 and to the SCPI Command Reference The MXG ATE blank front panel models N5161A and N5162A signal generators are part of the MXG instrument family and unless otherwise indicated all references to the MXG are inclusive of the MXG ATE instruments Full LXI B feature implementation is only available on MXG instruments N5161A 62A 8
359. ltiply numsamples by four This is shown in the following example numsamples 500 waveform points numsamples x 4 2000 four bytes per point bytesToSend 2000 numsamples x 4 For information on setting the number of waveform points see 1 Create I and Q data on page 242 10 Create a string large enough to hold the bytesToSend value as characters In this code string s is set to 20 bytes 20 characters one character equals one byte 11 Create a string and set its length cmd 200 to hold the SCPI command syntax and parameters In this code we define the string length as 200 bytes 200 characters 12 Store the value of bytesToSend in string s For example if bytesToSend 2000 s 2000 sprintf is a standard function in C which writes string data to a string variable 13 Store the SCPI command syntax and parameters in the string cmd The SCPI command prepares the signal generator to accept the data strlen is a standard function in C which returns length of a string e If bytesToSend 2000 then s 2000 strlen s 4 so cmd MEM DATA WFM1 FILE1 42000 14 Send the SCPI command stored in the string cmd to the signal generator which is represented by the session id e iwrite is a SICL function in Agilent IO library which writes the data block data specified in the string cmd to the signal generator id The third argument of iwrite strlen cmd informs the signal generator
360. lues a b size iqWave if a gt b iqWave iqWave end maxV max abs real iqWave imag iqwave if maxV 0 maxV 1 end Prevent divide by zero scale 32767 maxV iqWave round scale iqWave Calcurate waveform RMS rms sqrt mean abs iqWave 2 32767 account for pulse duty cycle pw sum abs iqWave 0 dutyCycle pw length iqWave rms rms dutyCycle Interlace the I amp Q vectors data real iqWave imag iqWave data data end function mkr FormatMarkers markers The markers are placed in the 4 LSBs of a byte in this order M4 M3 M2 M1 c d size markers if c d markers markers c d size markers end mkr markers 1 0 if G 1 mkr mkr 2 markers 2 20 end if c gt 2 mkr mkr 4 markers 3 0 end Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples 295 Creating and Downloading Waveform Files Programming Examples if G3 mkr mkr 8 markers 4 0 end end function hdrCmd CreateHeaderCommand file_name rms header SOURce RADio 1 2 3 4 ARB HEADer WRITe filename description lt sample_rate gt lt scaling gt lt marker_polarity gt lt alc_hold gt lt alt_power gt lt pulse gt lt mod_ atten gt lt mod_filter gt lt output_filter gt lt peak_power gt lt rms gt This function doesn t do any range checking hdr sam
361. m Using 10 Config for Computer to Instrument Communication with VISA Automatic or Manually After installing the Agilent IO Libraries version M or earlier you can configure the interfaces available on your computer by using the IO Config program This program can setup the interfaces that you want to use to control the signal generator The following steps set up the interfaces l Install GPIB interface boards before running IO Config NOTE You can also connect GPIB instruments using the Agilent 82357A USB GPIB Interface Converter which eliminates the need for a GPIB card For more information go to http www agilent com find gpib Run the IO Config program The program automatically identifies available interfaces 3 Click on the interface type you want to configure such as GPIB in the Available Interface Types text box 4 Click the Configure button Set the Default Protocol to AUTO Click OK to use the default settings 6 Click OK to exit the IO Config program VISA Assistant VISA is an industry standard IO library API It allows the user to send SCPI commands to instruments and to read instrument data in a variety of formats You can use the VISA Assistant available with the Agilent IO Libraries versions M and earlier to send commands to the signal generator If the interface you want to use does not appear in the VISA Assistant then you must manually configure the interface See the Manual VISA Configuration sec
362. mark of Intel Corporation Sun and Motorola processors use big endian The Apple PowerPC processor while big endian oriented also supports the little endian order Always refer to the processor s manufacturer to determine the order they use for bytes and if they support both to understand how to ensure that you are using the correct byte order Development platforms include any product that creates and saves waveform data to a file This includes Agilent Technologies Advanced Design System EDA software C MATLAB and so forth The byte order describes how the system processor stores integer values as binary data in memory If you output data from a little endian system to a text file ASCII text the values are the same as viewed from a big endian system The order only becomes important when you use the data in binary format as is done when downloading data to the signal generator Sun is a trademark or registered trademark of Sun Microsystems Inc in the U S and other countries Agilent Signal Generators Programming Guide 215 Creating and Downloading Waveform Files Understanding Waveform Data Byte Swapping While the processor for the development platform determines the byte order the recipient of the data may require the bytes in the reverse order In this situation you must reverse the byte order before downloading the data This is commonly referred to as byte swapping You can swap bytes either programmatically or by u
363. ment on the same network LAN Ping Responses Normal Response for UNIX A normal response to the ping command will be a total of 9 or 10 packets received with a minimal average round trip time The minimal average will be different from network to network LAN traffic will cause the round trip time to vary widely Normal Response for DOS or A normal response to the ping command will be a total of 9 or 10 packets received if 10 echo Windows requests were specified Error Messages If error messages appear then check the command syntax before continuing with troubleshooting If the syntax is correct resolve the error messages using your network documentation or by consulting your network administrator If an unknown host error message appears try using the IP address instead of the hostname Also verify that the host name and IP address for the signal generator have been registered by your IT administrator Check that the hostname and IP address are correctly entered in the node names database To do this enter the nslookup hostname command from the command prompt No Response If there is no response from a ping no packets were received Check that the typed address or hostname matches the IP address or hostname assigned to the signal generator in the System LAN Setup menu For more information refer to Configuring the DHCP LAN Agilent X Series and MXG on page 37 or Configuring the DHCP LAN ESG PSG on page 38
364. ming the Status Register System Status Groups 210 Agilent Signal Generators Programming Guide 5 Creating and Downloading Waveform Files NOTE The ability to play externally created waveform data in the signal generator is available only in the N5172B 82B with Option 653 or 656 N5162A 82A with Option 651 652 or 654 E4438C ESG Vector Signal Generators with Option 001 002 601 or 602 and E8267D PSG Vector Signal Generators with Option 601 or 602 On the Agilent MXG the internal baseband generator speed upgrade Options 670 671 and 672 are option upgrades that require Option 651 and 652 to have been loaded at the factory refer to the Data Sheet for more information Any references to 651 652 or 654 are inclusive of 671 672 and 674 For the N5161A 62A the softkey menus and features mentioned in this chapter are only available through the Web Enabled MXG or through SCPI commands Refer to Using the Web Browser on page 11 and to the SCPI Command Reference This chapter explains how to create Arb based waveform data and download it into the signal generator Overview of Downloading and Extracting Waveform Files on page 212 Understanding Waveform Data on page 213 e Waveform Structure on page 221 e Waveform Phase Continuity on page 223 e Waveform Memory on page 226 Commands for Downloading and Extracting Waveform Data on page 232 Creating Waveform Data on page 242 Downloading Waveform
365. mming Examples LAN Programming Interface Examples 139 Programming Examples LAN Programming Interface Examples commandInstrument instSock command else read a line from lt stdin gt while gets charBuf NULL if strlen charBuf continue if charBuf charBuf continue strcat charBuf n if quiet if number char num 10 sprintf num d number fwrite num strlen num 1 stdout j fwrite charBuf strlen charBuf 1 stdout fflush stdout j if isQuery charBuf long bufBytes Put the query response into the same buffer as the command string appended after the null terminator bufBytes queryInstrument instSock charBuf charBuf strlen charBuf 1 INPUT_BUF_SIZE strlen charBuf if quiet fwrite s 2 1 stdout Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples fwrite charBuf strlen charBuf 1 bufBytes 1 stdout fwrite n 1 1 stdout fflush stdout j j else commandInstrument instSock charBuf j if number number if show errs showErrors instSock ifdef WINSOCK closesocket instSock close winsock telse close instSock endif WINSOCK return 0 End of lanio cpp RRR ERE RRR KC KChckch Kk hckchck hckch EKER EKER EKER EKER EERE KCkcKCkckckcKckckckchckckckchckchckchckchckckckchckckckck k k
366. n fall off 9 rise on fall off 8 rise on fall off 7 rise on fall off 6 rise on fall off 5 rise on fall off 4 rise on fall off 3 rise on fall off 2 rise on fall off 1 rise on fall off 6 set the q samples to all zeroes q 7 zeros 1 10240 define a composite iq matrix for download to the Agilent MXG PSG using the Waveform Download Assistant IQData i G 6 define a marker matrix and activate a marker to indicate the beginning of the waveform Markers zeros 2 length IQData fill marker array with zero iie no markers set Markers 1 1 1 set marker to first point of playback make a new connection to theAgilent MXG PSG over the GPIB interface io agt newconnection gpib 0 19 verify that communication with the Agilent MXG PSG has been established status status description query result agr query io idn if status 0 return end set the carrier frequency and power level on the Agilent MXG PSG using the Agilent Waveform Download Assistant Agilent Signal Generators Programming Guide 289 Creating and Downloading Waveform Files Programming Examples status status description agt sendcommand io SOURce FREQuency 200000000005 status status description agr sendcommand io POWer 05 define the ARB sample clock for playback sampclk 40000000 download the iq waveform to the PSG baseb
367. n format such as the symbol rate modulation type and filter either through the front panel interface or with SCPI commands Understanding PRAM Files The term PRAM file comes from earlier Agilent products the E443xB ESGs PRAM is another term for waveform memory WFM1 which is also known as volatile memory This means that PRAM files and waveform files occupy the same memory location The signal generator s volatile memory waveform memory storage path is user BBG1 waveform For more information on memory see Signal Generator Memory on page 315 The following figure shows a PRAM byte and illustrates the difference between it and a bit binary user file byte Notice the control bits in the PRAM byte u w MSB LSB PRAM File Data Byte T 1 0 1 0 1 0 1 User File Data Byte 1 00 111 d Control bits Payload bit Payload Bits Only three of the seven control bits elicit a response from the signal generator The other four bits are reserved Table 6 9 describes the bits for a PRAM byte Table 6 9 PRAM Data Byte Bit Function Value Comments 0 Data 0 1 This is the data payload bit It is unspecified when burst bit 2 is set to 0 Agilent Signal Generators Programming Guide 345 Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Table 6 9 PRAM Data Byte Bit Function Value Comments 1 Reserved 0 Always 0 2 Bu
368. n page 68 for more help The following program example is available on the signal generator s Documentation CD ROM as rs232exl txt 10 Joke ok ok Kok KK K KK KK CK CK CK II II III III II III IIIA ko ko ke 20 30 PROGRAM NAME rs232exl txt 40 50 PROGRAM DESCRIPTION This program verifies that the RS 232 connections and 60 interface are functional 70 80 Connect the UNIX workstation to the signal generator using an RS 232 cable 90 100 110 Run HP BASIC type in the following commands and then RUN the program 120 130 140 DI III II III I III III oko ko ke kk 150 160 INTEGER Num 170 CONTROL 9 0 1 Resets the RS 232 interface 180 CONTROL 9 3 9600 Sets the baud rate to match the sig gen 190 STATUS 9 4 Stat Reads the value of register 4 200 Num BINAND Stat 7 Gets the AND value 210 CONTROL 9 4 Num Sets parity to NONE 220 OUTPUT 9 RST Outputs reset to the sig gen 230 END End the program Interface Check Using VISA and C This program uses VISA library functions to communicate with the signal generator The program verifies that the RS 232 connections and interface are functional In this example the COM2 port is used The serial port is referred to in the VISA library as ASRLI or ASRL2 depending on the computer serial port you are using Launch Microsoft Visual C add the required files and enter the following code into the cpp source file rs232ex1 cpp performs the following func
369. n volatile put file name user waveform file name memory a See FTP Procedures on page 337 There are two commands that download a file for no extraction MEM DATA file name gt lt blockdata gt e MMEM DATA lt filename gt lt blockdata gt The following table uses the first command to illustrate the command format however the format is the same if you use the second command Table 6 15 Downloading a File for No Extraction Download Method Command Syntax Options Memory Type SCPI volatile memory MEM DATA WFM1 file name blockdata MEM DATA file nameGQWFMI1 blockdata MMEM DATA user bbg1 waveform file_name lt blockdata gt SCPI non volatile MEM DATA NVWFM file name blockdata memory MEM DATA file nameQNVWFM blockdata MEM DATA user waveform file name blockdata Modifying PRAM Files The only way to change PRAM file data is to modify the original file on a computer and download it again The signal generator does not support viewing and editing PRAM file contents Because the signal generator translates the data bit into a 32 bit word the file contents are not recognizable and therefore not editable using a hex editor program as shown in the following figure Agilent Signal Generators Programming Guide 357 Creating and Downloading User Data Files FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D 60 byte PRAM file prior
370. name destRate corrFilter loadVsaFilter filename destRate filename must reference an 89600 Equalization filter saved as mat file with the header included destRate is assumed to be 125e6 if missing Agilent Signal Generators Programming Guide 153 Programming Examples LAN Programming Interface Examples output of corrFilter is in time domain Typically followed with writeMxgFir a n5182a 00211 cft corrFilter if nargin lt 1 nargin gt 2 error corrFilter loadVsaEqFilter filename destRate missing end if nargin lt 2 destRate 125e6 end load filter struct from mat file filterStruct load filename coeffs double filterStruct Y if filterStruct XDomain 1 frequency destRate is assumed to be 125e6 if rate filterStruct XDelta length coeffs frequency range is also rate VSA software supplies centered frequency domain else time domain is 2 rate 1 filterStruct XDelta inverse of time step is frequency convert to frequency domain must center frequency domain to match what comes from the VSA software coeffs fftshift fft coeffs end invert invertedFreqDomain 1 coeffs convert to time domain first placing the 0 frequency at the left edge timeDomain ifft ifftshift invertedFreqDomain if filterStruct XDomain 1 frequency put time domain 0 time in center len length timeDomain if mod length timeDomain 2 1 odd
371. nated as if they were a single output The K instructs HP Basic to output the following numbers or strings in the default format 10 RE SAVE ARB IQ Win file 20 Num points 200 30 ALLOCATE INTEGER Iwfm data 1 Num points Qwfm data 1 Num points 40 DEG 50 FOR I 1 TO Num points 60 Iwfm data I INT 8191 SIN I 360 Num_points 8192 70 Qwfm_data I INT 8191 COS I 360 Num_points 8192 80 NEXT I 90 PRINT Data Generated 100 Nbytes 2 Num_points 110 ASSIGN Esg TO 719 120 ASSIGN Esgb TO 719 FORMAT MSB FIRST 130 Nbytes VALS Nbytes 140 Ndigits LEN Nbytes 150 Ndigits VALS Ndigits 160 OUTPUT Esg USING K MMEM DATA ARBI file_name_1 170 OUTPUT Esg USING K Ndigits 180 OUTPUT Esg USING K Nbytes 308 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples 190 OUTPUT Esgb Iwfm_data 200 OUTPUT Esg END 210 OUTPUT Esg USING K MMEM DATA ARBQ file_name_1 220 OUTPUT Esg USING K Ndigitss 230 OUTPUT Esg USING K Nbytes 240 OUTPUT GEsgb Qwfm data 250 OUTPUT Esg END 260 ASSIGN Esg TO 270 ASSIGN Esgb TO 280 PRINT 290 PRINT END 300 END Program Comments 10 Program file name 20 Sets the number of points in the waveform 30 Defines arrays for I and Q waveform points Sets them to be integer arrays 40 Sets HP BASIC to use degrees for cosine and sine
372. nd scale the data within the body of the code then use no normscale but if you need to normalize and scale the data use norm scale This normalizes the waveform data to the DAC values and then scales the data to 70 of the DAC values e download marker data optional argument If there is no marker data the signal generator creates a default marker file all marker set to zero To verify the waveform data download see Loading Playing and Verifying a Downloaded Waveform on page 254 7 9 If the download fails display an error message Using Advanced Programming Languages This procedure uses code from the C programming example Importing Byte Swapping Interleaving and Downloading I and Q Data Big and Little Endian Order on page 277 For information on creating I Q waveform data refer to Creating Waveform Data on page 242 There are two steps in the process of downloading an I Q waveform 1 Open a connection session 2 Download the I Q data 1 Open a connection session with the signal generator The following code establishes a LAN connection with the signal generator or prints an error message if the session is not opened successfully Line Code Description Open a Connection Session char instOpenString lan hostname or IP address char instOpenString gpib primary addr gt lt secondary addr gt INST id iopen instOpenString if id fprintf stderr iopen fail
373. nd the RF output 1 Set the carrier frequency to 2 5 GHz FREQuency FIXed 2 5GHZ 2 Set the carrier power to 10 0 dBm POWer LEVel 10 0DBM 3 Activate the modulation OUTPut MODulation STATe ON 4 Activate the RF output OUTPut STATe ON Agilent Signal Generators Programming Guide 361 Creating and Downloading User Data Files Using the Equalization Filter X Series and MXG with Baseband Generator Using the Equalization Filter X Series and MXG with Baseband Generator An equalization FIR file can be created externally uploaded via SCPI and subsequently selected from the file system refer to the User s Guide For information related to downloading FIR file coefficients refer to the FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D on page 358 For information regarding working with FIR file coefficients manually refer to the User s Guide For more information on equalization filters refer to the User s Guide This filter can be used to correct and or impair the RF and External I Q outputs for the internal I Q source This filter will be convolved with the ACP Internal I Q Channel Optimization filter if that filter is selected the result of which will be truncated to the center 256 taps The equalization filter operates at 125MHz 200MHz for N5172B 82B so all equalization filters must be resampled to 125MHz 200MHz for N5172B 82B prior to selection if they are sampled at some other ra
374. ne Max IO Buffering Type System BUS kB sec Agilent USB GPIB Interface Converter for PC Based Systems Agilent E2078A HP UX 10 20 VISA SICL ANSI C PCI 750 Built in Agilent VEE Agilent BASIC HP UX a Windows 95 98 SE NT 2000 and XP are registered trademarks of Microsoft Corporation b Windows 98 and ME are registered trademarks of Microsoft Corporation c NI 488 2 is a trademark of National Instruments Corporation Set Up the GPIB Interface For the Agilent X Series and MXG refer to the Figure 2 1 and for the ESG and PSG Figure 2 2 on page 30 Figure2 1 Setting the GPIB Address on the Agilent X Series and MXG Utility SCPI commands SYSTem COMMunicate GPIB ADDRess number SYSTem COMMunicate GPIB ADDRess Y Instrument Adjustments GPIB Address 19 LAN Setups Default address 19 Range 0 30 LAN Services etul usw Power On Preset For details on each key use the key help Refer to Getting Help Agilent X Series and MXG on page 21 and the User s Guide For additional SCPI command information refer to the SCPI Command Reference Remote Language wl LD o 0 cet Hi u C Agilent Signal Generators Programming Guide 29 Using IO Interfaces Using GPIB Figure 2 2 Setting the GPIB Address on the ESG PSG Utility SCPI commands SYSTem COMMunicate GPIB ADDRess number SYSTem COMMunicate GPIB ADDRess Enter
375. necessary toggle Web Server On Off to On Sockets SCPI off I VXI 11 SCPI off Eun Proceed With Reconfiguration Confirm Change Instrument Will Reboot For details on each key use the Key and Data Field Reference For additional SCPI command information refer to the SCPI Command Reference 2 Launch the PC or workstation web browser 3 In the web browser address field enter the signal generator s IP address For example http 101 101 101 101 where 101 101 101 101 is the signal generator s IP address The IP internet protocol address can change depending on the LAN configuration see Using Agilent Signal Generators Programming Guide Getting Started with Remote Operation Using the Web Browser LAN on page 33 On the computer s keyboard press Enter The web browser displays the signal generator s homepage Click the Signal Generator Web Control menu button on the left of the page The LXI password box is displayed on the computer Refer to the Web Enabled MXG Help Click Submit The front panel web page displays NOTE If you are experiencing problems with opening the signal generator s remote front panel web page verify that the pop up blocker is turned off on your web browser In some cases the Web Enabled front panel may appear behind the main browser window so you must move the browser window to see the Web Enabled front panel To control the signal generator
376. nerator using GPIB 7 is the address of the GPIB card in the computer and 19 is the address of the signal generator This IO path is used to send ASCII data to the signal generator 140 Opens an IO path for sending binary data to the signal generator 150 Creates an ASCII string representation of the number of bytes in the waveform 160 to 170 Finds the number of digits in Nbytes 190 Sends the first part of the SCPI command MEM DATA along with the name of the file data_file that will receive the waveform data The name data_file will appear in the signal generator s memory catalog 200 to 210 Sends the rest of the ASCII header Agilent Signal Generators Programming Guide 305 Creating and Downloading Waveform Files Programming Examples Program Comments Continued 230 Sends the binary data Note that PSGb is the binary IO path 240 Sends an End of Line to terminate the transmission 250 to 260 Closes the connections to the signal generator 290 End the program Creating and Downloading Waveform Data Using HP BASIC for UNIX On the documentation CD this programming example s name is hpbasicUx txt The following program shows you how to download waveforms using HP Basic for UNIX The code is similar to that shown for HP BASIC for Windows but there is a formatting difference in line 130 and line 140 To download into non volatile memory replace line 190 with 190 OUTPUT P
377. nerators Programming Guide Creating and Downloading User Data Files Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only Requirement for Continuous User File Data Transmission Integer Number of Timeslots Requirement for Multiple Timeslots If a user file fills the data fields of more than one timeslot in a continuously repeating framed transmission the user file is restarted after the last timeslot containing completely filled data fields For example if the user file contains enough data to fill the data fields of 3 5 timeslots the firmware loads 3 timeslots with data and restart the user file after the third timeslot The last 0 5 timeslot worth of data is never modulated To solve this problem add or subtract bits from the user file until it completely fills an integer number of timeslots Multiple of 8 Bits Requirement For downloads to bit and binary memory user file data must be downloaded in multiples of 8 bits bytes since SCPI specifies data in bytes Therefore if the original data pattern s length is not a multiple of 8 you need to add bits to complete the ASCII character replicate the data pattern to generate a continuously repeating pattern with no discontinuity truncate the excess bits NOTE The multiple of 8 bits data length requirement is in addition to the requirement of completely filling the data field of an integer number of timeslots Using Externally Generated Real
378. ng Encrypted Files for No Extraction Extraction allowed on the X Series and MXG Only on page 236 Table 5 9 Downloading Unencrypted Files for Extraction on page 236 Table 5 11 Downloading Encrypted Files for Extraction on page 238 Table 5 12 Extracting Encrypted Waveform Data on page 238 Agilent Signal Generators Programming Guide 235 Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data Table 5 7 Downloading Unencrypted Files for No Extraction Extraction allowed on the X Series and MXG Only Download Method Memory Type Command Syntax Options SCPI volatile memory MMEM DATA WFM1 lt file_name gt lt blockdata gt MMEM DATA MKR1 lt file_name gt lt blockdata gt MMEM DATA HDR1 lt file_name gt lt blockdata gt SCPI volatile memory with full directory path MMEM DATA user bbg1 waveform lt file_name gt lt blockdata gt MMEM DATA user bbg1 markers lt file_name gt lt blockdata gt MMEM DATA user bbg1 header lt file_name gt lt blockdata gt SCPI non volatile memory MMEM DATA NVWFM lt file_name gt lt blockdata gt MMEM DATA NVMKR lt file_name gt lt blockdata gt MMEM DATA NVHDR lt file_name gt lt blockdata gt SCPI non volatile memory with full directory path MMEM DATA user waveform lt file_name gt lt blockdata gt MMEM DATA user markers lt file_name gt lt blockdata gt MMEM DATA user h
379. ng Waveform Data Table 5 9 Downloading Unencrypted Files for Extraction Download Method Memory Type Command Syntax Options SCPI non volatile memory DATA UNPRotected user waveform file name blockdata DATA UNPRotected user markers file name blockdata DATA UNPRotected user header file name blockdata DATA UNPRotected NVWFM file name blockdata DATA UNPRotected NVMKR file name blockdata DATA UNPRotected NVHDR file name blockdata DATA UNPRotected file_name NVWFM lt blockdata gt DATA UNPRotected file_name NVMKR lt blockdata gt DATA UNPRotected file_name NVHDR lt blockdata gt FTP volatile memory put put put file name file name file name user bbgl waveform file name user bbgl markers file name user bbgl header file name FTP non volatile memory put put put lt file_name gt lt file_name gt lt file_name gt user waveform lt file_name gt user markers lt file_name gt user header file name a On the N5172B 82B and N5162A 82A the WI EM DATA UNPRotected command is not required to be able to extract files i e use MEM DATA For more information refer to the SCPI Command Reference b See FTP Procedures on page 239 Table 5 10 Extracting Unencrypted 0 Data MMEM DATA Download Command Syntax Options Method Memory Type SCPI volatile MMEM DATA user bbg1
380. nloads E4438C and E8267D Calculating Volatile Memory PRAM Usage for Unframed Data Use this procedure to calculate the memory size for either a bit or binary file To properly demonstrate this process the procedure employs a user file that contains 70 bytes 560 bits with the bit file using only 557 bits 1 Determine the AUTOGEN_PRAM_1 file size The signal generator creates a 32 bit word for each user file bit 1 bit equals 4 bytes Binary file 4 bytes x 70 bytes x 8 bits 2240 bytes Bit file 4 bytes x 557 bits 2228 bytes 2 Calculate the number of memory blocks that the AUTOGEN_PRAM_1 file will occupy Volatile memory allocates memory in blocks of 1024 bytes Binary file 2240 1024 2 188 blocks Bit file 2228 1024 2 176 blocks 3 Round the memory block value to the next highest integer value For this example the AUTOGEN_PRAM_1 file will use three blocks of memory for a total of 3072 bytes 4 Determine the number of memory blocks that the copy of the original file occupies in volatile memory For this example the bit and binary file sizes are shown in the following list Binary file 70 bytes lt 1024 bytes 1 memory block Bit file 80 bytes 1024 bytes 1 memory block Remember that a bit file includes a 10 byte file header 5 Calculate the total volatile memory occupied by the user file data AUTOGEN PRAM 1 Original File 3 blocks 1 block 1024 3 1 4096 bytes Calcul
381. non volatile waveform data 3The Agilent X Series and MXG internal non volatile memory is referred to as internal storage This NONVOLATILE directory shows the files with the same extensions as the USB media and is useful with ftp Memory Allocation Volatile Memory The signal generator allocates volatile memory in blocks of 1024 bytes For example a waveform file with 60 samples the minimum number of samples has 300 bytes 5 bytes per sample x 60 samples but the signal generator allocates 1024 bytes of memory If a waveform is too large to fit into 1024 bytes the signal generator allocates additional memory in multiples of 1024 bytes For example the signal generator allocates 3072 bytes of memory for a waveform with 500 samples 2500 bytes 3 x 1024 bytes 3072 bytes of memory 228 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Waveform Memory As shown in the examples waveforms can cause the signal generator to allocate more memory than what is actually used which decreases the amount of available memory NOTE In the first block of data of volatile memory that is allocated for each waveform file the file header requires 512 bytes N5172B 82B N5162A 82A or 256 bytes E4438C E8267D Non Volatile Memory Agilent X Series and MXG NOTE If the Agilent X Series or MXG s external USB flash memory port is used the USB flash memory can provide actual physical storage of non v
382. nsition 32767 STATus QUEStionable FREQuency ENABle 32767 STATus QUEStionable FREQuency NTRansition 32767 STATus QUEStionable FREQuency PTRansition 32767 STATus QUEStionable MODulation ENABle 32767 STATus QUEStionable MODulation NTRansition 32767 STATus QUEStionable MODulation PTRansition 32767 STATus QUEStionable POWer ENABle 32767 STATus QUEStionable POWer NTRansition 32767 STATus QUEStionable POWer PTRansition 32767 STATus QUEStionable BERT ENABle 32767 STATus QUEStionable BERT NTRansition 32767 STATus QUEStionable BERT PTRansition 32767 a Table reflects STAT PRES values for an E4438C with options 001 002 601 or 602 and UN7 To determine the registers that apply to your signal generator refer to Figure 4 1 on page 168 through Figure 4 6 on page 173 and Table 4 4 on page 182 through Table 4 13 on page 208 Table 4 3 Effects of STATus PRESet Register Value after STATus PRESet STATus OPERation ENABle 0 STATus OPERation NTRansition 0 STATus OPERation PTRransition 32767 STATus QUEStionable CALibration ENABle 32767 STATus QUEStionable CALibration NTRansition 32767 STATus QUEStionable CALibration PTRansition 32767 STATus QUEStionable ENABle 0 STATus QUEStionable NTRansition 0 Agilent Signal Generators Programming Guide 179 Programming the Status Register System Accessing Status Register Information Table 4 3 Effects of STATus PRESet
383. nstrument s hostname Replace the localSrcFile and instDestFile directory paths Agilent Signal Generators Programming Guide 213 Creating and Downloading Waveform Files Programming Examples as needed A F F e H IRI ke kk IOI IO III IOI ok koe k IO III IOI IO II I IO IOI IO IOI IO II I IO ko kk ke include lt stdlib h gt include lt stdio h gt include lt string h gt include visa h IMPORTANT Configure the following three lines correctly before compiling and running char instOpenString TCPIPO xxx xxx xxx xxx INSTR your instrument s IP address const char localSrcFile Files IQ_DataC const char instDestFile USER WAVEFORM IQ_DataC const int BUFFER_SIZE 100 1024 Size of the copy buffer int main int argc char argv ViSession defaultRM vi ViStatus status 0 status viOpenDefaultRM amp defaultRM Open the default resource manager TO DO Error handling here status viOpen defaultRM instOpenString VI NULL VI NULL amp vi if status If any errors then display the error and exit the program fprintf stderr viOpen failed s n instOpenString return 1 FILE file fopen localSrcFile rb Open local source file for binary reading if file If any errors display the error and exit the program fprintf stderr Could not open file s n localSrcFile 274 Agilent Signal Generators Programming Guide
384. ntified by the question mark that follows the mnemonic rs232ex2 txt performs the following functions resets the RS 232 interface sets the baud rate to match the signal generator rate reads the value of register 4 queries the signal generator ID sets and queries the power level Start HP Basic type in the following commands and then RUN the program The following program example is available on the signal generator Documentation CD ROM as rs232ex2 txt 10 DI III II III III II III ok ko ko ko ke 20 30 PROGRAM NAME rs232ex2 txt 40 50 PROGRAM DESCRIPTION In this example query commands are used to read 60 data from the signal generator 70 80 Start HP Basic type in the following code and then RUN the program 90 100 Joke ek ok kk kk kk K KK KK CK CK CK KK CK III III II II III III III II ko ko ko ke 110 120 INTEGER Num 130 DIM Str 200 Str1 20 140 CONTROL 9 0 1 Resets the RS 232 interface 150 CONTROL 9 3 9600 Sets the baud rate to match signal generator rate 160 Agilent Signal Generators Programming Guide 160 170 180 190 200 210 220 230 240 250 260 270 Agilent Signal Generators Programming Guide STATUS 9 4 Stat Num BINAND Stat 7 CONTROL 9 4 Num OUTPUT 9 IDN ENTER 9 Str WAIT 2 PRINT ID Str OUTPUT 9 POW AMPL 5 dbm OUTPUT 9 POW ENTER 9 Stri PRINT Power Strl END Programming Examples RS 232 Programming Interface Examples ESG PSG
385. num int rdBuffer 1 0 Converts string data to numeric switch num case 1 printf Signal Generator printf n break case 2 printf Signal Generator printf n break case 4 printf Signal Generator printf n break case 8 printf Signal Generator printf n break case 16 printf Signal Generator printf n break default printf No Problems with printf n Close the sessions viClose vi viClose defaultRM 110 Based on the decimal value Modulation 1 Undermod n Modulation 1 Overmod n Modulation 2 Undermod n Modulation 2 Overmod n Modulation Uncalibrated n Modulation n Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples Reading the Service Request Interrupt SRQ Using VISA and C This example demonstrates use of the Service Request SRQ interrupt By using the SRQ the computer can attend to other tasks while the signal generator is busy performing a function or operation When the signal generator finishes its operation or detects a failure then a Service Request can be generated The computer will respond to the SRQ and depending on the code can perform some other operation or notify the user of failures or other conditions This program sets up a step sweep function for the signal generator and while the operation is in progress prints out a se
386. nused Unused Always Zero 0 Service Request Enable Register Agilent Signal Generators Programming Guide 169 Programming the Status Register System Overview Figure 4 3 170 R P P Tripped Unleveled IQ Mod Overdrive Lowband Detector Faul Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Synth Unlocked 10 MHz Ref Unlocked 1 GHz Ref Unlocked Baseband 1 Unlocked Unused Sampler Loop Unlocked YO Loop Unlocked Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Mod 1 Undermod Mod 1 Overmod Mod 2 Undermod Mod 2 Overmod Modulation Uncalibrated Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Data Quest Calibration Status Group VQ Calibration Failure DCFM DCfM Zero Failure Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 E4428C 38C Overall Status Byte Register System 1 of 2 Data Questionable Power Status Group Irans Filter Condition Register Trans Filter Condition Register Trans Filter Condition Register Trans Filter Trans Filter Trans Filter TransFilter TransFilter Event Register Event Enable Reg Event Register Event Enable Reg Event Register Event Enable Reg
387. nused These bits are always set to 0 15 Always 0 a In the N5162A 82A this bit applies only to the I Q calibration In the N5161A 81A 83A this bit is unused and always set to 0 b In the E8257D E8663B and the E8663D this bit applies only to the DCFM DC M calibration c In the N5161A 81A N5162A 82A N5183A E4428C E8257D E8267D E8663B and the E8663D this bit is always set to 0 Query STATus QUEStionable CONDition Response The decimal sum of the bits set to 1 Example The decimal value 520 is returned The decimal sum 512 bit 9 8 bit 3 Agilent Signal Generators Programming Guide 193 Programming the Status Register System Status Groups Data Questionable Transition Filters negative and positive The Data Questionable Transition Filters specify which type of bit state changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus QUEStionable NTRansition value negative transition or STATus QUEStionable PTRansition value positive transition where value is the sum of the decimal values of the bits you want to enable Queries STATus QUEStionable NTRansition STATus QUEStionable PTRansition Data Questionable Event Register The Data Questionable Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only
388. o download the file to the signal generator This C example shows how to 1 Create a simple IQ waveform 2 Save the waveform into the ESG PSG Internal Arb format This format is for the E4438C E8267C E8267D This format will not work with the ESG E443xB or the Agilent MXG N518xA 3 Load the internal Arb format file into an array include lt stdio h gt include lt string h gt include lt math h gt const int POINTS 1000 Size of waveform const char computer PCWIN int main int argc char argv 262 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples F 1 Create Simple IQ Signal dese hee e dece de de de de de L e dece e e de hee e dede de ede dee hee e e An n Bn n BG This signal is a single tone on the upper side of the carrier and is usually refered to as a Single Side Band Suppressed Carrier SSBSC signal It is nothing more than a cosine wavefomm in I and a sine waveform in Q int points POINTS Number of points in the waveform int cycles 101 Determines the frequency offset from the carrier double Iwave POINTS I waveform double Qwave POINTS Q waveform short int waveform 2 POINTS Holds interleaved I Q data double maxAmp 0 Used to Normalize waveform data double minAmp 0 Used to Normalize waveform data double scale 1 char buf Used for byte swapping char p
389. oads E4438C and E8267D Table 6 7 Bit File Type SCPI Commands Type Command Syntax Query MEM DATA BIT lt file name gt Within the context of a program this query extracts the user file data Executing the query in a command window causes it to return the following information lt bit_count gt lt block_data gt Query MEM CAT BIT This lists all of the files in the bit file directory and shows the remaining non volatile memory bytes used by bit files gt lt available non volatile memory gt lt file_names gt Command Syntax Example The following command downloads a file that contains 17 bytes MEM DATA BIT new_file 131 21702 S 4 amp 07 8g Y9 7 Since this command is file specific BIT there is no need to add the file path to the file name After execution of this command the signal generator creates a file in the bit directory memory catalog named new_file that contains 27 bytes Remember that the signal generator adds a 10 byte file header to a bit file When the signal generator uses this file it will recognize only 131 of the 136 bits 17 bytes contained in the file For information on downloading block data see Downloading User Files on page 330 Commands for Binary File Downloads To download a user file as a binary file type means that the signal generator when the file is selected for use sees all of the data contained within the file For more information on
390. of the signal generator use the GPIB LAN and RS 232 interfaces and demonstrate instrument control using different IO libraries and programming languages Many of the example programs in this chapter are interactive the user will be prompted to perform certain actions or verify signal generator operation or functionality Example programs are written in the following languages HP Basic C C C Microsoft Visual Basic 6 0 Java MATLAB Perl These example programs are also available on the signal generator Documentation CD ROM enabling you to cut and paste the examples into a text editor NOTE The example programs set the signal generator into remote mode front panel keys except the Agilent MXG Local Esc Cancel or the ESG and PSG Local key are disabled Press the Agilent MXG Local Esc Cancel or the ESG PSG Local key to revert to manual operation To have the signal generator s front panel update with changes caused by remote operations enable the signal generator s Update in Remote function Agilent Signal Generators Programming Guide 75 Programming Examples Using the Programming Interface Examples NOTE The Update in Remote function will slow test execution For faster test execution disable the Update in Remote function For more information refer to or Configuring the Display for Remote Command Setups Agilent X Series and MXG on page 20 or Configuring the Display for Remote Command Setups ESG PSG
391. ogramming Guide 313 Creating and Downloading User Data Files Overview Overview User data is a generic term for various data types created by the user and stored in the signal generator This includes the following data file types Bit Binary PRAM FIR Filter State User Flatness Correction This file type lets the user download payload data for use in streaming or framed signals It lets the user determine how many bits in the file the signal generator uses This file type provides payload data for use in streaming or framed signals It differs from the bit file type in that you cannot specify a set number of bits Instead the signal generator uses all bits in the file for streaming data and all bits that fill a frame for framed data If there are not enough bits to fill a frame the signal generator truncates the data and repeats the file from the beginning With this file type the user provides the payload data along with the bits to control signal attributes such as bursting This file type is available for only the real time Custom and TDMA modulation formats This file type stores user created custom filters This file type lets the user store signal generator settings which can be recalled This provides a quick method for reconfiguring the signal generator when switching between different signal setups This file type lets the user store amplitude corrections for frequency Prior to creating and downloadin
392. olatile data in the SECUREWAVE directory versus the virtual only data ARB waveform encryption of proprietary information is supported on the external non volatile USB flash memory To copy unencrypted data files from an external media as in USB Flash Drive UFD for playing on a signal generator the full filename extension is required i e MARKER HEADER WAVEFORM etc For more information on unencrypted data refer to Commands for Downloading and Extracting Waveform Data on page 232 For more information on how to work with files refer to the User s Guide To copy compatible licensed encrypted data files i e SECUREWAVE from an external media download copy the files to the signal generator refer to the User s Guide for information on how to work with files When using the external media along with the signal generator s Use as or Copy File to Instrument softkey menus encrypted data files can be automatically detected by the signal generator regardless of the suffix e g wfm wvfm and no suffix etc These various waveform files can be selected and played by the signal generator For more information on encrypted data refer to Commands for Downloading and Extracting Waveform Data on page 232 When using the Copy File to Instrument the signal generator prompts the user to select between BBG Memory and Internal Storage memories as locations to copy the files On the Agilent X Series and MXG non volatile f
393. olatile memory types 315 Waveform Download Assistant 258 web server on 15 psg global settings configuring 22 312 memory allocation non volatile memory 230 318 317 Pulse RF Blank configuring 312 setting GPIB 30 volatile memory types 315 Waveform Download Assistant 258 web server on 15 SICL 10 31 80 257 212 VISA 10 31 64 72 80 77 Agilent VISA 10 ARB waveform file downloads data requirements waveform 213 sale waveform download utilities 257 ASCII data 83 Index Auto IP 37 AUXILIARY INTERFACE See RS 232 baseband operation status group registers 189 191 Baseband Studio for Waveform Capture and Playback 224 BASIC ABORT 80 CLEAR 82 ENTER 84 LOCAL 82 81 OUTPUT 83 REMOTE 81 See HP BASIC big endian byte order interleaving and byte swapping 245 changing byte order 216 example programming 299 binary data framed 326 unframed 325 file downloads commands 334 modifying hex editor 336 bit file downloads and commands 333 modifying hex editor 337 order user file 322 status monitoring 175 values 174 bits and bytes 213 byte order byte swapping 216 changing byte order 216 interleaving I Q data 245 C C AC coupled FM signals generating externally applied 97 CW signals generating 95 data questionable status register reading 107 FM signals generating internally applied 99 reading the service request interrupt 111 Sockets LAN programming 122 state
394. omepage and on the signal generator Refer to Enabling the Signal Generator Web Server on page 14 and to Displaying the LAN Configuration Summary Agilent X Series and MXG on page 19 If the instrument has been restored to the factory defaults from the LAN Setup menu the signal generator will revert to the values displayed in Table 1 1 on page 18 Refer to Displaying the LAN Configuration Summary Agilent X Series and MXG on page 19 To reset the instrument LXI password to agilent and the LAN settings to their factory default values press the following key sequence on the signal generator Utility gt 1 0 Config gt LAN Setup gt Advanced Settings gt More 2 of 2 gt Restore LAN Settings to Default Values gt Confirm Restore LAN Settings to Default Values NOTE There are no SCPI commands associated with this LXI password factory reset For more information refer to the signal generator s Web Server Interface Help Table 1 1 LAN Configuration Summary Values Parameter Default Signal Generator LAN Configuration Summary Hostname Agilent model number gt lt last_5_chars_of_serial_number gt Config Type AUTO IP Address 127 0 0 1 Connection Monitoring On Subnet 255 255 255 0 DNS Server Override Off Gateway 0 0 0 0 Dynamic DNS Naming On RFC NETBIOS Naming On DNS Server 0 0 0 0 Agilent Signal Generators Programming Guide
395. on 14 1 and higher CAUTION The Agilent X Series and MXG s USB interface requires Agilent IO Libraries Suite 14 1 or newer For more information on connecting instruments to the USB refer to the Agilent Connection Expert in the Agilent IO Libraries Help For long strings of commands and waveform downloads upgrading to Agilent IO Libraries 15 0 and above can decrease RS 232 performance potentially resulting in an Error 310 NOTE The signal generator ships with an Automation Ready CD that contains the Agilent IO Libraries Suite 14 0 for users who use Windows 98 and Windows ME These older systems are no longer supported Once the libraries are loaded you can use the Agilent Connection Expert Interactive IO or VISA Assistant to configure and communicate with the signal generator over different IO interfaces Follow Windows NT and XP are registered trademarks of Microsoft Corporation Agilent Signal Generators Programming Guide 5 Getting Started with Remote Operation 10 Libraries and Programming Languages instructions in the setup wizard to install the libraries NOTE Before setting the LAN interface the signal generator must be configured for VXI 11 SCPI Refer to Configuring the VXI 11 for LAN Agilent X Series and MXG on page 34 or Configuring the VXI 11 for LAN ESG PSG on page 35 Refer to the Agilent IO Libraries Suite Help documentation for details about this software Windows XP 2000
396. on but GPIB and LAN are recommended for making faster measurements and when downloading files Refer to the User s Guide The RS 232 serial interface can be used to communicate with the signal generator The RS 232 connection was once standard on most PCs but has now been replaced by USB RS 232 can be connected to the signal generator s rear panel connector using the cable described in Table 2 2 on page 66 Many functions provided by GPIB with the exception of indefinite blocks parallel polling serial polling GET non SCPI remote languages SRQ and remote mode are available using the RS 232 interface The serial port sends and receives data one bit at a time therefore RS 232 communication is slow The data transmitted and received is usually in ASCII format with SCPI commands being sent to the signal generator and ASCII data returned Agilent Signal Generators Programming Guide 63 Using IO Interfaces Using RS 232 ESG and PSG Only The following sections contain information on selecting and connecting IO libraries and RS 232 interface hardware on the signal generator to a computer s RS 232 connector e Selecting IO Libraries for RS 232 on page 64 e Setting Up the RS 232 Interface on page 65 e Verifying RS 232 Functionality on page 67 Selecting IO Libraries for RS 232 The IO libraries can be downloaded from the National Instrument website http www ni com or Agilent s website http www agilent com The follo
397. ore information on running Cf programs using NET framework see Chapter 6 NOTE To communicate with the signal generator over the LAN interface you must enable the VXI 11 SCPI service For more information refer to Configuring the VXI 11 for LAN Agilent X Series and MXG on page 34 and Configuring the VXI 11 for LAN ESG PSG on page 35 Running Basic Examples The BASIC programming interface examples provided in this chapter use either HP Basic or Visual Basic 6 0 languages Visual Basic 6 0 Programming Examples To run the example programs written in Visual Basic 6 0 you must include references to the IO Libraries For more information on VISA and IO libraries refer to the Agilent VISA User s Manual available on Agilent s website http www agilent com In the Visual Basic IDE Integrated Development Environment go to Project References and place a check mark on the following references Agilent VISA COM Resource Manager 1 0 VISA COM 1 0 Type Library Agilent Signal Generators Programming Guide 77 Programming Examples Using the Programming Interface Examples NOTE If you want to use VISA functions such as viWrite then you must add the visa32 bas module to your Visual Basic project The signal generator s VXI 11 SCPI service must be on before you can run the Download Visual Basic 6 0 programming example NOTE To communicate with the signal generator over the LAN interface you must enable the VX
398. orm waveform Normalize the data between 1 waveform waveform max abs waveform Watch out for divide by zero Scale to use full range of the DAC waveform round waveform 32767 Data is now effectively signed short integer values waveform round waveform 32767 max abs waveform More efficient than previous two steps PRESERVE THE BIT PATTERN but convert the waveform to unsigned short integers so the bytes can be swapped Note Can t swap the bytes of signed short integers in MatLab waveform uint16 mod 65536 waveform 65536 If on a PC swap the bytes to Big Endian if strcmp computer PCWIN waveform bitor bitshift waveform 8 bitshift waveform 8 end Save the data to a file Note The waveform is saved as unsigned short integers However amp the acual bit pattern is that of signed short integers and amp that is how the ESG PSG interprets them filename C Temp EsgTestFile FID message fopen filename w Open a file to write data if FID 1 error Cannot Open File end fwrite FID waveform unsigned short write to the file fclose FID close the file 3 Load the internal Arb format file dX d Kock kk kk dee kk ke dee This process is just the reverse of saving the waveform Read in waveform as unsigned short integers Swap the bytes as necessary Convert to signed integers then normalize between 1 De inter
399. ormat This creates a file named AUTOGEN PRAM 1 in addition to a copy of the user file For all addresses corresponding to active on timeslots the signal generator sets the burst bit to 1 and fills the data fields with the user file Agilent Signal Generators Programming Guide 339 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D data Other bits are set according to the configuration selected For inactive off timeslots the signal generator sets the burst control bit to 0 with the data being unspecified In the last byte that contains the last user file data bit the signal generator sets the Pattern Reset bit to 1 This causes the user file data pattern to repeat in the next frame NOTE The data in PRAM is static Firmware writes to PRAM once for the configuration selected and the hardware reads this data repeatedly Firmware overwrites the volatile PRAM memory to reflect the desired configuration only when the data source or TDMA format changes For example transmitting a 228 bit user file for timeslot 1 TSI in a normal GSM transmission creates two frames Per the standard a GSM normal channel is 156 25 bits long with two 57 bit data fields 114 user data bits total per timeslot and 42 bits for control or signalling purposes The user file completely fills timeslot 1 for two consecutive frames and then repeats The seven remaining timeslots in the GSM frame are off as sh
400. ors Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Modifying a Bit File with a Hex Editor 1 FTP the file to your PC UNIX For information on using FTP see FTP Procedures Ensure that you use binary file transfers during FTP operations 2 Modify the file using a hex editor program If you need to decrease or increase the number of bits of interest change the file header hex value 80 Byte File From Signal Generator 02 80 hex 640 bits designated as bits of interest 00000000 ge 01 00 oO oO OO OO 00 02 80 5a 26 78 5b 2b 37 47 00000010 37 20 23 2f 34 61 63 39 3f 25 2e 69 52 33 22 00000020 40 2e 74 59 75 76 3a 3e 36 26 24 46 47 Ga 3c 7b 00000030 5c 4b 6c 2d 2b 20 2e 68 47 3f 22 60 7e 75 2a 39 00000040 6b 5f 21 60 7e 2c 3a 37 5e Gc Ge 2e 2c 3f Ge 74 00000050 Modified File 80 Bytes to 88 Bytes 02 bd hex 701 bits designated as bits of interest 00000000 58 01100 00 OO OO OO 00 02 bd 5a 26 78 5b 2b 37 00000010 47 37 20 23 2f 34 61 63 39 if 25 2e 69 52 33 22 00000020 40 2e 74 59 75 76 3a 3e 36 26 24 46 47 6a 3c 7b 00000030 5c 4b Ge 2d 2b 20 2e 68 47 3f 22 60 7e 75 2a 39 00000040 6b 5f 21 60 7e 2c 3a 37 Se Gc Ge 2e 2c 3f Ge 74 00000050 23 26 3c 6b 2a 76 3f 6e Added bytes 3 FTP the file to the signal generators BIT memory catalog directory FTP Procedures CAUTION Avoid using the OPC or WAI command
401. ot enough space in the ARB memory for the waveform file being downloaded To solve the problem either reduce the file size of the waveform file or delete unnecessary files from ARB memory Refer to Waveform Memory on page 226 No RF Output The marker RF blanking function may be active To check for and turn RF blanking off refer to Configuring the Pulse RF Blank Agilent X Series and MXG on page 312 and Configuring the Pulse RF Blank ESG PSG on page 312 This problem occurs when the file header contains unspecified settings and a previously played waveform used the marker RF blanking function For more information on the marker functions see the User s Guide Undesired output signal Check for the following The data was downloaded in little endian order See Little Endian and Big Endian Byte Order on page 214 for more information The waveform contains an odd number of samples An odd number of samples can cause waveform discontinuity See Waveform Phase Continuity on page 223 for more information Agilent Signal Generators Programming Guide 311 Creating and Downloading Waveform Files Troubleshooting Waveform Files Configuring the Pulse RF Blank Agilent X Series and MXG If the default marker is used toggle the Pulse RF Blank None softkey to None For more information on markers refer to aim Marker File on page 221 usce lect Arb 7 averorm Marker Polar
402. oves Marker and Reserved Bits 16 Bit Data Format 16 bit data 16 bit Q data AN A aM R p D 11 eee ae m DE d Marker bits removed Bits added Reserved bits removed Bits added Creates a marker file and places the marker information bits 14 and 15 of the E443xB I data into the marker file for markers one and two Markers three and four within the new marker file are set to zero off Places the I Marker Bits into the Signal Generator Marker File 0011 Marker 1 and 2 bits from the E443xB data Marker 3 and 4 bits e Interleaves the 16 bit I and Q data creating one I Q file Creates a file header with all parameters set to unspecified factory default file header setting 260 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples SCPI Commands Use the following commands to download E443xB waveform files into the signal generator NOTE To avoid overwriting the current waveform in volatile memory before downloading files into volatile memory WFM1 change the file name or turn off the ARB For more information on manually turning off the ARB refer to the User s Guide To turn off the ARB remotely send SOURCe RADio ARB STATe OFF Extraction Method Command Syntax Options Memory Type SCPI MMEM DATA ARBI file name I waveform block data volatile memory MMEM DATA ARBQ lt file_name gt lt Q waveform data SCP
403. own in Figure 6 2 Figure 6 2 Mapping User File Data to a Single Timeslot 228 bit User File 114 bits 114 bits Amplitude TSO TS1 TS2 TS3 TS4 TS5 TS6 TS7 TSO TS1 TS2 TS3 TS4 TS5 TS6 TS7 TS0 TS1 TS2 Frame 1 Frame 2 Frame 1 Time P NOTE Compliant with the GSM standard which specifies 156 25 bit timeslots the signal generator uses 156 bit timeslots and adds an extra guard bit to every fourth timeslot For this protocol configuration the signal generator s firmware loads PRAM with the bits defined in the following table These bits are part of the 32 bit word per frame bit The Pattern Reset bit bit 7 is 0 for frame one and 1 for the last byte of frame two Frame Timeslot PRAM Word Data Bits Burst Bits Pattern Reset Bit Offset 1 0 0 155 0 1 don t care 0 off 0 off 1 1 on 156 311 set by GSM standard 42 bits amp first 1 on 0 114 bits of user file 1 2 312 467 0 1 don t care 0 0 340 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D Frame Timeslot PRAM Word Data Bits Burst Bits Pattern Reset Bit Offset 1 3 468 624 0 1 don t care 0 0 1 4 625 780 0 1 don t care 0 0 1 5 781 936 0 1 don t care 0 0 1 6 937 1092 0 1 don t care 0 0 1 7 1093 1249 0 1 don t care 0 0 2 0 1250 1405 0 1
404. ownloaded user file data bit and binary With a bit file the signal generator views the data up to the number of bits specified when the file was downloaded For example if you specify to use 153 bits from a 160 bit 20 bytes file the signal generator transmits 153 bits and ignores the remaining 7 bits This provides a flexible means in which to control the number of transmitted data bits It is the preferred file type and the easiest one to use With a binary file the signal generator sees all bytes bits in a downloaded file and attempts to use them This can present challenges especially when working with framed data In this situation your file needs to contain enough bits to fill a frame or timeslot or multiple frames or timeslots to end on the desired boundary To accomplish this you may have to remove or add bytes If there are not enough bits remaining in the file to fill a frame or timeslot the signal generator truncates the data causing a discontinuity in the data pattern Agilent Signal Generators Programming Guide 321 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D You download a user file to either the Bit or Binary memory catalog directory Unlike a PRAM file covered later in this chapter user file data does not contain control bits it is just data The signal generator adds control bits to the user file data when it generates the signal There are two ways that the s
405. ownloading Waveform Files Creating Waveform Data Line Code Description Create I and Q data 7 11 Create a loop to do the following Generate and scale the I data DAC values This example uses a simple sine equation where 2 3 14 equals one waveform cycle Change the equation to fit your application The array pointer index increments from 0 499 creating 500 I data points over one period of the Sine waveform Set the scale of the DAC values in the range of 32768 to 32767 where the values 32768 and 32767 equal full scale negative and positive respectively This example uses 23000 as the multiplier resulting in approximately 70 scaling For more information on scaling see Scaling DAC Values on page 217 NOTE The signal generator comes from the factory with I Q scaling set to 70 If you reduce the DAC input values ensure that you set the signal generator scaling RADio ARB RSCaling to an appropriate setting that accounts for the reduced values Generate and scale the Q data DAC value This example uses a simple cosine equation where 2 3 14 equals one waveform cycle Change the equation to fit your application The array pointer index increments from 0 499 creating 500 Q data points over one period of the cosine waveform Set the scale of the DAC values in the range of 32767 to 32768 where the values 32767 and 32768 equal full scale negative and positive respectively
406. owser s window 3 Drag and drop files between the PC and the browser s window For more information on the web server feature refer to the Programming Guide Using the Command Window PC or UNIX 1 From the PC command prompt or UNIX command line change to the proper directory When downloading from the signal generator the directory in which to place the file When downloading to the signal generator the directory that contains the file 2 From the PC command prompt or UNIX command line type ftp instrument name Where instrument name is the signal generator s hostname or IP address At the User prompt press Enter no entry is required 4 At the Password prompt press Enter no entry is required At the ftp prompt type the desired command To Get a File From the Signal Generator get user directory file name1 file name To Place a File in the Signal Generator Microsoft is a U S registered trademark of Microsoft Corporation 338 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D To Get a File From the Signal Generator put file name user lt directory gt lt file_namel gt e file namel is the name of the file as it appears in the signal generator s directory file name is the name of the file as it appears in the PC UNIX current directory directory is the signal generator s
407. page 115 Before Using the GPIB Examples HP Basic addresses the signal generator at 719 The GPIB card is addressed at 7 and the signal generator at 19 The GPIB address designator for other libraries is typically GPIBO or GPIBI GPIB Function Statements Command Messages Function statements are the basis for GPIB programming and instrument control These function statements combined with SCPI provide management and data communication for the GPIB interface and the signal generator This section describes functions used by different IO libraries For more information refer to the NI 488 2 Function Reference Manual for Windows Agilent Standard Instrument Control Library reference manual and Microsoft Visual C 6 0 documentation Abort Function The HP Basic function ABORT and the other listed IO library functions terminate listener talker activity on the GPIB and prepare the signal generator to receive a new command from the computer Typically this is an initialization command used to place the GPIB in a known starting condition Library Function Statement Initialization Command HP Basic The ABORT function stops all GPIB activity 10 ABORT 7 VISA Library In VISA the viTerminate command requests a VISA session viTerminate parameter list to terminate normal execution of an asynchronous operation The parameter list describes the session and job id NI 488 2 The NI 488 2 library function aborts any asynchronous rea
408. peration 188 troubleshooting 8757d pass thru commands 117 GPIB 30 LAN 39 ping response errors 40 PRAM downloads 379 RS 232 68 USB 73 user file downloads 378 381 VISA assistant 42 Type A front panel USB connector 73 U unencrypted files downloading for extraction 236 357 236 357 extracting I Q data 356 unframed data usage volatile memory PRAM 328 USB cable 72 functionality verification 73 interface 3 IO libraries 72 setting up 72 using Agilent mxg 71 verifying operation 73 usb media file extensions 229 user data file modifying 336 313 memory 315 root directory 317 user file data continuous transmission requirements 379 user files bit order 322 data binary downloads 321 multiple of 8 bits requirement 379 as the data source 353 carrier activating 354 330 modulating and activating the carrier 336 selecting the user file as the data source 335 framed transmissions understanding 339 real time TDMA 339 size 326 user FIR file downloads non volatile memory 360 391 Index selecting a downloaded user FIR file 360 user flatness 363 user data file type binary memory location 319 FIR memory location 319 flatness memory location 319 instrument state memory location 319 memory location 319 PRAM memory location 319 user data files See user data Using Connection Expert configuring and running 7 V verifying waveforms 254 Version
409. ple see Using Advanced Programming Languages on page 251 Downloading Waveform Data This section examines methods of downloading I Q waveform data created in MATLAB a simulation software and C an advanced programming language For more information on simulation and advanced programming environments see Creating Waveform Data on page 242 To download data from simulation software environments it is typically easier to use one of the free download utilities described on page 257 because simulation software usually saves the data to a file In MATLAB however you can either save data to a mat file or create a complex array To facilitate downloading a MATLAB complex data array Agilent created the Agilent Waveform Download Assistant one of the free download utilities which downloads the complex data array from within the MATLAB environment This section shows how to use the Waveform Download Assistant 248 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Downloading Waveform Data For advanced programming languages this section closely examines the code algorithm for downloading I Q waveform data by breaking the programming examples into functional parts and explaining the code in generic terms This is done to help you understand the code algorithm in downloading the interleaved I Q data so you can leverage the concept into your programming environment While not discussed in this se
410. pleRate 100e6 hdr rms rms hdr peak 1 414 hdr runtimeScaling 70 In percent hdr pulse None hdr alcHold None hdr description Agilent Technologies if isempty header if isstruct header if isfield header sampleRate hdr sampleRate header sampleRate end if isfield header rms hdr rms header rms end if isfield header peak hdr peak header peak end if isfield header runtimeScaling hdr runtimeScaling header runtimeScaling end if isfield header pulse hdr pulse header pulse end if isfield header alcHold hdr alcHold header alcHold end if isfield header description hdr description header description end end end 296 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples hdrCmd RADio ARB HEAD WRIT WFM1 file name hdr description num2str hdr sampleRate num2str hdr runtimeScaling NONE hdr alcHold UNSP hdr pulse UNSP UNSP UNSP num2str hdr peak num2str hdr rms end function wfmCmd CreateWaveformCommand file name points MMEM DATA lt file_name gt ABC lt file_name gt the I Q file name and file path within the signal generator 4 indicates the start of the data block A the number of decimal digits present in B B a decimal number specifying the number of data bytes to follow in C B num2str 4 points Bytes in waveform
411. printf Could not open ViSession Mn printf Check instruments and connections Mn Agilent Signal Generators Programming Guide 101 Programming Examples GPIB Programming Interface Examples printf n exit 0 viClear vi Clears the signal generator viPrintf vi RST n Resets the signal generator viPrintf vi CLS n Clears the status byte register viPrintf vi FREQ MODE LIST n Sets the sig gen freq mode to list viPrintf vi LIST TYPE STEP n Sets sig gen LIST type to step viPrintf vi FREQ STAR 500 MHz n Sets start frequency viPrintf vi FREQ STOP 800 MHz n Sets stop frequency viPrintf vi SWE POIN 10 n Sets number of steps 30 mHz step viPrintf vi SWE DWEL 5 S n Sets dwell time to 500 ms step viPrintf vi POW AMPL 5 dBm n Sets the power level for 5 dBm viPrintf vi OUTP STAT ON n Turns RF output on viPrintf vi INIT CONT ON n Begins the step sweep operation Print user information printf The signal generator is in step sweep mode The frequency range is n printf 500 to 800 mHz There is a 5 sec dwell time at each 30 mHz step n printf n Prints a carriage return line feed viPrintf vi OUTP STAT OFF n Turns the RF output off printf Press the front panel Local key to return the n printf signal generator to manual operation n Closes the sessions printf n viClose vi viClose defaultRM Generat
412. program 4 At the UNIX prompt type cc Aa O o lanio lanio c 5 At the UNIX prompt type lanio The program will run and output a sequence of SCPI commands to the signal generator The UNIX display will show a display similar to the following unix machine users mydir lanio ID Agilent Technologies E4438C US70000001 C 02 00 Frequency 2 5000000000000E 09 Power Level 5 00000000E 000 Sockets on Windows In Windows the routines send and recv must be used since fread and fwrite may not work on sockets The following steps outline the process for running the interactive program in the Microsoft Visual C 6 0 environment 1 Rename the lanio c to lanio cpp and getopt c to getopt cpp and add them to the Source folder of the Visual C project NOTE The int main function in the lanio cpp file will allow commands to be sent to the signal generator in a line by line format the user types in SCPI commands The int mainl 0 function can be used to output a sequence of commands in a program format See Programming Using mainl Function below 2 Click Rebuild All from Build menu Then Click Execute Lanio exe The Debug window will appear with a prompt Press any key to continue This indicates that the program has compiled and can be used to send commands to the signal generator Click Start click Programs then click Command Prompt The command prompt window will appear 4 At the command p
413. programming language and signal generator Figure 1 1 Software Hardware Layers Programming Language C C Visual BASIC LabView VEE etc National Instruments Agilent VISA VISA National Instruments AJilent SIEL NI 488 2 Library Agilent GPIB NI PCI GPIB Interface Card Interface Card Signal Generator 2 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Interfaces Interfaces GPIB GPIB is used extensively when a dedicated computer is available for remote control of each instrument or system Data transfer is fast because GPIB handles information in bytes with data transfer rates of up to 8 MBps GPIB is physically restricted by the location and distance between the instrument system and the computer cables are limited to an average length of two meters per device with a total length of 20 meters For more information on configuring the signal generator to communicate over the GPIB refer to Using GPIB on page 27 LAN Data transfer using the LAN is fast as the LAN handles packets of data The single cable distance between a computer and the signal generator is limited to 100 meters 100Base T and 10Base T The Agilent X Series and MXG are capable of 100Base T LAN communication The ESG PSG and E8663B are designed to connect with a 10Base T LAN Where auto negotiation is present the ESG and PSG s can connect to a 100Base T LAN but communicate at 10Base T speeds For more info
414. py a waveform file marker file or header file information from volatile or non volatile memory the waveform and associated marker and header files are all copied Conversely when you delete an I Q file the associated marker and header files are deleted It is not necessary to send separate commands to copy or delete the marker and header files Playing the Waveform NOTE If you would like to build and play a waveform sequence refer to Building and Playing Waveform Sequences on page 256 Play the waveform and use it to modulate the RF carrier 1 List the waveform files from the volatile memory waveform list Send the following SCPI command MMEMory CATalog WFM1 2 Select the waveform from the volatile memory waveform list Send the following SCPI command SOURCe RADio ARB WAVeform WFM1 lt file_name gt 3 Play the waveform Send the following SCPI commands SOURCe RADio ARB STATe ON OUTPut MODulation STATe ON OUTPut STATe ON Agilent Signal Generators Programming Guide 255 Creating and Downloading Waveform Files Loading Playing and Verifying a Downloaded Waveform Verifying the Waveform Perform this procedure after completing the steps in the previous procedure Playing the Waveform on page 255 1 Connect the signal generator to an oscilloscope as shown in the figure OUT Oscilloscope o DI Baagaag 000 00000 00 o o 9000 OO OO 00
415. r and the error message at the bottom of the screen b On the Agilent X Series and MXG executing the SCPI command CLS clears the display of the ERR annunciator and the error message at the bottom of the screen C Errors that still exist after clearing the error queue For example unlock Error Message File A complete list of error messages is provided in the file errormessages pdf on the CD ROM supplied with your instrument In the error message list an explanation is generally included with each error to further clarify its meaning The error messages are listed numerically In cases where there are multiple listings for the same error number the messages are in alphabetical order 24 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Error Messages Error Message Types Events generate only one type of error For example an event that generates a query error will not generate a device specific execution or command error Query Errors 499 to 400 indicate that the instrument s output queue control has detected a problem with the message exchange protocol described in IEEE 488 2 Chapter 6 Errors in this class set the query error bit bit 2 in the event status register IEEE 488 2 section 11 5 1 These errors correspond to message exchange protocol errors described in IEEE 488 2 6 5 In this case Either an attempt is being made to read data from the output queue when no output is either
416. r s documentation CD ROM status viOpenDefaultRM amp defaultRM Initializes the system Open communication with Serial Port 2 status viOpen defaultRM ASRL2 1NSTR VI NULL VI NULL amp instr 70 Agilent Signal Generators Programming Guide Using 10 Interfaces Using USB Agilent X Series and MXG Using USB Agilent X Series and MXG CAUTION USB cables are not industrial graded and potentially allows data loss in noisy environments USB cables do not have a latching mechanism and the cables can be pulled out of the PC or instrument relatively easily The maximum length for USB cables is 30 m including the use of inline repeaters NOTE The USB interface is available only on Agilent X Series and MXG signal generators The USB 2 0 interface supports USBTMC or USBTMC USB488 specifications For more information on connecting instruments to the USB refer to the Agilent Connection Expert in the Agilent IO Libraries Help USB 2 0 connectors can be used to communicate with the signal generator The N5161A 62A 81A 82A is equipped with a Mini B 5 pin rear panel connector device USB The N5171B 72B 81B 82B is equipped with a Type B rear panel connector device USB Use a Type A to Mini USB 5 pin cable to connect the signal generator to the computer Refer to Setting Up the USB Interface on page 72 Connect the Type A front panel connector host USB can be used to connect a mouse a keyboard or a USB 1 1 2 0 f
417. rate to 9600 printf Manually set the signal generator power level to 0 dBm n printf n printf Press any key to continue n getch printf n ViSession defaultRM vi Declares a variable of type ViSession for instrument communication on COM 2 port ViStatus viStatus 0 Opens session to RS 232 device at serial port 2 viStatus vi0penDefaultRM amp defaultRM viStatus viOpen defaultRM ASRL2 INSTR VI NULL VI NULL amp vi if viStatus If operation fails prompt user printf Could not open ViSession n printf Check instruments and connections Mn printf n exit 0 initialize device Agilent Signal Generators Programming Guide 159 Programming Examples RS 232 Programming Interface Examples ESG PSG Only viStatus viEnableEvent vi VI EVENT IO COMPLETION VI QUEUE VI NULL viClear vi Sends device clear command Set attributes for the session viSetAttribute vi VI ATTR ASRL BAUD baud viSetAttribute vi VI ATTR ASRL DATA BITS 8 viPrintf vi RST n Resets the signal generator printf The signal generator has been reset Win printf Power level should be 135 dBm n printf n Prints new line character to the display viClose vi Closes session viClose defaultRM Closes default session Queries Using HP Basic and RS 232 This example program demonstrates signal generator query commands over RS 232 Query commands are of the type IDN and are ide
418. rator models support these formats 344 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D E4438C ESG E2867D PSG Custom TDMA Custom a For ESG requires Option 001 002 601 or 602 for PSG requires Option 601 or 602 b Real time TDMA modulation formats require Option 402 and include EDGE GSM NADC PDC PHS DECT and TETRA PRAM files differ from bit and binary user files Bit and binary user files see page 321 download to non volatile memory and the signal generator loads the user file data into PRAM volatile waveform memory for use The signal generator adds the required control bits when it generates the signal A PRAM file downloads directly into PRAM and it includes seven of the required control bits for each data payload bit The signal generator adds the remaining control bits when it generates the signal You download the file using either a list or block data format Programs such as MATLAB or MathCad can generate the data This type of signal control enables you to design experimental or proprietary framing schemes After selecting the PRAM file the signal generator builds the modulation scheme by reading data stored in PRAM and constructing framing protocols according to the PRAM file data and the modulation format You can manipulate PRAM data by changing the standard protocols for a modulatio
419. requency and amplitude arrays char pairsList new char lenArray pointer array for int n 0 n lenArray n initialize the pairsList array pairsList n 0 for int i 0 i lt num i char nextFreq new char MAX_STRING_LENGTH 1 frequency array char nextPower new char MAX STRING LENGTH 1 amplitude array enter frequency and amplitude pairs i e 10ghz 1db printf Enter Freq d i 1 scanf s nextFreq printf Enter Power d i 1 scanf s next Power pairsList 2 i nextFreq frequency pairsList 2 i 1 nextPower power correction unsigned char str 256 buffer used to hold SCPI command initialize the signal generator s user flatness table sprintf char str corr flat pres n write to buffer viWrite vi str strlen char str 0 write to PSG char c comma separator for SCPI command for int j 0 j lt num j download pairs to the PSG Agilent Signal Generators Programming Guide Creating and Downloading User Data Files User Flatness Correction Downloads Using C and VISA sprintf char str corr flat pair s c sWMn pairsList 2 j c pairsList 2 j 1 lt lt on SAME line viWrite vi str strlen char str 0 store the downloaded correction pairs to PSG memory const char fileName flatCal_data user flatness file name write the SCPI command to the buffer str sprintf char str corr flat store s n fileN
420. requency at the left edge timeDomain ifft ifftshift invertedFreqDomain put time domain 0 time in center len length timeDomain if mod length timeDomain 2 1 odd center ceil len 2 centeredTime 1 center 1 timeDomain center 1 end centeredTime center len timeDomain 1 center else even topHalf length timeDomain 2 1 centeredTime 1 topHalf 1 timeDomain topHalf end centeredTime topHalf len timeDomain 1 topHalf 1 end resample to desired rate if necessary if abs destRate rate 1e 6 note that this resample function only works with integer rates resampledTime resample centeredTime destRate rate 30 resampledTime resampledTime rate destRate else resampledTime centeredTime end clip off the center 256 if necessary if length resampledTime gt 256 the peak point is assumed to be the center maxval index max abs resampledTime center index left center 127 right left 255 clippedTime resampledTime left right else 150 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples clippedTime resampledTime end corrFilter clippedTime end function array readArrayOfDoubles fid line fgets fid array sscanf line g c end Example 2 Reading a PXA Trace and Setting up the Equalization Filter Using Matlab NOTE For MXG signal generators N5162B 82B replace th
421. ress iqWave name markers header Agilent Signal Generators Programming Guide 291 Creating and Downloading Waveform Files Programming Examples Download tcpipAddress iqWave name markers header Copyright 2009 Agilent Technologies Inc This function downloads a waveform and markers to an Agilent ESG C PSG C D or MXG Vector Signal Generator markers is a two dimentional array that contains 4 markers The header contains the sample rate the waveform rms voltage and the marker routings to the pulse modulator and the ALC hold Default values used by the header if values are not present header sampleRate 100e6 Waveform Sample Rate header rms CalculateWaveformRMS iqWave Waveform RMS voltage header peak 1 414 Waveform Peak voltage header runtimeScaling 70 Runtime scaling in percent header pulse None Marker routing Non M1 M2 M3 M4 header alcHold None Marker routing Non M1 M2 M3 M4 header description Agilent Technologies User provided description INPUT PARAMETERS tcpipAddress 141 121 148 188 What ever works for your signal Generator name Waveform name 21 characters max iqWave Complex waveform min length 60 points markers markers 4 length iqWave 4 possible markers header Structure containing waveform information OUTPUT PARAMETERS EXAMPLES name My Test Waveform name tcpipAddress 141 121 151 129 Signal Generator IP Address
422. retCount Reads the sig gen response status viRead instr ViBuf buffer MAX COUNT amp retCount buffer retCount 0 Indicates the end of the string printf Signal Generator ID Prints header for ID printf buffer Prints the ID string to the screen printf n Prints carriage return Flush the read buffer Sets sig gen power to 5dbm status viWrite instr ViBuf POW AMPL 5dbm n 15 amp retCount Querys the sig gen for power level status viWrite instr ViBuf POW n 5 amp retCount Read the power level status viRead instr ViBuf buffer MAX COUNT amp retCount buffer retCount 0 Indicates the end of the string printf Power level Prints header to the screen printf buffer Prints the queried power level printf n status viClose instr Close down the system status viClose defaultRM return 0 Agilent Signal Generators Programming Guide 163 Programming Examples RS 232 Programming Interface Examples ESG PSG Only 164 Agilent Signal Generators Programming Guide 4 Programming the Status Register System This chapter provides the following major sections e Overview on page 165 e Status Register Bit Values on page 174 e Accessing Status Register Information on page 175 e Status Byte Group on page 181 e Status Groups on page 183 Overview NOTE Some of the status bits and register groups only apply to select signal generator
423. ries of asterisks When the step sweep operation is complete an SRQ is generated and the printing ceases Launch Microsoft Visual C 6 0 add the required files and enter the following code into your cpp source file visaex10 cpp performs the following functions error checking clears the signal generator resets the signal generator prompts user to manually begin the step sweep and waits for response clears the status register sets up the operation status group to respond to an end of sweep the data questionable status register is enabled to read an unleveled condition prompts user to manually set up the signal generator for an unleveled condition queries the data questionable status register for any set bits and converts the string data to numeric based on the numeric value program checks for a corresponding status check value similarly checks for over or undermodulation condition The following program example is available on the signal generator Documentation CD ROM as visaex10 cpp f RR n e kk k ERE RE RE RE RE RRR e RR KERR KERR KERR ERE KEKE KEKE KEKE KEKE KEKE RE RE RE e e e e e e e e ke ke PROGRAM FILE NAME visaex10 cpp Er PROGRAM DESCRIPTION This example demonstrates the use of a Service Request SRQ interrupt The program sets up conditions to enable the SRQ and then sets the signal generator for a step mode sweep The program will enter a printing loop which prints an ch
424. rm memory WFM1 or waveform playback memory To play back waveforms they must reside in volatile memory The following file types share this memory Table 5 1 Signal Generators and Volatile Memory Types Volatile Memory Type Model of Signal Generator N5172B N5162A E4438C with E8267D Option N5182B with N5182A with Option 001 601 or 602 Option 653 or Option 651 002 601 or 656 652 or 654 602 VQ x x x x Marker x x x x File header x x x x User PRAM x x Non volatile Storage memory where files survive cycling the signal generator power Files remain until overwritten or deleted To play back waveforms after cycling the signal generator power you must load waveforms from non volatile waveform memory NVWFM to volatile waveform memory WFM1 On the Agilent X Series and MXG the non volatile memory is referred to as internal media and external media The following file types share this memory Table 5 2 Signal Generators and Non Volatile Memory Types Non Volatile Memory Type Model of Signal Generator N5172B N5162A E4438C with E8267D Option N5182B with N5182A with Option 001 601 or 602 option 653 or Option 651 002 601 or 656 652 or 654 602 I Q x x x x 226 Agilent Signal Generators Programming Guide Table 5 2 Signal Generators and Non Volatile Memory Types Creating and Downloading Waveform Files Waveform Memory Non Volatile Memory Type Model of
425. rmation on LAN communication refer to http www ieee org The following protocols can be used to communicate with the signal generator over the LAN VXI 11 recommended e Sockets TELNET FTP The Agilent MXG supports LXI Class B functionality For more information on the LXI standards refer to http www laxistandard org home For more information on configuring the signal generator to communicate over the LAN refer to Using LAN on page 33 Agilent Signal Generators Programming Guide 3 Getting Started with Remote Operation 10 Libraries and Programming Languages RS 232 ESG PSG E8663B Only USB Agilent X Series MXG Only RS 232 is an older method used to communicate with a single instrument its primary use is to control printers and external disk drives and connect to a modem Communication over RS 232 is much slower than with GPIB USB or LAN because data is sent and received one bit at a time It also requires that certain parameters such as baud rate be matched on both the computer and signal generator CAUTION For long strings of commands and waveform downloads upgrading to Agilent IO Libraries 15 0 and above can decrease RS 232 performance potentially resulting in an Error 310 NOTE Because GPIB LAN and USB offer better communication performance Agilent recommends that RS 232 only be used for interactive sessions or short commands For more information on configuring the s
426. rompt cd to the directory containing the lanio exe file and then to the Debug folder For example C SocketIO Lanio Debug Agilent Signal Generators Programming Guide 123 Programming Examples LAN Programming Interface Examples 6 After you cd to the directory where the lanio exe file is located type in the following command at the command prompt lanio xxxxx IDN For example C SocketIO Lanio Debug gt lanio xxxxx IDN where the xxxxx is the hostname of your signal generator Use this format to output SCPI commands to the signal generator in a line by line format from the command prompt Type exit at the command prompt to quit the program Programming Using main1 Function The int main1 function will output a sequence of commands in a program format If you want to run program using a sequence of commands then perform the following 1 3 Enter the hostname of your signal generator in the openSocket function of the main1 function of the lanio cpp program Rename the lanio cpp int main1 function to int main and the original int main function to int mainl Select Rebuild All from Build menu Then select Execute Lanio exe The program will run and display results similar to those shown in Figure 3 2 Figure 3 2 Program Output Screen 124 j C AGPIB Test lanio Debug Lanio exe ID Agilent Technologies E8663B US00000001 C 01 00 Frequency 2 5000000000000E 09 Power Level 5 000000
427. rsonal injury or death Do not proceed beyond a WARNING notice until the indicated condi tions are fully understood and met Programming Guide Contents Getting Started with Remote Operation Programming and Sotiware Hardware Layers oce ice ee ee he Oh EER EEE EES EC EE SEES ia 2 Miera 6 6 IE o RS RS SD Roe SRA Sh SRA KL RAL KAR KA ADS ROS bo ded ood ES 3 IO Libraries and Programming Languages e 65 ce 0485 48 88 dea Rea MOR RRR RR DRS 4 Agilent IO Libraries Suite i sce dk EED ETERS ET SESE EERE SS FEE x ORO XD OSS 5 Windows XP 2000 Professional and Vista Business Agilent IO Libraries 15 0 and Newer 6 Windows NT and Agilent IO Libraries M and Earlier llle 8 Selecting IU Libraries for GPIB 6 ku Log RR REG RH Re ee A XU Ro EE ERATES 10 Selecting I0 Libraries T r LAN 23602344 4448246404 40S 6S Re Sor Pon Roe Ke de e deed 10 Programming Languages 0x 2 x3 xo kadiou 8844864 O44 08S od dom Rod d RE Re deg d dE de DS 11 Deina tie Web R cu REGERE Redes bet bed Oe ed dedu e edd dd deb qd 11 Modifying the Signal Generator Configuration aaa aeaa eee eee 13 Enabling the Signal Generator Web Server 00 2 eee eee eee tees 14 Preferentes 6 666444 iex PAREN Po bere dob FORE edo b x Eee bx GS 20 Configuring the Display for Remote Command Setups Agilent X Series and MXG 20 Configuring the Display for Remote Command Setups ESG PSG 21 Getting Help Agilent X Series an
428. rst 0 1 1 RF on 0 RF off For non bursted non TDMA systems to have a continuous signal set this bit to 1 for all bytes For framed data set this bit to 1 for on timeslots and 0 for off timeslots 3 Reserved 0 Always 0 4 Reserved 1 Always 1 5 Reserved 0 Always 0 6 EVENTI 0 1 To have the signal generator output a single pulse at the EVENT 1 connector set this bit Output to 1 Use this output for functions such as a triggering external hardware to indicate when the data pattern begins and restarts or creating a data synchronous pulse train by toggling this bit in alternate bytes 7 Pattern Reset 0 1 0 continue to next sequential memory address 1 end of memory and restart memory playback This bit is set to 0 for all bytes except the last byte of PRAM To restart the pattern set the last byte of PRAM to 1 As seen in Table 6 9 only four bits shown in the following list can change state bit 0 data e bit 2 bursting e bit 6 EVENT 1 rear panel output bit 7 pattern reset Because a PRAM byte has only four bits that can change states there are only 15 possible byte patterns as shown in Table 6 10 The table also shows the decimal value for each pattern which is needed for downloading data using the list format shown on page 350 346 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D Table 6 10 PRAM Byte Patterns
429. rument instSock POW AMPL 5 dBm n bufBytes queryInstrument instSock POW AMPL n charBuf INPUT BUF SIZE printf Power Level s n charBuf print n ifdef WINSOCK closesocket instSock close winsock else 142 Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples close instSock endif WINSOCK return 0 7 DLL getopt 3C getopt 3C PROGRAM FILE NAME getopt c getopt get option letter from argument vector SYNOPSIS int getopt int argc char const argv const char optstring extern char optarg extern int optind opterr optopt PRORGAM DESCRIPTION getopt returns the next option letter in argv starting from argv 1 that matches a letter in optstring optstring is a string of recognized option letters if a letter is followed by a colon the option is expected to have an argument that may or may not be separated from it by white space optarg is set to point to the start of the option argument on return from getopt getopt places in optind the argv index of the next argument to be processed The external variable optind is initialized to 1 before the first call to the function getopt When all options have been processed i e up to the first non option argument getopt returns EOF The special option can be used to delimit the end of the options EOF is returned and is skipped FIO IO II IOI
430. s Return to local control can occur only by cycling power on the instrument when the LOCAL command is sent or if the Preset key is pressed SICL The Agilent SICL igpibllo prevents function prevents user igpibllo id Local Function The HP Basic function LOCAL and the other listed functions return the signal generator to local control with a fully enabled front panel Library Function Statement Initialization Command HP Basic The LOCAL 719 function returns the signal generator to manual operation allowing access to the signal generator s front panel keys 10 LOCAL 719 VISA Library The VISA library at this time does not have a similar command N A NI 488 2 The NL 488 2 library function places the interface in local mode and allows operation of the signal generator s front panel keys The ud parameter in the parameter list is the interface or device descriptor ibloc int ud SICL The Agilent SICL function puts the signal generator into Local operation enabling front panel key operation The id parameter identifies the session iloc id Clear Function The HP Basic function CLEAR and the other listed IO library functions clear the signal generator Library Function Statement Initialization Command HP Basic The CLEAR 719 function halts all pending output parameter operations resets the parser interpreter of programming codes and prepares for a ne
431. s saving and recalling 104 C and VISA GPIB queries 93 383 Index 86 C C 11 C programming examples 77 remote control 11 VISA example 364 C programming examples 76 262 VISA generating a step swept signal 101 C and VISA generating a step swept signal 101 cable USB 72 carrier activating FIR filters 361 modulating FIR filters 361 CDMA modulation data FIR filter 361 Checking Available Memory 319 clear command 82 function 82 CLS command 177 command CLS 177 format programming user file data 331 330 prompt 39 145 window PC using 338 commands 8757d pass thru troubleshooting 117 Agilent mxg menu path 20 downloads binary file 334 333 e8257n 21 GPIB 80 81 82 83 84 pass thru 8757d 115 21 computer interface 3 computer to instrument communication VISA configuration automatic 8 8 condition registers description 183 Configuration IO Libraries 7 configuring VXI 11 44 connection wizard 5 controller 31 creating waveform data C using 242 saving to a text file for review 245 creating waveform files overview 211 crossover cable private LAN 38 csc exe 363 custom modulation data FIR filter 361 real time high data rates 343 user file data memory usage 327 D DAC input values 216 data binary framed 326 325 encryption 233 format e443xb signal generator 259 requirements waveform 213 data questionable See also data questionable
432. s 3 B 3 B sls TEF agt uo at fa gt Ta gt ag c er c u r4 23 2 ssl lg sl lg sl Ig gl 33 3 3 45 3 S 3 3 Instrument Events D LA WaitingForTrigger Peer to peer 3 c messages z E Controller 62 Agilent Signal Generators Programming Guide Using 10 Interfaces Using RS 232 ESG and PSG Only For More Information For more information on using LXI see the Agilent website dedicated to LXI instrumentation www agilent com find xt Agilent LXI Application Notes Using LXI to go beyond GPIB PXI and VXI AN 1465 20 10 Good Reasons to Switch to LXI AN 1465 21 Transitioning from GPIB to LXI AN 1465 22 How to Use VXI and PXI in Your New LXI Test System AN 1465 23 Using Synthetic Instruments in Your Test System AN 1465 24 e Migrating system software from GPIB to LAN LXI AN 1465 25 Modifying a GPIB System to Include LAN LXI AN 1465 26 Using RS 232 ESG and PSG Only CAUTION For long strings of commands and waveform downloads upgrading to Agilent IO Libraries 15 0 and above decreases RS 232 performance resulting in an Error 310 NOTE Because GPIB LAN and USB offer better communication performance Agilent recommends that RS 232 only be used for interactive sessions or short commands The RS 232 serial interface is available on the ESG signal generators The PSG AUXILIARY INTERFACE connector is compatible with ANSI EIA232 RS 232 serial connecti
433. s LXI LAN Event trigger Send the following SCPI command TRIG LXI LAN ENABled LAN1 1 Enable the MXG s LXI Output LAN Event Send the following SCPI command LXI EVENt OUTPut LAN ENABled LANO 1 Agilent Signal Generators Programming Guide 59 Using IO Interfaces Using LAN 17 Disable LXI Output LAN Events on the MXA Send the following SCPI command LXI EVENt OUTPut LAN DISable ALL 18 Put the MXA into SA mode Send the following SCPI command INST SEL SA 19 Put the MXA into single sweep mode Send the following SCPI command INIT CONT OFF 20 Choose the MXA s PTP domain Send the following SCPI command LXI CLOCk PTP DOMain 0 The parameter value should match the one used in step 3 21 Choose the MXA s LXI domain Send the following SCPI command LXI EVENt DOMain 0 The parameter value should match the one used in step 4 22 Move the MXA into the list sweep measurement Send the following SCPI command CONF LIST 23 Send the MXA a list of frequencies Send the following SCPI command LIST FREQ 100MHz 200MHz 300MHz 400MHz 500MHz The MXA will put out signals at these frequencies and in this order 24 Configure the MXA s list sweep parameters Send the following SCPI commands LIST ATT 10dB LIST BAND RES TYPE FLAT LIST BAND RES 300kHz LIST BAND VID 3MHz LIST SWE TIME 1e 6 s LIST TRIG DEL 0 LIST DET RMS
434. s parser detected an IEEE 488 2 syntax error Errors in this class set the command error bit bit 5 in the event status register IEEE 488 2 section 11 5 1 In this case Either an IEEE 488 2 syntax error has been detected by the parser a control to device message was received that is in violation of the IEEE 488 2 standard Possible violations include a data element that violates device listening formats or whose type is unacceptable to the device or an unrecognized header was received These include incorrect device specific headers and incorrect or unimplemented IEEE 488 2 common commands Agilent Signal Generators Programming Guide 25 Getting Started with Remote Operation Error Messages 26 Agilent Signal Generators Programming Guide 2 Using 10 Interfaces NOTE For the N5161A 62A the softkey menus and features mentioned in this chapter are only available through the Web Enabled MXG or through SCPI commands Refer to Using the Web Browser on page 11 and to the SCPI Command Reference Using the programming examples with GPIB LAN RS 232 and USB interfaces e Using GPIB on page 27 e Using LAN on page 33 e Using RS 232 ESG and PSG Only on page 63 e Using USB Agilent X Series and MXG on page 71 Using GPIB GPIB enables instruments to be connected together and controlled by a computer GPIB and its associated interface operations are defined in the ANSI IEEE Standard 488 1 1987 and ANSI IEEE Standard 488
435. s the final file size 280 bytes This equates to a 70 byte file 14 bytes x 5 70 bytes 70 C70 x 24 8 280 bytes Or 56 bytes x 5 280 bytes FREQUENCY AMPLITUDE 1 000 000 000 00 sz 10 00 om CUSTOIT nop ENULP 1 0 On Catalog of UFN1 Files 1880 bytes used 134033408 butes File Hame Tupe PRAMS_LIST_1LBYTES WFM1 RaMP TEST MFM HFHi File size increases by a factor of 5 Agilent Signal Generators Programming Guide 349 Creating and Downloading User Data Files Pattern RAM PRAM Data Downloads E4438C and E8267D SCPI Command for a List Format Download Using the list format enter the data in the command line using comma separated decimal values This file type takes longer to download because the signal generator must parse the data When creating the data remember that the signal generator requires a minimum of 60 bytes For more information on file size limits see PRAM File Size on page 348 Command Syntax MEMory DATA PRAM FILE LIST file name uint8 uint8 uint8 The decimal equivalent of an unsigned 8 bit integer value For a list of usable decimal values and their meaning with respect to the generated signal see Table 6 10 on page 347 Command Syntax Example The following example when executed creates a new file in volatile waveform memory with the following attributes e creates a file named new file outputs a single pulse at th
436. s to verify that the FTP process has been completed These commands can potentially hang up due to the processing of other SCPI parser operations Refer to the SCPI Command Reference NOTE If you are remotely FTPing files and need to verify the completion of the FTP process then query the instrument by using SCPI commands such as MEM DATA MEM CAT STB FREQ IDN OUTP STAT Refer to the SCPI Command Reference Agilent Signal Generators Programming Guide 337 Creating and Downloading User Data Files User File Data Bit Binary Downloads E4438C and E8267D There are three ways to FTP a file use Microsoft s 9 Internet Explorer FTP feature use the signal generator s internal web server ESG firmware 2 C 03 76 use the PC or UNIX command window Using Microsoft s Internet Explorer 1 Enter the signal generator s hostname or IP address as part of the FTP URL JStp lt host name gt or IP address gt 2 Press Enter on the keyboard or Go from the Internet Explorer window The signal generator files appear in the Internet Explorer window 3 Drag and drop files between the PC and the Internet Explorer window Using the Signal Generator s Internal Web Server 1 Enter the signal generator s hostname or IP address in the URL http lt host name gt or IP address gt 2 Click the Signal Generator FTP Access button located on the left side of the window The signal generator files appear in the web br
437. s verifies that the data looks correct char ofile c temp iq txt Create arrays to hold the I and Q data int idata NUMSAMPLES int qdata NUMSAMPLES save the number of sampes into numsamples int numsamples NUMSAMPLES Fill the I and Q buffers with the sample data for int index 0 index lt numsamples index Create the I and Q data for the number of waveform points and Scale the data 20000 as a precentage of the DAC full scale 32768 to 32767 This example scales to approximately 70 of full scale idata index 23000 sin 4 3 14 index numsamples qdata index 23000 cos 4 3 14 index numsamples Print the I and Q values to a text file View the data to see if its correct and if needed plot the data ina Agilent Signal Generators Programming Guide spreadsheet to help spot any problems FILE outfile fopen ofile w if outfile NULL perror Error opening file to write for index 0 index lt numsamples index fprintf outfile d d n idata index fclose outfile qdata index Creating and Downloading Waveform Files Programming Examples Little endian order data use the character array and for loop If big endian order comment out this character array and for loop and use the next loop Big Endian order data We need a buffer to interleave the I and Q data 4 bytes to account for
438. s with certain options For more specific information on each exception refer to the following Standard Operation Condition Register bits see Table 4 6 on page 187 Baseband Operation Status Group see page 189 Data Questionable Condition Register bits see Table 4 8 on page 193 Data Questionable Power Condition Register bits see Table 4 9 on page 196 Data Questionable Frequency Condition Register bits see Table 4 10 on page 199 Data Questionable Modulation Condition Register bits see Table 4 11 on page 202 Data Questionable Calibration Condition Register bit see Table 4 12 on page 205 Data Questionable Bert Status Group see page 207 During remote operation you may need to monitor the status of the signal generator for error conditions or status changes You can use the signal generator s status register system to monitor error conditions or condition changes or both In general the error queue is easier to use than the status registers but the status registers provide some additional information not found in the error queue For more information on using the signal generator s SCPI commands to query the signal generator s error queue refer to the SCPI Command Reference The signal generator s status register system provides two major advantages You can monitor the settling of the signal generator using the settling bit of the Standard Operation Status Group s condition register You can use th
439. scale the data by a number less than four Commonly a good choice is 70 of 4 which is 2 8 By default the signal generator scales data to 70 If you scale the data here you may want to change the signal generator scaling to 100 Also we need to swap the byte order on a little endian computer This code also works for big endian order data since it swaps bytes based on the order for index 0 index numsamples index int iscaled 2 8 idata index 8192 shift and scale int qscaled 2 8 qdata index 8192 shift and scale igbuffer index 4 iscaled 8 amp OxFF high byte of i iqbuffer index 4 1 iscaled amp OxFF low byte of i iqbuffer index 4 2 qscaled gt gt 8 amp OxFF high byte of q iqbuffer index 4 3 qscaled K OxFF low byte of q Open a connection to write to the instrument INST id iopen instOpenString if tid fprintf stderr iopen failed s n instOpenString return 1 Declare variables which will be used later int bytesToSend char s 20 char cmd 200 The E4438C E8267C and E8267D accept the E443xB format so we can use this next section on any of these signal generators However the E443xB format only uses 14 bits bytesToSend numsamples 2 calculate the number of bytes sprintf s d bytesToSend create a string s with that number of bytes Agilent Signal Generators Programming Guide 281
440. se the securewave directory If you attempt to extract previously downloaded encrypted files including Signal Studio downloaded files or internally created signal generator files ESG PSG only without using the securewave directory the signal generator generates an error and displays ERROR 221 Access Denied Encrypted 1 0 Files and the Securewave Directory X Series and MXG NOTE Header parameters of files stored on the Agilent X Series or MXG s internal or USB media cannot be changed unless the file is copied to the volatile BBG memory For more information on modifying header parameters refer to the User s Guide When downloading encrypted files SECUREWAVE from the USB media that have had the file suffix Agilent Signal Generators Programming Guide 233 Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data changed to something other than SECUREWAVE you must use the Use As or Copy File to Instrument menus to play an encrypted waveform file in the signal generator File Transfer Methods SCPI using VXI 11 VMEbus Extensions for Instrumentation as defined in VXI 11 e SCPI over the GPIB or RS 232 e SCPI with sockets LAN using port 5025 File Transfer Protocol FTP 234 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data SCPI Command Line Structure The
441. sg 230 securewave directory 233 USB media 73 315 waveform 226 0 OPC commands 177 output command 83 output function 83 P pass thru commands 115 PC 299 PCI GPIB 31 80 PERL example 147 155 phase discontinuity avoiding 224 Baseband Studio for Waveform Capture and Playback 224 samples 225 waveform 223 388 phase distortion 223 ping program 38 playing waveforms 254 polling method status registers 175 ports 122 positive transition filter description 183 PRAM as data sources 353 bit positions 346 data extracting SCPI command syntax 356 379 e4438c data downloads 344 file size 348 minimum 349 948 command syntax for restoring 354 extracting 355 modifying 357 non volatile memory storing 354 understanding 345 volatile memory restoring 354 volatile memory framed data usage 328 unframed data usage 328 waveform viewing 347 private LAN using 38 problems user file downloads 378 FIR filter downloads 381 programming 8757d using pass thru 116 creating waveform data 242 downloading waveform data 248 little endian order byte swapping 245 user file data command format 331 programming examples Cit 71 364 76 262 e443xb files 277 304 HP Basic 304 introduction 261 MATLAB 284 pass thru commands 115 RS 232 queries using VISA and C 70 162 69 158 using 75 31 80 86 93 78 118 145 147 149 153 155 68 157 Visual Basic 299 301 118
442. signal generator sets up the signal generator frequency ALC off power level RF output on checks for operation complete Saves to settings to instrument register number one recalls information from register number one prompts user input to put instrument into Local and checks for operation complete The following program example is available on the signal generator Documentation CD ROM as visaex8 cpp f RRRRERRRERER Kk Kk SK ke Kk Kk e koc e KC KER EKER EKER ER RE RE RE RE RE RE RE ck chc kc kckckckckckckckckckckckckchckchck ck ck ERE RE ck ckck ko PROGRAM FILE NAME visaex8 cpp PROGRAM DESCRIPTION In this example instrument settings are saved in the signal generator s registers and then recalled Instrument settings can be recalled from the keyboard or when the signal generator is put into Local control from the front panel This program will initialize the signal generator for an instrument state store the state to register 1 An RST command will reset the signal generator and a RCL command will return it to the stored state Following this remote operation the user will be instructed to place the signal generator in Local mode 1 8 RRR IRI IO hok II Ck ok IG II IO koe k IOI ok II III IOI IO k e kk ok ko IO III IO IO I IO I IO I IO I a Ik include lt visa h gt include StdAfx h include lt iostream gt include lt conio h gt void main ViSession defaultRM vi
443. sing either the Agilent Technologies Intuilink for ESG PSG E8257N Signal Generator software or the Signal Studio Toolkit 2 software For the signal generator byte swapping is the method to change the byte order of little endian to big endian For more information on little endian and big endian order see Little Endian and Big Endian Byte Order on page 214 The following figure shows the concept of byte swapping for the signal generator Remember that we can represent data in hex format 4 bits per hex value so each byte 8 bits in the figure shows two example hex values 0 1 2 3 Little Endian E9 B7 53 2A 16 bit integer values 2 bytes 1 integer value data bytes 0 and 1 Q data bytes 2 and 3 Big Endian B7 E9 2A 53 ON To correctly swap bytes you must group the data to maintain the I and Q values One common method is to break the two byte integer into one byte character values 0 255 Character values use 8 bits 1 byte to identify a character Remember that the maximum unsigned 8 bit value is 255 28 1 Changing the data into character codes groups the data into bytes The next step is then to swap the bytes to align with big endian order NOTE The signal generator always assumes that downloaded data is in big endian order so there is no data order check Downloading data in little endian order will produce an undesired output signal DAC Input Val
444. st of commands from a file and number them cat scpi cmds lanio n xx xxx xx x KR KK KK KK KK RK KK KK RK KR KK KK KK KK KKK RK KEK EK ck ck ckck ck ck KEK KEK KK KEKE ck ck ckck ck ck ck ck ck ck ck ck ck ck ckok Agilent Signal Generators Programming Guide 125 Programming Examples LAN Programming Interface Examples This program compiles and runs under HP UX 10 20 UNIX using HP cc or gcc cc Aa 0 o lanio lanio c gcc Wall O o lanio lanio c Windows 95 using Microsoft Visual C 4 0 Standard Edition Windows NT 3 51 using Microsoft Visual C 4 0 Be sure to add WSOCK32 LIB to your list of libraries Compile both lanio c and getopt c Consider re naming the files to lanio cpp and getopt cpp Considerations On UNIX systems file I O can be used on network sockets This makes programming very convenient since routines like getc fgets fscanf and fprintf can be used These routines typically use the lower level read and write calls In the Windows environment file operations such as read write ka and close sockets Instead the functions send and recv cannot be assumed to work correctly when applied to MUST be used kk III II II IO IO ke ko kk ek ko kk he kk IOI IO III II ko ke k ke kk IOI IO ko kk I IOI I III IO I IO I I I I 7 Support both Win32 and HP UX UNIX environment ifdef _WIN32 define WINSOCK endif ifndef WINSOCK
445. static void main String args String instrumentName xxxxx Put instrument hostname here Agilent Signal Generators Programming Guide 145 Programming Examples LAN Programming Interface Examples 146 Socket t new Socket instrumentName 5025 Connect to instrument Setup read write mechanism BufferedWriter out new BufferedWriter new OutputStreamWriter t getOutputStream BufferedReader in new BufferedReader new InputStreamReader t getInputStream System out println Setting frequency to 1 GHz out write freq 1GHz n Sets frequency out flush System out println Waiting for source to settle out write opc Win Waits for completion out flush String opcResponse in readLine if opcResponse equals 1 System err println Invalid response to OPC System exit 1 System out println Retrieving instrument ID out write idn n Querys the id string out flush String idnResponse in readLine Reads the id string Prints the id string System out println Instrument ID idnResponse j catch IOException e System out println Error e Agilent Signal Generators Programming Guide Programming Examples LAN Programming Interface Examples Sockets LAN Programming Using Perl This example uses PERL to control the signal generator over the sockets LAN interface The signal generator frequency is set to 1 GH
446. stderr Cannot seek to the start of file n return 0 char buf new char BUFFER_SIZE if buf amp amp lenToSend Prepare and send the SCPI command header char s 20 sprintf s d lenToSend int lenLen strlen s char s2 256 sprintf s2 mmem data s d d instDestFile lenLen lenToSend iwrite id s2 strlen s2 0 0 Send file in BUFFER_SIZE chunks long numRead do numRead fread buf sizeof char BUFFER_SIZE file iwrite id buf numRead 0 0 while numRead BUFFER_SIZE Send the terminating newline and EOM iwrite id n 1 1 0 delete buf else 272 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples fprintf stderr Could not allocate memory for copy buffer n fclose file iclose id return 0 Importing and Downloading Using VISA Big Endian Order On the documentation CD this programming example s name is DownLoad_Visa_c txt This C programming example compiled using Microsoft Visual C 6 0 assumes that the data is in big endian order and performs the following functions error checking binary file importing from the PC or workstation binary file download to the signal generator s non volatile memory To load the waveform data to volatile WFM1 memory change the instDestfile declaration to USER BBG1 WAVEFORM RRR III IO ek III II ko kk I
447. sted in the parameter list are list put into a listen active state although no indication is generated by the signal generator The parameter list describes the interface or device descriptor SICL The Agilent SICL function puts an instrument identified by iremote id Local Lockout Function The HP Basic function LOCAL LOCKOUT and the other listed IO library functions disable the front panel keys including the Local key With the Local key disabled only the controller or a hard reset of line power can restore local control Library Function Statement Initialization Command HP Basic The LOCAL LOCKOUT function disables all front panel signal generator keys Return to local control can occur only by cycling power on the instrument when the LOCAL command is sent or if the Preset key is pressed 10 LOCAL LOCKOUT 719 VISA Library The VISA library at this time does not have a similar command N A Agilent Signal Generators Programming Guide 81 Programming Examples GPIB Programming Interface Examples access to front panel keys operation The function puts an instrument identified by the id parameter into remote mode with local lockout The parameter id is the session identifier and instrument address list Library Function Statement Initialization Command NI 488 2 The LOCAL LOCKOUT function disables all front panel signal SetRWLS parameter list generator key
448. t argc lt hostname gt lt command gt provided strcat command argv optind if optind lt argc strcat command else strcat command n j j else Only hostname provided strcpy command if optind argc usage basename exit 1 j j else 138 Agilent Signal Generators Programming Guide no hostname usage basename exit 1 FIR IOI IO IO III IOI IO koe k II I ek I IO IO IO IO Kk open a socket connection to the instrument RII ok koe IO ko kk ko kc III koe IOI IO IO IOI IO A I ke a f ifdef WINSOCK if init winsock 0 exit 1 endif WINSOCK instSock openSocket destination SCPI_PORT if instSock INVALID SOCKET fprintf stderr Unable to open socket n return 1 fprintf stderr Socket opened n if strlen command gt 0 JORCKCRCKCKCkckckchckchckchckchckchckckck KER EKER ERE RE KER ERR ER ERE RERERERERERE if the command has a in it use queryInstrument otherwise simply send the command y EER RKR RR kk kR kk kc kc k k k k kc ke k k k ke k k k ke kk k k k k k kk kkk k kk kk k kkk e kkk f if isQuery command long bufBytes bufBytes queryInstrument instSock command charBuf INPUT_BUF_SIZE if quiet fwrite charBuf bufBytes 1 stdout fwrite n 1 1 stdout fflush stdout j j else Agilent Signal Generators Programming Guide Progra
449. t Signal Generators Programming Guide 23 Getting Started with Remote Operation Error Messages Error Messages If an error condition occurs in the signal generator it is reported to both the SCPI remote interface error queue and the front panel display error queue These two queues are viewed and managed separately for information on the front panel display error queue refer to the User s Guide NOTE For additional general information on troubleshooting problems with your connections refer to the Help in the Agilent IO Libraries and documentation When accessing error messages using the SCPI remote interface error queue the error numbers and the lt error_description gt portions of the error query response are displayed on the host terminal Characteristic SCPI Remote Interface Error Queue Capacity errors 30 Linear first in first out Overflow Handling Replaces newest error with 350 Queue overflow Viewing Entries Use SCPI query SYSTem ERRor L NEXT Power up Clearing the Queue Send a CLS command Read last item in the queue Unresolved Errors Re reported after queue is cleared When the queue is empty every error in the queue has been read or the queue is cleared the No Errors following message appears in the queue 0 No error a On the Agilent X Series and MXG using this SCPI command to read out the error messages clears the display of the ERR annunciato
450. t use GPIB 19 INSTR in the rm Open declaration YORK KK KK KK KK KKK EK RK EK RK EK KK EK KK KK ck ck KK ck ck KK KK KK ck ck KKK KK KK KK KEK KEK EKER KKK KEK Private Sub Download_File The following four lines declare IO objects and instantiate them Dim rm As VisaComLib ResourceManager Set rm New AgilentRMLib SRMCls Dim SigGen As VisaComLib Formatted10488 Set SigGen New VisaComLib FormattedI0488 NOTE Use the IP address of your signal generator in the rm Open declaration Set SigGen IO rm Open TCPIP0 000 000 000 000 Dim data As Byte Dim iq data As Byte Dim FileHandle As Integer Dim numPoints As Integer Dim index As Integer Dim Header As String Dim response As String Dim hiByte As String Dim loByte As String Dim strFilename As String strFilename C IQ_DataVB File Name and location on PC Data will be saved to the signal generator s NVWFM USER WAVEFORM IQ DataVB directory 302 Agilent Signal Generators Programming Guide FileHandle FreeFile On Error GoTo errorhandler With SigGen IO Timeout 5000 WriteString RST End With numPoints ReDim iq data 0 To numPoints 1 Open strFilename For Binary Access Read As FileHandle On Error GoTo file error For index 0 To Get FileHandle FileLen strFilename numPoints 1 index 1 Creating and Downloading Waveform Files Programming Examples Set up the signal generator to accept a download T
451. tate changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus OPERation NTRansition value negative transition or STATus OPERation PTRansition value positive transition where value is the sum of the decimal values of the bits you want to enable Queries STATus OPERation NTRansition STATus OPERation PTRansition Standard Operation Event Register The Standard Operation Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATus OPERation EVENt Standard Operation Event Enable Register The Standard Operation Event Enable Register lets you choose which bits in the Standard Operation Event Register set the summary bit bit 7 of the Status Byte Register to 1 Command STATus OPERation ENABle value where value is the sum of the decimal values of the bits you want to enable Example To enable bit 9 and bit 3 so that whenever either of those bits are set to 1 the Standard Operation Status summary bit of the Status Byte Register is set to 1 Send the command STAT OPER ENAB 520 512 8 Query STATus OPERation ENABle Response Decimal value of the sum of the bits previously enabled with the STATus OPERation ENABle value command 1
452. tate changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus QUEStionable FREQuency NTRansition value negative transition or STATus QUEStionable FREQuency PTRansition value positive transition where value is the sum of the decimal values of the bits you want to enable Queries STATus QUEStionable FREQuency NTRansition STATus QUEStionable FREQuency PTRansition Data Questionable Frequency Event Register Latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATus QUEStionable FREQuency L EVENt Agilent Signal Generators Programming Guide 199 Programming the Status Register System Status Groups Data Questionable Frequency Event Enable Register Lets you choose which bits in the Data Questionable Frequency Event Register set the summary bit bit 5 of the Data Questionable Condition Register to 1 Command STATus QUEStionable FREQuency ENABle value where value is the sum of the decimal values of the bits you want to enable Example Enable bit 4 and bit 3 so that whenever either of those bits are set to 1 the Data Questionable Frequency summary bit of the Data Questionable Condition Register is set to 1 Send the command STAT QUES FREQ ENAB 520
453. te The signal generator supports equalization filters either Complex or Real that are programmable FIR filters with two inputs I Q and two outputs I Q per sample This 256 tap filter has two modes of operation NOTE The maximum number of taps is 256 with 2 coefficients per tap for a complex filter for equalization filters The minimum number of taps is 2 Equalization filters can also be referred to as predistortion filters or correction filters Type of Description Filter Real The I and Q samples are independently filtered by a single set of real coefficients Complex The samples are treated as complex I jQ and convolved with the filter coefficients which are specified as I jQ in the time domain The equalization filter can be turned on and off 362 Agilent Signal Generators Programming Guide Creating and Downloading User Data Files Save and Recall Instrument State Files Save and Recall Instrument State Files NOTE References to waveform files and some of the other data file types mentioned in the following sections are not available for all models and options of signal generator Refer to the instrument s Data Sheet for the signal generator and options being used The signal generator can save instrument state settings to memory An instrument state setting includes any instrument state that does not survive a signal generator preset or power cycle such as frequency amplitude attenuation an
454. ter model 165 web server control 11 SCPI command programming syntax block data downloading 351 SCPI command syntax PRAM files extracting 356 SCPI commands block data downloading 350 command line structure 235 download e443xb files 261 encrypted files 236 238 232 235 236 238 357 for status registers IEEE 488 2 common commands 177 GPIB function statements 31 instrument state files recalling 363 list format downloading 350 no extraction 235 236 unencrypted files 236 357 sample command line 360 securewave directory decryption file 233 238 233 encryption file 233 237 238 233 sequences waveforms building 256 service request interrupt reading using VISA and C 111 method status registers 176 using 176 SetRWLS 81 setting help mode Agilent mxg 21 esg 22 psg 22 Pulse RF Blank esg 312 n5161a 62a 81a 82a 83a 312 psg 312 SICL 10 64 72 GPIB examples 31 80 iabort 80 82 81 82 83 81 84 NI libraries 10 USB using 72 VXI 11 programming 119 signal generator monitoring status 165 volatile memory types 315 Waveform Download Assistant 258 Signal Studio Toolkit 212 257 simulation software 249 sockets example 122 125 Java 78 145 LAN 45 118 122 Matlab 149 PERL 147 155 UNIX 122 Windows 123 software layers remote programming 2 5 SRE commands 177 SRQ command 176 SRQ method status registers 176 standard event status enable register 185 group 184
455. terface Converter which eliminates the need for a GPIB card For more information go to http www agilent com find gpib Installing the GPIB Interface Card Refer to Installing the GPIB Interface on page 27 Agilent Signal Generators Programming Guide 79 Programming Examples GPIB Programming Interface Examples GPIB Programming Interface Examples Interface Check using HP Basic and GPIB on page 84 Interface Check Using NI 488 2 and C on page 85 Interface Check for GPIB Using VISA and C on page 86 Local Lockout Using HP Basic and GPIB on page 87 e Local Lockout Using NI 488 2 and C on page 88 Queries Using HP Basic and GPIB on page 90 Queries Using NI 488 2 and Visual C on page 91 Queries for GPIB Using VISA and C on page 93 Generating a CW Signal Using VISA and C on page 95 Generating an Externally Applied AC Coupled FM Signal Using VISA and C on page 97 Generating an Internal FM Signal Using VISA and C on page 99 Generating a Step Swept Signal Using VISA and C on page 101 Generating a Swept Signal Using VISA and Visual C on page 102 Saving and Recalling States Using VISA and C on page 104 Reading the Data Questionable Status Register Using VISA and C on page 107 e Reading the Service Request Interrupt SRQ Using VISA and C on page 111 Using 8757D Pass Thru Commands PSG with Option 007 Only on
456. tern RAM PRAM Data Downloads E4438C and E8267D 32QAM 5 bits per symbol bit rate bits per symbol x symbol rate 10 Msps 20 ns 10 000001 Msps im NOTE The pulse widths values are only for example purposes The actual width may vary from the above values Pattern RAM PRAM Data Downloads E4438C and E8267D NOTE This section applies only to the E4438C with Option 001 002 601 or 602 and the E8267D with Option 601 or 602 If you encounter problems with this section refer to Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only on page 378 To verify the SCPI parser s responsiveness when remotely using the MEM DATA SCPI command to upload files the file s upload should be verified using the STB command Refer to the SCPI Command Reference This section contains information to help you transfer user generated PRAM data from a system controller to the signal generator s PRAM It explains how to download data directly into PRAM and modulate the carrier signal with the data The control bits included in the PRAM file download control the following signal functions bursting timing signal at the EVENT 1 rear panel connector data pattern reset PRAM data downloads apply to only real time Custom and TDMA modulation formats In the TDMA formats PRAM files are available only while using the unframed data selection The following table on page 345 shows which signal gene
457. the connection the session identifier is always set to zero This occurs if the connection fails e To use this function in C you must include the standard header include lt sicl h gt before the main function 3 7 If id 0 the program prints out the error message and exits the program 2 Download the 1 0 data The following code sends the SCPI command and downloads the generated waveform data to the signal generator Line CodeDescription Download the I Q Data 8 int bytesToSend 9 bytesToSend numsamples 4 10 char s 20 11 char cmd 200 12 sprintf s d bytesToSend 13 sprintf cmd MEM DATA WFM1 FILE1 d d strlen s bytesToSend iwrite id cmd strlen cmd 0 0 14 iwrite id iqbuffer bytesToSend 0 0 15 iwrite id Wn 1 1 0 16 Line Code Description Download the I Q data 8 Define an integer variable bytesToSend to store the number of bytes to send to the signal generator 252 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Downloading Waveform Data Line Code Description Download the I Q data 9 Calculate the total number of bytes and store the value in the integer variable defined in line 8 In this code numsamples contains the number of waveform points not the number of bytes Because it takes four bytes of data two I bytes and two Q bytes to create one waveform point we have to mu
458. the format of the E443xB without markers In other words the data is in the range 0 16383 0 gives negative full scale output 8192 gives 0 V output 16383 gives positive full scale output If this is not the scaling of your data then you will need to scale your data appropriately in the next two blocks ibuffer and qbuffer will hold the data in the E443xB format No scaling is needed however we need to swap the byte order on a little endian computer Remove the byte swapping if you are using a big endian computer for index 0 index numsamples index int ivalue idata index int qvalue qdata index ibuffer index 2 ivalue 8 amp OxFF high byte of i ibuffer index 2 1 ivalue amp OxFF low byte of i qbuffer index 2 qvalue 8 amp OxFF high byte of q qbuffer index 2 1 qvalue amp OxFF low byte of q iqbuffer will hold the data in the E4438C E8267C E8267D format In this format the I and Q data is interleaved The data is in the range 32768 to 32767 32768 gives negative full scale output 280 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Programming Examples 0 gives 0 V output 32767 gives positive full scale output From these ranges it appears you should offset the data by 8192 and scale it by 4 However due to the interpolators in these products it is better to
459. till available for backwards compatibility Refer to the SCPI Command Reference An example using sockets LAN is given in LAN Programming Interface Examples on page 118 of this programming guide Using Telnet LAN Telnet provides a means of communicating with the signal generator over the LAN The Telnet client run on a LAN connected computer will create a login session on the signal generator A connection established between computer and signal generator generates a user interface display screen with SCPI gt prompts on the command line Using the Telnet protocol to send commands to the signal generator is similar to communicating with the signal generator over GPIB You establish a connection with the signal generator and then send or receive information using SCPI commands Communication is interactive one command at a time NOTE The Windows 2000 operating systems use a command prompt style interface for the Telnet client Refer to the Figure 2 7 on page 49 for an example of this interface Windows XP operating systems and newer can use this section to better understand how to use the signal generator with port settings For more information refer to the help software of the IO libraries being used The following telnet LAN connections are discussed Using Telnet and MS DOS Command Prompt on page 46 Using Telnet On a PC With a Host Port Setting Menu GUI on page 47 Using Telnet On Windows 2000 on
460. ting for more information To enable more than one bit send the sum of all the bits that you want to enable To verify the bits set in a register query the register Example Enable a Register To enable bit O and bit 6 of the Standard Event Status Group s Event Register 1 Add the decimal value of bit 0 1 and the decimal value of bit 6 64 to give a decimal value of 65 2 Send the sum with the command ESE 65 Example Query a Register To query a register for a condition send a SCPI query command For example if you want to query the Standard Operation Status Group s Condition Register send the command STATus OPERation CONDition If bit 7 bit 3 and bit 2 in this register are set bits 1 then the query will return the decimal value 140 The value represents the decimal values of bit 7 bit 3 and bit 2 128 8 4 140 Table4 1 Status Register Bit Decimal Values o a oo x a Joo la lalm lela llel l 2 B 8 8 83 1918181919 Decimal E E o6 E a Value E X Bit Number 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 NOTE Bit 15 is not used and is always set to zero 174 Agilent Signal Generators Programming Guide Programming the Status Register System Accessing Status Register Information Accessing Status Register Information 1 Determine which register contains the bit that reports the condition Refer to Figure 4 1 on page
461. tion Expert and VISA to manually configure an interface 1 Run the Agilent Connection Expert program Start gt All Programs gt Agilent IO Libraries Suite gt Agilent Connection Expert gt 2 On the tool bar select the Add Interface button 3 Click LAN Interface in the Available interface types text box 4 Click the ADD button 5 Verify that the Auto automatically detect protocol bubble is checked Click 0 K to use the default settings 6 Click LAN TCPIPO in the Instrument 1 0 on this PC text box 7 On the tool bar select the Add Instrument button 8 Click the Add Address button in the Add LAN Instruments window 9 Enter the hostname of the instrument or select the Use IP Address check box and enter the IP address 10 Click OK Agilent Signal Generators Programming Guide 7 Getting Started with Remote Operation 10 Libraries and Programming Languages Windows NT and Agilent 10 Libraries M and Earlier NOTE Windows NT is not supported on Agilent IO Libraries 14 0 and newer The following sections are specific to Agilent IO Libraries versions M and earlier and apply only to the Windows NT platform For additional information on older versions of Agilent IO libraries refer to the Agilent Connection Expert in the Agilent IO Libraries Help The Agilent IO libraries are included with your signal generator or Agilent GPIB interface board or they can be downloaded from the Agilent website http www agilent co
462. tion below Refer to the VISA Assistant Help menu and the Agilent VISA User s Manual available on Agilent s website for more information 8 Agilent Signal Generators Programming Guide Getting Started with Remote Operation IO Libraries and Programming Languages VISA Configuration Automatic 1 2 3 4 Run the VISA Assistant program Click on the interface you want to use for sending commands to the signal generator Click the Formatted 1 0 tab Select SCPI in the Instr Lang section You can enter SCPI commands in the text box and send the command using the viPrintf button VISA Configuration Manual Perform the following steps to use IO Config and VISA to manually configure an interface 1 2 o OND HT Run the 10 Config Program Click on GPIB in the Available Interface Types text box Click the Configure button Set the Default Protocol to AUTO and then click OK to use the default settings Click on GPIBO in the Configured Interfaces text box Click Edit Click the Edit VISA Config button Click the Add device button Enter the GPIB address of the signal generator Click the OK button in this form and all other forms to exit the IO Config program Agilent Signal Generators Programming Guide 9 Getting Started with Remote Operation 10 Libraries and Programming Languages Selecting IO Libraries for GPIB The IO libraries are included with the GPIB interface card and can be downloaded from t
463. tions prompts the user to set the power on the signal generator to 0 dBm error checking resets the signal generator to power level of 135 dBm The following program example is available on the signal generator Documentation CD ROM as rs232ex1l cpp f FCRC Kk e he Kk khe Kk Kk Kk Kk e ke KC KER EKER EKER ER RE RE RE RE RE RE RE RE RE RRR ERR KERR KER RRR KK RE RE ck ckck ck ck ko PROGRAM NAME rs232ex1 cpp PROGRAM DESCRIPTION This code example uses the RS 232 serial interface to 158 Agilent Signal Generators Programming Guide Programming Examples RS 232 Programming Interface Examples ESG PSG Only control the signal generator Connect the computer to the signal generator using an RS 232 serial cable The user is asked to set the signal generator for a 0 dBm power level A reset command RST is sent to the signal generator via the RS 232 interface and the power level will reset to the 135 dBm level The default attributes e g 9600 baud no parity 8 data bits 1 stop bit are used These attributes can be changed using VISA functions di IMPORTANT Set the signal generator BAUD rate to 9600 for this test 8 RRR III k ke kk IOC IOI ok II heo kk e kk ok ke k kk II E AE E E E E E IOI IO ko kk IOI IO I IOI IO I IO I kk de include lt visa h gt include lt stdio h gt include StdAfx h include lt stdlib h gt include lt conio h gt void main int baud 9600 Set baud
464. tive and positive the Data Questionable Power Event Register and the Data Questionable Power Event Enable Register This is the named status register for Reverse Power Protection Tripped the E4438C Unleveled However not all signal generator IQ Mod Overdrive models use all of Lowband Detector Fault the shown events Unused i e some use only a subset of the Unused E4438C s status Unused registers Unused Unused Unused Unused Unused Unused Unused Unused Always Zero 0 Data QUEStionab POWer 110987654321 Condition Registe Data QUEStionab SSL 45 14 13 12 1100987654321 Transition Filter Data QUEStionab POWer 15 1413 1211098 7654321 Negative Transition Filter Data QUEStionab Wer 15 14 13 12 110987654321 Event Register Data QUEStionable POWer L Event 15 14 13 12 1109876543210 Enable Register To Data Questionable Status Register Bit 3 ck704c Agilent Signal Generators Programming Guide 195 Programming the Status Register System Status Groups Data Questionable Power Condition Register The Data Questionable Power Condition Register continuously monitors the hardware and firmware status of the signal generator Condition registers are read only Table 4 9 Data Questionable Power Condition Register Bits Bit Description 0 Reverse Power Protection Tripped A 1 in this bit position indicates that the reverse power protection RPP circuit has
465. to downloading 00000000 gs 15 15 15 15 14 15 14 15 14 14 15 15 15 14 14 00000010 14 15 15 15 14 15 14 14 15 14 14 15 15 14 14 15 00000020 15 14 14 14 14 14 15 15 14 14 15 15 14 15 15 14 00000030 14 14 15 14 14 15 15 15 15 15 14 90 00000000 60 byte PRAM file after downloading 55566610 00 01 oo 40 00 00 00 40 00 01 00 40 00 00 00 40 00000030 00 01 00 40 00 O1 00 40 00 OO OO 40 00 00 00 40 00000040 00 00 O0 40 00 O1 00 40 00 O1 OO 40 00 O1 00 40 00000050 00 00 O0 40 00 O01 O0 40 00 00 OO 40 00 00 O0 40 00000060 00 01 00 40 OO 00 OO 40 00 O0 OO 40 00 O1 00 40 00000070 00 01 00 40 00 00 00 40 00 OO OO 40 00 O1 00 40 00000080 00 01 00 40 00 00 00 40 00 00 OO 40 00 00 O0 40 00000090 00 00 O0 40 00 00 00 40 00 O1 00 40 00 O1 00 40 000000a0 00 00 00 40 00 00 00 40 00 O1 OO 40 00 O1 00 40 O00000b0 00 00 O0 40 OO O1 00 40 00 O1 OO 40 00 00 O0 40 O00000c0 00 00 00 40 00 00 00 40 00 O1 00 40 00 00 00 40 o00000d0 00 00 OO 40 OO O1 OO 40 OO O1 OO 40 00 O1 00 40 000000e0 00 01 00 40 00 O1 00 40 00 OO OO 40 00 00 00 00 FIR Filter Coefficient Downloads N5162A N5182A E4438C and E8267D NOTE If you encounter problems with this section refer to Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only on page 378 The signal generator accepts finite impulse response FIR filter coefficient downloads After downloading the coefficients these user defined FIR filter coefficient values can be sel
466. to play back a waveform that is finite in length and repeat it continuously Although often overlooked a phase discontinuity between the end of a waveform and the beginning of the next repetition can lead to periodic spectral regrowth and distortion For example the sampled sinewave segment in the following figure may have been simulated in software or captured off the air and sampled It is an accurate sinewave for the time period it occupies however the waveform does not occupy an entire period of the sinewave or some multiple thereof Therefore when repeatedly playing back the waveform by an arbitrary waveform generator a phase discontinuity is introduced at the transition point between the beginning and the end of the waveform Repetitions with abrupt phase changes result in high frequency spectral regrowth In the case of playing back the sinewave samples the phase discontinuity produces a noticeable increase in distortion components in addition to the line spectra normally representative of a single sinewave Agilent Signal Generators Programming Guide 223 Creating and Downloading Waveform Files Waveform Phase Continuity Sampled Sinewave with Phase Discontinuity rd N rd N Kx Z X Pi xS F Phase ducem discontinuity l X k at f i 1 N S N E r S p N Li n Mey v lt gt Waveform length Avoiding Phase Discontinuities You can easily avoid phase discontinuities for periodic wav
467. to the Agilent Connectivity Guide E2094 90009 or to the LAN Connectivity FAQs for details on using the instrument over LAN Agilent Signal Generators Programming Guide 11 Getting Started with Remote Operation Using the Web Browser The instrument can be accessed through a standard web browser when it is connected to the LAN To access through the web browser enter the instrument IP address or the hostname as the URL in your browser The signal generator web page shown at right and page 17 provides general information on the signal generator FTP access to files stored on the signal generator and a means to control the instrument using either a remote front panel interface or SCPI commands The web page also has links to Agilent s products support manuals and website For additional information on memory catalog access file storing and FTP refer to the User s Guide and Waveform Memory on page 226 and for FTP see Using FTP on page 50 and FTP Procedures on page 239 The Web Server service is compatible with the Microsoft Internet Explorer 6 0 and newer web browser and operating systems Windows 2000 Windows XP and newer For more information on using the Web Server refer to Enabling the Signal Generator Web Server on page 14 Welcome to your Web Enabled MXG mrormatiun about this Web Erabled MIG pnm got nett LA UROQDILOL sesinin Welcome to your Web En
468. tops any new commands from being processed until the current processing is complete then returns a 1 PSC PSC power on state clear sets the power on state so that it clears the Service Request Enable Register the Standard Event Status Enable Register and device specific event enable registers at power on The query returns the flag setting from the PSC command SRE SRE service request enable sets and queries the value of the Service Request Enable Register STB status byte queries the value of the status byte register without erasing its contents STATus PRESet presets all transition filters non IEEE 488 2 enable registers and error event queue enable registers Refer to Table 4 2 178 Agilent Signal Generators Programming Guide Table 4 2 Effects of STATus PRESet Programming the Status Register System Accessing Status Register Information Register Value after STATus PRESet STATus OPERation ENABle 0 STATus OPERation NTRansition 0 STATus OPERation PTRransition 32767 STATus OPERation BASeband ENABle 0 STATus OPERation BASeband NTRansition 0 STATus OPERation BASeband PTRransition 32767 STATus QUEStionable CALibration ENABle 32767 STATus QUEStionable CALibration NTRansition 32767 STATus QUEStionable CALibration PTRansition 32767 STATus QUEStionable ENABle 0 STATus QUEStionable NTRansition 0 STATus QUEStionable PTRa
469. ts The MXG can be configured to send output LAN events for the pre defined LXI events through the front panel softkeys 1 Press Utility gt More gt LXI B gt Configure LXI Events gt Configure LXI Output Events 2 From the Output Events menu Press Select Source Choose the instrument status event to be used as a source for the output LAN event 3 Press Toggle Event State to enable the highlighted output LAN event Using SCPI to configure an LXI Output Events More configuration options and the ability to configure custom events are available to the system integrator through SCPI commands The following procedure provides a minimum set of commands to configure an output LAN event Refer to the SCPI Command Reference 1 Reset the MXG Send the following SCPI command RST 2 Set the LXI Output LAN Event s source Send the following SCPI command LXI EVENt LAN SOURce LANO Sweeping 3 Enable the LXI Output Event Send the following SCPI command LXI EVENt LAN ENABled LANO 1 Verifying LXI Output LAN Events using LXI Interactive Peer to peer message transmission can be verified by running LXI Interactive from a PC on the same subnet as the MXA 1 From a PC connected to the same subnet as the instrument go to Start All Programs gt Agilent 10 Libraries Suite gt Utilities gt Interactive LXI Click the Start button in the LXI Event Receive box Incoming LAN Events will be displayed
470. turn off the function press Help Installed Memory CatalooP Board Info Instrument Info Help Mode For details on each key use the Key and Data Field Reference For additional SCPI command information refer to the SCPI Command Reference 22 Agilent Signal Generators Programming Guide Getting Started with Remote Operation Troubleshooting Troubleshooting In each section of this document there is information that is related to troubleshooting that topic if applicable Refer to those corresponding sections in this document as well as to the User s Guide before using the diagnostics mode referred to in the Service Guide and in the caution below CAUTION All X Series and MXGs have a fail safe and diagnostic mode that should only be used if all other troubleshooting mentioned in this document has been attempted and failed If the diagnostic mode is determined to be needed refer to the Service Guide The fail safe and diagnostic mode can be enabled on the N5161A 62A signal generators by pressing a combination of the front panel hardkeys LAN Reset and the power switch during boot up This fail safe and diagnostic mode should rarely be used as the instrument s data could be permanently damaged If the diagnostic mode fails to function refer to the Service Guide NOTE If the LAN Reset hardkey has been pressed and then the power is cycled on the instrument the web server will be enabled after reboot Agilen
471. u e Easeband Operation ven Enable Register To Operation Status Register Bit 10 ck712c Agilent Signal Generators Programming Guide 189 Programming the Status Register System Status Groups Baseband Operation Condition Register The Baseband Operation Condition Register continuously monitors the hardware and firmware status of the signal generator Condition registers are read only Table 4 7 Baseband Operation Condition Register Bits Bit Description 0 Baseband 1 Busy A 1 in this position indicates the signal generator baseband is active 1 Baseband 1 Communicating A 1 in this bit position indicates that the signal generator baseband generator is handling data IO 2 14 Unused This bit position is always set to 0 15 Always 0 Query STATus OPERation BASeband CONDi tion Response The decimal sum of the bits set to 1 Example The decimal value 2 is returned The decimal sum 2 bit 1 Baseband Operation Transition Filters negative and positive The Baseband Operation Transition Filters specify which types of bit state changes in the condition register set corresponding bits in the event register Changes can be positive 0 to 1 or negative 1 to 0 Commands STATus OPERation BASeband NTRansition value negative transition or STATus OPERation BASeband PTRansition value positive transition where value is the sum of the decimal values of the bits you want to enab
472. ueried Other bits have changed state content See Table 4 8 on page 193 for more information The Data Questionable Status Group is used to determine the specific event that set bit 3 in the Status Byte Register This group consists of the Data Questionable Condition Register the Data Questionable Transition Filters negative and positive the Data Questionable Event Register and the Data Questionable Event Enable Register Agilent Signal Generators Programming Guide 191 Programming the Status Register System Status Groups This is the named status register for the E4438C However not all signal generator models use all of the shown events i e some use only a subset of the E4438C s status registers Data Questionable Condition Register The Data Questionable Condition Register continuously monitors the hardware and firmware status of Unused Unused Unused POWer summary TEMPerature OVEN COLD FREQuency summary Unused MoODulation summary CALibration summary SELFtest Unused Unused BERT summary Unused Unused Always Zero 0 Data QUEStionable Condition Register 15 14 13 12 11109 87 65 4 3210 Data QUEStionable Positive 15 14 13 12 131109 87 65 4 3210 Transition Filter Data QUEStionable WV X X X X Y Y Y V Y Y Y Y vi Negative Transition Filter Data QUEStionable Event Register Li e He 15 14 13 12 131109 87 65 4 Data QUEStionable 3210 Event En
473. ues The signal generator uses a 16 bit DAC digital to analog convertor to process each of the 2 byte integer values for the I and Q data points The DAC determines the range of input values required from the I Q data Remember that with 16 bits we have a range of 0 65535 but the signal generator divides this range between positive and negative values e 32767 positive full scale output e 0 0 volts e 32 768 negative full scale output Because the DAC s range uses both positive and negative values the signal generator requires signed input values The following list illustrates the DAC s input value range 216 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Understanding Waveform Data Voltage DAC Range Input Range Binary Data Hex Data Vmax 65535 32767 01111111 11111111 7FFF 32768 1 00000000 00000001 0001 0 Volts 32767 0 00000000 00000000 0000 32766 1 141111111 11111111 FFFF Vmin 0 32768 10000000 00000000 8000 Notice that it takes only 15 bits 215 to reach the Vmax positive or Vmin negative values The MSB determines the sign of the value This is covered in 2 s Complement Data Format on page 219 Using E443xB ESG DAC Input Values In this section the words signal generator with or without a model number refer to an N5162A 82A MXG E4438C ESG E8267D PSG The signal generator input values differ from those of the earlier E443xB ESG models For the E443xB models the input
474. us query the event register for a condition even if that condition no longer exists To clear the event register query its contents or send the CLS command which clears all event registers Monitoring When a Condition Bit Changes Once you enable a bit the signal generator monitors it for a change in its condition The transition registers are preset to register positive transitions a change going from 0 to 1 This can be changed so the selected bit is detected if it goes from true to false negative transition or if either transition Occurs Deciding How to Monitor You can use either of two methods described below to access the information in status registers both methods allow you to monitor one or more conditions The polling method In the polling method the signal generator has a passive role It tells the controller that conditions have changed only when the controller asks the right question This is accomplished by a program loop that continually sends a query Agilent Signal Generators Programming Guide 175 Programming the Status Register System Accessing Status Register Information The polling method works well if you do not need to know about changes the moment they occur Use polling in the following situations when you use a programming language development environment or IO interface that does not support SRQ interrupts when you want to write a simple single purpose program and don t want the
475. va Java is a U S trademark of Sun Microsystems Inc Visual Basic Visual Basic is a registered trademark of Microsoft Corporation e PERL Agilent VEE For examples using some of these languages refer to Chapter 3 Using the Web Browser NOTE The following example for accessing the X Series and MXG instrument s Web Enabled uses the instrument s predetermined default hostname that the instrument ships with e g a instrument model number gt lt last 5 digits of the instrument serial number gt The procedure that follows assumes the signal generator is running firmware A 01 20 or later MXG Web Enabled SCPI command capability is not available for versions of Internet Explorer 27 0 The SCPI Telnet softkey is inactive for these versions To use the Telnet SCPI refer to Figure on page 12 The Web Enabled MXG ATE web page is titled Web Enabled MXG since the MXG ATE is part of the MXG signal generator family For MXG ATEs press the front panel LAN Preset key and wait for the front panel green LAN indicator light to stop blinking It is possible the hostname may have been changed from its default value The MXG ATE hostname is not changed by pressing the LAN Reset key For information on using the MXG s USB port to query its IP address refer to the Agilent Connectivity Guide E2094 90009 or to the LAN Connectivity FAQs for details on using the instrument over LAN For more information on LAN Connectivity refer
476. veform Files Troubleshooting Waveform Files 80 End of loop 160 and 210 The I and Q waveform files have the same name 90 to 300 See the table on page 307 for program comments Troubleshooting Waveform Files Symptom Possible Cause ERROR 224 Text file busy Attempting to download a waveform that has the same name as the waveform currently being played by the signal generator To solve the problem either change the name of the waveform being downloaded or turn off the ARB ERROR 628 DAC over range The amplitude of the signal exceeds the DAC input range The typical causes are unforeseen overshoot DAC values within range or the input values exceed the DAC range To solve the problem scale or reduce the DAC input values For more information see DAC Input Values on page 216 On the Agilent MXG this error can occur if an encrypted file SECUREWAVE is being downloaded to the signal generator from a PC or USB Media with a different suffix i e not SECUREWAVE To solve the problem use the Useas or CopyFile to Instrument softkey menus to download the encrypted file to the instrument For more information see Encrypted I Q Files and the Securewave Directory X Series and MXG on page 233 ERROR 629 File format invalid The signal generator requires a minimum of 60 samples to build a waveform and the same number of I and Q data points ERROR 321 Out of memory There is n
477. w programming code stops any sweep in progress and turns off continuous sweep 10 CLEAR 719 VISA Library The VISA library uses the viClear function This function performs an IEEE 488 1 clear of the signal generator viClear ViSession vi 82 Agilent Signal Generators Programming Guide Programming Examples GPIB Programming Interface Examples Library Function Statement Initialization Command NI 488 2 The NI 488 2 library function sends the GPIB Selected ibclr int ud Device Clear SDC message to the device described by ud SICL The Agilent SICL function clears a device or interface The iclear id function also discards data in both the read and write formatted IO buffers The id parameter identifies the session Output Function The HP Basic IO function OUTPUT and the other listed IO library functions put the signal generator into a listen mode and prepare it to receive ASCII data typically SCPI commands Library Function Statement Initialization Command HP Basic The function OUTPUT 719 puts the signal generator into remote mode makes it a listener and prepares it to receive data 10 OUTPUT 719 VISA Library The VISA library uses the above function and associated parameter list to output data This function formats according to the format string and sends data to the device The parameter list describes the session id and data to send viPrintf
478. waveform lt file_name gt memory MMEM DATA WFM1 lt file_name gt lt file_name gt WFM1 SCPI non volatile memory MMEM DATA MMEM DATA MMEM DATA user waveform lt file_name gt NVWFM file name lt file_name gt NVWFM FTP volatile memory get user bbgl waveform file name get user bbgl markers file name get user bbgl header file name FTP non volatile memory get user waveform file name get user markers file name get user header file name a See FTP Procedures on page 239 Agilent Signal Generators Programming Guide 237 Creating and Downloading Waveform Files Commands for Downloading and Extracting Waveform Data Table 5 11 Downloading Encrypted Files for Extraction DATA UNPRotected file _name SWFM1 lt blockdata gt Download Command Syntax Options Method Memory Type SCPI volatile MEM DATA UNPRotected user bbg1 securewave file_name lt blockdata gt memory MEM DATA UNPRotected SWFM1 file_name lt blockdata gt SCPI non volatile DATA UNPRotected user securewave file name blockdata memory MEM DATA UNPRotected SNVWFM file name blockdata MEM DATA UNPRotected file name8SNVWFM blockdata FTP volatile put file name user bbgl securewave file name memory FTP non volatile memory put lt file_name gt user securewave lt file_name gt a On the X Seri
479. where lt value gt is the sum of the decimal values of the bits you want to enable Queries STATus QUEStionable BERT NTRansition STATus QUEStionable BERT PTRansition 208 Agilent Signal Generators Programming Guide Programming the Status Register System Status Groups Data Questionable BERT Event Register The Data Questionable BERT Event Register latches transition events from the condition register as specified by the transition filters Event registers are destructive read only Reading data from an event register clears the content of that register Query STATus QUEStionable BERT EVENt Data Questionable BERT Event Enable Register The Data Questionable BERT Event Enable Register lets you choose which bits in the Data Questionable BERT Event Register set the summary bit bit 3 of the Data Questionable Condition Register to 1 Command STATus QUEStionable BERT ENABle value where value is the sum of the decimal values of the bits you want to enable Example Enable bit 11 and bit 2 so that whenever either of those bits are set to 1 the Data Questionable BERT summary bit of the Data Questionable Condition Register is set to 1 Send the command STAT QUES BERT ENAB 520 2048 4 Query STATus QUEStionable BERT ENABle Response Decimal value of the sum of the bits previously enabled with the STATus QUEStionable BERT ENABle value command Agilent Signal Generators Programming Guide 209 Program
480. wing is a discussion on these libraries CAUTION For long strings of commands and waveform downloads upgrading to Agilent IO Libraries 15 0 and above decreases RS 232 performance resulting in an Error 310 Because of the potential for portability problems running Agilent SICL without the VISA overlay is not recommended by Agilent Technologies HP Basic The HP Basic language has an extensive IO library that can be used to control the signal generator over the RS 232 interface This library has many low level functions that can be used in BASIC applications to control the signal generator over the RS 232 interface VISA VISA is an IO library used to develop IO applications and instrument drivers that comply with industry standards It is recommended that the VISA library be used for programming the signal generator The NI VISA and Agilent VISA libraries are similar implementations of VISA and have the same commands syntax and functions The differences are in the lower level IO libraries used to communicate over the RS 232 NI 488 2 and SICL respectively NI 488 2 NI 488 2 IO libraries can be used to develop applications for the RS 232 interface See National Instrument s website for information on NI 488 2 SICL Agilent SICL can be used to develop applications for the RS 232 interface See Agilent s website for information on SICL 64 Agilent Signal Generators Programming Guide Using IO Interfaces Using RS 232 ESG and PSG
481. with the Q data following the I data This array is then downloaded to the signal generator as a binary file The interleaved file comprises the waveform data points where each set of data points one I data point and one Q data point represents one I Q waveform point Agilent Signal Generators Programming Guide 219 Creating and Downloading Waveform Files Understanding Waveform Data NOTE The signal generator can accept separate I and Q files created for the earlier E443xB ESG models For more information on downloading E443xB files see Downloading E443xB Signal Generator Files on page 258 The following figure illustrates interleaving I and Q data Remember that it takes two bytes 16 bits to represent one I or Q data point MSB LSB MSB LSB y N y x 0 0 IData Binary 11001010 011101 110111 00111110 Hex CA 76 77 3E QData Binary 11101001 11001010 01011110 01110010 Hex E9 CA 5E 72 Interleaved Binary Data Waveform data point Waveform data point E AL E NGC N 11001010 01110110 11101001 11001010 01110111 00111110 01011110 01110010 V A J v i Ag Sy gt v d Data Q Data Data Q Data Interleaved Hex Data Waveform Waveform data point data point AMA AM Af N CA 76 E9 CA 77 3E 5E 72 M Jx y oa as l Data Q Data Data Q Data 220 Agilent Signal Generators Programming Guide Creating and Downloading Waveform Files Waveform Stru
482. y Downloads E4438C and E8267D NOTE This section applies only to the E4438C with Option 001 002 601 or 602 and the E8267D with Option 601 or 602 If you encounter problems with this section refer to Data Transfer Troubleshooting N5162A N5182A E4438C and E8267D Only on page 378 To verify the SCPI parser s responsiveness when remotely using the MEM DATA SCPI command to upload files the file s upload should be verified using the STB command Refer to the SCPI Command Reference The signal generator accepts externally created and downloaded user file data for real time modulation formats that have user file as a data selection shown as lt file_name gt in the data selection SCPI command When you select a user file the signal generator incorporates the user file data payload data into the modulation format s data fields You can create the data using programs such as MATLAB or Mathcad The following table shows the available real time modulation formats by signal generator model E4438C ESG E2867D PSG CDMA TDMA Custom Custom W CDMA GPS GPS pus a Requires Option 401 b Real time TDMA modulation formats require Option 402 and include EDGE GSM NADC PDC PHS DECT and TETRA c For ESG requires Option 001 002 601 or 602 for PSG requires Option 601 or 602 d Requires Option 400 e Requires Option 409 The signal generator uses two file types for d
483. z queried for operation complete and then queried for it s identify string This example was developed using PERL version 5 6 0 and requires a PERL version with the IO Socket library 1 In the code below enter your signal generator s hostname in place of the xxxxx in the code line my SinstrumentName xxxxx Save the code listed below using the filename lanperl 3 Run the program by typing perl lanperl at the UNIX term window prompt Setting the Power Level and Sending Queries Using PERL The following program example is available on the signal generator Documentation CD ROM as perl txt usr bin perl PROGRAM NAME perl txt Example of talking to the signal generator via SCPI over sockets use IO Socket Change to your instrument s hostname my instrumentName xxxxx Get socket sock new IO Socket INET PeerAddr gt SinstrumentName PeerPort gt 5025 Proto gt tcp die Socket Could not be created Reason n unless sock Set freq print Setting frequency Mn print sock freq 1 GHz n Wait for completion print Waiting for source to settle Mn print sock opc n my response sock chomp response Removes newline from response if response ne 1 die Bad response to OPC from instrument WMn Agilent Signal Generators Programming Guide 147 Programming Examples LAN Programming Interface Examples Send identification query

Download Pdf Manuals

image

Related Search

Related Contents

Macintosh Endnote X7 user guide (PDF - 2.10MB)  Hydraulikaggregate P650 Betriebsanleitung Rettungsgeräte  si supera este examen - Harley    Kompernass Christmas Pyramid KH 4148 Operating Instructions  Epson EB-1880  Catálogos de materias de publicaciones referentes a la  クランプメーター Clamp Meter AD-5585 AD-5582A AD-5586 AD  10-321 Manuals  A ttAV ACCFS50RIFS  

Copyright © All rights reserved.
Failed to retrieve file