PulseBlaster
Data Field and Op Code
Please refer to Table 7 for information on the available operational codes (OpCode) and the
associated data field functions (the data field's function is dependent on the OpCode).
Op Code #
Inst
Inst_data
Function
0
CONTINUE
Ignored
Program execution continues to next
instruction.
1
STOP
Ignored
Stop execution of program. Aborts the
operation of the micro-controller. (Please
see note below)
2
LOOP
Number of desired loops. This
value must be greater than or
equal to 1.
Specify beginning of a loop. Execution
continues to next instruction. Data used to
specify number of loops
3
END_LOOP
Address of beginning of loop
Specify end of a loop. Execution returns to
beginning of loop and decrements loop
counter.
4
JSR
Address of first subroutine
instruction
Program execution jumps to beginning of a
subroutine
5
RTS
Ignored
Program execution returns to instruction
after JSR was called
6
BRANCH
Address of next instruction
Program execution continues at specified
instruction
7
LONG_DELAY
Delay multiplier. This value
must be greater than or equal to
2.
For long interval instructions. Executes
length of pulse given in the time field
multiplied by the value in the data field.
8
WAIT
Ignored
Program execution stops and waits for
software or hardware trigger. Execution
continues to next instruction after receipt of
trigger. A WAIT instruction must be
preceded by an instruction lasting longer
than the minimum instruction time.
Table 7:
Op Code and Data Field Description.
NOTE
: For SP17 boards model PB12-100-4k, the output can be set and held by the control word. The behavior of
the STOP OpCode maybe different based on the firmware version. If you have any questions, please contact
SpinCore.
Delay Count
The value of the Delay Count field (a 32-bit value) determines how long the current instruction
should be executed. The allowed minimum value of this field is 0x00000002 for the 4k and
0x00000006 for the 32k models, and the allowed maximum is 0xFFFFFFFF. The timing controller
has a fixed delay of three clock cycles and the value that one enters into the Delay Count field should
account for this inherent delay. (NOTE: the pb_inst() family of functions in SpinAPI and the
PulseBlaster Interpreter automatically account for this delay.)
2021/03/22
27