Page 2
All other trademarks are the property of their respective owners. SpinCore Technologies, Inc. makes every effort to verify the correct operation of the equipment. This equipment version is not intended for use in a system in which the failure of a SpinCore device will threaten the safety of equipment or person(s).
SpinCore PulseBlasterDDSII LabVIEW Extensions I. Overview The SpinCore PulseBlasterDDS-II LabVIEW Extensions (PBLV-DDS-II) provide the functionality of programming and controlling digital pulse and RF generation in PulseBlasterDDS-II boards using the simple NI LabVIEW graphical programming interface. The package contains basic subVIs that can be used to include PulseBlasterDDS-II interaction from your own LabVIEW programs, as well as some complete example VIs.
Page 6
SpinCore PulseBlasterDDSII LabVIEW Extensions Figure 1: Example of PulseBlasterDDS-II LabVIEW Extensions User Interface www.spincore.com 2011-04-29...
Page 7
SpinCore PulseBlasterDDSII LabVIEW Extensions Figure 2: Example of PulseBlaster-DDS-II LabVIEW Extensions Block Diagram www.spincore.com 2011-04-29...
For customizable VIs older than LabVIEW 8.6 please contact SpinCore Technologies via the forum.) LabVIEW PulseBlaster Extensions located here. ● (NOTE: Customizable VIs use the C-calling convention. For customizable VIs that use the WINAPI calling convention please contact SpinCore Technologies via the forum.) www.spincore.com 2011-04-29...
SpinCore PulseBlasterDDSII LabVIEW Extensions III. General Information Instruction Description Throughout the PulseBlasterDDS-II LabVIEW Extension, the instruction word, corresponding to a given interval in the pulse sequence, is given as shown to the left. The instruction on the front panel (Figure 3) is broken up into 15 fields displayed from top to bottom: Comment space is an empty text box.
Page 10
SpinCore PulseBlasterDDSII LabVIEW Extensions during this instruction. Refer to your board manual for the number of phase registers available. This corresponds to “phase0” in SpinAPI. DDS0 Amplitude Register Selects determines which amplitude register will be used ● for the RF output of DDS0 during this instruction. Refer to your board manual for the number of amplitude registers available.
SpinCore PulseBlasterDDSII LabVIEW Extensions Figure 4 Below shows detail of the corresponding instruction word as depicted in LabVIEW's block diagram. Figure 4: Example of how the instruction is created and sent to the board in the PBLV-DDS-II Block Diagram Register Descriptions In each PBLV-DDS-II program there are 6 banks of registers, 3 banks of registers for each DDS core, which must be set before programming the board.
Page 12
SpinCore PulseBlasterDDSII LabVIEW Extensions Phases are specified in degrees and can be set from 0.0 to 365.0 degrees. The registers shown on the front panel range from 0 at the top down to 15 at the bottom, but the number of phase registers available vary depending on the board. See your board manual for the number of output phase registers available.
SpinCore PulseBlasterDDSII LabVIEW Extensions Figure 5: Frequency, Phase and Amplitude Registers for both DDS cores Path Terminals All of the SubVIs have path input and output terminals. This is a reference to the path where spinapi.dll is installed on the PC. The default is C:\SpinCore\SpinAPI\dll\spinapi.dll however this may be changed depending on the...
SpinCore PulseBlasterDDSII LabVIEW Extensions Error Terminals All of the SubVIs have error input and output terminals. When a VI is built, the “error out” terminal of a subVI should be connected to the “error in” terminal of the following subVI. These terminals are used to help facilitate sequential execution of the functions, as well as provide debugging information to the user if an error occurs in the VI.
SpinCore PulseBlasterDDSII LabVIEW Extensions IV. VI descriptions Main VI PBLV_DDSII_Interface.vi The PBLV-DDSII Interface VI allows the user complete control of the PulseBlasterDDS board. To start the VI press the Run button at the top of the LabVIEW window (for stand- alone programs, the program is run automatically when opened).
SpinCore PulseBlasterDDSII LabVIEW Extensions Example VIs PBLV_DDSII_freq_test.vi This PBLV-DDS-II Frequency Example VI outputs a sine wave with DDS0, cycling through 4 different frequencies which are set in the frequency registers. It also outputs a sine wave with DDS1, cycling through the same 4 frequencies but in reverse order.
SpinCore PulseBlasterDDSII LabVIEW Extensions PBLV_DDSII_phase_test.vi This PBLV-DDS-II Phase Example VI outputs a sine wave with DDS0, cycling through 4 different phases which are set in the phase registers. It also outputs a sine wave with DDS1, cycling through the same 4 phases but in reverse order.
SpinCore PulseBlasterDDSII LabVIEW Extensions PBLV_DDSII_amp_test.vi This PBLV-DDS-II Amplitude Example VI outputs a sine wave with DDS0, cycling through 4 different amplitudes which are set in the amplitude registers. It also outputs a sine wave with DDS1, cycling through the same 4 amplitudes but in reverse order.
Basic SubVIs These SubVIs use Call Library Function Nodes to access SpinAPI's C-functions. By default these nodes use the C-calling convention. For customizable VIs that use the WINAPI calling convention please contact SpinCore Technologies via the forum. pb_error_handler.vi This VI will catch an error from SpinAPI and pass it into the LabVIEW code for debugging purposes.
SpinCore PulseBlasterDDSII LabVIEW Extensions pb_select_dds.vi Corresponds to the SpinAPI function int pb_select_dds (int dds_num) This VI selects which DDS core will get the register values assigned from the following functions. Once called, the pb_set_freq.vi, pb_set_phase.vi, and pb_set_amp.vi functions are used to assign register values to whichever DDS core number that was passed into the function.
SpinCore PulseBlasterDDSII LabVIEW Extensions call pb_stop_programming.vi. The given phase value may be rounded to fit the precision of the board. All functionality will be bypassed if an error is passed into the VI. pb_set_amp.vi Corresponds to the SpinAPI function int pb_set_amp(float amp, int addr) This VI will write the given amplitude to the given amplitude register on DDS enabled boards and then check for errors.
SpinCore PulseBlasterDDSII LabVIEW Extensions pb_start.vi Corresponds to the SpinAPI function int pb_start() Once board has been programmed, this instruction will start execution of pulse program. It calls the pb_start function from SpinAPI using the Call Library Function Node. It then checks for an error using the pb_error_handler.
Need help?
Do you have a question about the PulseBlasterDDSII and is the answer not in the manual?
Questions and answers