Check out the new USENIX Web site.

Differential Frequency Error and the Crystal Compensated
Crystal Based Timer (XCXT)

Figure 2: Block diagram of the Smart Timer Unit. The XCXT uses two Crystal Oscillators (Y1 and Y2) to achieve high accuracy and fine granularity, whereas the STU uses a 32kHz clock to keep time during sleep periods.
\includegraphics[width=0.10\textwidth]{figures/stu_diagram}

We introduced differential frequency error and the XCXT in [8,9]. For completeness, we will summarize these works here. Every crystal oscillator has a unique frequency error versus temperature curve that depends strongly upon the specifics of its manufacture (e.g. the cut angle of its crystal blank). The greater the difference between the cut angles of two different crystals, the greater the difference in their behavior with respect to temperature will appear to be. Manufacturers necessarily control the cut angle variance as much as possible to minimize product performance variation. In general, that angle can be controlled to a precision of up to 1'.

Differential frequency error exploits the fact that we may choose to operate two crystals, with different cut angles (from implicit manufacturing - variance, or by design -AT-cut vs. tuning fork vs. SC-cut, etc.), simultaneously. If designed properly, the differential behavior of the two oscillators with respect to temperature will allow the temperature and the freqeuncy offset to be precisely determined.

More specifically, during manufacturing, one of the individual crystals ($f_1$, $f_2$) of the XCXT is calibrated against a reference frequency source at different temperatures resulting in frequency error curve $f_1(T)$. Then the differential frequency error term

\begin{displaymath}\delta f_{12}(T) = \delta f_1(T) - \delta f_2(T)\end{displaymath}

is calibrated over temperature. If T vs $\delta f_{12}$ is a bijection, then we know that there exists a unique mapping from differential frequency error to temperature, and thus we can construct a

\begin{displaymath}\delta f_{12} \rightarrow \delta f_{1}\end{displaymath}

lookup table or calibration curve.

At runtime, the XCXT measures $\delta f_{12}$ and can thus estimate $\delta f_1$ using its predetermined calibration curve. Compensating by this amount, we can achieve the same stability as the factory reference. Our initial prototype was based on a popular sensor network platform, the TMote Sky[7] which has, at its core, a TI MSP430F1611 MCU. The prototype consumed a total of 1.4mW on average, from which about 1.2mW came from the power consumption of the counters and the crystals alone [9].

Already a 5x improvement over alternative commercially available temperature compensated oscillators in the same frequency range, it still was insufficient to reach the realm of sensor network sleep powers (tens of $\mu W$). Because the timers and oscillators are an integral part of the XCXT, lowering their power consumption was not possible.

In this work we propose the Smart Timer Unit (STU), a new system and algorithmic approach which proffers further dramatic power reduction beyond prior XCXT achievements. The remainder of this paper describes the architecture of the STU and its design process.

Thomas Schmid 2008-11-14