Spectrum M5i.63 16 Series Hardware Manual

Ultra-high-speed 16 bit awg, arbitrary waveform generator for pci express bus
Table of Contents

Advertisement

Quick Links

M5i.63xx-x16
ultra-high-speed 16 bit AWG,
Arbitrary Waveform Generator
for PCI Express bus
Valid for all versions
Hardware Manual
Software Driver Manual
Manual printed: 19. December 2024

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the M5i.63 16 Series and is the answer not in the manual?

Questions and answers

Subscribe to Our Youtube Channel

Summary of Contents for Spectrum M5i.63 16 Series

  • Page 1 M5i.63xx-x16 ultra-high-speed 16 bit AWG, Arbitrary Waveform Generator for PCI Express bus Valid for all versions Hardware Manual Software Driver Manual Manual printed: 19. December 2024...
  • Page 2 (c) SPECTRUM INSTRUMENTATION GMBH AHRENSFELDER WEG 13-17, 22927 GROSSHANSDORF, GERMANY SBench, digitizerNETBOX, generatorNETBOX and hybridNETBOX are registered trademarks of Spectrum Instrumentation GmbH. Microsoft, Visual C++, Windows, Windows 98, Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows 11 and Windows Server are trademarks/registered trademarks of Microsoft Corporation.
  • Page 3: Table Of Contents

    Additional notes on PCIe x16 slot retention........................24 Providing additional power to M5i.xxxx-x16 cards......................24 Installing multiple boards synchronized by Star-Hub option ....................25 Shipment of systems with Spectrum cards installed ......................26 Software Driver Installation and Driver Update..............27 Windows ..................................27 Before initial installation ..............................
  • Page 4 Examples..................................58 Julia Programming Interface and Examples ..........................59 Driver interface ................................59 Examples..................................59 LabVIEW driver and examples ............................. 60 MATLAB driver and examples .............................. 60 SCAPP – CUDA GPU based data processing ......................... 61 (c) Spectrum Instrumentation GmbH...
  • Page 5 Difference to standard single mode..........................86 Example (FIFO replay)..............................86 Limits of segment size, memory size............................87 Buffer handling .................................. 88 Output latency ................................... 92 Data organization ................................94 Sample format ................................... 94 Hardware data conversion ..............................95 (c) Spectrum Instrumentation GmbH...
  • Page 6 Star-Hub trigger engine ............................... 128 Star-Hub clock engine ..............................128 Software Interface ................................128 Star-Hub Initialization..............................128 Setup of Synchronization ............................. 130 Setup of Trigger ................................. 131 Run the synchronized cards ............................131 Error Handling ................................132 (c) Spectrum Instrumentation GmbH...
  • Page 7 Troubleshooting................................135 Accessing remote cards ..............................135 Appendix ........................136 Error Codes ..................................136 Spectrum Knowledge Base ............................137 Temperature and fan speed sensors............................ 138 Base Card Temperature read-out registers........................138 Front-end Module read-out registers ..........................138 Base Card fan speed read-out registers ......................... 138 Temperature hints ...............................
  • Page 8: Safety Instructions

    Products Labelling for CE conformity Spectrum confirms with the CE marking affixed to the product or its packaging that the product complies with the product-specific applicable European directives. The CE declaration of conformity for the product is available upon request.
  • Page 9: Bringing The Product Into Service

    Keep the module away from heat sources and protect it against direct exposure to the sun. The free space above and behind the module must be selected so that sufficient air circulation is ensured. During normal operation there are no hot surfaces that pose any danger to the operator. Maintenance The product is maintenance-free. (c) Spectrum Instrumentation GmbH...
  • Page 10: Repair/Service

    According to the European directive WEEE (Waste Electrical and Electronic Equipment), the user is obliged to return the product to the system for collection, treatment and recycling of waste electronic equipment. Disposal via residual waste is not permitted. Up-to-date information on notifiable substances according to REACH regulation (EC) No 1907 /2006 can be quoted on request. (c) Spectrum Instrumentation GmbH...
  • Page 11: Packing List

    Star-Hub mounted on card, containing 4 sync-cables Star-Hub M5i.xxxx-SH8-C8 Star-Hub mounted on card, containing 8 sync-cables Manual Printed Installation Manual USB Stick Containing drivers, software and programming manuals Cables Optional Ordered cables, each packed in own bag (c) Spectrum Instrumentation GmbH...
  • Page 12: Introduction

    For any new information on the board as well as new available options or memory upgrades please contact our website www.spectrum-instrumentation.com. You will also find the current driver package with the latest bug fixes and new features on our site.
  • Page 13: Different Models Of The M5I.63Xx Series

    The following overview shows the different available models of the M5i.63xx series. They differ in the number of available channels. You can also see the model dependent location of the input connectors. • M5i.6320-x16 • M5i.6350-x16 Image 1: Connector location for 1 channel cards • M5i.6321-x16 • M5i.6357-x16 Image 2: Connector location for 2 channel cards (c) Spectrum Instrumentation GmbH...
  • Page 14: Additional Options

    The master card must always be connected to its dedicated connector (the very left one as shown above). The star-hub module itself is handled as an additional device just like any other card and the programming consists of only a few additional commands. (c) Spectrum Instrumentation GmbH...
  • Page 15: The Spectrum Type Plate

    Image 4: M4i card backside showing type plate location and content The Spectrum type plate, which consists of the following components, can be found on all of our boards. Please check whether the printed information is the same as the information on your delivery note. All this information can also be read out by software: The board type, consisting of the two letters describing the bus (in this case M4i for the PCI Express x8 bus) and the model number.
  • Page 16: Hardware Information

    Introduction Hardware information Hardware information Block Diagrams M5i.63xx Block Diagram Image 5: M5i.63xx series block diagram (c) Spectrum Instrumentation GmbH...
  • Page 17: Technical Data

    DC to 125 MHz DC to 750 MHz n.a.  n.a. DC to 125 MHz  10 k Minimum external trigger pulse width 2 samples 2 samples Resulting max detectable trigger frequency [Current Samplerate]/2 [Current Samplerate]/2 (c) Spectrum Instrumentation GmbH...
  • Page 18: Bandwidth, Flatness And Slewrate

    Maximum Output Rate 10 GS/s 3.2 GS/s -3dB Bandwidth 2.5 GHz 1.5 GHz Amplitude Flatness 0.5 dB DC to 2.0 GHz DC to 1.2 GHz Slewrate Single-Ended 7.2 V/ns 4.2 V/ns Slewrate Differential 14.4 V/ns 8.4 V/ns (c) Spectrum Instrumentation GmbH...
  • Page 19: Dynamic Parameters

    THD and SFDR are measured at the given output level and 50 Ohm termination with a high resolution M3i.4860/M4i.4450-x8 data acquisition card and are calculated from the spec- trum. Noise Spectral Density is measured with built-in calculation from an HP E4401B Spectrum Analyzer. All available D/A channels are activated for the tests. SNR and SFDR figures may differ depending on the quality of the used PC.
  • Page 20: Power Consumption

    M5i.6350-x16 0.3 A n.a. M5i.6321-x16 0.3 A n.a. M5i.6320-x16 0.3 A n.a. *A separate power connection to the card is mandatory. The card cannot be powered solely by the PCIe bus connector MTBF MTBF TBD hours (c) Spectrum Instrumentation GmbH...
  • Page 21: M5I.63Xx Order Information

    SPc-RServer Remote Server Software Package - LAN remote access for M2i/M3i/M4i/M4x/M2p/M5i cards SPc-SCAPP Spectrum’s CUDA Access for Parallel Processing - SDK for direct data transfer between Spectrum card and CUDA GPU. Includes RDMA activation and examples. (c) Spectrum Instrumentation GmbH...
  • Page 22: Hardware Installation

    Hardware Installation ESD Precautions All Spectrum boards contain electronic components that can be damaged by electrostatic discharge (ESD). Before installing the board in your system or protective conductive packaging, discharge yourself by touching a grounded bare metal surface or approved anti-static mat before picking up this ESD sensitive product.
  • Page 23: M5I Pcie Cards

    Before installing the board you first need to unscrew and remove the dedicated blind-bracket usually mounted to cover unused slots of your PC. Please keep the screw in reach to fasten your Spectrum card afterwards. All Spectrum M5i cards mechanically require one PCI Express x16 slot (electrically either x1, x4, x8 or x16).
  • Page 24: Additional Notes On Pcie X16 Slot Retention

    M5i cards power connector and make absolutely sure, that its three lower row wires are marked yellow (hence providing 12V) and the three upper row wires (the side of the connectors retention hook) are marked black providing a connection to system ground (GND), as shown on the picture. (c) Spectrum Instrumentation GmbH...
  • Page 25: Installing Multiple Boards Synchronized By Star-Hub Option

    If there is enough space in your computer’s case (e.g. a big tower case) you can also mount the boards first and hook them up afterwards. Spectrum ships the card carrying the star- hub option together with the ordered number of synchronization ca- bles.
  • Page 26: Shipment Of Systems With Spectrum Cards Installed

    When using freight forwarders, the transport and handling processes can be quite rough potentially subjecting the shopped PC system to quite large shocks. If the installed spectrum cards are not well mounted, secured correctly at the front and - if applicable for your model - back of the card, it's possible that they can bend when subjected to strong forces, such when a shipment container is dropped.
  • Page 27: Software Driver Installation And Driver Update

    32bit and 64bit. The driver from the USB-Stick supports all cards of the M2i/M3i, M4i/M4x, M2p and M5i series, meaning that you can use the same driver for all cards of these families. This driver installer is also available from the Spectrum homepage under https://spectrum-instrumentation.com/support/downloads.php...
  • Page 28: After Installation

    Image 14: Spectrum Driver Installer - Progress Image 15: Spectrum Driver Installer - finished After installation After running the Spectrum driver installer, the card will appear in the Windows device manager with its name matching the card se- ries. The card is now ready to be used with the new or updated driver.
  • Page 29: Linux

    QR code. The Linux drivers have been tested with all above mentioned distributions by Spectrum. Each of these distributions has been installed with the default setup using no kernel updates. A lot more different distributions are used by customers with self compiled kernel driver modules.
  • Page 30: Standard Driver Update

    (spcm_linux_drv_v123b4567) and only use the libraries out of this or one downloads the library package which is much smaller and doesn’t contain the pre-compiled kernel driver module (spcm_linux_lib_v123b4567). The update is done with a dedicated script which only updates the library file. This script is present in both driver archives: sh install_libonly.sh (c) Spectrum Instrumentation GmbH...
  • Page 31: Installing The Library Only Without A Kernel (For Remote Devices)

    Installation from Spectrum Repository The driver library, Spectrum Control Center and SBench6 can be easily installed and updated from our online repositories.Adding the repos- itory to the system and installing software differs depending on the package format used by the Linux distribution.
  • Page 32: Control Center

    An overview of RPM based distributions can be found here: https://en.wikipedia.org/wiki/Category:RPM-based_Linux_distributions Control Center The Spectrum Control Center is also available for Linux and needs to be installed sep- arately. The features of the Control Center are described in a later chapter in deeper detail.
  • Page 33 You may then run ldconfig. If this still doesn’t help please add the library path to /etc/ld.so.conf and run ldconfig again. If the libspcm_linux.so is quoted as missing please make sure that you have installed the card driver properly before. If any other library is stated as missing please install the matching package of your distribution. (c) Spectrum Instrumentation GmbH...
  • Page 34: Software

    Image 18: Spectrum Kernel Driver, API Library and Software structure The Spectrum drivers offer you a common and fast API for using all of the board hardware features. This API is the same on all supported operating systems. Based on this API one can write own programs using any programming language that can access the driver API. This manual describes in detail the driver API, providing you with the necessary information to write your own programs.
  • Page 35: Discovery Of Remote Cards, Digitizernetbox/Generatornetbox/Hybridnetbox Products

    IP address. Image 21: Spectrum Control Center - entering an IP address for a NETBOX Wake On LAN of digitizerNETBOX/generatorNETBOX/hybridNETBOX Cached digitizerNETBOX/generatorNETBOX/hybridNETBOX products that are currently in standby mode can be woken up by using the „Wake remote device“...
  • Page 36: Netbox Monitor

    • Starting manually from the Spectrum Control Center using the context menu as shown above • Starting from command line. The Netbox Monitor program is automatically installed together with the Spectrum Control Center and is located in the selected install folder. Using the command line tool one can place a simple script into the autostart folder to have the Net- box Monitor running automatically after system boot.
  • Page 37: Hardware Information

    The procedure on how to update the firmware of your digitizerNETBOX/generatorNETBOX/hybridNETBOX with the help of the integrated Webserver is described in a ded- icated chapter later on. Image 26: Spectrum Control Center - showing firmware information of an installed card (c) Spectrum Instrumentation GmbH...
  • Page 38: Software License Information

    The number of demo starts left can be seen here. Image 27: Spectrum Control Center - showing software license information of an installed card Driver information The Spectrum card control center also offers a way to gather information on the installed and used Spectrum driver.
  • Page 39: Installing And Removing Demo Cards

    Image 29: Spectrum Control Center - adding a demo card to the sysstem For installing demo cards on a system without real hardware simply run the Control Center installer. If the installer is not detecting the necessary driver files normally residing on a system with real hardware, it will simply install the Spcm_driver.
  • Page 40: Performing Memory Test

    [112000000 / 1024 / 1024] = 106.8 MiB/s. For convenience, the Control Center presents both values. Unfortunately it is not possible to measure transfer speed on a system without having a Spectrum card installed. (c) Spectrum Instrumentation GmbH...
  • Page 41: Debug Logging For Support Cases

    Device mapping Within the „Device mapping“ tab of the Spectrum Control Center, one can ena- ble the re-mapping of Spectrum devices, be it either local cards, remote instru- ments such as a digitizerNETBOX, generatorNETBOX, hybridNETBOX or even cards in a remote PC and accessed via the Spectrum remote server option.
  • Page 42: Firmware Upgrade

    Firmware switch Most Spectrum cards come with just a single, default firmware configuration, that supports all of the device features. But some of the cards require different firmware configurations (different firmware images) for certain operating modes or for a certain set of features.
  • Page 43: Accessing The Hardware With Sbench 6

    Spectrum. Depending on the used product and the software setup, one can use SBench as a digital storage oscilloscope, a spectrum analyzer, a signal generator, a pattern generator, a logic analyzer or simply as a data recording front end.
  • Page 44: C/C++ Driver Interface

    Contains all error codes used with the Spectrum driver. All error codes that can be given back by any of the driver functions are also described here briefly. The error codes and their meaning are described in detail in the appendix of this manual.
  • Page 45: Microsoft Visual C++ 2005 And Newer 64 Bit

    DLL). If such a tool is available it is recommended to use it. Otherwise the driver functions need to be loaded from the dll using standard Windows functions. There is one example in the example directory /examples/c_cpp/dll_loading that shows the process for 32 bit environments. The only line that needs to be modified is the one loading the DLL: (c) Spectrum Instrumentation GmbH...
  • Page 46 Software C/C++ Driver Interface Example of function loading: hDLL = LoadLibrary ("spcm_win64.dll"); // Modified: Load the 64 bit version of the Spcm driver here pfn_spcm_hOpen = (SPCM_HOPEN*) GetProcAddress (hDLL, "spcm_hOpen"); pfn_spcm_vClose = (SPCM_VCLOSE*) GetProcAddress (hDLL, "spcm_vClose"); (c) Spectrum Instrumentation GmbH...
  • Page 47: Driver Functions

    // returns the handle to the opended driver or NULL in case of error hDrv = spcm_hOpen ("/dev/spcm0"); // open the first card (spcm0) and get a handle to this card if (!hDrv) printf (“open of driver failed\n”); (c) Spectrum Instrumentation GmbH...
  • Page 48 The board must first be initialized by the spcm_hOpen function. The parameter lRegister must have a valid software register constant as defined in the regs.h file. The available software registers for the driver are listed in the board specific part (c) Spectrum Instrumentation GmbH...
  • Page 49 If accessing 64 bit registers with 32 bit functions the behaviour differs depending on the real value that is currently located in the register. Please have a look at this table to see the different reactions depending on the size of the register: Table 6: Spectrum driver API functions overview and differentiation between 32 bit and 64 bit registers Internal register read/write...
  • Page 50 Software Driver functions Table 6: Spectrum driver API functions overview and differentiation between 32 bit and 64 bit registers Internal register read/write Function type Behavior 64 bit register read spcm_dwGetParam_d64 value is returned as 64 bit double in pdValue. Please note that double values are limited to 2^48. Any larger value is not returned with full precision.
  • Page 51 The functions spcm_dwGetErrorInfo_i64 and spcm_dwGetErrorInfo_d64 have been added with driver release V 7.00 Example: char szErrorBuf[ERRORTEXTLEN]; if (spcm_dwSetParam_i64 (hDrv, SPC_MEMSIZE, -1)) spcm_dwGetErrorInfo_i64 (hDrv, NULL, NULL, szErrorBuf); printf (“Set of memsize failed with error message: %s\n”, szErrorBuf); (c) Spectrum Instrumentation GmbH...
  • Page 52: Delphi (Pascal) Programming Interface

    'spcm_win32.dll' name '_spcm_dwInvalidateBuf@8'; The file also defines types used inside the driver and the examples. The types have similar names as used under C/C++ to keep the examples more simple to understand and allow a better comparison. (c) Spectrum Instrumentation GmbH...
  • Page 53: Examples

    Please feel free to use these examples as a base for your programs and to modify them in any kind. (c) Spectrum Instrumentation GmbH...
  • Page 54: Net Programming Languages

    Library For using the driver with a .NET based language Spectrum delivers a special library that encapsulates the driver in a .NET object. By adding this object to the project it is possible to access all driver functions and constants from within your .NET environment.
  • Page 55 Software .NET programming languages Example for digitizerNETBOX/generatorNETBOX and remotely installed cards: // ----- open remote card ----- hDevice = Drv.spcm_hOpen("TCPIP::192.168.169.14::INST0::INSTR"); (c) Spectrum Instrumentation GmbH...
  • Page 56: Using Managed C++/Cli

    System.out.println("Error: Could not open card\n"); else // ----- get card type ----- dwErrorCode = Drv.spcm_dwGetParam_i32(hDevice, Regs.SPC_PCITYP, lCardType); dwErrorCode = Drv.spcm_dwGetParam_i32(hDevice, Regs.SPC_PCISERIALNR, lSerialNumber); Example for digitizerNETBOX/generatorNETBOX and remotely installed cards: ' ----- open remote card ----- hDevice = Drv.spcm_hOpen("TCPIP::192.168.169.14::INST0::INSTR") (c) Spectrum Instrumentation GmbH...
  • Page 57: Python Programming Interface And Examples

    Please feel free to use these examples as a base for your programs and to modify them in any kind. When allocating the buffer for DMA transfers, use the following function to get a mutable character buffer: ctypes.create_string_buffer(init_or_size[, size]) (c) Spectrum Instrumentation GmbH...
  • Page 58: Java Programming Interface And Examples

    Examples for Java can be found on the USB stick in the directory /examples/java. The directory contains the above mentioned header files and some examples, each of them working with a certain type of card. Please feel free to use these examples as a base for your programs and to modify them in any kind. (c) Spectrum Instrumentation GmbH...
  • Page 59: Julia Programming Interface And Examples

    Examples for Julia can be found on USB-Stick in the directory /examples/julia. The directory contains the above mentioned include files and some examples, each of them working with a certain type of card. Please feel free to use these examples as a base for your programs and to modify them in any kind. (c) Spectrum Instrumentation GmbH...
  • Page 60: Labview Driver And Examples

    USB stick that has been included in the delivery. The latest version is also available on our webpage www.spectrum-instrumentation.com Please follow the description in the MATLAB manual for installation and useage of the MATLAB drivers for this card. Image 42: Spectrum MATLAB driver structure (c) Spectrum Instrumentation GmbH...
  • Page 61: Scapp - Cuda Gpu Based Data Processing

    CUDA Remote Direct Memory Access (RDMA) can be used to directly transfer data from/to a Spectrum Digitizer/Generator to/from a GPU card for processing, thus avoiding the transfer of raw data to the host memory and benefiting from the computational power of the GPU.
  • Page 62: Programming The Board

    (w). above or below the register ta- bles. Table 7: Spectrum API: Command register and basic commands Register Value Direction Description SPC_M2CMD Command register of the board.
  • Page 63: Initialization

    = spcm_hOpen ("TCPIP::192.168.169.14::INST0::INSTR"); // Opens the remote board #0 // all other boards require an index: hDrv = spcm_hOpen ("TCPIP::192.168.169.14::INST1::INSTR"); // Opens the remote board #1 hDrv = spcm_hOpen ("TCPIP::192.168.169.14::INST2::INSTR"); // Opens the remote board #2 (c) Spectrum Instrumentation GmbH...
  • Page 64: Error Handling

    This feature requires the scm_dwSetParam_ptr to be implemented, which has been added with driver version V7.00 The following example shows how to print a custom message to the logfile: const char* szText = "My custom log file entry"; spcm_dwSetParam_ptr (NULL, SPC_WRITE_TO_LOG, szText, strlen(szText)); // print line to debug log file (c) Spectrum Instrumentation GmbH...
  • Page 65: Gathering Information From The Card

    Hardware and PCB version Since all of the boards from Spectrum are modular boards, they consist of one base board and one piggy-back front-end module and even- tually of an extension module like the star-hub. Each of these three kinds of hardware has its own version register. Normally you do not need this information but if you have a support question, please provide the revision together with it.
  • Page 66: Reading Currently Used Pxi Slot No. (M4X Only)

    Firmware versions All the cards from Spectrum typically contain multiple programmable devices such as FPGAs, CPLDs and the like. Each of these have their own dedicated firmware version. This version information is readable for each device through the various version registers. Normally you do not need this information but if you have a support question, please provide us with this information.
  • Page 67: Production Date

    SPC_NUM_FW_CONFIGS is 1 for most cards and the active configuration is typically 0. If more than just the one default firmware configuration is available, switching images can be done with the help of the Spectrum Control Center. Please see “Firmware switching” paragraph in the “Card Control Center” section for details.
  • Page 68: Programming The Board

    A/D and D/A cards with 12, 14 and 16 bit resolution use two bytes to store one sample. All digital cards need one byte to store 8 data bits. Table 19: Spectrum API: installed memory registers. 32 bit read is limited to a maximum of 1 GByte Register...
  • Page 69: Miscellaneous Card Information

    Installed extended Options and Features Some cards (such as M5i/M4i/M4x/M2p cards) can have advanced features and options installed. This can be read out with the following register: Table 21: Spectrum API: Extended feature register and available extended feature flags Register Value...
  • Page 70: Driver Version

    Custom modifications Since all of the boards from Spectrum are modular boards, they consist of one base board and one piggy-back front-end module and even- tually of an extension module like the Star-Hub. Each of these three kinds of hardware has its own version register. Normally you do not need this information but if you have a support question, please provide the revision together with it.
  • Page 71: Reset

    Reset Every Spectrum card can be reset by software. Concerning the hardware, this reset is the same as the power-on reset when starting the host computer. In addition to the power-on reset, the reset command also brings all internal driver settings to a defined default state. A software reset is automatically performed, when the driver is first loaded after starting the host system.
  • Page 72: Analog Outputs

    Channel Selection One key setting that influences all other possible settings is the channel enable register. A unique feature of the Spectrum cards is the possibility to program the number of channels you want to use. All on-board memory can then be used by these activated channels.
  • Page 73: Setting Up The Outputs

    The table below shows the available registers to set up the output amplitude for your type of board. Image 44: Scaling the output swing using the output amplitude registers Table 32: Spectrum API: output amplifier register and available range depending on model Register Value...
  • Page 74: Output Amplitude Setting

    Image 46: output offset in relation to output signal and programmed amplitude Table 33: Spectrum API: output offset register and available settings depending on model Register Offset range SPC_OFFS0...
  • Page 75: Maximum Output Range

    The stoplevel will stay on the defined level until the next output has been made. With the following registers you can define the behaviour after replay: Table 34: Spectrum API: stoplevel registers and available settings for stoplevel Register...
  • Page 76: Read Out Of Output Features

    As all corrections are temporarily stored in the driver, the automatic adjustments are volatile at first. After exiting your program, all calibration information will be lost. To give you a possibility to save your own settings, the Spectrum card have at least one set of user settings that can be saved within the on-board EEPROM.
  • Page 77 You can easily either save adjustment settings to the EEPROM with SPC_ADJ_SAVE or recall them with SPC_ADJ_LOAD. These two registers are shown in the table below. Table 38: Spectrum API: loading and storing calibration values to the EEPROM Register Value...
  • Page 78: Generation Modes

    However as you’ll see throughout the detailed documentation of the modes the standard and the FIFO mode are similar in programming and behavior and there are only a very few differences between them. Table 39: Spectrum API: card mode and read out of available card mode software registers Register...
  • Page 79: Commands

    As not all of the command combinations make sense (like the combination of reset and start at the same time) the driver will check the given command and return an error code ERR_SEQUENCE if one of the given commands is not allowed in the current state. Table 40: Spectrum API: card command register and different commands with descriptions Register...
  • Page 80: Card Status

    SPC_M2STATUS register. The status register is organized as a bitmap, so that multiple bits can be set, showing the status of the card and also of the different data transfers. Table 42: Spectrum API: card status register and possible status values with descriptions of the status Register...
  • Page 81: Data Transfer

    The notify size is used on FIFO mode to implement a buffer handshake with the driver or when trans- ferring large amount of data where it may be of interest to start data processing while data transfer is still running. Please see the chapter on handling positions further below for details. (c) Spectrum Instrumentation GmbH...
  • Page 82 As explained above the data transfer is performed with the same command and status registers like the card control. It is possible to send commands for card control and data transfer at the same time as shown in the examples further below. Table 44: Spectrum API: Command register and commands for DMA transfers Register...
  • Page 83: Standard Single Replay Modes

    In standard single replay mode the card is working totally independent from the PC, after the card setup is done and the data has been transferred into the on-board memory. The advantage of the Spectrum boards is that regardless to the system usage the card will refresh the outputs with equidistant time intervals.
  • Page 84 Please note that the memory size must be programmed to the correct value PRIOR to making any data trans- fer to the card memory. An incorrect memory size value at the time the data transfer is initiated will result in corrupted data and a wrong output. Table 47: Spectrum API: memory and loop settings Register Value...
  • Page 85: Continuous Marker Output

    Overview of settings and resulting modes This table gives a brief overview on the setup of loops and the resulting behaviour of the output Table 48: Spectrum API: overview of mode settings in relation to loops settings and resulting behaviour SPC_LOOPS = 0...
  • Page 86: Card Mode

    Generation modes FIFO Single replay mode Card mode The card mode has to be set to the correct mode SPC_REP_FIFO_SINGLE. Table 49: Spectrum API: FIFO single replay mode register and settings Register Value Direction Description SPC_CARDMODE 9500 read/write Defines the used operating mode, a read command will return the currently used mode.
  • Page 87: Limits Of Segment Size, Memory Size

    If more memory is installed the maximum memory size figures will increase according to the complete installed memory Table 51: Spectrum API: Limits of pre trigger, post trigger and memory size Activated...
  • Page 88: Buffer Handling

    Internally the card handles two counters, a user counter and a card counter. Depending on the transfer direction the software registers have slightly different meanings: Table 54: Spectrum API: content of DMA buffer handling registers for different use cases Transfer direction...
  • Page 89 Again after processing the data we set it free for the card use. In our example we now make something else and don’t react to the inter- rupt for a longer time. In the background the buffer is filled with more da- (c) Spectrum Instrumentation GmbH...
  • Page 90 // our do function gets a pointer to the start of the available data section and the length vDoSomething (&pcData[llBytesPos], llAvailBytes); // the buffer section is now immediately set available for the card spcm_dwSetParam_i64 (hDrv, SPC_DATA_AVAIL_CARD_LEN, llAvailBytes); while (!dwError); // we loop forever if no error occurs (c) Spectrum Instrumentation GmbH...
  • Page 91 However the DATA_AVAIL_USER_LEN register will give you the com- plete amount of available bytes even if one part of the free area is at the end of the buffer and the second half at the beginning of the buffer. (c) Spectrum Instrumentation GmbH...
  • Page 92: Output Latency

    The size of the software buffer is programmed as described above. The size of the hardware buffer can be programmed using a special register: Table 55: Spectrum API: output buffer size register and register settings Register...
  • Page 93 // and wait for the data to be transferred. spcm_dwSetParam_i32 (stCard.hDrv, SPC_TIMEOUT, 1000); dwErr = spcm_dwSetParam_i32 (hDrv, SPC_M2CMD, M2CMD_DATA_STARTDMA | M2CMD_DATA_WAITDMA); if (!dwErr) // please see FIFO replay examples for further details regarding the complete data transfer ... (c) Spectrum Instrumentation GmbH...
  • Page 94: Data Organization

    DAx Bit 6 DAx Bit 1 DAx Bit 2 DAx Bit 3 DAx Bit 4 DAx Bit 5 DAx Bit 0 (LSB) DAx Bit 1 (LSB) DAx Bit 2 (LSB) DAx Bit 3 (LSB) DAx Bit 4 (LSB) (c) Spectrum Instrumentation GmbH...
  • Page 95: Hardware Data Conversion

    15 bit, 14 bit or 12 bit resolution. The conversion takes place in hardware and therefore avoids a pos- sible time consuming shift in the user application software. Table 59: Spectrum API: hardware data conversion registers and available conversion settings Register...
  • Page 96: Clock Generation

    Synchronization Clock (option Star-Hub) The star-hub option allows the synchronization of up to 8 cards of the M5i series from Spectrum with a minimal phase delay between the different cards. The clock is distributed from the master card carrying the Star-Hub to all connected cards. For details on the synchronization option please take a look at the dedicated chapter in this manual.
  • Page 97: Details On The Different Clock Modes

    The minimum internal sampling rates depend on the specific type of board. This value can be found in the technical data section of this man- ual. Maximum internal sampling rate (standard clock mode) Table 64: Spectrum API: maximum internal sampling rate depending on channel selection and model activated Channels 3.2 GS/s 3.2 GS/s...
  • Page 98: External Clock (Reference Clock)

    Please note the limited setup granularity in comparison to the internal sampling clock generation. Details are found in the technical data section. Table 66: Spectrum API: clock mode register and external reference clock setup Register...
  • Page 99: Clock Generation

    Independent of the used clock source it is possible to enable the clock output. The clock will be available on the external clock output connector and can be used to synchronize external equipment with the board. Table 68: Spectrum API: clock output and clock output frequency register Register...
  • Page 100: Trigger Modes And Related Registers

    Trigger modes and related registers General Description The trigger modes of the Spectrum M5i series A/D and D/A cards are very extensive and give you the possibility to detect nearly any trigger event you can think of. You can choose between more than 10 external trigger modes and up to 20 internal trigger modes (on analog acquisition cards) including software and channel trigger, depending on your type of board.
  • Page 101: Trigger Masks

    The table below shows the relating register for the general OR mask and the Image 60: trigger OR mask details possible constants that can be written to it. Table 70: Spectrum API: external trigger OR mask related software register and available settings Register Value...
  • Page 102: Trigger And Mask

    The table below is showing the registers for the channel OR mask (A/D cards only) and the possible constants that can be written to it. Table 71: Spectrum API: channel trigger OR mask related software register and available settings Register...
  • Page 103: Software Trigger

    Software trigger The table below shows the relating register for the general AND mask and the possible constants that can be written to it. Table 72: Spectrum API: external trigger AND mask related software register and available settings Register Value...
  • Page 104: Force- And Enable Trigger

    (hDrv, SPC_M2CMD, M2CMD_CARD_DISABLETRIGGER); // Trigger engine is disarmed. Trigger delay All of the Spectrum M5i series cards allow the user to program an additional trigger delay. As shown in the trigger overview section, this delay is the last element in the trigger chain. Therefore the user does not have to care for the sources when programming the trigger delay.
  • Page 105: Trigger Holdoff

    Trigger holdoff All the cards of the Spectrum M5i series allow the user to program a trigger holdoff time when using the segmented acquisition or generation called Multiple Recording/Multiple Replay. This can be useful when observing and analyzing certain signals that are packeted or bursty in nature.
  • Page 106: Main Analog External Trigger (Ext0)

    Image 64: trigger engine overview and external trigger Trigger Mode Please find the main external (analog) trigger input modes below. A detailed description of the modes follows in the next chapters.. Table 80: Spectrum API: external trigger mode registers and available settings therefore Register Value...
  • Page 107: Detailed Description Of The External Analog Trigger Modes

    For all external analog trigger modes shown below, either the OR mask or the AND must contain the external trigger to activate the external input as trigger source:. Table 83: Spectrum API: software registers to program external trigger Register Value...
  • Page 108 The trigger event will be detected if the trigger input is below the programmed trigger level. Register Value Direction set to Value SPC_TRIG_EXT0_MODE 40510 read/write SPC_TM_LOW 00000010h SPC_TRIG_EXT0_LEVEL0 42320 read/write Set it to the upper trigger level in mV (c) Spectrum Instrumentation GmbH...
  • Page 109: External Logic Trigger (X0, X1, X2, X3)

    Sets the trigger mode for external logic (TTL) trigger to detect LOW levels. For all external edge and level trigger modes, the OR mask must contain the corresponding input, as the following table shows: Table 85: Spectrum API: trigger OR mask register an settings for external logic trigger Register...
  • Page 110: Detailed Description Of The Logic Trigger Modes

    The next trigger event will then be detected, if the actual record- ing/replay has finished and the board is armed and waiting for a trigger again. Register Value Direction set to Value SPC_TRIG_EXT1_MODE 40511 read/write SPC_TM_LOW SPC_TRIG_EXT2_MODE 40512 SPC_TRIG_EXT3_MODE 40513 SPC_TRIG_EXT4_MODE 40519 (c) Spectrum Instrumentation GmbH...
  • Page 111 The next trigger event will then be detected, if the actual record- ing/replay has finished and the board is armed and waiting for a trigger again. Register Value Direction set to Value SPC_TRIG_EXT1_MODE 40511 read/write SPC_TM_BOTH SPC_TRIG_EXT2_MODE 40512 SPC_TRIG_EXT3_MODE 40513 SPC_TRIG_EXT4_MODE 40519 (c) Spectrum Instrumentation GmbH...
  • Page 112: Multi Purpose I/O Lines

    Each multi purpose I/O line can be individually programmed. Please check the available modes by reading the SPCM_X0_AVAILMODES, SPCM_X1_AVAILMODES, SPCM_X2_AVAILMODES and SPCM_X3_AVAILMODES register first. The available modes may differ from card to card and may be enhanced with new driver/firmware versions to come. Table 86: Spectrum API: multi-purpose I/O lines registers and available register settings Register Value...
  • Page 113: Input Termination

    As a special feature asynchronous input can also be read if the mode is set to trigger input or digital input. Table 87: Spectrum API: asynchronous I/O register settings of the multi-purpose I/O registers Register...
  • Page 114: Synchronous Digital Outputs

    This mode allows the user to replay up to four additional digital channels that are synchronous and phase stable along with the analog data. To enable that mode for a particular Multi Purpose I/O line the the digital output mode must selected along with some additional information: Table 89: Spectrum API: synchronous digital output registers and register settings Register...
  • Page 115 The following example shows the generation of analog data on two channels sourcing one synchronous digital output: int32 lXMode; // enable two channels spcm_dwSetParam_i32 (hDrv, SPC_CHENABLE, CHANNEL0 | CHANNEL1); // X0 set to synchronous output Bit 15 of channel 1 lXMode = (SPCM_XMODE_DIGOUT | SPCM_XMODE_DIGOUTSRC_CH1 | SPCM_XMODE_DIGOUTSRC_BIT15); spcm_dwSetParam_i32 (hDrv, SPCM_X0_MODE, lXMode); (c) Spectrum Instrumentation GmbH...
  • Page 116: Mode Multiple Replay

    Image 67: Multiple Replay output and trigger timing diagram The following table shows the register for defining the structure of the seg- ments to be replayed with each trigger event. Table 91: Spectrum API: segment size register for multiple replay mode Register Value...
  • Page 117: Replay Modes

    The total number of samples to be replayed from the on-board memory in standard mode is defined by the SPC_MEMSIZE register. When using the SPC_LOOPS parameter one can further program whether all segments should be replayed once or continuously. Table 93: Spectrum API: memory and loop registers with related multiple replay settings Register...
  • Page 118: Limits Of Segment Size, Memory Size

    If more memory is installed the maximum memory size figures will increase according to the complete installed memory Table 95: Spectrum API: Limits of pre trigger, post trigger and memory size Activated...
  • Page 119: Programming The Behaviour In Pauses And After Replay

    The stoplevel will stay on the defined level until the next output has been made. With the following registers you can define the behaviour after replay: Table 97: Spectrum API: stoplevel registers and available settings for stoplevel Register...
  • Page 120: Pulse Generator (Firmware Option)

    LOW is required, external lower-value (1k Ohm) pull-down resistors might be used. Please be careful when programming these lines as an output whilst maybe still being connected with an external signal source, as that may damage components either on the external equipment or on the card itself. (c) Spectrum Instrumentation GmbH...
  • Page 121: Principle Of Operation

    Since the division ratio is depending on the used card type, the number of active channels and the sampling rate, an dedicated read only register allows to read out the frequency value by the following register: Table 99: Spectrum API: pulse generator clock frequency read register Register...
  • Page 122: Setting Up The Pulse Generator

    The second parameter that needs to be defined is the amount of clock pulses that force the output to a logic HIGH. The following table shows the registers required to set the total length of the pulse to be generated: Table 102: Spectrum API: pulse generator HIGH time registers Register...
  • Page 123: Delaying (Phase Shifting) The Outputs

    Defining the trigger behavior Each pulse generator can be set up to react on its trigger input in three different ways, depending on the application’s need: Table 105: Spectrum API: pulse generator mode registers with their available settings Register Value...
  • Page 124: Configuring The Pulse Generator's Trigger Source

    The first multiplexer, MUX1, selects between two different sources and also allows to be completely unused by utilizing a logical ‘1’ or HIGH level, being transparent to the following AND condition combining the two multiplexers: Table 106: Spectrum API: pulse generator trigger MUX1 registers with their available settings Register...
  • Page 125 • Any one of the other pulse generator unit outputs to create pulses or pulse trains with up to four repetition time scales • The card’s acquisition or replay trigger output • An external logic signal coming in from any of the multi-purpose XIO input capable lines Table 107: Spectrum API: pulse generator trigger MUX2 registers with their available settings Register Value...
  • Page 126: Configuring Multi Purpose Lines To Output Generated Pulses

    SPCM_X3_AVAILMODES register first. The available modes may differ from card to card and may be enhanced with new driver/firmware versions to come. Table 110: Spectrum API: XIO lines and mode software registers with their reduced to the settings required for outputting pulses Register...
  • Page 127: Programming Example

    SPC_XIO_PULSEGEN_ENABLE, 0); spcm_dwSetParam_i32(hCard, SPC_M2CMD, M2CMD_CARD_WRITESETUP); Spectrum provides a dedicated programming example for the pulse generator feature as part of the stand- ard example package. This example is showing different and more complex configurations than shown above, e.g., cascading of multiple pulse generators for more complex pulse generation time scales.
  • Page 128: Option Star-Hub

    This card index is only based on the ordering of the cards in the system and is not influenced by the current cabling. It is even possible to change the cable connections between two system starts without changing the logical card order that is used for Star-Hub programming. (c) Spectrum Instrumentation GmbH...
  • Page 129 Hub are internally numbered beginning with 0. The number of connected cards as well as the connections of the Star-Hub can be read out after initialization. For each card that is connected to the Star-Hub one can read the index of that card: Table 112: Spectrum API: star-hub related registers for reading detected connections Register...
  • Page 130: Setup Of Synchronization

    For the following examples we will assume that 4 cards in one system are all connected to one Star-Hub to keep things easier. Setup of Synchronization The synchronization setup only requires one additional register to enable the cards that are synchronized in the next run Table 113: Spectrum API: synchronization enable mask register Register Value...
  • Page 131: Setup Of Trigger

    Star-Hub which will check the setup, do the necessary steps for synchronization and distribute the commands in the correct order to all synchronized cards. The same card commands that are normally send to a single cards are also valid to be send to the Star-Hub: Table 114: Spectrum API: star-hub synchronization commands Register Value...
  • Page 132: Error Handling

    Error Handling The Star-Hub error handling is similar to the card error handling and uses the function spcm_dwGetErrorInfo_i32. Please see the example in the card error handling chapter to see how the error handling is done. (c) Spectrum Instrumentation GmbH...
  • Page 133: Option Remote Server

    The digitizerNETBOX/generatorNETBOX/hybridNETBOX responds to the VISA described Discovery function. The next chapter will show how to install and use the Spectrum control center to execute the discovery function and to find the Spectrum hardware. As the discovery function is a standard feature of all LXI devices there are other software packages that can find the device using the discovery function: •...
  • Page 134: Finding The Digitizernetbox/Generatornetbox/Hybridnetbox In The Network

    // second: check from which manufacturer the devices are spcm_dwSendIDNRequest ((char**)pszIdn, dwMaxNumRemoteCards, dwMaxIdnStringLen); // Use the VISA strings of these devices with Spectrum as manufacturer // for accessing remote devices without previous knowledge of their IP address Finding the digitizerNETBOX/generatorNETBOX/hybridNETBOX in the network As the digitizerNETBOX/generatorNETBOX/hybridNETBOX is a standard network device it has its own IP address and host name and can be found in the computer network.
  • Page 135: Troubleshooting

    Accessing remote cards To detect remote card(s) from the client PC, start the Spectrum Control Center on the client and click "Netbox Discovery". All discovered cards will be listed under the "Remote" node.
  • Page 136: Appendix

    The following error codes could occur when a driver function has been called. Please check carefully the allowed setup for the register and change the settings to run the program. Table 115: Spectrum API: driver error codes and error description error name...
  • Page 137: Spectrum Knowledge Base

    207h The card that has been found in the system seems to be a valid Spectrum card of a type that is supported by the driver but the driver did not find this special type internally. Please get the latest driver from www.spectrum-instrumentation.com and install this one.
  • Page 138: Temperature And Fan Speed Sensors

    Front-end module power supply temperature in degrees Fahrenheit Base Card fan speed read-out registers For the two fans of the M5i base card, the temperature controlled rotation speed can be read-out: Table 118: Spectrum API: base card read-out registers of the fan speed sensors Register Value...
  • Page 139: 63Xx Temperatures And Limits

    The following description shows the meaning of each temperature figure on the M5i.63xx series and also gives maximum ratings that should not be exceeded. All temperature figures given in degrees Celsius, the fan speed in RPM: Table 119: Spectrum API: temperature limits Sensor Name Sensor Location Typical figure at 25°C...
  • Page 140: Details On M5I Cards I/O Lines

    Details on M5i cards I/O lines Multi-Purpose I/O Lines The four Multi Purpose I/O connectors (X0, X1, X2 and X3) of the M5i cards from Spectrum are protected against over voltage conditions. For this purpose clamping diodes of the types CD1005 are used in conjunction with a series resistor.
  • Page 141: Details On M5I Cards Status Led

    LED off FPGA boot error Power down the PC and restart the system. In case that this error is occurring after a firmware update please contact Spectrum support for assistance on how to boot the card’s golden recovery image. Error...
  • Page 142: Continuous Memory For Increased Data Transfer Rate

    As this is also system dependent, your improvements may vary. This can not only depending on the system hardware but also on the used operating system, as in some cases Linux does seem to benefit more than Windows for newer cards. (c) Spectrum Instrumentation GmbH...
  • Page 143: Setup On Linux Systems

    += -DSPCM4_USE_CMA by removing the # in front. Then recompile the kernel module and load it as described above, like so as example:. insmod spcm4.ko contmem_mb=128 Using a continuous buffer of this size will need root privileges for the using program on most systems! (c) Spectrum Instrumentation GmbH...
  • Page 144: Setup On Windows Systems

    Continuous buffer settings should not exceed 1/4 of Image 84: setting up continuous memory buffer in Spectrum Control Center system memory. During tests the maximum amount that could be allocated was 384 MByte of continuous buffer on a system with 4 GByte memory installed.
  • Page 145 Image 26: Spectrum Control Center - showing firmware information of an installed card ..............37 Image 27: Spectrum Control Center - showing software license information of an installed card ............38 Image 28: Spectrum Control Center - showing driver information details..................38 Image 29: Spectrum Control Center - adding a demo card to the sysstem ..................
  • Page 146 Image 77: timing diagram illustrating the pulse generator gated output mode ................124 Image 78: Overview of remote server option interaction in comparison to NETBOX devices............133 Image 79: Windows screenshot: finding a remote Spectrum device like digitizerNETBOX .............. 134 Image 80: electrical structure of multi-purpose I/O lines......................140 Image 81: electrical structure of clock inputs and potential interfacing circuits................
  • Page 147 Table 18: Spectrum API: maximum sampling rate register ......................67 Table 19: Spectrum API: installed memory registers. 32 bit read is limited to a maximum of 1 GByte ..........68 Table 20: Spectrum API: Feature Register and available feature flags ..................... 68 Table 21: Spectrum API: Extended feature register and available extended feature flags ..............
  • Page 148 Table 109: Spectrum API: pulse generator additional configuration registers with the available settings..........125 Table 110: Spectrum API: XIO lines and mode software registers with their reduced to the settings required for outputting pulses ..126 Table 111: star-hub clock overview diagram ..........................128 Table 112: Spectrum API: star-hub related registers for reading detected connections..............

This manual is also suitable for:

M5i.6320-x16M5i.6350-x16M5i.6321-x16M5i.6357-x16

Table of Contents