background image

PulseBlasterDDS

int inst_data, double length);

Used to send one instruction of the pulse program.  Should only be called after

start_programming(PULSE_PROGRAM) has been called.  It returns a negative number on an

error, or the instruction number upon success.  If the function returns –99, an invalid parameter

was passed to the function.  Instructions are numbered starting at 0.

int freq

 – Selects the frequency register to be used.  Valid range is from 0 to 16

int phase_SMA_1

 – Selects the phase register to be used from the phase registers programmed

using start_programming(PHASE_REG_1).  This is the DDS output on SMA connector labeled

DAC_OUT_1.  Valid range is from 0 to 16

int tx_output_enable

 – Determines whether analog output is generating a sinusoid or is at

ground for TX output on SMA connector labeled DAC_OUT_2.  Valid values are

TX_ANALOG_ON and TX_ANALOG_OFF

int phase_SMA_0

 – Selects the phase register to be used from the phase registers programmed

using start_programming(PHASE_REG_0).  This is the DDS output on SMA connectors labeled

DAC_OUT_0 and DAC_OUT_2.  Valid range is from 0 to 16

int rx_output_enable

 – Determines whether analog output is generating a sinusoid or is at

ground for RX output on SMA connectors labeled DAC_OUT_0 and DAC_OUT_1.  Valid values

are RX_ANALOG_ON and RX_ANALOG_OFF

int flags

 – determines state of each TTL output bit.  Valid values are 0x0 to 0x3FF.  For example,

0x010 would correspond to bit 5 being on and all other bits being off.  Bit 10, corresponding to

hexadecimal value 0x200, is used to reset the phase of the numerically controlled oscillator.  This

results in phase coherent switching.  The numerical oscillator will pause for the length of the

instruction, resulting in a constant voltage at the DAC.  The voltage level depends on the value of

the phase register in use.   

int inst

 – determines which type of instruction is to be executed. Please see Table 2 for details.

int inst_data

 – data to be used with the previous inst field.  Please see Table 2 for details.

double length

 – duration of this pulse program instruction, specified in ns.

This function has been overloaded to accommodate TTL-only programs.  When using the shorter

version of the function, the RF channel has its output set to ground. The overloaded form follow:

TTL Only:

int pb_inst(int flags, int inst, int inst_data, double length);

int stop_programming();

Used to tell that programming the board is complete.  Board execution cannot start until this

command is received.  It returns a 0 on success or a negative number on an error.

int start_pb();

Once board has been programmed, this instruction will start execution of pulse program.  It

returns a 0 on success or a negative number on an error.

int stop_pb();

Stops output of board.  Analog output will return to ground, and TTL outputs will remain in the

state they were in when stop command was received.  It returns a 0 on success or a negative

number on an error.

9/20/200514

www.spincore.com

Summary of Contents for PulseBlaster DDS-III

Page 1: ...PulseBlasterDDS Model DDS III PCI Board SP3 Owner s Manual SpinCore Technologies Inc http www spincore com...

Page 2: ...nologies Inc reserves the right to make changes to the product s or information herein without notice PulseBlasterDDS PulseBlaster SpinCore and the SpinCore Technologies Inc logos are trademarks of Sp...

Page 3: ...ions 8 Pulse Program Control Flow Common 8 II Installation 9 Installing the PulseBlasterDDS Driver 9 For Windows XP 9 Initializing Control of the PulseBlasterDDS 10 III Programming the PulseBlasterDDS...

Page 4: ...Connector labeled SMA400 18 Appendix I Sample C program 19 Example Program 19 Appendix II Programming the PulseBlasterDDS Using Direct Outputs 22 Using DLL Functions to Send Instructions 22 Building...

Page 5: ...tem control and pulse synchronization By adding DDS features PulseBlasterDDS can now provide not only digital TTL but also analog output signals meeting high performance and high precision complex exc...

Page 6: ...se and functions as a phase reset for the DDS generator The frequency and phase of the RF pulses generated by the DDS are under the control of the user and are specified through software programming T...

Page 7: ...t Instruction set PulseBlasterDDS design features a set of commands for highly flexible program flow control The micro programmed controller allows for programs to include branches subroutines and loo...

Page 8: ...ns 10 individually controlled digital output lines TTL levels one of the output lines has a dual use and functions as a phase reset for the DDS generator variable pulses delays for every TTL line 25 m...

Page 9: ...computer 4 Insert the PulseBlasterDDS board into an empty PCI slot Secure the bracket firmly with a screw 5 Turn on your computer For Windows XP 6 After booting the Found New Hardware Wizard should a...

Page 10: ...ttp www pulseblaster com CD PulseBlasterDDS PCI SP3 old_version post_installation_files zip in order for your board to work You are now ready to control the PulseBlasterDDS board Initializing Control...

Page 11: ...ve clock cycles for 512 memory word models and the longest being 2 52 clock cycles All instructions have the same format and bit length and all bit fields have to be filled Figure 3 shows the fields a...

Page 12: ...Field and Op Code Please refer to Table 2 for information on the available operational codes OpCode and the associated data field functions the data field s function is dependent on the Op Code Op Co...

Page 13: ...device Used to initialize the system to receive programming information It accepts a parameter referencing the target for the instructions Valid values for device are PULSE_PROGRAM FREQ_REGS PHASE_RE...

Page 14: ...s are 0x0 to 0x3FF For example 0x010 would correspond to bit 5 being on and all other bits being off Bit 10 corresponding to hexadecimal value 0x200 is used to reset the phase of the numerically contr...

Page 15: ...perates at 100MHz set_clock 100 Prepare the Board to Receive Freqeuncy Values start_programming FREQ_REGS Load Frequency Register 0 set_freq 1 054 Load Frequency Register 1 set_freq 2 Prepare the Boar...

Page 16: ...tput ON Phase Reg 0 for DAC_OUT_0 and DAC_OUT_2 DDS RX Output ON Flags 0x000 OPCODE BRANCH pb_inst 0 1 TX_ANALOG_ON 0 RX_ANALOG_ON 0x000 BRANCH start 2 us Finished Sending Instructions stop_programmin...

Page 17: ...ctor Figure 4 SMA Connectors DB 25 TTL Output Signal Bits Outputs TTL signals generated by the user s Program Please consult the table below for bit assignments Pin Assignments Pin Bit Pin Bit 1 GND 1...

Page 18: ...ult and pin 1 is active pin 2 GND When a low state is detected e g when shorting pins 1 2 it initiates code execution This trigger will also restart execution of a program from the beginning of the co...

Page 19: ...program Example Program Example2 cpp SpinCore Technologies Inc May 2004 http www spincore com The following program code uses C Functions from pbdfuncts to generate and execute a pulse sequence on th...

Page 20: ...set_phase 135 Set register 6 set_phase 157 5 Set register 7 set_phase 180 Set register 8 set_phase 202 5 Set register 9 set_phase 225 Set register 10 set_phase 247 5 Set register 11 set_phase 270 Set...

Page 21: ...instruction in 1us pb_inst 0 0 TX_ANALOG_ON 0 RX_ANALOG_OFF 0x0 END_LOOP loop 1 us Instruction 3 Stay here for 5 1us then continue to Instruction 4 pb_inst 0 0 TX_ANALOG_OFF 0 RX_ANALOG_ON 0x0 LONG_D...

Page 22: ...erDDS PCI board It returns a 0 upon successful completion or a negative number for an error Building Instructions Using the DLL Functions To send instructions to the PulseBlasterDDS the programmer mus...

Page 23: ...d at zero It is not possible to load a particular section of memory All loads must start from either the beginning of memory or wherever the Address Counter left off Flag Initialization Strobe The out...

Page 24: ...address counter Set initial flag values Values for this example are 0x000000f0 PBD03PC_outp 6 0 Data transfer PBD03PC_outp 6 0 Data transfer PBD03PC_outp 6 0 Data transfer PBD03PC_outp 6 0xF0 Data tr...

Page 25: ...C_outp 6 0x00 Data Transfer Byte 1 of Reg1 PBD03PC_outp 6 0x00 Data Transfer Byte 0 of Reg1 PBD03PC_outp 6 0xE0 Data Transfer Byte 3 of Reg15 PBD03PC_outp 6 0x00 Data Transfer Byte 2 of Reg15 PBD03PC_...

Page 26: ...PulseBlasterDDS Only execute the following command when you are ready for the program to start running PBD03PC_outp 1 0 Start pulse program 9 20 200526 www spincore com...

Page 27: ...sterDDS Contact Information Phone 352 271 7383 FAX 352 371 8679 Email sales spincore com Web http www spincore com Product URL http www pulseblaster com CD PulseBlasterDDS PCI SP3 9 20 200527 www spin...

Reviews: