This is a new implementation of the AVR DDS signal generator v2.0, already published in scienceprog.com. It is obvious that full credit for the original schematic and the firmware goes to its original creator. Presented here is a different PCB that is compact, single sided with only through-hole components for easy construction.
The function generator features two BNC outputs : one for the high speed [1 to 8 MHz] square signal (BNC1) and another for the DDS signal (BNC2). Offset and amplitude can be regulated by two potentiometers : offset in range of +5V to -5V (POT1) and amplitude in range of 0 to 10V (POT2). Up and down arrow buttons are used for changing the function type (sine, triangle etc.) while left and right arrow buttons are used for changing the frequency value. There is also a separate menu for changing frequency step. When the middle button is pressed, the signal generation starts. Middle button is pressed again for stopping the signal. More details can be found in the original site.
EAGLE Schematic (only a status led and an on/off switch was added)
click on image for higher resolution
Changes in firmware
Because of the present LCD character orientation, which is different from the original implementation (180 degrees), the following changes in main.c were made :
Buttons LEFT and RIGHT were reversed :
Buttons TOP and BOTTOM were reversed :
For the latest version of AVR-GCC compiler, the following changes should be made (according to Geoff comment on scienceprog.com) :
The ATMEGA16 fuses should be :
HIGH = 0×59
This is interpreted to the following options checked (all others unchecked): OCDEN, SPIEN, BOOTSZ1, BOOTSZ2. SUT, SUT0
News on theme: