PulseBlasterESR QuadCore 250 (Turbo)
II. Installing and Using Your PulseBlasterESR QuadCore Board
Installation
To install the board you must complete the following three steps:
- Install the latest SpinAPI version, available at the address
http://spincore.com/support/spinapi/
- Shut down computer, insert PulseBlasterESR QuadCore Turbo 250 card, and fasten the PC bracket
securely with a screw.
- Power up and follow the installation prompts.
Now you are ready to run the test programs provided in the SpinAPI package.
Note: When installing the hardware, the device may show up as PulseBlasterESR-Pro, this is OK.
Note: The PulseBlaster Interpreter that is included in the SpinAPI package CANNOT be used to program the
PBESR QuadCore board.
Note: To compile and run your own C programs, you may want to download the
SpinAPI Tools
package that
contains a pre-configured compiler; the
SpinAPI Tools
package is also available for download at the URL above.
General API Programming Information
Four test programs (executables and their C source files) are available for testing the boards. Assuming the
default installation, the test programs will be available on the computer at the following location: Windows
“Start”
→
All Programs
→
SpinAPI
→
PBESR_QuadCore (the default installation location is: C:\Program
Files\SpinCore\SpinAPI\PBESR-QuadCore). The .c files can be modified and recompiled to create custom test
programs.
Each core can be programmed with a unique pulse program by using the pb_select_core(unsigned int
core_sel) function, where the lower four bits of core_sel are used to select the cores (bit0 corresponds to Core0,
bit1 corresponds to Core1, etc) and multiple combinations are acceptable (i.e. a value of 0xF, or 15 will select all
four cores).
The overall system timing is based on Core0 in order to ensure that all cores are precisely synchronized. This
requires that Core0 be the
last
core (or part of the group of last cores) that is programmed before starting
execution of the pulse program(s).
Two separate SpinAPI functions are used to write pulse programs for the PulseBlasterESR QuadCore:
pb_4C_inst(int flag, double length) and pb_4C_stop(void).
pb_4C_inst(...) is used to define the pulse program. The input parameter 'flag' must either be '1' to turn the
flag on, or '0' to turn the flag off. The input parameter 'length' defines the time interval for the current instruction
and must be multiplied by 'ns' (nanoseconds), 'us' (microseconds), or 'ms' (milliseconds).
pb_4C_stop() defines the end of the pulse program.
It is
very important to note
that because the synchronization is based on Core0, if Core0's pulse program is
still running, the other cores may continue to output values from memory even after the pb_4C_stop() instruction.
Also, if Core0's pulse program stops, it will cause all other cores to stop even if they have not completed their
pulse program. For this reason it is highly recommended that the pulse program for Core0 has the longest
duration, and the pulse programs for the other cores are extended using the pb_4C_inst(...) instruction with a '0'
output so that the total duration of each pulse program is the same causing them to stop at exactly the same
time.
www.spincore.com
5
02/17/09