Open just about any electronic gadget these days, and you will find a crystal oscillator driving a microcontroller, providing a timebase or clocking any number of discrete time circuits. Crystal oscillators provide a reasonably priced, and highly stable time base. They are relatively easy to use, and are available in increasingly smaller packages. Thus, the venerable crystal oscillator has become the defacto timebase solution. Designers often do not even consider asking if it is the best solution to a problem, when, in fact, crystal oscillators are not without their drawbacks. They can be power hungry, inflexible, board space hogging, and above all, shock sensitive components.
Enter the LTC6903 and LTC6904. These programmable oscillators provide a smaller, more reliable and vastly more versatile clocking solution. In a small MS8 package, the LTC6903 and LTC6904 use less board space than almost all crystal oscillators. Whereas crystal oscillators contain a quartz crystal and are sensitive to mechanical shock, the LTC6903 and LTC6904 are a fully electronic devices, and relatively insensitive to vibration and mechanical shock. While crystal oscillators output a set frequency, the LTC6903 and LTC6904 are fully programmable between 1kHz and 68MHz. The frequency is set by a 16-bit control word via a serial port and is typically accurate to within 1.1%, with a resolution of 0.1% or better.
The LTC6903 and LTC6904 are resistor controlled oscillators, similar to the popular LTC1799. These new oscillators offer an integrated serial resistor DAC and a set of digital frequency dividers, as shown in Figure 1.
The LTC6903 takes commands via an SPI-compatible 3-wire serial port, and the LTC6904 communicates through an I2C-compatible 2-wire serial port. The serial port bit maps are shown in Figure 2. Ten DAC bits control the resistor DAC, four OCT bits control the output dividers, and 2 MODE bits control the outputs. The LTC6904 can respond to one of two different serial port addresses (set by the state its ADR pin).
The resistor DAC ranges linearly in value from R to 2R, where R is trimmed Digital Programmable Oscillator Is Smaller, Sturdier and More Versatile than Crystal Oscillators to give the oscillator a frequency range of 34MHz to 68MHz:
The oscillator frequency is inversely proportional to the resistance of the DAC. At frequencies just above 34MHz, the step size is 16.6kHz. At frequencies immediately below 68MHz, the step size is 66.4kHz. The step size ranges between 0.05% and 0.1% of the frequency. The output frequency divider divides the internal oscillator frequency by 2N, where N ranges from 0 to 15. N is calculated from the OCT bits of the control word, and is simply the complement of those bits. Higher values of N (lower values of OCT) yield lower output frequencies. The combination of the OCT and DAC bits into a single 14-bit control word provides a simple and consistent interface where higher control codes always result in higher frequencies. Across all control codes, the LTC6903/LTC6904 is guaranteed to be completely monotonic.
The output pins are controlled by the output control bits MODE1 and MODE0. Either of the outputs can be disabled through these bits. When both outputs are disabled through the mode control bits, the internal oscillator is also disabled. The OE pin can also be used to asynchronously disable either output without shutting down the oscillator entirely.
A Minimal Circuit
The LTC6903 and LTC6904 require no external components other than a small power supply bypass capacitor. For best performance, this capacitor should have low series resistance and be mounted directly adjacent to the power supply pins. The minimal circuit shown in Figure 3 results in an oscillator frequency of 1.039kHz upon power-up. The LTC6903/LTC6904 incorporates power on reset circuitry which sets the control code to all zeros when power is first applied. Other frequencies may be set through the serial port.
Calculating the Frequency Code
In order to set a frequency, an OCT code and a DAC code must be calculated. The OCT code may be chosen from Table 1 or it may be calculated as:
where f is the desired frequency in Hertz.
|Minimum Frequency||Maximum Frequency||OCT Code|
When using the equation, it is necessary to round the OCT code down (truncate) to the nearest integer.
The DAC code is:
where f is the desired frequency in Hertz and OCT is the previously determined OCT code.
Round the DAC code to the nearest integer value, up or down. The frequency may be calculated from the OCT and DAC settings through the formula:
For instance, to set a frequency of 1.00MHz, first chose the OCT code from Table 1 or calculate OCT from equation  above.
Round down (truncate) for an OCT code of 9. Next, calculate the DAC code:
Rounding to the nearest integer, the DAC code is 959.
Verify the calculations by plugging the result back into the formula  for frequency:
In order to determine the 16-bit control word for the LTC6903/LTC6904, values for the mode control bits, MODE0 and MODE1, must be chosen. To enable both outputs, set both MODE0 and MODE1 to “0”.
The control word is composed of the OCT, DAC and MODE control bits: OCT • 212 + DAC • 22 + MODE, or, 9 • 212 + 959 • 22 + 0 = 40,700, or in binary, 1001111011111100.
Figure 4 shows that frequency resolution over the entire range of the control word is roughly proportional to the set frequency.
Writing the Control Code
The LTC6903 can be configured through its SPI-compatible serial port. Similarly, the LTC6904 can be addressed through its I2C-compatible 2-wire serial port. Both serial ports are set up so that the serial transfer is accomplished in 8-bit chunks, the MSB being transferred first. Therefore, writing just a single byte to the serial port will result in the most significant byte being changed. Additionally, the bytes are written to the registers as they are received, so a pause between writing the first and second bytes may temporarily result in an unintended frequency output.
The LTC6903 and LTC6904 output drivers present a low output impedance of 45Ω, and are capable of driving substantial resistive and capacitive loads of as much as 1kΩ and 100pF at frequencies up to 1MHz. At higher frequencies, two effects must be taken into account. First, the impedance presented by the capacitive load becomes a substantial factor in the shape of the output waveform. At the maximum operating frequency of 68MHz, in order to achieve full swing, an output load of 5pF or less is recommended. Second, the current drawn through the output drivers at high frequencies becomes excessive with capacitive loads. This results in greatly increased power dissipation, and will contribute to frequency inaccuracy at frequencies above about 1MHz. Under a 5V power supply, the output drivers each draw 1.7mA at 68MHz for every 5pF of load. This is simply a calculation of the energy necessary to charge and discharge the output load capacitance to 5V at 68MHz, following the formula:
The recommended 5pF load is equivalent to two HC CMOS logic inputs, and is substantially less than the 12pF –15pF of a standard oscilloscope probe. It is also recommended that the connection to the output of the LTC6903/LTC6904 be kept shorter than 5cm in order to reduce ringing and reflections from transmission line effects.
Crystal oscillators traditionally excel in frequency accuracy with low jitter. The LTC6903 and LTC6904 do not reach the level of a crystal oscillator by those measures, but it is comparable enough to make it a good choice in most applications, especially when size, cost and durability are important.
Frequency accuracy is trimmed in at <0.75% at 1kHz under nominal power supply and temperature conditions. DAC variation over frequency settings adds an additional 0.35%, while temperature variation across 0°C–70°C adds 0.9%, for a total variation of 2% over temperature and setting. Power supply variations, mostly at the upper end of the supply range, account for an additional 0.25% inaccuracy, leading to 2.25% over all conditions.
Due to the large number of dividers used when operating at low frequencies, the LTC6903 is able to provide typical peak-to-peak jitter of less than 0.1% at frequencies up to 500kHz, and less than 0.4% at frequencies up to 8.5MHz. At 68MHz, jitter increases to just under 3% because the averaging effects of the dividers are absent. These specs are acceptable in all but the most demanding precision timing applications.
A Tunable Lowpass Filter
The LTC6903 and LTC6904 are uniquely well suited to interface with switched capacitor devices such as filters and data converters. The tunable lowpass filter of Figure 6 is a typical example. Using the LTC6903 in combination with an LTC1569-7 tunable filter, it is possible to generate a lowpass frequency response anywhere from 94Hz to 300kHz with a 0.1% resolution, using a circuit consisting of only two small integrated circuits and no external components other than two 10% resistors and power supply bypass capacitors.
By tuning the LTC6903 over a frequency range of 3kHz to 9.5MHz at 5V power supply using the equations presented earlier, a corner frequency of between 94Hz and 300kHz may be set. The current draw of the combined circuits is typically 10mA, the majority of which is in the LTC1569-7 tunable lowpass filter.
Though crystal based oscillators have dominated the timing and clocking market for many years, the LTC6903 (I2C) and LTC6904 (SPI) offer solutions that are smaller, more flexible, more robust and lower power. Selecting a frequency from the 1kHz–68MHz frequency range is simple through the serial ports, and both devices operate over a wide range of supply voltages.