time-nuts@lists.febo.com

Discussion of precise time and frequency measurement

View all threads

Re: [time-nuts] How to properly characterize 32kHz oscillators manually and with a microcontroller?

HM
Hal Murray
Tue, Jun 28, 2016 7:48 PM

I have seen those, but I have little experience with PICs and the Wife
Acceptance Factor of buying more stuff for a one-off measurement is low.

The PIC family is very similar to AVRs.  The picPET and friends are 8 pin
DIPs so the Wife is unlikely to notice the additional clutter.

The PPS input on a PC may be be useful.

Indeed. I normally use it for NTP.

Than you want a second serial port for things like this.

Or maybe you can use the parallel port if your system is old enough to have
one.  I haven't tried it, but I think Linux has a module that supports it.

--
These are my opinions.  I hate spam.

pete@heypete.com said: > I have seen those, but I have little experience with PICs and the Wife > Acceptance Factor of buying more stuff for a one-off measurement is low. The PIC family is very similar to AVRs. The picPET and friends are 8 pin DIPs so the Wife is unlikely to notice the additional clutter. >> The PPS input on a PC may be be useful. > Indeed. I normally use it for NTP. Than you want a second serial port for things like this. Or maybe you can use the parallel port if your system is old enough to have one. I haven't tried it, but I think Linux has a module that supports it. -- These are my opinions. I hate spam.
SS
Scott Stobbe
Wed, Jun 29, 2016 4:49 AM

For pulse counting, the timer hardware is the way to go. Setup a 16-bit
timer clocked off your DUT. Then input capture on your PPS edge. This
leaves you plenty of processor time for string formatting and other tasks
you may wish to perform.

If you do the decimation as post-processing on your PC (i.e. log cycle
count every PPS), you can use a zero-phase moving average filter, which may
provide more visual insight over just a single data point every 1000s.

On Tue, Jun 28, 2016 at 3:48 PM, Hal Murray hmurray@megapathdsl.net wrote:

I have seen those, but I have little experience with PICs and the Wife
Acceptance Factor of buying more stuff for a one-off measurement is low.

The PIC family is very similar to AVRs.  The picPET and friends are 8 pin
DIPs so the Wife is unlikely to notice the additional clutter.

The PPS input on a PC may be be useful.

Indeed. I normally use it for NTP.

Than you want a second serial port for things like this.

Or maybe you can use the parallel port if your system is old enough to have
one.  I haven't tried it, but I think Linux has a module that supports it.

--
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.

For pulse counting, the timer hardware is the way to go. Setup a 16-bit timer clocked off your DUT. Then input capture on your PPS edge. This leaves you plenty of processor time for string formatting and other tasks you may wish to perform. If you do the decimation as post-processing on your PC (i.e. log cycle count every PPS), you can use a zero-phase moving average filter, which may provide more visual insight over just a single data point every 1000s. On Tue, Jun 28, 2016 at 3:48 PM, Hal Murray <hmurray@megapathdsl.net> wrote: > > pete@heypete.com said: > > I have seen those, but I have little experience with PICs and the Wife > > Acceptance Factor of buying more stuff for a one-off measurement is low. > > The PIC family is very similar to AVRs. The picPET and friends are 8 pin > DIPs so the Wife is unlikely to notice the additional clutter. > > > >> The PPS input on a PC may be be useful. > > Indeed. I normally use it for NTP. > > Than you want a second serial port for things like this. > > Or maybe you can use the parallel port if your system is old enough to have > one. I haven't tried it, but I think Linux has a module that supports it. > > > > -- > 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. >
PS
Pete Stephenson
Mon, Jul 4, 2016 8:25 AM

I ended up doing just this and it worked out nicely. Using the timer
hardware as a counter freed up the CPU for other tasks and could run
in the background so I wouldn't miss any ticks. It turns out that
using the built-in timer hardware was a lot easier than using external
"jellybean" logic to accomplish the same thing, even if it took a bit
of reading to better understand it.

I whipped up a quick-and-dirty Arduino sketch that I've made available
at https://github.com/heypete/Frequency_Counter_32kHz/ for anyone
who's interested.

I make no claims to its quality, but I've tested it with runs from 10
seconds to 20,000 seconds and it seems to produce the expected results
on both a standard Arduino Uno and a bare 16MHz ATmega328P. Any
suggestions or improvements would be welcome.

Also, thanks to everyone for your assistance. It was a fun learning
experience and excursion outside the standard Arduino commands into
the mysterious depths of the datasheet and hardware registers.

Cheers!
-Pete

On Wed, Jun 29, 2016 at 6:49 AM, Scott Stobbe scott.j.stobbe@gmail.com wrote:

For pulse counting, the timer hardware is the way to go. Setup a 16-bit
timer clocked off your DUT. Then input capture on your PPS edge. This
leaves you plenty of processor time for string formatting and other tasks
you may wish to perform.

If you do the decimation as post-processing on your PC (i.e. log cycle
count every PPS), you can use a zero-phase moving average filter, which may
provide more visual insight over just a single data point every 1000s.

On Tue, Jun 28, 2016 at 3:48 PM, Hal Murray hmurray@megapathdsl.net wrote:

I have seen those, but I have little experience with PICs and the Wife
Acceptance Factor of buying more stuff for a one-off measurement is low.

The PIC family is very similar to AVRs.  The picPET and friends are 8 pin
DIPs so the Wife is unlikely to notice the additional clutter.

The PPS input on a PC may be be useful.

Indeed. I normally use it for NTP.

Than you want a second serial port for things like this.

Or maybe you can use the parallel port if your system is old enough to have
one.  I haven't tried it, but I think Linux has a module that supports it.

--
Pete Stephenson

I ended up doing just this and it worked out nicely. Using the timer hardware as a counter freed up the CPU for other tasks and could run in the background so I wouldn't miss any ticks. It turns out that using the built-in timer hardware was a lot easier than using external "jellybean" logic to accomplish the same thing, even if it took a bit of reading to better understand it. I whipped up a quick-and-dirty Arduino sketch that I've made available at https://github.com/heypete/Frequency_Counter_32kHz/ for anyone who's interested. I make no claims to its quality, but I've tested it with runs from 10 seconds to 20,000 seconds and it seems to produce the expected results on both a standard Arduino Uno and a bare 16MHz ATmega328P. Any suggestions or improvements would be welcome. Also, thanks to everyone for your assistance. It was a fun learning experience and excursion outside the standard Arduino commands into the mysterious depths of the datasheet and hardware registers. Cheers! -Pete On Wed, Jun 29, 2016 at 6:49 AM, Scott Stobbe <scott.j.stobbe@gmail.com> wrote: > For pulse counting, the timer hardware is the way to go. Setup a 16-bit > timer clocked off your DUT. Then input capture on your PPS edge. This > leaves you plenty of processor time for string formatting and other tasks > you may wish to perform. > > If you do the decimation as post-processing on your PC (i.e. log cycle > count every PPS), you can use a zero-phase moving average filter, which may > provide more visual insight over just a single data point every 1000s. > > On Tue, Jun 28, 2016 at 3:48 PM, Hal Murray <hmurray@megapathdsl.net> wrote: > >> >> pete@heypete.com said: >> > I have seen those, but I have little experience with PICs and the Wife >> > Acceptance Factor of buying more stuff for a one-off measurement is low. >> >> The PIC family is very similar to AVRs. The picPET and friends are 8 pin >> DIPs so the Wife is unlikely to notice the additional clutter. >> >> >> >> The PPS input on a PC may be be useful. >> > Indeed. I normally use it for NTP. >> >> Than you want a second serial port for things like this. >> >> Or maybe you can use the parallel port if your system is old enough to have >> one. I haven't tried it, but I think Linux has a module that supports it. -- Pete Stephenson