DDS AD9850 0 - 40MHz. Sine/Square Wave Generator

These DDS modules come from China and are a great bang for the buck. The module is based on the Analog Devices AD9850 and is essentially an very stable, low drift VFO that covers from 0 to 40 MHz, which covers all of the HAM HF frequencies. I have been using this part in many applications from Software Defined Radios, WSPR Transmitters, Beacons, Sweep Frequency Generators and Frequency Standards.

There are 4 output pins on the device, 2 for Sine Waves (only one Frequency at a time) and two Square wave outputs. The blue pot on the board adjusts the duty cycle of the Square Wave Outputs but has no effect on the Sine Wave Outputs

There is a 125 MHz. crystal clock module that feeds the AD9850 and by programming the AD9850 we can get any frequency from 0 to 40 MHz.

Below is the partial schematic for the connection of this module to the board. Besides Power and Ground we only need four connections to the module.

Micro signal PA4 - RESET - This resets the AD9850 to its initial startup settings
Micro signal PA5 - DATA - We place Data on this pin and clock it in with the W_CLK signal
Micro signal PA5 - FU_UD - This tells the AD9850 to update its frequency once we have clocked it in
Micro signal PA7 - W_Clk - This is the signal to clock in Data

We are using this serial interface to program the module, we could however use a parallel 8 bit Data bus to clock in the new frequency updates but that would take 11 of our micros pins, and as with any micro based design every I/O pin is precious.

Below is the Pinout of the DDS Module

We place the module with the crystal clock on the left right next to the MAX232CPE serial chip. You will see that we have just enough real estate on our board for it to fit without a single row of sockets to spare. That worked out nice, didn't it?

Next we wire up the power and ground and again place a .1 uf capacitor close to the power pin to reduce noise being transmitted onto our power bus.

Next we wire up the 4 interface lines..

pin 33 of the micro PA7 goes to pin 2 of the module (W_CLK)
pin 34 of the micro PA6 goes to pin 3 of the module (FU_UD)
pin 35 of the micro PA5 goes to pin 4 of the module (DATA)
pin 36 of the micro PA4 goes to pin 5 of the module (RESET)

Pictured below is the entire board.

A little congratulations is required here ...
You have finished wiring up the Prototype

Oops, I lied... one small thing left that you will find in the 'Completed Base Hardware' tab

When we go to test the board the Sine Wave output is available as marked on the picture below


Testing the DDS AD9850 0 - 40MHz. Sine/Square Wave Generator

Download the DDS Test Software, unzip it into the Eclipse Workspace, compile it and upload it into the micro.

DDS Test Project

Your screen should look as pictured below.

As with the other projects the data is also being sent out the serial port. If you open up a Hyperterm Window and press the RESET Push Button you will see a screen as pictured below.

The best way to test the output waveform is to put the signal on an oscilloscope. If you do not have one then I will have one there at project nights.

But there is another way, attach a short piece of wire to the Sine Wave 1 Pin (pin 10) when you are running the test software. Now Tune your favourite HF receiver to 7.025 MHz. (40 Meter Band). Grab the bare end of the wire connected to pin 10 of the DDS. This will make you the antenna.

Set your mode to Lower Side Band (LSB) and if you tune around 7.025 MHz. you should here a beat frequency. If you turn the rotary encoder you should here the beat frequency change.

Pictured below is an 80 MHz CW transmitter using a PIC micro. Anyone care to program our device to do the same?