How to kick-start a crystal oscillator


Figure 1: Finesse cuts start from 2.66ms for no extra power

Figure 1: Finesse cuts start from 2.66ms for no extra power

Starting a crystal oscillator fast in an IoT node is an art: the high Q needed for stability means they take milliseconds to get going, just to transmit a 128μs Bluetooth LE packet, and power is at a premium. A team from the Holst Centre in Eindhoven and Imec in Leuven can get a 24MHz crystal going in 200µs, for less than 40nJ.

Described in ISSCC 2017 Paper 5.3, the technique involves rapid and delicate adjustment of oscillator load capacitance to coax the crystal into life.

The mechanical resonating parts of a crystal look like LCR series combination, plus an overall parallel parasitic capacitance. For frequency stability, at the expense of prolonged start-up, this parasitic capacitor needs to be augmented with a load capacitor. Gain connected across this causes oscillation, and bumping up gain speeds, at the expense of too much power.

The Holst/Imec technique is to remove the load capacitance, giving a fast start, and then add it back in a subtle way that neither bogs-down oscillation nor bounces the frequency around.

A finite state machine (FSM) controls capacitance, and is only clocked when the oscillator is strong enough to feed it – decided by an amplitude detector and a digital circuit which “ensures that clock quality is sufficient”, said the paper.

The FSM generates a 6-bit tuning code for the load capacitor banks, which are thermometer-encoded to avoid capacitance glitches. “The proposed method is relatively insensitive to the value of load capacitor in comparison to prior techniques, which allows a larger capacitance to be employed to improve the tolerance to the parasitics changes,” according to the paper.

Frequency only deviates a few ppm during start-up and settles to <7ppm.

Ona 90nm chip, the whole thing occupies 0.072mm2, of which 84% is capacitors and 10% is the start-up circuit. At 1V, consumption is 95μW once the oscillator is running.

Start-up is 2.66ms with no assistance, 375μs operating as above, and 200µs with an extra 146μW kick. Stability is sufficient for clocking local logic at half these times.



Source link

Leave a Reply