Hi, I'm Erin and welcome to Scopes University.
Today we are going to continue on our conversation from the last InfiniiVision episode where
we talked about eye diagrams.
In this episode we're going to learn a little bit more about what jitter is, what causes
it, why we care about it, and to troubleshoot it using the built-in jitter analysis tool
on the oscilloscope.
In that last InfiniiVision episode we learned that eye diagrams can be used to help determine
if there's jitter in your clock or serial data that you're working with.
So, let's start out by learning about what jitter actually is.
If I have a serial bus or a clock signal with a specific frequency, in an ideal world, I
would expect the edge crossings to occur at that exact frequency every time, directly
laying over top of each other so that there are no inconsistencies in the data.
But, unfortunately, we don't live in an ideal world and there are going to be times when
those edge crossings come in a little too early or a little too late.
So, jitter is the deviation of where that edge crossing actually ends up compared to
where it ideally should be.
This is often times called "Time Interval Error" or "T.I.E."
And typically there is a specification, called a jitter budget, as to the allotted amount
of jitter in your signal.
So, if we thank back to the eye diagram from that last episode, there was a lot of jitter
in the signal we were working with.
We're going to figure out how to fix that in our design.
But, first, let's talk about some of the causes of jitter.
Jitter can be caused by a lot of different things.
There's system pheomena, data-dependent phenomena, and random noise.
System phenomena is caused by things that are actually happening on your board.
So, it consists of things like crosstalk and impedance mismatching.
Data-dependent phenomena can be things like intersymbol interference, or ISI, and duty-cycle
distortion.
These things can be caused by inconsistencies in writing data.
And random noise can be thermal noise, which is related to temperature, the higher the
temperature the more noise there is.
Shot noise, which is related to electron and hole phenomena.
And "pink" noise which is related to frequency, so the lower the frequency, the higher the
noise.
These are all just an unfortunate fact of life and they are all going to have some sort
of Gaussian distribution effect on your signal, and there's really nothing we can do about
it.
So now we know what jitter is and what causes it, but why do we even care about it?
I talk a little bit about this in that last episode, but if you have too much jitter in
your signal, it's ultimately going to cause errors in the data you transmit.
The receiving end is going to be interpreting the bits incorrectly because the edge crossings
aren't happening when they should be.
So, now let's do some analysis on that signal we were working with on the oscilloscope using
that built-in jitter analysis tool.
We're going to figure out specifically what it is that's causing the jitter in this signal
that we're working with and how we can go about fixing it in our design.
How the histogram is set up, it shows us the distribution of edge crossings and the height
of the histogram is correlated to the odds that the actual edge will be that far away
from the ideal edge.
Also, notice the automatic measurements that were brought up when the histogram was created.
We can actually learn a lot just from the shape of the histogram.
If we're seeing more of a bimodal shape, this is indicative of deterministic jitter which
is caused by system or data-dependent phenomena.
If we're seeing more of a Gaussian distribution effect, this means we're working with random
jitter which is caused by random noise.
And again, this is just an unfortunate fact of life that we really can't do too much about.
From the histogram we see on the screen here, we see there's a strong Gaussian component,
which again is caused by random jitter, but there's also a strong bimodal component, which
again is caused by deterministic jitter.
We can also see there are some outliers down in the lower right side of the histogram as
well.
So, let's view this timing error in another display format that may reveal some additional
information about this jitter that we're seeing.
We already learned what we can from the histogram, so the first thing I want to do is turn off
my real time eye and bring that signal back up on screen.
I want to zoom out a little bit on my signal here.
Then, we'll go into the jitter menu, and the first thing we want to do in here is select
a jitter measurement.
So, the first thing I want to look at is "Data Time Interval Error" so I'll select that,
and I'll just leave it at the default settings.
We're looking at channel 1 and that measurement I wanted to look at, so I'll just press "OK".
Ultimately what I want to look at here is a measurement trend of that Time Interval
Error data that I'm collecting.
I'm going to auto setup a measurement trend.
Now I can see my measurement trend on screen here in purple.
The trend waveform that we're seeing now is a plot of the timing errors of each of the
data edges relative to the recovered clock (vertical axis) versus time (horizontal axis).
This waveform is time correlated to the captured serial data signal, the yellow trace.
From the trend plot, we can see that our data signal has sinusoidal modulation, which correlates
to the bimodal distribution of the jitter histogram plot that we saw.
In addition to the sinusoidal modulation, it appears that our data signal has the occasional
extreme positive timing error, evident by the spikes we are seeing in the trend waveform.
And this is what is producing those outliers that we saw in the histogram.
Determining the frequency of the modulation might provide a clue as to the source of the
jitter.
We can turn on the jitter spectrum view to figure this out.
So, to do that, I'm going to go back into the jitter menu, and then I'm going to select
auto setup jitter spectrum.
Now, if I close out of this, I'll see an FFT showing the spectrum analysis of this jitter.
This spectrum view is provided by running an FFT math operation on that trend waveform.
So, this allows us to find the frequency of the modulation.
Let me just move my signals around a little bit so we're able to see this a little bit
better.
We can see there's a peak in the FFT and that's being caused by the sinusoidal modulation
on our signal.
To take a look at what the frequency is of that peak, all we have to do is go into the
search menu, select the search softkey, change it to frequency peaks, and change our source
to Math 4.
Now we can see that the frequency peak is about 19kHz.
To eliminate this 19kHz sinusoidal modulation, we can simulate a first order phase locked
loop, or PLL, clock recovery algorithm on the oscilloscope.
A PLL helps to reduce the amount of jitter you're seeing because it keeps the input and
output phases locked, which keeps the input and output frequencies the same, therefore
filtering out any unwanted frequencies in that range.
To implement that PLL and see the effect, I'm going to default setup and autoscale.
I want to set up my real time eye again, so we'll go into the analyze menu, select features,
and select real time eye.
Then we'll go into the clock recovery menu, and we're going to change the method to first
order PLL.
This will simulate the PLL on the signal.
Now, if you can remember from the last video, our nominal data rate for this signal was
6.2Mbps.
We're going to specify a loop bandwidth of 200kHz.
That should filter out that 19kHz sinusoidal modulation that we saw.
You have to be careful when you're selecting the bandwidth that you want to use for this
loop filter.
A bandwidth too low might not filter out enough jitter, and a bandwidth too high might end
up filtering out some of your signal, which isn't good either.
So you can play around with different bandwidths a little bit to get an idea of what's going
to work for your signal.
Now I can select "OK" and auto setup my eye diagram.
Now I can already see that the jitter on this eye diagram has improved greatly.
We got rid of a lot of the jitter that was riding on this signal and we're seeing a much
cleaner eye now.
And if I bring the histogram back up, we see the shape is beginning to look much less bimodal
and much more Gaussian.
We've eliminated all of the deterministic jitter and all we're left with is the random
jitter, which again we really aren't able to do much about.
If you're seeing very bad random jitter that will cause errors in the data you transmit,
kind of like what we're seeing on the signal here, you might have to actually go back and
redesign that component.
If you want to learn a little bit more about some of the other jitter measurements available,
be sure to check out the 2-Minute Guru episode on Basic jitter Measurements.
Daniel talks a little bit more in depth about a few of the other measurements.
So now you know what jitter is and why you should care about it.
As well as how to troubleshoot it if you do see it in your system.
With the steps that we covered today, you'll be able to identify what it is that's causing
the jitter in your system and what your options are to fix it.
If you want to learn even more about jitter analysis, make sure you check out the "Jitter
Analysis" application note.
And if there are any specific topics you would like to learn about in future episodes, make
sure you leave that in the comments below.
Make sure you subscribe to our YouTube channel to see more videos like this, and like us
on Facebook, Instagram, and Twitter.