
PulseBlaster128
II. Boar Functionality
PulseBlaster Core
The PulseBlaster128 uses a modified PulseBlaster core with additional modified interrupt
functionality. When the interrupt lines are fixed, the board can be used as a standard PulseBlaster with
128 output channels. All of the information from the standard PulseBlaster manual
(http://www.spincore.com/CD/PulseBlaster/PCI/PB24/PB_Manual.pdf applies in this case.
Interrupts
Overview
The PulseBlaster128 has 256 interrupts controlled by 8 interrupt lines. These lines can be
controlled by hardware through 8 pins on the control header or through software using API functions. The
interrupts are immediate and are always active.
Controlling Interrupts with Software
The PulseBlaster128's custom API comes with two functions that allow the user to control
interrupt states through software and another function to read back the current interrupt state. The
following table explains the functions used to control interrupts in software.
int pb128_set_int_source(int select) Selects the interrupt source. If select is 0 then the
hardware interrupts are used. If select is 1 then
the software interrupts are used.
int pb128_set_sw_int(int interrupt) Sets the software interrupt. If the interrupt source
is set to software, this will cause the board to start
running the selected interrupt if it is not already
running. If the interrupt source is set to hardware,
then this will set the software interrupt without
changing the boards status. That means this
interrupt will become active if the source is
switched to software.
int pb128_get_current_int(void) Returns the current interrupt. This will work when
hardware interrupts are selected and when
software interrupts are selected.
Table 1: Interrupt API functions
Interrupt A resses
When an interrupt is called, the PulseBlaster core reads the interrupt address memory to find the
address of the next instruction to run. This address memory stores one address for each interrupt. It is
programmed using the API through the function in the following table:
int pb128_int_addr_write(int interrupt,
int pb_address)
This function assigns an address of a PulseBlaster
instruction to the given interrupt.
Table 2: Interrupt Address API function
www.spincore.com 10 2011-08-02