Demand Peripherals     Robotics and Automation Made Easy

PULSE2: Dual Pulse Generator

PULSE2 provides two non-overlapping pulses. The width of each pulse, the offset between them, and the period can all be set with a resolution of 10 ns.

 

Hardware:

Outputs include both pulses as well as inverted versions of the pulses. The lowest numbered pin has the uninverted Pulse 1 output, followed by the P1 inverted output, the uninverted P2 output and the inverted P2 output. The pulses are defined by the period, widths, and P1-P2 offset as shown below.


 p1p:   __|------|_______________________________|------|___
 p1n:   --|______|-------------------------------|______|---
 p2p:   _______________|----|_______________________________
 p2n:   ---------------|____|-------------------------------
With parameters:
 period   |--------------------------------------|
 p1width  |------|           
 p2offset        |-----|
 p2width               |----|

The power up default is all pins highs. After the FPGA is loaded pins p1p and p2p go low and p1n and p2n go high.

 

Resources:

A single configuration resource sets the pulse parameters. All parameters are given in units of nanoseconds, although the hardware actually has steps of 10 ns.

config : period, P1 width, P2 offset, and P2 width in nanoseconds
Sanity checks limit the times to less than 10230 ns and to be positive. The period must be greater than the sum of the P1 width, offset, and P2 width. Setting either pulse width to zero turns off that pulse.

 

Examples:

   # Turn off both outputs (both go low)
   dpset pulse2 config 1000 0 0 0
   # Give a period of 5 us, P1 width of 1 us, offset of
   # 1 us and a P2 width of 500 ns.
   dpset pulse2 config 5000 1000 1000 500

The oscilloscope image below shows the pulses for the command:

   dpset pulse2 config 400 100 100 100

 

Notes:

This peripheral was created at the request of Wes Laquerre and was built to meet his specific requirements.

 

FPGA Defined Peripherals
User Interface
FPGA Configuration
FPGA Buttons & LEDs
Host Tx/Rx Interface
AVR Interface
Stereo Audio Amplifier
Text LCD and Keypad
Quad WS2812 Interface
Quad Slide Pot
IR Recv/Xmit
6 Digit LCD
RC Decoder
Keyfob RF Decoder
Rotary Encoder Interface
Quad Touch Interface
Motion Control
Dual DC Motor Controller
Dual Quadrature Decoder
Quad 13 Bit Servo
Bipolar Stepper Controller
Unipolar Stepper Controller
Simple Input / Output
Quad Binary Output
Quad Binary Input
Quad GPIO
Octal Input/Output
32 Channel Binary Output
32 Channel Binary Input
Quad Serial Output
Octal Serial Output
Sensors
Octal 12-bit ADC
Quad Ping))) Interface
Pololu QTR Interface
Octal SRF04 Interface
Instrumentation
Generic I2C
Generic SPI
Octal 8-Bit DAC
Quad Digital Potentiometer
Quad PWM Output
Quad PWM Input
Quad Event Counter
Real Time Clock
Dual Pulse Generator
  

Interface Cards
Control Cards
FPGA Card
MEGA88 AVR Card
User Interface
Stereo Audio Amplifier
IR Recv/xmit
Six Digit LCD Display
Keyfob RF Receiver
Rotary Encoder
Quad Switch Card
Text LCD / keypad
Quad Slide Pot
Quad Touch Interface
Motion Control
Dual 7-amp H-bridge
Quad Open Drain Driver
Quad 10 Amp Relay Card
Input / Output
Octal 8-Bit DAC
Quad Digital Potentiometer
Octal 12-bit ADC
Octal SRF04
Quad GPIO
I2C Prototyping
SPI Prototyping
USB 2.0 Hub
Real Time Clock
Octal Input/Output
32 Channel Input
32 Channel Output
Accessories
Power Distribution Card
15 Amp Power Distribution
5 Volt Switching Regulator
ATX Power Break-Out Card
Disk Drive Power Break-Out
MP43 Aluminum Mounting Plate
WW4 Large Prototyping Card
WW2 Prototyping Card
WW1 Small Prototyping Card
SMP SMD Prototyping Card