Hi There are a number of us on the list who code on ARM MCU’s. Doing the same thing on one of them is *not* a trivial undertaking. Making sure that it does what it should simply is not worth the effort. The PIC 12 is a low cost solution and has been extensively tested to show that it does what it should under a range of conditions ….
Bob > On Nov 17, 2016, at 4:26 PM, Bryan _ <bpl...@outlook.com> wrote: > > Tom: > > > As you were gracious to release the source code for these excellent little > dividers, I would suspect someone who is somewhat fluent in assembly could > just modify so it counts a specific number of pulses and then toggles a > output off. The ARM could be used to restart etc. Although I think the OP > wanted to know the time taken between a run of a number of cycles. > > > Been playing around with the PD15 to replace 2 -14 pin clock dividers and it > seems to work like a charm, although I can't seem to find any information if > the inputs on a 12F675 are Schmitt trigger inputs. Can't seem to find > anything in the datasheet. > > > -=Bryan=- > > > ________________________________ > From: time-nuts <time-nuts-boun...@febo.com> on behalf of Tom Van Baak > <t...@leapsecond.com> > Sent: November 16, 2016 3:27 PM > To: Discussion of precise time and frequency measurement > Subject: Re: [time-nuts] precision timing pulse > > Chris & Chris, > > Yes the "TVB dividers" are instruction loops where every cycle is counted by > hand, and then verified with a simulator, and then checked with a time > interval counter. All the code is out there at > www.leapsecond.com/pic/<http://www.leapsecond.com/pic/> > > > I use PIC's for historical and technical reasons. Modern CPU's and MCU's have > so many layers of optimization that they are no longer deterministic at the > cycle level. This makes them worthless for precise time applications. In > addition many of them use clock edge or PLL tricks to increase speed, but > this introduces jitter. Or they enable interrupts which kills precise timing. > The PIC's are old-school, fully synchronous and use only one clock edge so > the jitter is down at the picosecond level. My code is isochronous and > doesn't use interrupts for timing. It acts like a poor man's FPGA. > > Arduino probably uses compiled code, external libraries, and interrupts so > that also is a no-no for precise time. I'm not sure about bare metal AVR. I > hope someone can do measurements on an AVR divider one day so we can compare > PIC and AVR jitter. I worry about how AVR implements the clock. So this is an > open question. But I know how PIC's work so that's what I use. BTW, these are > "ancient" PIC 12F parts. It's possible modern 16- and 32-bit PIC's also go to > the dark side and optimize for performance rather than picosecond > determinism. Another open question. > > Realize that using a MCU for a frequency divider is a weird niche use of the > chip, so none of what I say applies if you plan to use any of these as a > general purpose computing system. > > Also, we don't know if OP is looking for microsecond, nanosecond, or > picosecond precision in his timing pulses. > > /tvb > > Chris Albertson: >> I'm wondering why everyone seems to be assuming a PIC is the right >> processor. Of course it could work for this but I'd select whatever is >> the easiest to program and debug. Those tend to the they little single >> board development systems that sell for under $10. They typically have USB >> connections to a computer and don't require any specialized equipment to >> program. The Arduino is the prime example of these although I've moved to >> ARM based uP because they can be less expensive with an order of magnitude >> better performance and can use the same Arduino IDE and run Arduino >> sketches. The PIC is not so beginner friendly and requires some study >> before it can be used. But if you as said of course a PIC could work, >> this is a pretty simple application > > Chris Caudle: >> You could use AVR (arduino), but once you get to most of the ARM >> processors it is harder to make them deterministic because of caches. You >> want a processor where the number of clocks is constant for all or almost >> all instructions, and is easy enough that you can code the loops by hand. >> Code like TVB's divider probably doesn't even use interrupts, it's just a >> tight loop where the number of instructions is counted to give the >> behavior wanted. > > _______________________________________________ > time-nuts mailing list -- time-nuts@febo.com > To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts > time-nuts Info Page - American Febo > Enterprises<https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts> > www.febo.com > time-nuts is a low volume, high SNR list for the discussion of precise time > and frequency measurement and related topics. To see the collection of prior > postings to ... > > > > 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. _______________________________________________ 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.