View this week's entry ad »
Part Inventory
powered by:
Part Finder
Go
powered by:
  • Quick Poll
What Social Networking site do you use the most?



VOTE VIEW RESULTS
Previous Polls
Hotspots » Analog & Mixed SignalPowerEmbedded

Premium Content

Editors' Picks

Featured Industry Resources

Microcontroller-based sine-wave generator has crystal accuracy

Highlights

  • Passes square waves through low-pass filter
  • Based on Maxim MAX292 switched-cap filter chip
  • Range is 5.2282 Hz to 8926.6 Hz (16-MHz MCU clock)

By Contributing Author

December 14, 1998

Print
Reprints Comment Subscribe

One way to generate a sine wave is to pass a square wave through a low-pass filter. The high-order harmonics will be filtered out, leaving only the fundamental. The higher the order of the filter, the purer the sine wave produced.

The MAX292 is an 8th-order Bessel low-pass switched-capacitor filter. Its -3-dB corner frequency is controlled by its clock frequency in a 1:100 ratio. Using a 1:64 input-signal/clock ratio will produce a very clean sine wave. If this ratio is kept constant across the entire input frequency range, the amplitude of the filter output will be independent to the frequency.

Here, a high-speed microcontroller (Atmel’s AT90S1200) is used to generate square-wave and clock signals (see the figure). Meanwhile, the microcontroller accepts 13-bit frequency-control signals. The 13 bits are divided into two parts—the lower eight bits (D7-D0) are named delay_1, and the upper five bits (D12-D8) are named delay_2. No matter what frequency is selected, the base square wave and the clock will maintain a 1:64 ratio. Thus, the circuit will generate both sine-wave and square-wave signals at the base frequency, as well as a higher (64x) frequency square wave.

The frequency of the sine wave is given by:

fOUT = fOSC / (98688 * (delay_2-1) + 384 * delay_1 + 1408)

where fOUT is the sine-wave frequency and fOSC is the clock frequency of the microcontroller.

To generate a specific frequency sine wave, the values of delay_1 and delay_2 can be calculated from the equation above. For instance, assume fOSC is 16 MHz and a 60-Hz sine wave is needed. By using this equation, you can determine that delay_1 and delay_2 should be 177 and 3, respectively. Plugging these numbers back into the equation, the calculated output frequency will be 59.98 Hz.

The useful frequency range that can generated by this circuit is between 5.2282 Hz and 8928.6 Hz when the microcontroller  is operating at a 16-MHz clock frequency.

See associated figure

Average ( Ratings):
Filed Under:

Check for price and availability on Source ESB:

Go
powered by  

Related Products

You must log on before posting a comment.

Are you a new visitor? Register Now

Acceptable Use Policy

Sponsored Links