I was recently speaking with a friend about my project from a while back, hooking up my GPSDO timebase into a Raspberry Pi to create a Stratum 1 NTP server, and he had run into the same issue I had, where the Pulse Per Second output of the timebase was too short for the Pi to reliably catch.
I had built a small circuit to stretch the pulse out and make the Pi catch it reliably, but I didn’t measure exactly how long it was at the time. So, I figured I would pull out my Saleae logic analyzer I mentioned in a previous post, and see about capturing the pulse to see what it looked like and how long it was.
Using channel 0 on my Logic 4 lets me grab both the digital waveform, and the analog waveform. Triggering on a rising edge, and sampling at 12MS/s, I get a nice pretty output like this:
You can see pretty clearly that the digital functions read this pulse at exactly 10us, and the analog function looks pretty darn close to that. I put the ‘A’ marker pair on about where the signal leaves the 0V level, and where it returns to 0V, but in reality, most digital electronics are going to read the signal changing from a 0 to 1, or a 1 to 0, at about where the ‘B’ markers are located.
10us is pretty quick, so I’m not surprised that it may not reliably be caught by the RPi. Yet another cool use of the Saleae Logic!