Table of Contents

Advertisement

Quick Links

Keysight
M31XXA
M33XXA
Digitizers
User's
Guide

Advertisement

Table of Contents
loading

Summary of Contents for Keysight M31 A Series

  • Page 1 User's Guide Keysight M31XXA M33XXA Digitizers...
  • Page 2 DFARS and are set forth CONTROLLERS, MODULES, ETC.) Manual Part Number specifically in writing elsewhere in the PERFORMANCE, SAFETY, OR EULA. Keysight shall be under no M3100-90002 REGULATORY COMPLIANCE, UNLESS obligation to update, revise or otherwise SPECIFICALLY STATED.
  • Page 3 This chassis. that the line cord is connected to a product must be used in a normal Keysight products are designed for use properly-grounded power receptacle. condition (in which all means for with electrical signals that are rated Inspect the connecting cables, test protection are intact) only.
  • Page 4 Do not PRODUCT MARKINGS: dispose in domestic household waste. To return unwanted products, contact your local Keysight office, or for more information see http://about.keysight.com/en/companyinfo/e The CE mark is a registered trademark nvironment/takeback.shtml.
  • Page 5: Table Of Contents

    2 Software Tools: M31/M33XXA Digitizers 2. 1 Software Front Panel 2. 1. 1 Software Front Panel: Keysight SD1 SFP 2. 1. 1. 1 Keysight SD1 SFP (Software Front Panels) Overview 2. 1. 1. 2 Main Front Panel 2. 1. 1. 3 Input settings 2.
  • Page 6 2. 4. 2. 9 PXItriggerRead 2. 4. 3 SD_Module Functions (FPGA-related) 2. 4. 3. 1 FPGAwritePCport 2. 4. 3. 2 FPGAreadPCport 2. 4. 4 SD Module Functions (HVI-related) 2. 4. 4. 1 writeRegister 2. 4. 4. 2 readRegister 2. 4. 5 SD_AIN Functions 2.
  • Page 7 3 Addendum: Keysight Technology and Software Overview 3. 1 Programming Tools 3. 1. 1 SW Programming 3. 1. 1. 1 Keysight SD1 Programming Libraries 3. 1. 2 HW Programming 3. 1. 2. 1 HVI Technology: Keysight M3601A 3. 1. 2. 2 FPGA Programming: Keysight M3602A 3.
  • Page 8 viii...
  • Page 9: Theory Of Operation: M31/M33Xx Digitizers

    The M31/M33xx Digitizers has a flexible and powerful input structure to acquire signals (Figure 1). Figure 1: M31/M33XXA Digitizers input functional block diagram. All input channels have identical structure. Figure 1 shows Keysight standards for the output labeling (channel enumeration starts with CH1), however function open (Section 2.4.2.1) provides a compatibility mode for legacy modules...
  • Page 10 The compatibility options are shown in Table 0. Output Signal Selection Programming Definitions Option Description Name Value Legacy Channel enumeration starts with CH0 COMPATIBILITY_LEGACY Keysight Channel enumeration starts with CH1 COMPATIBILITY_KEYSIGHT 1 Table 0: Compatibility, Section 2.4.2.1) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 11: Input Settings

    The M31/M33XXA Digitizers provides a block that allows the user to configure all the input settings such as input impedance, full scale, coupling, prescaler, etc. Figure 2: Input settings in the M31/M33XXA Digitizers functional block diagram Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 12: Full Scale, Impedance And Coupling

    Programming Information Function Name Comments Details channelInputConfigIt configures the input full scale, impedance and coup- Section 2.3.4.1 on page ling settings Table 3: Programming functions related to the input full scale, impedance and coupling settings Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 13: Prescaler

    For applications were full downsampling is required, the user must choose an IF Keysight Digitizer or Transceiver, which provide DDC (Digital Down Conversion).
  • Page 14: Analog Trigger

    Table 5: Options for the analog trigger (parameter analogTriggerMode in function channelTriggerConfig (page 47) Programming Information Function Name Comments Details channelTriggerConfig It configures the analog trigger for each channelTriggerConfig (page 47) channel Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 15 1 Theory of Operation: M31/M33XX Digitizers Table 6: Programming functions related to the analog triggers Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 16: Data Acquisition (Daqs)

    : a blocking/non-blocking function that returns the array of acquired words (DAQ- data). b. Using a callback function: a user function that is automatically called when the configured amount of data (set with DAQpoints) is available. Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 17 DAQstart (page 53). A DAQstop is performed automatically when the DAQ block reaches the specified number of acquisition cycles. Figure 6: Examples of the DAQ operation (not all trigger methods are available in all modules) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 18 DAQconfig (page 48)). DAQ counter: The DAQ block has a dedicated counter to store the number of acquired words since the last call to DAQconfig or DAQflush. This counter can be read with DAQcounterRead (page 65). Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 19: Daq Trigger

    15)). PXI form factor only: this trigger can be synchronized to CLK10, see Table PXI Trigger PXI form factor only. The DAQ trigger is a PXI trigger line TRIG_PXI and it is synchronized to CLK10 Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 20: Programming Functions Summary

    This function pauses the words acquisition Data Acquisition Section 2.4.5.12 of a DAQs. Acquisition can be resumed using DAQresume. DAQpauseMultiple This function pauses the words acquisition Data Acquisition Section 2.4.5.13 of multiple DAQs. Acquisition can be resumed using DAQre- Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 21 NULL pointer is returned, no more buffers remains in buffer pool. Returned buffer is a previously added buffer from user and user has to release/delete it. Calculates the FFT of data captured by DAQread for the Section 2.4.5.33 selected channel Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 22 1 Theory of Operation: M31/M33XX Digitizers Table 10: Programming functions related to the digitizers Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 23: I/O Triggers

    The trigger is sampled with an internal 100 MHz clock SYNC_ mode        NONE Synchronized mode                 (PXI form factor only) The trigger is sampled using CLK10 SYNC_ CLK_0 Table 12: M31/M33XXA Digitizers TRG connectors configuration (triggerIOconfig (page 66)) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 24: Clock System

    Table 13: M31/M33XXA Digitizers output clock configuration 1. 3. 1 FlexCLK Technology (models with variable sampling rate) The sampling frequency of the M31/M33XXA Digitizers (CLKsys frequency) can be changed using the advanced clocking system shown in Figure 7. Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 25 Low Jitter Mode The clock system is set to achieve the lowest jitter, CLK_LOW_JITTER sacrificing tuning speed Fast Tuning The clock system is set to achieve the lowest tuning time, CLK_FAST_TUNE Mode sacrificing jitter performance Table 14: Clock set frequency mode (function clockSetFrequency (page 69) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 26 Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 27: Software Tools: M31/M33Xxa Digitizers

    2. 1. 1 Software Front Panel: Keysight SD1 SFP 2. 1. 1. 1 Keysight SD1 SFP (Software Front Panels) Overview Keysight hardware products can be operated as classical benchtop instruments using Keysight SD1 SFP [2], a software front panel application. This chapter describes the M31/M33XXA digitizer SD1 SFP front panel.
  • Page 28: Input Settings

    ”Channels”. Digitizer front panel provide both time domain (scope like functionality) and frequency domain (spectrum analyzer like functionality). 2. 1. 1. 3 Input settings Figure7b shows the input controls of the M32/M33XXA digitizers in SD1 SFP. Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 29: Time Domain (Scope Like Operation)

    Figure7c shows the dialogs and the workflow to use the SD1 SFP as a scope. Figure7c: M31/M33XXA digitizer scope workflow. Digitizer scope Workflow: 1. Select channels 2. Define acquisition type (single or run) 3. Set coupling and impedance Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 30: Frequency Domain (Spectrum Analyzer)

    - define range Window is a mathematical function that is zero-valued outside of some chosen interval and it is used in applications including spectral analysis. Window types used in FFT function (section 2. 2. 7. Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 31: Fpga Programming: Keysight M3602A Design Environment M3Xxxa Pxie Hardware With -Fp1 Option

    FPGA Programming: Keysight M3602A (page 90), Keysight’s FPGA design environment allows the user to customize the FPGA code of Keysight M3XXXA PXIe modules with - FP1 option enabled, providing the capability to perform custom Digital Signal Processing onboard in real time. Keysight’s FPGA technology uses Keysight M3602A, an easy-to-use FPGA graphical design environment.
  • Page 32: M3602A Diagram

    Keysight’s HVI Technology uses the same programming instructions that are available in the Keysight SD1 Programming Libraries, with the difference that in a HVI those instructions are executed by the hardware modules in hard real-time, not by the computer. The programming instructions for the M31/M33XXA Digitizers are described next.
  • Page 33 Microsoft Visual Studio .NET .NET Library *.dll MATLAB MathWorks MATLAB .NET Library *.dll Python Any Python compiler Python Library *.py Basic Microsoft Visual Studio .NET .NET Library *.dll LabVIEW National Instruments LabVIEW LabVIEW Library *.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 34 LabVIEW have a feature called function overloading or polymorphism, that allows creating several functions with the same name but with different input/output parameters. In languages without this feature, functions with different parameters must have different names. Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 35: Sd_Module Functions

    (page 30) serialNumber Module Serial Number (e.g.”ES5641”). The serial number can be found on the product, or in nearly any Keysight software. It can also be retrieved with the function getSerialNumber (page 32) chassis Number where the device is located. The chassis number can be found in nearly any Keysight software.
  • Page 36: Close

    Parameters Name Description Inputs moduleID (Non-object-oriented languages only) Module identifier, returned by function open (page 27) errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 37: Modulecount

    Python int SD_Module::close(); LabVIEW close.vi M3601A Available: No 2. 4. 2. 3 moduleCount This function returns the number of Keysight modules installed in the system. Static Function: (Object-oriented languages only) moduleCount is a static function Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 38: Getproductname

    (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Outputs nModules Number of Keysight modules installed in the system. Negative numbers for errors Error Codes (page 81) errorOut (LabVIEW only) Error Codes (page 81) int SD_Module_moduleCount();...
  • Page 39 (page 33) slot Slot number where the device is plugged in. This number can be found on the chassis, in nearly any Keysight software. It can also be retrieved with the function getSlot (page 34) errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be...
  • Page 40: Getserialnumber

    (page 33) slot Slot number where the device is plugged in. This number can be found on the chassis, or in nearly any Keysight software. It can also be retrieved with the function getSlot (page 34) errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be...
  • Page 41: Getchassis

    (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Outputs chassis Chassis number where the device is located. Negative numbers for errors Error Codes (page 81) errorOut (LabVIEW only) Error Codes (page 81) int SD_Module_getChassis(int index); int SD_Module::getChassis(int index); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 42: Getslot

    Outputs slot Slot number where the device is plugged in. Negative num- bers for errors Error Codes (page 81) errorOut (LabVIEW only) Error Codes (page 81) int SD_Module_getSlot(int index); int SD_Module::getSlot(int index); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 43: Pxitriggerwrite

    (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_Module_PXItriggerWrite(int moduleID, int nPXItrigger, int value); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 44: Pxitriggerread

    (LabVIEW only) A copy of moduleID value Digital value with negated logic, 0 (ON) or 1 (OFF), or negative numbers for errors Error Codes (page 81) errorOut Error Codes (page 81) int SD_Module_PXItriggerRead(int moduleID, int nPXItrigger); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 45 2 Software Tools: M31/M33XXA Digitizers int SD_Module::PXItriggerRead(int nPXItrigger); Visual Studio .NET, MATLAB int SD_Module::PXItriggerRead(int nPXItrigger); Python int SD_Module::PXItriggerRead(int nPXItrigger); LabVIEW PXItriggerRead.vi M3601A Available: No (the value can be accessed using math operations: e.g. MathAssign) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 46: Sd_Module Functions (Fpga-Related)

    2 Software Tools: M31/M33XXA Digitizers 2. 4. 3 SD_Module Functions (FPGA-related) The following programming functions are related to Keysight’s FPGA technology and Keysight M3602A programming environment. Please check the Keysight M3602A datasheet for more information [1]. 2. 4. 3. 1 FPGAwritePCport This function writes data at the PCport FPGA Block.
  • Page 47: Fpgareadpcport

    (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_Module_FPGAreadPCport(int moduleID, int nPCport, int* data, int dataSize, int address, int addressMode, int accessMode); int SD_Module::FPGAreadPCport(int nPCport, int* data, int dataSize, int address, SD_ AddressingMode addressMode, SD_AccessMode accessMode); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 48 SD_Module::FPGAreadPCport(int nPCport, int address, int[] data, SD_AddressingMode addressMode, SD_AccessMode accessMode); Python {int[], int} SD_Module::FPGAreadPCport(int nPCport, int dataSize, int address, int addressMode, int accessMode); *Returned data array is a NumPy array LabVIEW FPGAwritePCport.vi M3601A Available: No Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 49: Sd Module Functions (Hvi-Related)

    2 Software Tools: M31/M33XXA Digitizers 2. 4. 4 SD Module Functions (HVI-related) The following programming functions are related to Keysight's HVI technology and Keysight M3601A Design Environment. Please, check M3601A User Guide for more information. 2. 4. 4. 1 writeRegister This function writes a value in an HVI register of a hardware module.
  • Page 50: Readregister

    Register number regName Register name regValue Register value unit Unit of the register value errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 51 SD_ Module::readRegister(string regName, string unit, out int error); Python int SD_Module::readRegisterByNumber(int regNumber, int regValue); int SD_Module::readRegisterWithName(string regName, int regValue); [int errorOut, double regValue] SD_Module::readDoubleRegisterByNumber(int regNumber, string unit; [int errorOut, double regValue] SD_Module::readDoubleRegisterWithName(string regName, string unit); LabVIEW readRegister.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 52 2 Software Tools: M31/M33XXA Digitizers M3601A Available: No (the value can be accessed using math operations: e.g. MathAssign) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 53: Sd_Ain Functions

    SD_AIN_channelInputConfig(int moduleID, int nChannel, double fullScale, int coupling); int SD_AIN::channelInputConfig(int nChannel, double fullScale, int coupling); Visual Studio .NET, MATLAB int SD_AIN::channelInputConfig(int nChannel, double fullScale, int coupling); Python int SD_AIN::channelInputConfig(int nChannel, double fullScale, int coupling); LabVIEW channelInputConfig.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 54: Channelprescalerconfig

    (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_channelPrescalerConfig(int moduleID, int nChannel, int prescaler); int SD_AIN::channelPrescalerConfig(int nChannel, int prescaler); Visual Studio .NET, MATLAB int SD_AIN::channelPrescalerConfig(int nChannel, int prescaler); Python int SD_AIN::channelPrescalerConfig(int nChannel, int prescaler); LabVIEW channelPrescalerConfig.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 55: Channeltriggerconfig

    SD_AIN_channelTriggerConfig(int moduleID, int nChannel, int analogTriggerMode, double threshold); int SD_AIN::channelTriggerConfig(int nChannel, int analogTriggerMode, double threshold); Visual Studio .NET, MATLAB int SD_AIN::channelTriggerConfig(int nChannel, int analogTriggerMode, double threshold); Python int SD_AIN::channelTriggerConfig(int nChannel, int analogTriggerMode, double threshold); LabVIEW channelTriggerConfig.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 56: Daqconfig

    (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Outputs moduleIDout (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_DAQconfig(int moduleID, int nDAQ, int DAQpointsPerCycle, int cycles, int triggerDelay, int triggerMode); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 57: Daqdigitaltriggerconfig

    PXI (PXI/PXIe only) trigger number or external I/O trigger number triggerBehavior Trigger behaviour ( errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 58: Daqanalogtriggerconfig

    11). Analog DAQ: This feature is only available for Data Acquisition Blocks (DAQs) included in products with analog inputs Parameters Name Description Inputs moduleID (Non-object-oriented languages only) Module identifier, returned by function open (page 27) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 59: Daqread

    (if timeout is set to ”0” , then DAQreadwaits until DAQpoints are acquired). In the timeout elapses, there may be words available, but less than the configured amount. Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 60 SD_AIN::DAQread(int nDAQ, short* DAQdata, int DAQpoints, int timeout); Visual Studio .NET, MATLAB int SD_AIN::DAQread(int nDAQ, short[] DAQdata, int timeout); Python {short[], int} SD_AIN::DAQread(int nDAQ, int DAQpoints, int timeout); *Returned data array is a NumPy array LabVIEW DAQread.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 61: Daqstart

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_DAQstart(int moduleID, int nDAQ); int SD_AIN::DAQstart(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQstart(int nDAQ); Python int SD_AIN::DAQstart(int nDAQ); LabVIEW DAQstart.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 62: Daqstartmultiple

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes int SD_AIN_DAQstartMultiple(int moduleID, int DAQmask); int SD_AIN::DAQstartMultiple(int DAQmask); Visual Studio .NET, MATLAB int SD_AIN::DAQstartMultiple(int nDAQmask); Python int SD_AIN::DAQstartMultiple(int nDAQmask); LabVIEW DAQstartMultiple.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 63: Daqstop

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_DAQstop(int moduleID, int nDAQ); int SD_AIN::DAQstop(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQstop(int nDAQ); Python int SD_AIN::DAQstop(int nDAQ); LabVIEW DAQstop.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 64: Daqstopmultiple

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes int SD_AIN_DAQstopMultiple(int moduleID, int DAQmask); int SD_AIN::DAQstopMultiple(int DAQmask); Visual Studio .NET, MATLAB int SD_AIN::DAQstopMultiple(int nDAQ); Python int SD_AIN::DAQstopMultiple(int nDAQ); LabVIEW DAQstopMultiple.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 65: Daqpause

    (Non-object-oriented languages only) Module identifier, or a negative number for errors (see Error Codes) errorOut Error Codes int SD_AIN_DAQpause(int moduleID, int nDAQ); int SD_AIN::DAQpause(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQpause(int nDAQ); Python int SD_AIN::DAQpause(int nDAQ); LabVIEW DAQpause.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 66: Daqpausemultiple

    Outputs moduleIDOut (LabVIEW only) A copy of noduleID errorOut Error Codes int SD_AIN_DAQpauseMultiple(int moduleID, int DAQmask); int SD_AIN::DAQpauseMultiple(int DAQmask); Visual Studio .NET, MATLAB int SD_AIN::DAQpauseMultiple(int DAQmask); Python int SD_AIN::DAQpauseMultiple(int DAQmask); LabVIEW DAQpauseMultiple.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 67: Daqresume

    (Non-object-oriented languages only) Module identifier, or a negative number for errors (Error Codes (page 81)) errorOut Error Codes (page 81) int SD_AIN_DAQresume(int moduleID, int nDAQ); int SD_AIN::DAQresume(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQresume(int nDAQ); Python int SD_AIN::DAQresume(int nDAQ); LabVIEW DAQresume.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 68: Daqresumemultiple

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes int SD_AIN_DAQresumeMultiple(int moduleID, int DAQmask); int SD_AIN::DAQresumeMultiple(int DAQmask); Visual Studio .NET, MATLAB int SD_AIN::DAQresumeMultiple(int DAQmask); Python int SD_AIN::DAQresumeMultiple(int DAQmask); LabVIEW DAQresumeMultiple.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 69: Daqflush

    Non-object-oriented languages only) Module identifier, or a negative number for errors (see Error Codes (page 81)) errorOut Error Codes (page 81) int SD_AIN_DAQflush(int moduleID, int nDAQ); int SD_AIN::DAQflush(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQflush(int nDAQ); Python int SD_AIN::DAQflush(int nDAQ); LabVIEW DAQflush.vi Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 70: Daqflushmultiple

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_DAQflushMultiple(int moduleID, int DAQmask); int SD_AIN::DAQflushMultiple(int DAQmask); Visual Studio .NET, MATLAB int SD_AIN::DAQflushMultiple(int DAQmask); Python int SD_AIN::DAQflushMultiple(int DAQmask); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 71: Daqtrigger

    (Non-object-oriented languages only) Module identifier, or a negative number for errors (see Error Codes (page 81) errorOut Error Codes (page 81) int SD_AIN_DAQtrigger(int moduleID, int nDAQ); int SD_AIN::DAQtrigger(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQtrigger(int nDAQ); Python int SD_AIN::DAQtrigger(int nDAQ); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 72: Daqtriggermultiple

    Outputs moduleIDOut (LabVIEW only) A copy of moduleID errorOut Error Codes int SD_AIN_DAQtriggerMultiple(int moduleID, int DAQmask); int SD_AIN::DAQtriggerMultiple(int DAQmask); Visual Studio .NET, MATLAB int SD_AIN::DAQtriggerMultiple(int DAQmask); Python int SD_AIN::DAQtriggerMultiple(int DAQmask); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 73: Daqcounterread

    Value of the DAQ counter or a negative number for errors Error Codes (page 81) errorOut Error Codes (page 81) int SD_AIN_DAQcounterRead(int moduleID, int DAQ); int SD_AIN::DAQcounterRead(int DAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQcounterRead(int DAQ); Python int SD_AIN::DAQcounterRead(int DAQ); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 74: Triggerioconfig

    (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_triggerIOconfig(int moduleID, int direction, int syncMode); int SD_AIN::triggerIOconfig(int direction, int syncMode); Visual Studio .NET, MATLAB int SD_AIN::triggerIOconfig(int direction, int syncMode); Python int SD_AIN::triggerIOconfig(direction); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 75: Triggeriowrite

    (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Outputs moduleIDout (LabVIEW only) A copy of moduleID errorOut Error Codes (page 81) int SD_AIN_triggerIOwrite(int moduleID, int value); int SD_AIN::triggerIOwrite(int value); Visual Studio .NET, MATLAB int SD_AIN::triggerIOwrite(int value); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 76: Triggerioread

    Outputs moduleIDout (LabVIEW only) A copy of moduleID value Trigger input value: 0 (OFF), 1 (ON). Negative numbers forError Codes (page 81) errorOut Error Codes (page 81) int SD_AIN_triggerIOread(int moduleID); int SD_AIN::triggerIOread(); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 77: Clocksetfrequency

    It returns the real frequency applied to the hardware in Hz. It may differ from the desired frequency due to the hardware frequency resolution. Negative numbers for Error Codes (page 81) errorOut(LabVIEW only) Error Codes (page 81) Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 78: Clockgetfrequency

    2 Software Tools: M31/M33XXA Digitizers *In Keysight Programming Libraries v.1.57.61 or older, clockSetFrequency returns CLKsyncFreq, the frequency of the internal CLKsync in Hz double SD_AIN_clockSetFrequency(int moduleID, double frequency, int mode); double SD_AIN::clockSetFrequency(double frequency, int mode); Visual Studio .NET, MATLAB double SD_AIN::clockSetFrequency(double frequency, int mode);...
  • Page 79: Clockgetsyncfrequency

    Description Inputs moduleID (Non-object-oriented languages only) Module identifier, returned by function open (page 27) errorIn (LabVIEW only) If it contains an error, the function will not be executed and errorIn will be passed to errorOut Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 80: Clockresetphase

    This function sets the module in a sync state, waiting for the first trigger to reset the phase of the internal clocks CLKsync and CLKsys (see Clock System (page 16)). Parameters Name Description Inputs moduleID (Non-object-oriented languages only) Module identifier, returned by function open (page 27) triggerBehavior Trigger behaviour Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 81: Daqbufferpoolconfig

    SD_AIN::clockResetPhase(int triggerBehavior, int PXItrigger, double skew); LabVIEW clockResetPhase.vi M3601A Available: No 2. 4. 5. 28 DAQbufferPoolConfig This function configures buffer pool that will be filled with the data of the channel to be transferred to PC. Parameters Name Description Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 82 SD_AIN::DAQbufferPoolConfig(int nDAQ, short* dataBuffer, int nPoints, int timeOut, callbackEventPtr callbackFunction, void *callbackUserObj); Visual Studio .NET, MATLAB int SD_AIN::DAQbufferPoolConfig(int nDAQ, short[] dataBuffer); Python int SD_AIN::DAQbufferPoolConfig(int nDAQ, int nPoints, int timeOut); LabVIEW DAQbuffer functions are not accessible Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 83: Daqbufferadd

    Error Codes int SD_AIN_DAQbufferAdd(int moduleID, int nDAQ, short* dataBuffer, int nPoints); int SD_AIN::DAQbufferAdd(int nDAQ, short *dataBuffer, int nPoints); Visual Studio .NET, MATLAB int SD_AIN::DAQbufferAdd(int nDAQ, short[] dataBuffer); Python Not available LabVIEW DAQbuffer functions are not accessible Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 84: Daqbufferget

    SD_AIN_DAQbufferGet(int moduleID, int nDAQ, int &readPointsOut, int &errorOut); short* SD_AIN:: DAQbufferGet(int nDAQ, int &readPointsOut, int &errorOut); Visual Studio .NET, MATLAB short[] SD_AIN::DAQbufferGet(int nDAQ, out int readPointsOut, out int errorOut); Python [short[], int} SD_AIN::DAQbufferGet(int nDAQ); *Returned data array is a NumPY array Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 85: Daqbufferpoolrelease

    (Non-object-oriented languages only) Module identifier, or a negative number for errors (see Error Codes errorOut See Error Codes int SD_AIN_DAQbufferRelease(int moduleID, int nDAQ); int SD_AIN::DAQbufferPoolRelease(int nDAQ); Visual Studio .NET, MATLAB int SD_AIN::DAQbufferPoolRelease(int nDAQ); Python SD_AIN::DAQbufferDAQbufferPoolRelease(int nDAQ); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 86: Daqbufferremove

    (Non-object-oriented languages only) Module identifier, or a negative number for errors (see Error Codes (page 81) buffer Buffer obtained short* SD_AIN_DAQbufferRemove(int moduleID, int nDAQ); short* SD_AIN::DAQbufferRemove(int nDAQ); Visual Studio .NET, MATLAB short[] SD_AIN::DAQbufferRemove(int nDAQ); Python Not available Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 87: Fft

    Error Codes (page result Module (magnitude) of the FFT resultPhase Phase of the FFT errorOut Error Codes int SD_AIN_FFT(int moduleID, int channel, short *data, int size, double *result, int resultSize, double *resultPhase, bool dB, int windowType); Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 88 SD_AIN::FFT(int channel, short[] data, out double[] result, out double[] resultPhase, bool dB, int windowType); Python {double[][], int} SD_AIN::FFT(int channel, short[] data, bool dB, int windowType); *Returned data array is a NumPy array LabVIEW Not available M3601A Available: No Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 89 -8015 Keysight Error: Any input assigned to the bitMap does NOT_EXIST not exist SD_ERROR_BUS_INVALID_SIZE -8016 Keysight Error: Input size does not fit on this bus SD_ERROR_BUS_INVALID_DATA -8017 Keysight Error: Input data does not fit on this bus SD_ERROR_INVALID_VALUE -8018 Keysight Error: Invalid value...
  • Page 90 Error Error Define Error Description SD_ERROR_INVALID_OPERATION -8033 Keysight Error: Invalid Operation SD_ERROR_NO_COMPILED_CODE -8034 Keysight Error: No compiled code in the module SD_ERROR_FW_VERIFICATION -8035 Keysight Error: Firmware verification failed SD_ERROR_COMPATIBILITY -8036 Keysight Error: Compatibility error SD_ERROR_INVALID_TYPE -8037 Keysight Error: Invalid type...
  • Page 91 2 Software Tools: M31/M33XXA Digitizers Error Error Define Error Description SD_Error.INVALID_HANDLE -8072 Invalid handle Table 15: Software error codes Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 92 Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 93 3. 1. 1 SW Programming A comprehensive set of highly optimized software instructions controls the off-the-shelf functionalities of the compatible Keysight hardware. These instructions are compiled into the Programming Libraries. The use of customizable software to create user-defined control, test and measurement systems is commonly referred as Virtual Instrumentation.
  • Page 94 For all these applications, Keysight has developed an exclusive technology called Hard Virtual Instrumentation. In a Hard Virtual instrument (or HVI), the user application is executed by the hardware modules independently of the computer, which stays free for other VI tasks, such as visualization.
  • Page 95 HVIs provide the same programming instructions available in the Keysight SD1 Programming Libraries. HVIs are programmed with Keysight M3601A, an HVI design environment with a user-friendly flowchart-style interface, compatible with all M3XXXA Keysight PXIe hardware modules. M3601A Figure 11: Keysight M3601A, a user-friendly flowchart-style HVI programming environment Keysight’s Hard Virtual Instrumentation technology provides:...
  • Page 96 (Figure 13 on page 52). In addition, Keysight modules exchange data and decisions for ultra-fast control algorithms. Complete robustness: Execution is performed by hardware, without operating system, and independently of the user PC.
  • Page 97 3 Addendum: Keysight Technology and Software Overview Figure 12: HVI flowchart elements. Keysight M3601A is based on flowchart programming, providing an easy-to-use environment to develop hard real-time applications Keysight M31XXA/M33XXA Digitizer User's Guide...
  • Page 98 3 Addendum: Keysight Technology and Software Overview Figure 13: HVI example with two hardware modules. In an HVI, all Keysight modules run in parallel and completely synchronized, executing one flowchart per module. This results in simpler systems without the need of triggers.
  • Page 99 Keysight M3602A: An FPGA Design Environment Keysight M3602A is a complete FPGA design environment that allows the user to customize M3XXXA PXIe hardware products. M3602A provides the necessary tools to design, compile and program the FPGA of the module (Figure 15).
  • Page 100 100x faster hot programming via PCI Express without rebooting: Hardware can be reprogrammed without external cables and without rebooting the system. Figure 15: Keysight M3602A: a platform that provides the complete flow from design to FPGA programming 3. 2 Design Process: Customization vs. Complete...
  • Page 101 The user can focus exclusively on expanding the functionality of the standard instrument, instead of developing a complete new one. In Keysight M3602A, FPGA code is represented as boxes (called blocks) with IO ports. An empty project contains the ”Default Product Blocks” (off-the-shelf functionalities), and the ”Design IO Blocks”...
  • Page 102 This information is subject to change without notice. © Keysight Technologies 2013-2020 Edition 2, February, 2020 M3100-90002 www.keysight.com...

This manual is also suitable for:

M33 a seriesM3100aM3102aM3201aM3202aM3300a ... Show all

Table of Contents