Variable frequency digital clock generator implemented on a single pci board (1/2 size) (13 pages)
Summary of Contents for SpinCore Technologies PulseBlasterESR-PRO SP4B
Page 1
PulseBlasterESR-PRO™ (PCI Boards SP4B, SP18A, and SP19) (USB Enclosure System SP45) Owner’s Manual SpinCore Technologies, Inc. http://www.spincore.com...
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).
PulseBlasterESR-PRO I. Introduction Product Overview The PulseBlasterESR-PRO™ is a high-speed, intelligent pulse/pattern/delay generator designed for outputting precisely timed TTL patterns. The intelligence of the PulseBlasterESR-PRO comes from an embedded microprogrammed controller core nicknamed the PulseBlaster™. The controller is able to execute instructions that allow it to control program flow much like a general purpose microcontroller.
PulseBlasterESR-PRO Board Architecture Block Diagram Figure 1 presents the general architecture of the PulseBlasterESR-PRO system. The major building blocks are the SRAM memory, the PulseBlaster core, the integrated bus controller (IBC), the counter, and the output buffers. The entire logic design, including the SRAM memory and output buffers, is contained on a single silicon chip, making it a System-on-a-Chip design.
PulseBlasterESR-PRO Timing Characteristics The PulseBlaster core's timing controller accepts an external (on-board) crystal oscillator of 50 MHz. The input frequency is internally multiplied. The PulseBlasterESR-PRO is available with 4 different internal clock frequencies: 250 MHz, 300 MHz, 400 MHz, and 500 MHz. The innovative architecture of the timing controller allows the processing of either simple timing instructions (with delays of up to 2 clock cycles or 8.59 s at 500 MHz), or double-length timing instructions (up to 2 clock cycles long –...
Install the latest version of SpinAPI found at: http://www.spincore.com/support/spinapi/ . SpinAPI is a custom Application Programming Interface developed by SpinCore Technologies, • Inc. for use with the PulseBlasterESR-PRO and most of SpinCore's other products. It can be utilized using C/C++ or graphically using the options in the next section below. The API will also install the necessary drivers.
PulseBlasterESR-PRO III. Programming the PulseBlasterESR-PRO SpinCore Technologies Inc. is dedicated to providing an easy and efficient method of programming your board. Various control methods available are detailed below, making PulseBlaster products flexible for any number of applications. Special consideration of the ESR-PRO Short Pulse feature must be taken when programming or operating this board.
PulseBlasterESR-PRO The PulseBlaster Interpreter is available as part of the SpinCore driver suite, and will be automatically installed during the setup process (setup process is described in Section II. Installation). For convenience, a shortcut to the PulseBlaster Interpreter will be added to your desktop. For more information on programming using the PulseBlaster Interpreter, see the manual located at http://www.spincore.com/support/SPBI/Doc/.
PulseBlasterESR-PRO There are two versions of the LabVIEW extensions available free of charge on our website. The first is for those who do not have LabVIEW or who are not familiar with LabVIEW programming. This option is a stand-alone GUI (see Figure 3 above) that comes in executable form and utilizes the LabVIEW runtime environment.
Page 13
PulseBlasterESR-PRO Making changes to an example program requires understanding of only a few lines of code. The following C code example generates a 50% duty cycle square wave with a 400.0 ms period. pb_init(); /*Initialize communication with the board*/ pb_core_clock (CLOCK); /*Set the internal clock frequency value – this will be either 250, 300, 400, or 500 MHz depending on your product */ /*Start programming the Pulse Program*/...
PulseBlasterESR-PRO Using C Functions to Program the PulseBlasterESR-PRO A series of functions have been written to control the board and facilitate the construction of pulse program instructions. It should be noted that the pb_inst C function accepts any delay value greater than 17 ns.
Page 15
PulseBlasterESR-PRO int pb_inst(int flags, int inst, int inst_data, double length); Used to send one instruction of the pulse program. Should only be called after pb_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.
PulseBlasterESR-PRO IV. Connecting to the PulseBlasterESR-PRO The PulseBlasterESR-PRO functionality is available on SP4B, SP18A , SP19 boards, and SP45 USB rackmount system. The connectors for the PulseBlasterESR-PRO boards and USB rackmount system are explained below in their respective sections. Connector Information for PulseBlasterESR-PRO Boards On the PCI boards (SP4B, SP18A, SP19), there are three main connector banks: the BNC headers, the IDC headers, and the Trigger/Reset header.
PulseBlasterESR-PRO Figure 6: Left: BNC T-Adapter and Right: BNC 50 Ohm resistor. Figure 7: BNC T-Adapter on the oscilloscope with coaxial transmission line connected on the left and BNC 50 Ohm resistor connected on the right, to terminate the line. IDC Headers for SP4B and SP18A 14 15 16 17 18 19 20 21 22 23 24 25 26 9 10 11 12 13...
Page 19
PulseBlasterESR-PRO Each pin on an IDC header corresponds to a bit in the flag field of an instruction. The association between bits and pins are shown in the table below. Alternatively, the IDC headers can be connected to IDC-MMCX adapter boards (Figure 20) which allow the use of MMCX cables.
PulseBlasterESR-PRO HWTrig/Reset Header for SP4B Figure 9: HWTrig/Reset Header Pin-Out (SP4B). This is an input connector, for hardware triggering (HW_Trigger) and hardware resetting (HW_Reset). Pins 1 and 2 are the reset and trigger inputs, respectively, and pins 3 and 4 are grounds. CAUTION: Applying voltages to the input pins that are greater than 3.3 V or less than 0 V will damage the PulseBlasterESR-PRO.
PulseBlasterESR-PRO Connector Locations for the SP18A board Flag24..35 Out Flag0...11 Out Flag12..23 Out BNC3 SMA0 SMA1 SMA2 SMA3 SMA4 SMA5 SMA6 SMA7 BNC2 HW_TRIG/RESET BNC1 BNC0 Figure 10: Connector Locations (SP18A). The SP18A board has identical connectors to the SP4B board, but includes SMA headers for easy access to more flag outputs and a modified HW_Trig/Reset header.
Page 22
PulseBlasterESR-PRO HW_Trigger is pulled to logical-high voltage (3.3V) on the board. Pin 10 is active and pin 9 is the corresponding ground. When a falling edge is detected (e.g., when shorting pins 10-9) and the program is idle, code execution is triggered. If the program is idle due to a WAIT OpCode, then the HW_Trigger will cause the program to continue to the next instruction.
PulseBlasterESR-PRO Connector Locations for the SP19 board Figure 13 shows the connector locations for the SP19 board. More details on the connectors can be found in the following sections. Please note the HW_TRIG/RESET header for the SP19 board has the same connections as the SP18A board.
PulseBlasterESR-PRO Clock Oscillator Header The PulseBlasterESR-PRO comes with a crystal oscillator mounted on the oscillator socket to provide a timing signal for the board. If required, it is possible to remove the oscillator that comes standard, and instead drive the PulseBlasterESR-PRO with an external clock signal. The oscillator module can be removed from the board, and an external signal can be input through the header pins.
PulseBlasterESR-PRO Figure 15: Example clock signal for SP19. Note that a small degree of voltage ripple is acceptable, so long as the voltage always remains above threshold for logical-high signals and below for logical-low signals. NOTE: The PulseBlasterESR-PRO requires a 3.3V TTL input signal. A signal that is more than 3.3V or less than 0V will damage the device.
Page 26
PulseBlasterESR-PRO Figure 16: Trig/Res/Stat Male DB9 connector drawing Pin Number Function Hardware Trigger Hardware Reset WAITING RUNNING RESET Ground Ground Ground STOPPED Table 3: Trig/Res/Stat Male DB9 connector pin assignments http://www.spincore.com 2019/09/26...
PulseBlasterESR-PRO Appendix I: Controlling the PulseBlasterESR- PRO with SpinAPI Instruction Set Architecture Machine-Word Definition The PulseBlasterESR-PRO pulse timing and control processor implements an 80-bit wide Very Long Instruction Word (VLIW) architecture. The VLIW is partitioned into fields dedicated to specific purposes, and every VLIW is viewed as a single instruction by the microcontroller.
Page 28
PulseBlasterESR-PRO Output Pattern and Control Word Table 5 shows the output pattern and control bit assignments of the 24-bit output/control word. Bit # Bit # Function Controls Pulse Length for BNC connectors Output Connector labeled Flag0..11, Pin 12 Controls Pulse Length for BNC connectors Output Connector labeled Flag0..11, Pin 11 Controls Pulse Length for BNC connectors Output Connector labeled Flag0..11, Pin 10...
Page 29
PulseBlasterESR-PRO When bits 21-23 are zero, the output flags remain low for the duration of the instruction. When bits 23-21 are from “000” to “101,” the programmed flag values will be outputted for the specified number of clock cycles. To disable the Short Pulse feature, bits 21 to 23 must be set to “111.” Figure 17 gives an example of the Short Pulse feature.
Page 30
PulseBlasterESR-PRO Data Field and OpCode Please refer to the following table for information on the available instructions and their associated data field argument. OpCode Inst Inst_data Function Program execution continues to next CONTINUE Ignored instruction. See note (1) and (2) following this table.
PulseBlasterESR-PRO 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 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.
PulseBlasterESR-PRO Related Products and Accessories 1. Oven Controlled Clock Oscillator (sub-ppm stability) shown in Figure 18. For ordering information, contact SpinCore at http://www.spincore.com/contact.shtml. Figure 18: An Oven Controlled Clock Oscillator (or OCXO) with sub-ppm frequency stability is available for the PulseBlasterESR-PRO upon request. 2.
Page 33
PulseBlasterESR-PRO 3. SpinCore MMCX Adapter Board Figure 20 – This adapter board allows easy access to the individual bits of the PulseBlasterESR-PRO boards. This adapter board can be part of a package that includes 12 MMCX to BNC cables and three SMA to BNC adapters. However, this package can be changed to include any number of cables and any number of adapter boards.
Page 34
Figure 23: TTL Line Driver assures TTL levels over 50 Ohm loads. 5. If you require a custom design, custom interface cables, or other custom features, please inquire with SpinCore Technologies through our contact form, which is available at http://www.spincore.com/contact.shtml.
PulseBlasterESR-PRO Contact Information SpinCore Technologies, Inc. 4631 NW 53rd Avenue, SUITE 103 Gainesville, FL 32653 Telephone (USA): 352-271-7383 Website: http://www.spincore.com Web Contact Form: http://spincore.com/contact.shtml Document Information Revision history available at SpinCore. http://www.spincore.com 2019/09/26...
Need help?
Do you have a question about the PulseBlasterESR-PRO SP4B and is the answer not in the manual?
Questions and answers