Tiny DDS – Open source DDS generator
The homemade function generator is a quite common project on the internet. We can find different ways to do it:
– The quick & dirty way based on a DDS module bought on eBay
– The analog version based on a MAX038 / XR2206
– The clean way based on a FPGA and a fast DAC (e.g. http://www.circuitben.net/node/14)
– The software way (e.g. Arduino + R/2R DAC)
From my side, I wanted a small one which could fits my needs without being too expensive. According to me, such generator should at least:
– Be easy to use
– Output a signal from 1Vpp to 10Vpp (+/-5V), from 0 to 1MHz
– Have a low profile
– Without electric hazard (shall work on a 12V DC)
Choosing the DDS chip
I first started to look for a cheap DDS chip on eBay; you have to be careful because most of DDS chips have only a sinusoidal output. Since I also want a triangular output, I have chosen the AD9834. According to its datasheet, this component is able to output a frequency of 37.5MHz from a clock of 75MHz But do not expect a clean waveform at such frequency: without an internal PLL, this signal would be defined by only 2 points.
From my personal experience, I consider that a waveform shall be defined by 10-20 points to be well restituted. Relying on a 75MHz clock, the maximal output frequency would be 7.5MHz This is not a very good performance for a professional equipment (even if the cheapest generators do not go above 4MHz), but it is quite reasonable for a hobbyist project.
The AD9834 can be found at $5 on eBay.
For more detail: Tiny DDS – Open source DDS generator