A few years ago I needed a function gen-erator for my home laboratory. In my job I had worked with some expensive commercial models and initially I had planned to buy one of these. However, none of them really was what I wanted – too complex for simple use – and so I decided to design and build my own. It turned out to be DDS (direct digital syn – thesis) based but that was not the only component selection issue I ran into. Here are a few more.
My components, your components? After researching various techniques I settled on a Direct Digital Synthesis (DDS) based architecture for my project. DDS employs a digital oscillator with quartz crystal precision to accurately generate sinewaves up to very high frequencies. For the microcontroller I chose one from Analog Devices. Although well known for their Digital Signal Processor (DSP) families, this may not be the first MCU manufacturer that comes to mind. They do have a nice family though of 32-bit ARM controllers supported by something I like a lot: comprehensive documentation.
Analog Devices manages to fit a complete description of a complex microcontroller into a document of slightly more than a hundred pages. Analog Devices also specializes in DDS chips, operational amplifiers and other analog support chips and so made for a great one-stop shop for this project. Their friendly sampling service quickly got me started without forking out a lot of money. The MCU I selected was then ADuC7024BSTZ62, a member of the Precision Analog Microcontroller family in a 64-pin package, containing an ARM7TDMI core running at 44-MHz clock speed.
For more detail: Elektor DDS Function Generator