Hello,

Thank you for the answers.

I've already posted my formulas that work for phase noise.

But John, I will now try your method with the Timepod and see how they compare.

I did get the N corner to work with the Timepod, but as you say, that's for ADEV.

Just a personal note. The Timepod is the worlds best bit of electronics ever, and if John Miles was English, I would recommend him for a knighthood.

John, hope you're blushing now.

Regards

Martyn


Today's Topics:

  1. measuring os latency for pps (folkert)
  2. 3 corner hat for phase noise (Martyn Smith)
  3. Re: SRS PRS10 repair (Brian Inglis)
  4. Re: SRS PRS10 repair (Brian M)
  5. Re: measuring os latency for pps (Andrew Symington)
  6. Re: 3 corner hat for phase noise (Tom Van Baak)
  7. Re: SRS PRS10 repair (ziggy9+time-n...@pumpkinbrook.com)
  8. Re: 3 corner hat for phase noise (John Miles)
  9. Re: 3 corner hat for phase noise (John Miles)
 10. Re: measuring os latency for pps (Iain Young)
 11. Re: SRS PRS10 repair (Magnus Danielson)
 12. Re: measuring os latency for pps (Andrew Symington)
 13. Re: SRS PRS10 repair (Brian Inglis)
 14. Re: measuring os latency for pps (Chris Albertson)
 15. Re: SRS PRS10 repair (Hal Murray)
 16. Re: SRS PRS10 repair (Brian M)
 17. Re: measuring os latency for pps (Anders Wallin)


----------------------------------------------------------------------

Message: 1
Date: Tue, 25 Aug 2015 17:24:36 +0200
From: folkert <folk...@vanheusden.com>
To: time-nuts@febo.com
Subject: [time-nuts] measuring os latency for pps
Message-ID: <20150825152436.gu25...@belle.intranet.vanheusden.com>
Content-Type: text/plain; charset=us-ascii

Hi,

Not sure if it is interesting for you guys but I wrote a simple program
for e.g. Linux (or any other system with the pps api implemented) that
listens on a pps source waiting for a pulse and then toggles a gpio
pin. That way you can measure the latency introduced by the the kernel
when listening from userspace. Note that there's a little extra latency
due to the gpio-pin handling.

It is on github: https://github.com/flok99/pps2gpio


Folkert van Heusden

--
MultiTail cok yonlu kullanimli bir program, loglari okumak, verilen
kommandolari yerine getirebilen. Filter, renk verme, merge, 'diff-
view', vs.  http://www.vanheusden.com/multitail/
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com


------------------------------

Message: 2
Date: Tue, 25 Aug 2015 17:36:19 +0100
From: "Martyn Smith" <mar...@ptsyst.com>
To: <time-nuts@febo.com>
Subject: [time-nuts] 3 corner hat for phase noise
Message-ID: <DBE9DA002F984B4098FDFEB5AB8DDD5F@MiraLuz>
Content-Type: text/plain; format=flowed; charset="utf-8";
reply-type=original


Hello,

Does anyone have an EXCEL spreadsheet that calculates the individual phase
noise of  3 oscillators when they are compared against each other, e.g  A vs
B, A vs C, B vs C.

I.e the 3 corner hat technique.

I do have a Timepod and I thought Timelab could do that, have haven't found
how to do that.

Regards

Martyn




------------------------------

Message: 3
Date: Tue, 25 Aug 2015 10:23:40 -0600
From: Brian Inglis <brian.ing...@systematicsw.ab.ca>
To: time-nuts@febo.com
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID: <55dc968c.9030...@systematicsw.ab.ca>
Content-Type: text/plain; charset=utf-8; format=flowed

Hi,
You have too many 1s in your startup string compared to the expected "PRS_10\r".
If the MCU clock is not 10Mhz then the integrated UART rates will be off,
which should produce framing errors, but do UARTs still detect and systems
report these nowadays, or just pass along garbled data?
Otherwise, garbled data is most often a result of inadequate pin contact,
if the connectors are not seated properly, or the pins or sockets are loose
in their shells.
Age and rough treatment can have that effect.

"Internal hardware jumpers allow these pins to be configured as analog outputs to monitor the lamp intensity and varactor voltage for complete compatibility
with the FRS."
Have you checked the jumpers in the manual Configuration Notes:
"Pin 4: TXD/PHOTO The default configuration uses this pin as an output for RS-232 data. Many system parameters (including the lamp intensity) may be monitored via the RS-232 interface. The function of this pin may be changed to an analog monitor for the lamp intensity by removing one resistor (R347) and installing a 10 kΩ resistor for another (R348)
on the microcontroller PCB."

On 2015-08-24 22:40, Brian M wrote:
I tried through the weekend, double and triple checking wiring and setup.
I've tried the following methods of getting serial comms working:
PRS10 -> Arduino Uno (with processor bypassed) -> USB Host
PRS10 -> Level Shifter -> BBB UART
PRS10 -> MAX232 -> USB Serial adapter

Shortly after power is applied to the PRS10, I do get a string of
characters. Believe it should be the model information. Instead I get:
wy+VPgy

I guess the good news is that this output appears consistent with each
power cycle of the device. And I'm getting the same results through all the
hookup methods I've tried.

My minicom settings are for software flow control at 9600 8N1 - from what
the manual states, this should be the right settings. I've tried screen as
well - and get the same text. I went crazy trying several other rates and
setting combinations. No luck.

Maybe I've missed something obvious.

I agree that getting comms going to the MCU are going to be an important
step. How do people address this type of problem? Scope the serial and try
to decode by hand? The 10Mhz to the MCU looks OK on a scope. Are there
further steps people try after that? If nothing else I think there's some
interesting stuff to learn here. I also wouldn't mind tearing out the
electronics, determining if the lamp is good, and attempt to build from
there. I don't know the datecode for the unit, the PCB is marked with a
datecode suggesting 2003? I don't have the full case. I'm trying to assess
what are reasonable next steps. How do I determine if the MCU is healthy?
If the MCU is fried, how do I determine if I just need to squeeze a new MCU
board in there?

Thanks! I appreciate the input so far!
- Brian

PS - after looking again at the signal on the scope, it does seem like it
is 9600 baud. ~100µS per bit. The data out on the MCU itself looks like
what I saw on the main connector.

On Sat, Aug 22, 2015 at 2:04 PM Mike Cook <michael.c...@sfr.fr> wrote:


Le 22 août 2015 à 03:40, Bob Camp <kb...@n1k.org> a écrit :

Hi

On any microprocessor based gizmo, getting the micro running (again) is
generally priority number one. It sets everything up and gives you the
diagnostic
info you need to go further. Garbled serial is better than none at all.
It suggests
something short of a total MCU death spiral …

Bob

On Aug 21, 2015, at 7:26 PM, Brian M <brayn...@gmail.com> wrote:

Dear list -

I have come into possession of a for parts prs 10. I'd like to try to
repair this device. What I've noticed so far. Serial is garbled. (Even
at
varying baud rates).

  You don’t say how you are connecting to the Rb. The manual states:
"RS-232 data is sent to the host on pin 4, received from the host on pin
7. The baud rate is
fixed at 9600 baud, 8 bits, no parity, with 1 start and 1 stop bit. No DTR
or CTS controls are
used; rather, the XON/XOFF protocol has been implemented. The transmit
drive level is 0
and 5 V, not the +/-12 V normally associated with RS-232. These levels are
compatible with
most RS-232 line receivers, but does not require their use (a TTL inverter
may be used
instead), hence simplifies the interface when used inside an instrument at
the sacrifice of
degraded noise immunity over long lines."

So make sure that you adhere to that.


Lamp isn't lit.

What’s the date code. Early versions may be reaching EOL, though 20yrs id
quoted.

Doesn't look great. I'd like to know
if anybody else has wandered down this path. What are common failure
modes?
Anything match up with what I describe? Voltages to check would be
helpful.
The 10MHz out looked okay on a scope. Haven't gone further yet. I
suspect
the crystal is fine.

Thanks in advance. Happy hacking!
- Brian


------------------------------

Message: 4
Date: Tue, 25 Aug 2015 10:35:22 -0700
From: Brian M <brayn...@gmail.com>
To: "brian.ing...@systematicsw.ab.ca"
<brian.ing...@systematicsw.ab.ca>,  Discussion of precise time and
frequency measurement <time-nuts@febo.com>
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID:
<cac+fx11++qplfdoj9bf+_amu5royjqt9rvhfpvqdharjrg2...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

The earlier suggestion of a missing inverter seems to be the right thing to
chase this evening. I was able to add an inverter and decode the first few
characters on a scope. I get the expected DC1-CR-P-R-S sequence.

Thanks for the input on this. I'll reply back after I've had more time to
hack at this.

- Brian

On Tuesday, August 25, 2015, Brian Inglis <brian.ing...@systematicsw.ab.ca>
wrote:

Hi,
You have too many 1s in your startup string compared to the expected
"PRS_10\r".
If the MCU clock is not 10Mhz then the integrated UART rates will be off,
which should produce framing errors, but do UARTs still detect and systems
report these nowadays, or just pass along garbled data?
Otherwise, garbled data is most often a result of inadequate pin contact,
if the connectors are not seated properly, or the pins or sockets are loose
in their shells.
Age and rough treatment can have that effect.

"Internal hardware jumpers allow these pins to be configured as analog
outputs
to monitor the lamp intensity and varactor voltage for complete
compatibility
with the FRS."
Have you checked the jumpers in the manual Configuration Notes:
"Pin 4: TXD/PHOTO The default configuration uses this pin as an output for
RS-232 data.
Many system parameters (including the lamp intensity) may be monitored via
the RS-232
interface. The function of this pin may be changed to an analog monitor
for the lamp
intensity by removing one resistor (R347) and installing a 10 kΩ resistor
for another (R348)
on the microcontroller PCB."

On 2015-08-24 22:40, Brian M wrote:

I tried through the weekend, double and triple checking wiring and setup.
I've tried the following methods of getting serial comms working:
PRS10 -> Arduino Uno (with processor bypassed) -> USB Host
PRS10 -> Level Shifter -> BBB UART
PRS10 -> MAX232 -> USB Serial adapter

Shortly after power is applied to the PRS10, I do get a string of
characters. Believe it should be the model information. Instead I get:
wy+VPgy

I guess the good news is that this output appears consistent with each
power cycle of the device. And I'm getting the same results through all
the
hookup methods I've tried.

My minicom settings are for software flow control at 9600 8N1 - from what
the manual states, this should be the right settings. I've tried screen as
well - and get the same text. I went crazy trying several other rates and
setting combinations. No luck.

Maybe I've missed something obvious.

I agree that getting comms going to the MCU are going to be an important
step. How do people address this type of problem? Scope the serial and try
to decode by hand? The 10Mhz to the MCU looks OK on a scope. Are there
further steps people try after that? If nothing else I think there's some
interesting stuff to learn here. I also wouldn't mind tearing out the
electronics, determining if the lamp is good, and attempt to build from
there. I don't know the datecode for the unit, the PCB is marked with a
datecode suggesting 2003? I don't have the full case. I'm trying to assess
what are reasonable next steps. How do I determine if the MCU is healthy?
If the MCU is fried, how do I determine if I just need to squeeze a new
MCU
board in there?

Thanks! I appreciate the input so far!
- Brian

PS - after looking again at the signal on the scope, it does seem like it
is 9600 baud. ~100µS per bit. The data out on the MCU itself looks like
what I saw on the main connector.

On Sat, Aug 22, 2015 at 2:04 PM Mike Cook <michael.c...@sfr.fr> wrote:


Le 22 août 2015 à 03:40, Bob Camp <kb...@n1k.org> a écrit :

Hi

On any microprocessor based gizmo, getting the micro running (again) is
generally priority number one. It sets everything up and gives you the

diagnostic

info you need to go further. Garbled serial is better than none at all.

It suggests

something short of a total MCU death spiral …

Bob

On Aug 21, 2015, at 7:26 PM, Brian M <brayn...@gmail.com> wrote:

Dear list -

I have come into possession of a for parts prs 10. I'd like to try to
repair this device. What I've noticed so far. Serial is garbled. (Even

at

varying baud rates).


  You don’t say how you are connecting to the Rb. The manual states:
"RS-232 data is sent to the host on pin 4, received from the host on pin
7. The baud rate is
fixed at 9600 baud, 8 bits, no parity, with 1 start and 1 stop bit. No
DTR
or CTS controls are
used; rather, the XON/XOFF protocol has been implemented. The transmit
drive level is 0
and 5 V, not the +/-12 V normally associated with RS-232. These levels
are
compatible with
most RS-232 line receivers, but does not require their use (a TTL
inverter
may be used
instead), hence simplifies the interface when used inside an instrument
at
the sacrifice of
degraded noise immunity over long lines."

So make sure that you adhere to that.


Lamp isn't lit.


What’s the date code. Early versions may be reaching EOL, though 20yrs id
quoted.

Doesn't look great. I'd like to know
if anybody else has wandered down this path. What are common failure

modes?

Anything match up with what I describe? Voltages to check would be

helpful.

The 10MHz out looked okay on a scope. Haven't gone further yet. I

suspect

the crystal is fine.

Thanks in advance. Happy hacking!
- Brian

_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.



------------------------------

Message: 5
Date: Tue, 25 Aug 2015 10:53:26 -0700
From: Andrew Symington <andrew.c.syming...@gmail.com>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Subject: Re: [time-nuts] measuring os latency for pps
Message-ID:
<cakc8z5jnp1nzy3p5lymkulnrz9exs4cj+_09nbssq8o8wqp...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Hi Folkert

If you have a board with a hardware timer that supports load/match/compare
then you can schedule an external interrupt to be generated at a
predetermined point in the hardware count. Thus, if you know the transform
between your disciplined clock and the hardware counter of the timer that
drives it, then you should be able to do this. I have spent some time
working with the (pretty neat) timers on board a beaglebone black, and I've
written some code to setup input capture and compare on up to 4 timers:
https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/core/modules/roseline.c?at=master

Cheers
Andrew


On Tue, Aug 25, 2015 at 8:24 AM, folkert <folk...@vanheusden.com> wrote:

Hi,

Not sure if it is interesting for you guys but I wrote a simple program
for e.g. Linux (or any other system with the pps api implemented) that
listens on a pps source waiting for a pulse and then toggles a gpio
pin. That way you can measure the latency introduced by the the kernel
when listening from userspace. Note that there's a little extra latency
due to the gpio-pin handling.

It is on github: https://github.com/flok99/pps2gpio


Folkert van Heusden

--
MultiTail cok yonlu kullanimli bir program, loglari okumak, verilen
kommandolari yerine getirebilen. Filter, renk verme, merge, 'diff-
view', vs.  http://www.vanheusden.com/multitail/
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.



------------------------------

Message: 6
Date: Tue, 25 Aug 2015 11:11:04 -0700
From: "Tom Van Baak" <t...@leapsecond.com>
To: "Discussion of precise time and frequency measurement"
<time-nuts@febo.com>
Subject: Re: [time-nuts] 3 corner hat for phase noise
Message-ID: <2747503EDAA24860875DDC7BD8C87926@pc52>
Content-Type: text/plain; charset="utf-8"

This is from 3hat.c -- C code, but you get the idea:

A[i] = sqrt( (0 + SQUARE(AB[i]) - SQUARE(BC[i]) + SQUARE(AC[i])) / 2.0 ); B[i] = sqrt( (0 + SQUARE(AB[i]) + SQUARE(BC[i]) - SQUARE(AC[i])) / 2.0 ); C[i] = sqrt( (0 - SQUARE(AB[i]) + SQUARE(BC[i]) + SQUARE(AC[i])) / 2.0 );

And watch out for negative square roots.

/tvb

----- Original Message ----- From: "Martyn Smith" <mar...@ptsyst.com>
To: <time-nuts@febo.com>
Sent: Tuesday, August 25, 2015 9:36 AM
Subject: [time-nuts] 3 corner hat for phase noise



Hello,

Does anyone have an EXCEL spreadsheet that calculates the individual phase
noise of 3 oscillators when they are compared against each other, e.g A vs
B, A vs C, B vs C.

I.e the 3 corner hat technique.

I do have a Timepod and I thought Timelab could do that, have haven't found
how to do that.

Regards

Martyn




------------------------------

Message: 7
Date: Tue, 25 Aug 2015 16:38:35 -0400
From: ziggy9+time-n...@pumpkinbrook.com
To: time-nuts@febo.com
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID: <55dcd24b.5080...@pumpkinbrook.com>
Content-Type: text/plain; charset=utf-8

FYI, if you have an FTDI USB/Serial dongle you can use the FTDI FT-Prog
utility to reprogram the chip to invert polarity from normal. I did that
with my 'Arduino' USB/TTL cable in order to talk to an Rb osc. No need to
mess around with additional inverters. You can get the utility from the
support area of their website.

Paul

On 08/25/2015 01:35 PM, Brian M wrote:
The earlier suggestion of a missing inverter seems to be the right thing to
chase this evening. I was able to add an inverter and decode the first few
characters on a scope. I get the expected DC1-CR-P-R-S sequence.

Thanks for the input on this. I'll reply back after I've had more time to
hack at this.

- Brian




------------------------------

Message: 8
Date: Tue, 25 Aug 2015 14:18:03 -0700
From: "John Miles" <j...@miles.io>
To: "'Discussion of precise time and frequency measurement'"
<time-nuts@febo.com>
Subject: Re: [time-nuts] 3 corner hat for phase noise
Message-ID: <007301d0df7b$88f56760$9ae03620$@miles.io>
Content-Type: text/plain; charset="utf-8"

One nice thing about phase noise is that it's computable with complex FFTs, rather than the one-dimensional phase or frequency differences that ADEV uses. Another nice thing is that it's stationary -- meaning its probability distribution can (usually) be treated as unchanging from one measurement to the next. These two properties allow PN measurements to be performed with vector averaging over time, resulting in a single "correct" value at each bin. Unlike a stability measurement, the expectation with PN is that repeated measurements will always yield the same plot.

So you don't need to use statistical hacks like N-corner hats to measure phase noise with a TimePod or other multichannel instrument. Pull the SMA jumpers off of the Ch0 and Ch2 jacks and feed two independent references to them. Over time, the measurement will converge to the phase noise of the source at the REF IN jack, even if it is quieter than either of the two sources at the input jacks.

The TimePod/3120A firmware can't compensate for frequency offsets between Ch0 and Ch2, so the two independent sources need to be very close in frequency and they need to stay that way over the course of the measurement. A pair of good-quality rubidium or GPS clocks can be a good way to go.

-- john, KE5FX
Miles Design LLC


-----Original Message-----
From: time-nuts [mailto:time-nuts-boun...@febo.com] On Behalf Of Tom Van
Baak
Sent: Tuesday, August 25, 2015 11:11 AM
To: Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] 3 corner hat for phase noise

This is from 3hat.c -- C code, but you get the idea:

A[i] = sqrt( (0 + SQUARE(AB[i]) - SQUARE(BC[i]) + SQUARE(AC[i])) / 2.0 ); B[i] = sqrt( (0 + SQUARE(AB[i]) + SQUARE(BC[i]) - SQUARE(AC[i])) / 2.0 ); C[i] = sqrt( (0 - SQUARE(AB[i]) + SQUARE(BC[i]) + SQUARE(AC[i])) / 2.0 );

And watch out for negative square roots.

/tvb

----- Original Message -----
From: "Martyn Smith" <mar...@ptsyst.com>
To: <time-nuts@febo.com>
Sent: Tuesday, August 25, 2015 9:36 AM
Subject: [time-nuts] 3 corner hat for phase noise


>
> Hello,
>
> Does anyone have an EXCEL spreadsheet that calculates the individual > phase > noise of 3 oscillators when they are compared against each other, e.g > A vs
> B, A vs C, B vs C.
>
> I.e the 3 corner hat technique.
>
> I do have a Timepod and I thought Timelab could do that, have haven't > found
> how to do that.
>
> Regards
>
> Martyn



------------------------------

Message: 9
Date: Tue, 25 Aug 2015 14:40:18 -0700
From: "John Miles" <j...@miles.io>
To: "'Discussion of precise time and frequency measurement'"
<time-nuts@febo.com>
Subject: Re: [time-nuts] 3 corner hat for phase noise
Message-ID: <007401d0df7e$a5943010$f0bc9030$@miles.io>
Content-Type: text/plain; charset="utf-8"

Actually, after typing all that, it occurred to me that you might have actually meant to ask about N-cornered stability measurements. They aren't supported by the current official release of TImeLab; you need to use the beta version from http://www.miles.io/timelab/beta.htm .

For instructions, hit 'e' to bring up the Trace Properties dialog box and move your mouse cursor over the 'Source A/Source B' fields. These allow you to add channel labels to existing .tim files. For TimePod acquisitions, it's easier to name the sources at acquisition time. Hover over the 'Ch 0/Ch 1/Ch 2' and 'Stability' fields on the Advanced tab of the acquisition dialog to see how to do that.

Contrary to what the help text says, the TimeLab manual hasn't yet been updated, so the help text is all there is, as far as documentation goes.

-- john, KE5FX
Miles Design LLC

One nice thing about phase noise is that it's computable with complex FFTs,
rather than the one-dimensional phase or frequency differences that ADEV
uses...



------------------------------

Message: 10
Date: Tue, 25 Aug 2015 22:40:04 +0100
From: Iain Young <i...@g7iii.net>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Subject: Re: [time-nuts] measuring os latency for pps
Message-ID: <55dce0b4.7050...@g7iii.net>
Content-Type: text/plain; charset=utf-8; format=flowed

On 25/08/15 18:53, Andrew Symington wrote:

Hi Folkert

If you have a board with a hardware timer that supports load/match/compare
then you can schedule an external interrupt to be generated at a
predetermined point in the hardware count. Thus, if you know the transform
between your disciplined clock and the hardware counter of the timer that
drives it, then you should be able to do this. I have spent some time
working with the (pretty neat) timers on board a beaglebone black, and I've
written some code to setup input capture and compare on up to 4 timers:
https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/core/modules/roseline.c?at=master

Wait...You mean with your driver I essentially have a A->B->C->D TIC ?
_THAT_ I have a use or three for...

Since there is also code out there to drive a BBB from an external
reference via TCLKIN, this gets very interesting.

I might just have to compare your code against my own TIC code using
the PRUSS  (Although that's only a traditional A-B or A-A TIC at the
moment, extending to 3 or 4 inputs would decrease the precision and
accuracy...)

On Tue, Aug 25, 2015 at 8:24 AM, folkert <folk...@vanheusden.com> wrote:

Hi,

Not sure if it is interesting for you guys but I wrote a simple program
for e.g. Linux (or any other system with the pps api implemented) that
listens on a pps source waiting for a pulse and then toggles a gpio
pin. That way you can measure the latency introduced by the the kernel
when listening from userspace. Note that there's a little extra latency
due to the gpio-pin handling.

Oh this might be very interesting, esp with something like the BBB,
which has the excellent counters that Andrew discusses above. Presumably
it is a five minute job to modify your code to do something other than
twiddle a GPIO pin.

It would be very useful to try and characterise that kernel delay. I
will add it to the list of things to try, once I finish moving the time
lab around!


Iain



------------------------------

Message: 11
Date: Tue, 25 Aug 2015 23:59:22 +0200
From: Magnus Danielson <mag...@rubidium.dyndns.org>
To: time-nuts@febo.com
Cc: mag...@rubidium.se
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID: <55dce53a.9060...@rubidium.dyndns.org>
Content-Type: text/plain; charset=utf-8; format=flowed

Hang on a minute, polarity does not switch all of a sudden.

However, a short or a glitch could cause the signal to be garbled such
that we incorrectly interpret it as inverted. It can also be the result
of the signal 0 to 5V being triggered on the 0V line on the wrong transient.

It might be that you have a perfectly good signal, but your RS232 can't
interpret it correctly.

So, check the signal, if it has nice digital shape, check if it is only
a matter of RS232 level error. You might need to convert it using a
level shifter. The RS232 trick being used may not be tolerated by all
RS232 inputs.

Cheers,
Magnus

On 08/25/2015 07:35 PM, Brian M wrote:
The earlier suggestion of a missing inverter seems to be the right thing to
chase this evening. I was able to add an inverter and decode the first few
characters on a scope. I get the expected DC1-CR-P-R-S sequence.

Thanks for the input on this. I'll reply back after I've had more time to
hack at this.

- Brian

On Tuesday, August 25, 2015, Brian Inglis <brian.ing...@systematicsw.ab.ca>
wrote:

Hi,
You have too many 1s in your startup string compared to the expected
"PRS_10\r".
If the MCU clock is not 10Mhz then the integrated UART rates will be off,
which should produce framing errors, but do UARTs still detect and systems
report these nowadays, or just pass along garbled data?
Otherwise, garbled data is most often a result of inadequate pin contact,
if the connectors are not seated properly, or the pins or sockets are loose
in their shells.
Age and rough treatment can have that effect.

"Internal hardware jumpers allow these pins to be configured as analog
outputs
to monitor the lamp intensity and varactor voltage for complete
compatibility
with the FRS."
Have you checked the jumpers in the manual Configuration Notes:
"Pin 4: TXD/PHOTO The default configuration uses this pin as an output for
RS-232 data.
Many system parameters (including the lamp intensity) may be monitored via
the RS-232
interface. The function of this pin may be changed to an analog monitor
for the lamp
intensity by removing one resistor (R347) and installing a 10 kΩ resistor
for another (R348)
on the microcontroller PCB."

On 2015-08-24 22:40, Brian M wrote:

I tried through the weekend, double and triple checking wiring and setup.
I've tried the following methods of getting serial comms working:
PRS10 -> Arduino Uno (with processor bypassed) -> USB Host
PRS10 -> Level Shifter -> BBB UART
PRS10 -> MAX232 -> USB Serial adapter

Shortly after power is applied to the PRS10, I do get a string of
characters. Believe it should be the model information. Instead I get:
wy+VPgy

I guess the good news is that this output appears consistent with each
power cycle of the device. And I'm getting the same results through all
the
hookup methods I've tried.

My minicom settings are for software flow control at 9600 8N1 - from what the manual states, this should be the right settings. I've tried screen as well - and get the same text. I went crazy trying several other rates and
setting combinations. No luck.

Maybe I've missed something obvious.

I agree that getting comms going to the MCU are going to be an important
step. How do people address this type of problem? Scope the serial and try
to decode by hand? The 10Mhz to the MCU looks OK on a scope. Are there
further steps people try after that? If nothing else I think there's some
interesting stuff to learn here. I also wouldn't mind tearing out the
electronics, determining if the lamp is good, and attempt to build from
there. I don't know the datecode for the unit, the PCB is marked with a
datecode suggesting 2003? I don't have the full case. I'm trying to assess what are reasonable next steps. How do I determine if the MCU is healthy?
If the MCU is fried, how do I determine if I just need to squeeze a new
MCU
board in there?

Thanks! I appreciate the input so far!
- Brian

PS - after looking again at the signal on the scope, it does seem like it
is 9600 baud. ~100µS per bit. The data out on the MCU itself looks like
what I saw on the main connector.

On Sat, Aug 22, 2015 at 2:04 PM Mike Cook <michael.c...@sfr.fr> wrote:


Le 22 août 2015 à 03:40, Bob Camp <kb...@n1k.org> a écrit :

Hi

On any microprocessor based gizmo, getting the micro running (again) is
generally priority number one. It sets everything up and gives you the

diagnostic

info you need to go further. Garbled serial is better than none at all.

It suggests

something short of a total MCU death spiral …

Bob

On Aug 21, 2015, at 7:26 PM, Brian M <brayn...@gmail.com> wrote:

Dear list -

I have come into possession of a for parts prs 10. I'd like to try to
repair this device. What I've noticed so far. Serial is garbled. (Even

at

varying baud rates).


   You don’t say how you are connecting to the Rb. The manual states:
"RS-232 data is sent to the host on pin 4, received from the host on pin
7. The baud rate is
fixed at 9600 baud, 8 bits, no parity, with 1 start and 1 stop bit. No
DTR
or CTS controls are
used; rather, the XON/XOFF protocol has been implemented. The transmit
drive level is 0
and 5 V, not the +/-12 V normally associated with RS-232. These levels
are
compatible with
most RS-232 line receivers, but does not require their use (a TTL
inverter
may be used
instead), hence simplifies the interface when used inside an instrument
at
the sacrifice of
degraded noise immunity over long lines."

So make sure that you adhere to that.


Lamp isn't lit.


What’s the date code. Early versions may be reaching EOL, though 20yrs id
quoted.

Doesn't look great. I'd like to know
if anybody else has wandered down this path. What are common failure

modes?

Anything match up with what I describe? Voltages to check would be

helpful.

The 10MHz out looked okay on a scope. Haven't gone further yet. I

suspect

the crystal is fine.

Thanks in advance. Happy hacking!
- Brian

_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.



------------------------------

Message: 12
Date: Tue, 25 Aug 2015 16:01:54 -0700
From: Andrew Symington <andrew.c.syming...@gmail.com>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Subject: Re: [time-nuts] measuring os latency for pps
Message-ID:
<cakc8z5jxuogxhuo-rahohoh6qcqx5pcofff0rt+fwawjls0...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8


Hi Iain


If you have a board with a hardware timer that supports load/match/compare
then you can schedule an external interrupt to be generated at a
predetermined point in the hardware count. Thus, if you know the transform
between your disciplined clock and the hardware counter of the timer that
drives it, then you should be able to do this. I have spent some time
working with the (pretty neat) timers on board a beaglebone black, and
I've
written some code to setup input capture and compare on up to 4 timers:

https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/core/modules/roseline.c?at=master


Wait...You mean with your driver I essentially have a A->B->C->D TIC ?
_THAT_ I have a use or three for...


The one catch is that you can only setup a BeagleBone Black timer to be in
capture mode OR compare mode, not both. So, what I did was to set up two
parallel timers that are driven by the same oscillator (and thus I don't
drift relative to each other). I then perform synchronization against the
first free-running timer. I then bootstrap the second timer with the count
of the first one, which appears to have a fairly deterministic latency of
13 ticks. I can then setup a load/match to cause a rising edge at a very
deterministic point in time. I have sort have named this an IOTIMER.


Since there is also code out there to drive a BBB from an external
reference via TCLKIN, this gets very interesting.


Yes, I have a patch set for the 4.1.3x kernel, which sets up tclkin
(although I haven't tested it since the 3.x kernel branch).
https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/core/4.1.3-rt-roseline/patchset/?at=master

My kernel module is loaded by the device tree as follows. In the snippet
below I setup two IOTIMERS, the first of which (iotimer_a) performs compare
on timer4 and event generation on timer5. The argument "1" says use the
24MHz oscillator to drive both timers -- "0" is for TCLKIN and "2" is for
the 32kHz oscillator. The last parameter describes which edge to capture --
"0" is for rising, "1" is for falling, "2" is for both and "3" is for none.

/ {
roseline {
compatible = "roseline";
status = "okay";
iotimer_a = <&timer4 &timer5 1 0>;
iotimer_b = <&timer6 &timer7 1 0>;
pinctrl-names = "default";
pinctrl-0 = <&timer_pins>;
};
};

Obviously, you'll also need to do the pinmuxes (TLKCIN causes you to lose
HDMI).

/* Timer configuration */
timer_pins: pinmux_timer_pins {
 pinctrl-single,pins = <
0x90  0x22 /* P8.7   MODE2 TIMER4 - 24MHz CAPTURE   */
0x98  0x02 /* P8.10  MODE2 TIMER5 - 24MHz INTERRUPT */
0x9C  0x22 /* P8.9   MODE2 TIMER6 - TCLKIN CAPTURE  */
0x94  0x02 /* P8.8   MODE2 TIMER7 - TCLKIN INTERRUPT */
0x1b4 0x2A /* P9.41A MODE2 TIMER4 TCLKIN */
0x1a8 0x0F /* P9.41B MODE7 TIMER4 INPUT (high-Z, tied to P9.41A) -
conflicts with HDMI */
   >;
};

Once the kernel module is loaded, you can communicate with it from
userspace using ioctl. Simple example:


https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/applications/misc/test_ioctl.c?at=master

I still have to implement polling to notify the userspace of capture
events. Right now you have to keep checking until the sequence number
changes.


I might just have to compare your code against my own TIC code using
the PRUSS  (Although that's only a traditional A-B or A-A TIC at the
moment, extending to 3 or 4 inputs would decrease the precision and
accuracy...)


Please do! And let me know how it performs :) And if you have released your
PRUSS code, please send me a link!



On Tue, Aug 25, 2015 at 8:24 AM, folkert <folk...@vanheusden.com> wrote:

Hi,

Not sure if it is interesting for you guys but I wrote a simple program
for e.g. Linux (or any other system with the pps api implemented) that
listens on a pps source waiting for a pulse and then toggles a gpio
pin. That way you can measure the latency introduced by the the kernel
when listening from userspace. Note that there's a little extra latency
due to the gpio-pin handling.


Oh this might be very interesting, esp with something like the BBB,
which has the excellent counters that Andrew discusses above. Presumably
it is a five minute job to modify your code to do something other than
twiddle a GPIO pin.

It would be very useful to try and characterise that kernel delay. I
will add it to the list of things to try, once I finish moving the time
lab around!


Great -- keep us in the loop!

Cheers
Andrew


------------------------------

Message: 13
Date: Tue, 25 Aug 2015 18:02:42 -0600
From: Brian Inglis <brian.ing...@systematicsw.ab.ca>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID: <55dd0222.9040...@systematicsw.ab.ca>
Content-Type: text/plain; charset=utf-8; format=flowed

Looking at the data expected and received on the wire, there could be an extra inversion after some bits delay until an inverted 1 is detected as a start bit: 00001101 00110000 00110001 01011111 01010011 01010010 01010000 .01_SRP - what you should see on your scope 01111001 01100111 01010000 01010110 00101011 01111001 01110111 ygPV+yw - what you probably see on your scope

You should be able to connect your output data directly into any
current PC serial port as they should both work with 0-5V nowadays.

On 2015-08-25 11:35, Brian M wrote:
The earlier suggestion of a missing inverter seems to be the right thing to chase this evening. I was able to add an inverter and decode the first few characters on a scope. I get the expected DC1-CR-P-R-S sequence.

Thanks for the input on this. I'll reply back after I've had more time to hack at this.

On Tuesday, August 25, 2015, Brian Inglis <brian.ing...@systematicsw.ab.ca <mailto:brian.ing...@systematicsw.ab.ca>> wrote:

You have too many 1s in your startup string compared to the expected "PRS_10\r". If the MCU clock is not 10Mhz then the integrated UART rates will be off, which should produce framing errors, but do UARTs still detect and systems
    report these nowadays, or just pass along garbled data?
Otherwise, garbled data is most often a result of inadequate pin contact, if the connectors are not seated properly, or the pins or sockets are loose
    in their shells.
    Age and rough treatment can have that effect.

"Internal hardware jumpers allow these pins to be configured as analog outputs to monitor the lamp intensity and varactor voltage for complete compatibility
    with the FRS."
    Have you checked the jumpers in the manual Configuration Notes:
"Pin 4: TXD/PHOTO The default configuration uses this pin as an output for RS-232 data. Many system parameters (including the lamp intensity) may be monitored via the RS-232 interface. The function of this pin may be changed to an analog monitor for the lamp intensity by removing one resistor (R347) and installing a 10 kΩ resistor for another (R348)
    on the microcontroller PCB."

    On 2015-08-24 22:40, Brian M wrote:
I tried through the weekend, double and triple checking wiring and setup.
        I've tried the following methods of getting serial comms working:
        PRS10 -> Arduino Uno (with processor bypassed) -> USB Host
        PRS10 -> Level Shifter -> BBB UART
        PRS10 -> MAX232 -> USB Serial adapter

        Shortly after power is applied to the PRS10, I do get a string of
characters. Believe it should be the model information. Instead I get:
        wy+VPgy

I guess the good news is that this output appears consistent with each power cycle of the device. And I'm getting the same results through all the
        hookup methods I've tried.

My minicom settings are for software flow control at 9600 8N1 - from what the manual states, this should be the right settings. I've tried screen as well - and get the same text. I went crazy trying several other rates and
        setting combinations. No luck.

        Maybe I've missed something obvious.

I agree that getting comms going to the MCU are going to be an important step. How do people address this type of problem? Scope the serial and try to decode by hand? The 10Mhz to the MCU looks OK on a scope. Are there further steps people try after that? If nothing else I think there's some interesting stuff to learn here. I also wouldn't mind tearing out the electronics, determining if the lamp is good, and attempt to build from there. I don't know the datecode for the unit, the PCB is marked with a datecode suggesting 2003? I don't have the full case. I'm trying to assess what are reasonable next steps. How do I determine if the MCU is healthy? If the MCU is fried, how do I determine if I just need to squeeze a new MCU
        board in there?

        Thanks! I appreciate the input so far!
        - Brian

PS - after looking again at the signal on the scope, it does seem like it is 9600 baud. ~100µS per bit. The data out on the MCU itself looks like
        what I saw on the main connector.

On Sat, Aug 22, 2015 at 2:04 PM Mike Cook <michael.c...@sfr.fr> wrote:


Le 22 août 2015 à 03:40, Bob Camp <kb...@n1k.org> a écrit :

                Hi

On any microprocessor based gizmo, getting the micro running (again) is generally priority number one. It sets everything up and gives you the

            diagnostic

info you need to go further. Garbled serial is better than none at all.

            It suggests

                something short of a total MCU death spiral …

                Bob

On Aug 21, 2015, at 7:26 PM, Brian M <brayn...@gmail.com> wrote:

                    Dear list -

I have come into possession of a for parts prs 10. I'd like to try to repair this device. What I've noticed so far. Serial is garbled. (Even

            at

                    varying baud rates).


You don’t say how you are connecting to the Rb. The manual states: "RS-232 data is sent to the host on pin 4, received from the host on pin
            7. The baud rate is
fixed at 9600 baud, 8 bits, no parity, with 1 start and 1 stop bit. No DTR
            or CTS controls are
used; rather, the XON/XOFF protocol has been implemented. The transmit
            drive level is 0
and 5 V, not the +/-12 V normally associated with RS-232. These levels are
            compatible with
most RS-232 line receivers, but does not require their use (a TTL inverter
            may be used
instead), hence simplifies the interface when used inside an instrument at
            the sacrifice of
            degraded noise immunity over long lines."

            So make sure that you adhere to that.


                    Lamp isn't lit.


What’s the date code. Early versions may be reaching EOL, though 20yrs id
            quoted.

                    Doesn't look great. I'd like to know
if anybody else has wandered down this path. What are common failure

            modes?

Anything match up with what I describe? Voltages to check would be

            helpful.

The 10MHz out looked okay on a scope. Haven't gone further yet. I

            suspect

                    the crystal is fine.

                    Thanks in advance. Happy hacking!


------------------------------

Message: 14
Date: Tue, 25 Aug 2015 17:04:21 -0700
From: Chris Albertson <albertson.ch...@gmail.com>
To: andrew.c.syming...@gmail.com,  Discussion of precise time and
frequency measurement <time-nuts@febo.com>
Subject: Re: [time-nuts] measuring os latency for pps
Message-ID:
<cabbxvhtxiyyxwb4l3d97cya7nmopc-bv3ja6jv7koa-7wkn...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

What are you measuring?  Seriously.  What is it you need to know, is it?

1) The time between the raising edge of the PPS and when the OS samples the time

2) The time it takes between the PPS edge and when a user land process
is notified.

There are other things you can measure but if you want to see #1 above
you can't use a TIC.  And you can't have the user space process set s
GPIO bit.   The reason is that the PPS interrupt handler dramatically
shortens the time removing ALL of the kernel process or latency.
Look at the interrupt code.  The clock is sampled there.  The edge
triggers the interrupt then while inside the handler the internal
clock is sampled and stored and a flag is set to indicate the PPS was
received.  Som tie MUCH later the flag is checked and the user-land
process is told the PPS has detected   The delay does not matter
because the clock was sampled with very low latency even if the user
process was not notified right away.

I think the details are platform dependent, hardware on a PC is not
the same as a Raspberry Pi.  So you need to look at the source.

On Tue, Aug 25, 2015 at 10:53 AM, Andrew Symington
<andrew.c.syming...@gmail.com> wrote:
Hi Folkert

If you have a board with a hardware timer that supports load/match/compare
then you can schedule an external interrupt to be generated at a
predetermined point in the hardware count. Thus, if you know the transform
between your disciplined clock and the hardware counter of the timer that
drives it, then you should be able to do this. I have spent some time
working with the (pretty neat) timers on board a beaglebone black, and I've
written some code to setup input capture and compare on up to 4 timers:
https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/core/modules/roseline.c?at=master

Cheers
Andrew


On Tue, Aug 25, 2015 at 8:24 AM, folkert <folk...@vanheusden.com> wrote:

Hi,

Not sure if it is interesting for you guys but I wrote a simple program
for e.g. Linux (or any other system with the pps api implemented) that
listens on a pps source waiting for a pulse and then toggles a gpio
pin. That way you can measure the latency introduced by the the kernel
when listening from userspace. Note that there's a little extra latency
due to the gpio-pin handling.

It is on github: https://github.com/flok99/pps2gpio


Folkert van Heusden

--
MultiTail cok yonlu kullanimli bir program, loglari okumak, verilen
kommandolari yerine getirebilen. Filter, renk verme, merge, 'diff-
view', vs.  http://www.vanheusden.com/multitail/
----------------------------------------------------------------------
Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.



--

Chris Albertson
Redondo Beach, California


------------------------------

Message: 15
Date: Tue, 25 Aug 2015 17:36:26 -0700
From: Hal Murray <hmur...@megapathdsl.net>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Cc: hmur...@megapathdsl.net, mag...@rubidium.se
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID:
<20150826003626.9862d406...@ip-64-139-1-69.sjc.megapath.net>
Content-Type: text/plain; charset=us-ascii

Hang on a minute, polarity does not switch all of a sudden.

The standard RS-232 interface chips include an inverter.  The normal output
from serial pins on microprocessors or PCI/USB serial chips expects that
inversion.

For short runs where you are designing both ends, it's common to skip the
RS-232 drivers.

So if you are trying to talk to something like a GPSDO board without the
typical 9 pin serial connector, there is a reasonable chance you may need to
add an inverter.  (or maybe a real RS-232 interface chip)

--------

It's also possible to cheat on the RS-232 interface ship.  A TTL/CMOS driver
will work with most RS-232 receivers and a resistor with maybe a pair of
diodes will protect a CMOS receiver from RS-232 levels.  If you are doing
that, you need an inverter in there someplace.  With a microprocessor, the
inverter is often available (for free) in the pad driver.


--
These are my opinions.  I hate spam.





------------------------------

Message: 16
Date: Wed, 26 Aug 2015 04:28:34 +0000
From: Brian M <brayn...@gmail.com>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Subject: Re: [time-nuts] SRS PRS10 repair
Message-ID:
<cac+fx12-yqlu9ynazqyvwksbdmjjzrhj_-lwv_zzbjmneub...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Hi -

So I took the time tonight to poke at things with the scope. Hopefully it
will be of interest.

First off, I probed the MCU (MC68HC11) TX line directly. And, it looks like
I misstated in my last mail. The MCU itself is 5V TX idle TTL Serial. On
the unit's output, it is inverted and 0V idle. Not sure why that's the
case...

That said, I have lashed up some simple NPN inverters which are also
level-shifting to a BBB UART. And with that I've got serial comms
established. I get the power-on message and response from "ID ?" is "
PRS10_3.24_SN_[....]"

Thanks again to all for their input. Always more to learn =)

- Brian




On Tue, Aug 25, 2015 at 7:50 PM Hal Murray <hmur...@megapathdsl.net> wrote:

> Hang on a minute, polarity does not switch all of a sudden.

The standard RS-232 interface chips include an inverter. The normal output
from serial pins on microprocessors or PCI/USB serial chips expects that
inversion.

For short runs where you are designing both ends, it's common to skip the
RS-232 drivers.

So if you are trying to talk to something like a GPSDO board without the
typical 9 pin serial connector, there is a reasonable chance you may need
to
add an inverter.  (or maybe a real RS-232 interface chip)

--------

It's also possible to cheat on the RS-232 interface ship.  A TTL/CMOS
driver
will work with most RS-232 receivers and a resistor with maybe a pair of
diodes will protect a CMOS receiver from RS-232 levels.  If you are doing
that, you need an inverter in there someplace.  With a microprocessor, the
inverter is often available (for free) in the pad driver.


--
These are my opinions.  I hate spam.



_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.



------------------------------

Message: 17
Date: Wed, 26 Aug 2015 10:42:10 +0300
From: Anders Wallin <anders.e.e.wal...@gmail.com>
To: Discussion of precise time and frequency measurement
<time-nuts@febo.com>
Subject: Re: [time-nuts] measuring os latency for pps
Message-ID:
<capnvnrw1+afcyoi3o2gdd7mvjfc6yw78t77uwr5md0ogpro...@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Back in 2012 while playing with LinuxCNC, a program for real-time control
of CNC machines, I made a few graphs on the real-time vs. normal kernel
performance:
http://www.anderswallin.net/?s=latency
These are purely software generated and measured events (i.e. we set a
thread to run at 1 ms intervals and in software measure when it actually
runs).

It would be interesting to hear what (if any?) real-time kernels are used
on NTP servers and if that is one way to measure/generate 1PPS input/output.

Anders


On Wed, Aug 26, 2015 at 3:04 AM, Chris Albertson <albertson.ch...@gmail.com>
wrote:

What are you measuring?  Seriously.  What is it you need to know, is it?

1) The time between the raising edge of the PPS and when the OS samples
the time

2) The time it takes between the PPS edge and when a user land process
is notified.

There are other things you can measure but if you want to see #1 above
you can't use a TIC.  And you can't have the user space process set s
GPIO bit.   The reason is that the PPS interrupt handler dramatically
shortens the time removing ALL of the kernel process or latency.
Look at the interrupt code.  The clock is sampled there.  The edge
triggers the interrupt then while inside the handler the internal
clock is sampled and stored and a flag is set to indicate the PPS was
received.  Som tie MUCH later the flag is checked and the user-land
process is told the PPS has detected   The delay does not matter
because the clock was sampled with very low latency even if the user
process was not notified right away.

I think the details are platform dependent, hardware on a PC is not
the same as a Raspberry Pi.  So you need to look at the source.

On Tue, Aug 25, 2015 at 10:53 AM, Andrew Symington
<andrew.c.syming...@gmail.com> wrote:
> Hi Folkert
>
> If you have a board with a hardware timer that supports
load/match/compare
> then you can schedule an external interrupt to be generated at a
> predetermined point in the hardware count. Thus, if you know the
transform
> between your disciplined clock and the hardware counter of the timer > that
> drives it, then you should be able to do this. I have spent some time
> working with the (pretty neat) timers on board a beaglebone black, and
I've
> written some code to setup input capture and compare on up to 4 timers:
>
https://bitbucket.org/rose-line/roseline/src/35d551bf29e4bfec80f8ba667b199c8aa333b87f/core/modules/roseline.c?at=master
>
> Cheers
> Andrew
>
>
> On Tue, Aug 25, 2015 at 8:24 AM, folkert <folk...@vanheusden.com> wrote:
>
>> Hi,
>>
>> Not sure if it is interesting for you guys but I wrote a simple program
>> for e.g. Linux (or any other system with the pps api implemented) that
>> listens on a pps source waiting for a pulse and then toggles a gpio
>> pin. That way you can measure the latency introduced by the the kernel
>> when listening from userspace. Note that there's a little extra latency
>> due to the gpio-pin handling.
>>
>> It is on github: https://github.com/flok99/pps2gpio
>>
>>
>> Folkert van Heusden
>>
>> --
>> MultiTail cok yonlu kullanimli bir program, loglari okumak, verilen
>> kommandolari yerine getirebilen. Filter, renk verme, merge, 'diff-
>> view', vs.  http://www.vanheusden.com/multitail/
>> ----------------------------------------------------------------------
>> Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com
>> _______________________________________________
>> time-nuts mailing list -- time-nuts@febo.com
>> To unsubscribe, go to
>> https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
>> and follow the instructions there.
>>
> _______________________________________________
> time-nuts mailing list -- time-nuts@febo.com
> To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
> and follow the instructions there.



--

Chris Albertson
Redondo Beach, California
_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.



------------------------------

Subject: Digest Footer

_______________________________________________
time-nuts mailing list
time-nuts@febo.com
https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts

------------------------------

End of time-nuts Digest, Vol 133, Issue 40
******************************************


_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to