Timestamping/Time Interval

Counters with resolution below 1 nanosecond are difficult. They require either outrageous clock speeds, or interpolators that are typically a bunch of analog components mixed with black magic and stirred by frequent calibration. The very best single-shot resolution that's been commercially available is 20 picoseconds in the current-production Keysight 53230A (reports say it's actually more like 13 ps), or the old HP 5370A/B. My 5370B has an one-second noise ADEV of about 4x10e-11.

The only time-nuts-designed time interval counters that have been made available are TVB's picPET which is limited by its clock speed to a few hundred nanosecond resolution, but couldn't be simpler or cheaper; and Richard McCorkle's PICTIC II, which has a theoretical resolution as low as 250ps, though it appears the effective resolution is more like 600ps -- which is still nothing to sneeze at. However, the PICTIC has a few operational limitations and requires analog calibration. When I looked at building one in early 2016, I also discovered that the price of the parts has gone a bit past the $50 estimate.

In September, 2015, I announced an automated RF switch project using an Arduino as the controller (the TASS) and in response, a time-nuts mailing list member threw down the gauntlet: "The first person to put a sub-ns PICTIC II on a shield gets a special prize." I filed that in the back of my mind, and a few months later read about chip from Texas Instruments that was supposed to have picosecond-level resolution, and do it all without any analog bits.

So, with the help of some very talented friends I started designing a counter around the TI TDC7200 chip. It turns out the chip does have great single-shot resolution (less than 60 picoseconds) and low jitter (70 picoseconds or better). But it was designed for a specific use and as a result had limitations for test and measurement applications. Overcoming them required head-scratching and quite a bit of external circuitry and control software. The TICC (which might stand for "Totally Integrated Cycle Counter," or maybe "Totally Insane Construction Concept") was the result. As with just about everything I do, it will end up as a low-cost product from TAPR.

Click for larger version

The TICC is a two-channel timestamping counter with less than 100 picosecond jitter and the ability to do very long term measurements. It consists of a "shield" that mounts on an Arduino Mega 2560 microcontroller, and Arduino software that controls the shield. Data is output to a host computer in ASCII format over the Arduino USB connection. It requires no calibration and in fact has no trimmers to adjust -- it's a purely digital system.

Measurement modes include timestamp, time interval, and period. Data can be captured in the host computer with a simple serial comms program, and the popular TimeLab software can input TICC data in real time.

The TICC is designed to measure pulse-per-second and similar signals. It can currently make about 100 total measurements per second. We hope with optimization to increase that significantly. Each of the two input channels accepts pulses from 2V - 5V and triggers on the leading edge. The TICC requires an external 10 MHz reference clock. It is powered via the Arduino USB connector, so no external supply is required.

Here is a data plot showing the results (in TimeLab) of two TICCs each measuring two PPS devices against a 10 MHz reference for more than 17 days. Each data set consists of more than 1.5 million measurements, and none of the four measurements exhibited any "outliers" of greater than 500 picoseconds from their expected value. The plot also includes two shorter runs showing the device's noise floor under one set of operating conditions. The raw data is available here for anyone who would like to analyze it themselves.

Click for larger version

I'm still working on documentation for the TICC. For now, here are:

DCC 2016 Presentation
TICC Operation Manual (housed at github)

The software for the TICC is open source, under the BSD license. It is available, along with a lot of supporting material like datasheets for many of the chips used in the design, at At this writing (20 November 2016) the code is at version 1.0 and works reliably, but has minor bugs and is pretty ugly. Work continues on it.