[time-nuts] 5 MHZ PIC PPS Divider?

Stanley Reynolds stanley_reynolds at yahoo.com
Wed Apr 16 15:59:06 EDT 2008

The two ways I hoped to get around the counter ripple was to measure every other set of PPS with the counter stopped in between. Or two counters running in opposite seconds, one running while the other is stopped.

Due to my error not everyone received all the discussion, my email reply puts the list address or the person who wrote the reply on a random basis.

----- Original Message ----
From: Hal Murray <hmurray at megapathdsl.net>
To: Discussion of precise time and frequency measurement <time-nuts at febo.com>
Sent: Wednesday, April 16, 2008 1:15:53 PM
Subject: Re: [time-nuts] 5 MHZ PIC PPS Divider?

> The ECL part you've selected seems to simplify interfacing with its
> synchronous enables.

I think you are missing the decimal point.

A synchronous enable will have setup/hold times.  They will (generally) be 
less than the cycle time (1 ns).  You aren't going to get that level of 
timing accuracy out of a PIC.

You will have to include a (small?) cloud of high speed logic around the 
basic counter chip to make it work right.

If you want to use ECL counters, my straw man would be
  a free running counter
  a register to grab a copy of the counter
  logic to load the register on the rising edge of the PPS
    and generate a data-ready signal for the PIC

That lets you grab the counter once each second.  Subtract the previous value 
to get the number of ticks in this second.

Make the counter wide enough so you can figure out the high bits.  Or feed 
the top bit to a counter/timer in the PIC.  Or use it for the PIC's clock.

If you like ECL, here is another approach:
  Start with a shift register runing at 1 GHz
  Add a holding register that grabs a copy of the shift register every N 
  The holding register goes into an FPGA that runs at 1/N GHz

You have to make 2 clocks, and you have to make sure that the holding 
register meets setup time at the FPGA.  That determines how big you have to 
make N.

The FPGA would look for rising edges.  If not, it bumps a counter by N.  If 
it finds one (maybe by table lookup), it adds N-x to the counter, copies the 
counter to a holding register, and reloads the counter to x.  Pipeline as 

Some FPGAs have high speed serial links.  The contain a PLL and a big shift 
register and lots of logic to do 8B/10B decoding and recognize sync patterns 
and ...  There is usually an option to disable that logic.  So you could do 
everything in the FPGA.  Unfortunately, they tend to be the (very) expensive 

These are my opinions, not necessarily my employer's.  I hate spam.

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

Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

More information about the time-nuts mailing list