2
\$\begingroup\$

I have an arduino (interrupt pin) listen to the 1PPS signal from this GPS (from the Adafruit ultimate GPS breakout).

However, sometimes it doesn't pick up the signal. Occasionally, I've been able to make it pick up a signal by fidgeting with the electrical connections, making me think a loose connection somewhere could be the problem.

The GPS is connected to the ATMEGA328P by a combination of screw terminals, male-female headers, and IC socket. I'm certain that these are fine for ordinary arduino use, but maybe the 1PPS pulse is so brief that it requires stronger connections?

Does anybody know best practices for carrying the 1PPS signal?

\$\endgroup\$
4
  • \$\begingroup\$ How are you listening for the signal on the Arduino? \$\endgroup\$
    – user39382
    Dec 13, 2016 at 4:01
  • \$\begingroup\$ Using the D2 pin to interrupt on the leading edge of the pulse. The ISR is one line and sets a volatile variable from 1 to 0. \$\endgroup\$
    – Vulcan
    Dec 13, 2016 at 4:09
  • \$\begingroup\$ What is the pulse width. I couldn't find it in the data sheet. \$\endgroup\$
    – User323693
    Dec 13, 2016 at 4:35
  • \$\begingroup\$ I don't know, and I'm in the field without access to an oscilloscope so I can't find out. The consensus seems to be that 1-PPS pulses are not as brief as I thought, so perhaps this is not the true cause of the problem. \$\endgroup\$
    – Vulcan
    Dec 13, 2016 at 4:42

2 Answers 2

3
\$\begingroup\$

The 1-pps pulse is not particularly brief; I've never seen one that is less than 100 µs, and some as long as 1 ms or even 10 ms. The key is the timing of the rising edge of the pulse, and how accurately you want to capture it. If you're just triggering a microcontroller timer or interrupt using it, it shouldn't require any special treatment; just a reliable connection.

\$\endgroup\$
2
\$\begingroup\$

We use 1PPS signals from GPS simulators and receivers. Depending on your time critical application, you may have to look at the propagation delay. The PPS will be brief enough and it is always the edge which will be considered in the system.

Take care of uniform delay distribution, if PPS is taken to multiple devices. The duration of pulses we normally see is from 100 us up to 100 ms (depending on the solution update rate). Also consider connecting PPS through a buffer or voltage follower so as to not load the 1PPS source.

Observe the 1 PPS signal at the MCU side on an oscilloscope. Adding a series resistor may help.

\$\endgroup\$
5
  • \$\begingroup\$ Why would a series resistor help? Thank you for this info. \$\endgroup\$
    – Vulcan
    Dec 13, 2016 at 4:05
  • \$\begingroup\$ The series resistor damps any oscillations and also helps in smoothing the pulse. Since. The signal is brought from another module, through wires and connectors, a fast rising edge will see the impedance difference and there will be reflections.. \$\endgroup\$
    – User323693
    Dec 13, 2016 at 4:26
  • \$\begingroup\$ Just to clarify, I would fidget with the connections, see it pick up the PPS signals, and then continue to pick up PPS signals long after I stopped messing with it. \$\endgroup\$
    – Vulcan
    Dec 13, 2016 at 4:45
  • \$\begingroup\$ Could you tell me more about the series resistor? How can I find an appropriate value (or is a few k-ohms probably fine)? I would have expected that if reflections were a problem that the impedance contrasts between copper and resistor would be bad. \$\endgroup\$
    – Vulcan
    Dec 13, 2016 at 4:46
  • 1
    \$\begingroup\$ observing on an oscilloscope with probe which as shortest connection to ground will give a hint whether it is required or not. In case there are reflections, i would start with a low value of 33 ohms and go upto 220 ohms. trial and error basis. \$\endgroup\$
    – User323693
    Dec 13, 2016 at 4:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.