I'm looking for an inexpensive component to generate frequencies between 15.5 MHz and 17.5 MHz. My intention is a medium-run product (a few hundred units).

The issue is that I would like to change the frequency during operation and the change should not take more than 1 us. The control part will be performed by some kind of microprocessor.

It would be big advantage if the chip I'm looking for could simultaneously generate other frequencies which would be a division of the current main frequency and phase shifted.

I have thought about using an FPGA, but I don't have any experience with it, so I don't know what to look for.

  • \$\begingroup\$ Please clarify something. When you say you need to change in a usec or less, does this mean that you need to change frequencies within 1 usec of detecting an event, or do you mean that the transition period between the two frequencies should have a duration of less than 1 usec? \$\endgroup\$ Mar 6, 2015 at 13:25
  • \$\begingroup\$ Another set of questions- What frequency resolution do you need? And what spectral purity are you looking for? Do you need analog (that is, sine wave) output, or are you looking for logic-level square wave/pulses? From your consideration of FPGAs I'd guess you want logic-level, but I just thought I'd make sure. \$\endgroup\$ Mar 6, 2015 at 18:19

3 Answers 3


Here is a programmable clock chip that may satisfy your requirement:

You can also purchase a low cost PCB module with this part already installed and ready to use with a microprocessor interface:

  • \$\begingroup\$ This chip looks like a better choice since the OP asked for multiple frequency outputs which this chip can handle. However it is not going to be possible to switch frequencies in 1 µS -- according to page 18 of the datasheet, the current output has to be disabled, several registers updated, and then the output re-enabled. Since the interface is I²C at 400kbs, this could take a millisecond or two. The chip mentioned in the other answer so far, the AD5932, has the same issue except it is using an SPI interface which can at 40 MHz -- so theoretically that chip could be updated in 20 µS or so. \$\endgroup\$
    – tcrosley
    Mar 6, 2015 at 11:03
  • \$\begingroup\$ The above chip can be preset to output multiple frequencies simultaneously, so using just a few simple gates on the output pins you could route the required signal very quickly. One or more inverters could also be used to invert the phase of the output signal. \$\endgroup\$
    – Nedd
    Mar 6, 2015 at 15:12

Try looking up Analog Devices range of direct digital synthesizers. Here's one: -

enter image description here

Picture taken from here.

Features and Benefits

  • Programmable frequency profile—no external components necessary
  • Output frequency up to 25 Mhz
  • Predefined frequency profile minimizes number of DSP/µcontroller writes
  • Sinusoidal/triangular/square wave outputs
  • Powerdown mode (20 µA) +2.3 V to +5.5 V power supply Extended temperature range −40°C to +125°C
  • 16-pin TSSOP

I have thought about using an FPGA, but I don't have any experience with it, so I don't know what to look for.

Pretty good idea. A FPGA will do that, but a FPGA will be overkill for your needs.

You can use cheap CPLDs though. They are like a small FPGA, fewer pins, easier power supply and easier PCB layout. You also don't need external storage for the bit-stream (may save you a flash chip).

For programming these kind of chips I suggest that you just dive in and give it a try. Cheap FPGA and CPLD boards are available everywhere, and you should be able to go from nothing to a blinking LED within a day or two (It took me an evening the first time I did it, and most of the time was spent installing the toolchain).

Once you have this running, going from a LED blinker to a frequency synthesizer is just a few lines of HDL code.

You can even start without having a FPGA/CPLD at all by using a simulator. GHDL worked pretty well for me and has fine tutorial. http://home.gna.org/ghdl/

If you want to read about CPLD parts check the Xilinx CoolRunner2 line of chips. Super cheap dev-boards are available as well and the chip should be up for your task. If you're curious and want to dabble with FPGA I suggest either a cheap Xilinx Spartan board (I started with the XuLa200) or take a look at the Lattice parts. They sell development kits for around $25 including everything you need to get started. Oh, and they have cheap low pin-count parts as well. Something you don't find often in the FPGA world.

  • \$\begingroup\$ A FPGA/CPLD is not a good solution: high demands an power supply, many pins, high footprint, complex programming, expensive, no fine frequency control, high jitter, ... So a dedicated, programmable Frequency Generator Chip is a much better choice. \$\endgroup\$
    – Paebbels
    Mar 6, 2015 at 22:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.