X3-Servo Control Data Acquisition module with Adcs, Dacs and Spartan 3A DSP FPGA
The X3-Servo for Servo Control is an XMC IO module that can be fitted in a PC using a XMC to PCIe adapter or XMC to PCI adapter or a CompactPCI chassis using a XMC to CompactPCI adapter or a Standalone PC. Other hosting options include a standalone eInstrument and connection to a variety of PC hosts.
The data acquisition board aimed at Servo Loop Control applications has 12 channels of simultaneous 16 bit analogue to digital converters at 250ksps. The analogue inputs have a lowpass filter with cutoff at 320kHz, and a programmable gain amplifier which gives input ranges of +/-10V, +/-5V, +/-2.5V and +/-1.25V. The converter (ADS8365) is a successive approximation device.
The board also has 12 channels of simultaneous 16 bit digital to analogue converters. These can be clocked at upto 1.5MSPS and have filters which give a 600kHz bandwidth and voltage range +/-10V. The Dacs are resistor ladder type with a settling time < 0.5us.
The X3-Servo Control has an onboard PLL which can be driven by an onboard reference oscillator or by an offboard reference clock. Alternately the user can supply an external clock. Triggering of the start of samples can be done by software or an external active high LVTTL signal.
The X3-Servo Control also has 44 bits of user digital IO. This can be read or written to as a 32 bit register from the host, or if the user modifies the logic, can be used to interface to a variety of digital devices such as serial, parallel ports, I2C devices etc. The Spartan3 device supports LVTTL.
Data acquisition control, signal processing, buffering, and system interface functions are implemented in a Xilinx Spartan3A DSP FPGA, 1.8M gate device. Two 512Kx32 memory devices are used for data buffering and FPGA computing memory. The data acquisition board has a single lane PCI Express interface to the host which can sustain 160MB/s to the host.
The X3-Servo Control is supported by Malibu, a set of C++ libraries to use the board under Windows and Linux. This includes example programs to use the board to setup the logic, acquire samples and stream them to disk, and a Wave program to stream samples from host to Dacs.
The logic can be fully customized using VHDL and MATLAB using the FrameWork Logic toolset. The MATLAB BSP supports real-time hardware-in-the-loop development using the graphical, block diagram Simulink environment with Xilinx System Generator.