PulseBlasterDDS-I-300
III. Using the PulseBlasterDDS-I-300
Controlling the PulseBlasterDDS-I-300 with SpinAPI
This section describes the function and use of each feature of the PulseBlasterDDS-I-300.
The PulseBlasterDDS-I-300 is a highly versatile excitation board, and as a result there are many possible approaches
to program the board. However, most applications can be programmed following these basic steps:
1. Load frequency and phase registers with desired values.
2. Load shape and DDS data and amplitude registers (if applicable).
3. Specify a pulse program which will control the timing of the experiment.
4. Trigger the pulse program. The experiment will then proceed autonomously.
These steps are described below. For each of the steps, the relevant SpinAPI functions are listed which control the
actions needed to perform that particular step.
SpinAPI is a control library which allows programs to be written to communicate with your SpinCore board. The most
straightforward way to interface with this library is with a C/C++ program, and the API definitions are described in this
context. However, virtually all programming languages and software environments (including software such as LabView
and Matlab) provide mechanisms for accessing the functionality of standard libraries such as SpinAPI.
Please see the example programs described in the preceding section, “Testing the PulseBlasterDDS-I-300,” for an an
explanation of how to use SpinAPI. A reference document for the API is available online at:
http://spincore.com/support/spinapi/
. Under the “Download” bullet there is a link called “API Reference”. An API reference
is also provided in the folder C:\SpinCore\SpinAPI when SpinAPI has been downloaded and installed in the default
location.
Frequency and Phase Registers
The PulseBlasterDDS-I-300 contains one Numerically Controlled Oscillator and associated digital circuitry that drives
the on-board digital-to-analog (DAC) converter, thus forming the Analog Output channel. The frequency and phase of the
output signal are controlled by selecting values from a bank of on-board registers. These registers should be programmed
with appropriate values after board initialization, but before triggering the board. Each pulse instruction selects which
register is used at any given time during an experiment. The number of available registers for each channel is given in the
table below. Certain designs allow the user to select frequency registers using dedicated hardware control lines. See
section VI. External Frequency Modulation for more information.
http://www.spincore.com
11
2017-11-14