Introduction
In this blog, a pulse generator with a rise time
less than 900 ps was created for educational and illustrative purposes. The design
incorporates two options for Cypress PSoC microcontroller devices that
produce a pulse that drives an LVC series logic chip. The engineering pack
is provided at the end of this post for the board and the project for one
of the Cypress PSoC devices.
Pulse Generator PCB |
Another Pulse Generator Idea
Available online are schematics and content relating to
easy-to-build fast-rising edge generators including a novel battery and
oscilloscope solution from
Hackaday, a
Schmidt trigger design from w2aew, the well-known
Jim Williams transistor design
or
Time Domain Reflectometry (TDR) product
that doesn't require an oscilloscope.
This design is similar to
pulse generators that use hardware for pulse generation and separate
hardware such as a driver to produce a fast edge rate. The fast edge rate
in this design is derived from a common gate, part 74LVC04. Faster edge
rates are possible using alternative driver components such as high-speed
comparators or fast push-pull drivers.
Circuit Board Design
The pulse is initiated from a Cypress PSoC. Alternatively, other
microcontroller types or discrete hardware could produce the pulsing
signal. The pulsing output of the microcontroller drives one gate of the
six gates available in the 74LVC04. The first logic gate output
subsequently drives the five remaining gate inputs. All five outputs of
the logic gates are connected to individual 249 R resistors. Finally, all
resistors are tried together to provide a 49.8 R output impedance and
parallel operation.
Buffered Output for Pulse Generator |
Two types of Cypress microcontrollers were designed onto the board, a
CY8C4245AXI-483 and a CY8C4245PVI-DS402. These parts were chosen because
they were available as excess stock from local suppliers. At the time of
writing this post, however, the buy price for a CY8C4245AXI-483 had risen
above USD 5.
2D Circuit Board of Pulse Generator |
Two versions of the pulse generator board were drafted to experiment with faster rise time. The first design did not contain a top power plane, via stitching or impedance-controlled traces. Applying those changes to the circuit board, in revision 1 of the board the output rise time was improved by 30 ps.
Revisions of Pulse Generator Circuit Board |
Microcontroller Code Design
For testing, the initial code design only required a pulsing output. The pulsing can be achieved using several solutions however after referencing the Infineon website, one of the quickest methods of toggling an output pin on a Cypress 4000 microcontroller is a direct write to the port. The ON duration of the pulse is not critical, albeit it depends on the hardware output driver capabilities.
Programming the PSoC device was performed with the MiniProg 3, using PSoC Creator 4.4 and a connection to the 5-pin header on the pulse generator circuit board.
An extract of the code used in the PSoC Generator pulse generator is shown below.
#include "project.h"
int main(void)
{
CyGlobalIntEnable;
for(;;)
{
Port0_0_DR |= 0x01;
Port0_0_DR &= ~0x01;
}
}
Testing the Board
Signal measurements were performed on a Keysight oscilloscope with
a 20 GSa/s resolution. The first image below was taken from the board
without circuit board improvements and the second image from the board
with the changes.
Output Waveform from Pulse Tester Rev 0 |
Output Waveform from Pulse Tester Rev1 |
Rising edge measurements were also performed with the oscilloscope configured for 10% to 90% points.
Output Waveform Rise Time from Pulse Tester Rev0 |
Output Waveform Rise Time from Pulse Tester Rev1 |
The second board shows an indicative marginal improvement in rising time however this could be attributable to the component tolerances.
Reflectometry Testing
One of the uses for the fast-rising edge is for reflectometry. Some examples of reflectometry are cable length or circuit board trace impedance measurement. As a test for reflectometry, the pulse generator was connected through a BNC Tee adaptor to an oscilloscope with a short unterminated BNC cable. The image below shows the test setup.
Pulse Tester as TDR Test Setup |
From the oscilloscope, the reflected pulse is captured as displayed below.
TDR Capture from Oscilloscope |
For verifying the cable length, the period between the initial and
reflected pulses was measured on the oscilloscope. This time measurement
was required to calculate the cable length. Calculations in
this blog. A velocity factor of 81% was used for the
3D-FB coax. Using a period of 8.92 ns from the oscilloscope, the cable length was
calculated at 108 cm. The result is similar to the actual coax cable
length of 102 cm which excludes the BNC connector and other periphery.
Engineering Files
For anyone wanting to create a similar device the PSoC project,
Schematic, Gerber and BOM files (CY8C4245AXI-483) are available for
download using the links below.
Pulse Generator PSoC Project |
Pulse Generator Schematic Rev1 |
Pulse Generator Bill of Materials Rev1 |
No comments:
Post a Comment