I am learning how to analyze SPI bus clock and data using an entry-level digital storage oscilloscope. I'm using a BK Precision 2542B to measure the output of the clock and MOSI lines from a Netduino that utilizes an ARM microcontroller.
In this image, I have the clock on channel 1 (yellow), and the MOSI on channel 2 (blue). The trigger is set to use channel 1, using a rising edge trigger of 1.44V. The clock square wave amplitude is about 3.3V.
The trigger indicator is at the center of the display horizontally, yet I have a pulse to its left. I was expecting the first pulse of the clock to start at the trigger location. I know that a digital storage oscilloscope allows you to see pre- and post-trigger events, but I'm confused why the first pulse isn't where I thought it would be.
Is my understanding of triggering incorrect, or am I just using a weird scope?
Edit: The pulse train is 300μs wide, repeats at 2ms intervals, and I have a trigger hold off value of 500μs. Adjusting the hold off has not changed the fact that one pulse precedes the trigger.
After more analysis of the signal, including using the analog oscilloscope, I think I've determined that sometimes the pulse duration is about 350μs instead of 300μs. This may be a glitch in the code generating frames.
I discovered that a hold off time of 352μs will produce the expected result, but every now and then an extra pulse precedes the trigger.
I recorded some frames to show the pulse both absent and present:
If I set the horizontal time base long enough to see the pulses' duration, there always appears to be at least 1.7ms between them:
So while I think the leading pulse is a result of a "glitch" from the source, I'm still not sure how a trigger hold-off >360μs still produces the unexpected leading pulse.