Post navigation

DDS Board Revision 2

On this board I used Mini-Circuits filter modules instead of my homebrew RLC filters. They offer better high frequency performance than I could achieve on my own. Here’s a plot of the filter response, as tested with my VNWA:

The filters allow a usable output from about 40 MHz to 110 MHz. By bypassing the high-pass filter, I can get a usable output from near-DC to 110 MHz.

This board is part of a much larger project. You might have noticed that one PCB is stacked onto the other PCB. The board on the left is a module that will be plugged into a large VME board. The purpose of building the right-side board was to test the module.

USB Interface and control

I’ve done several USB projects, starting back when I worked at Embed Inc. I decided it would be fun to make this a USB controlled board. The microcontroller is a PIC24FJ128GB106 from Microchip. It has a high-speed USB interface. Microchip provides sample code for various interface methods.

I chose to make this a CDC (Character Device Class) because it makes writing the PC software easier. A CDC device presents itself as a VCP (Virtual COM Port) on Windows, and I believe on Linux as well. This means I don’t have to write a device driver or utilize WinUSB or Libusb in order to communicate with the hardware.

I started out with a basic MFC program that I had written to query a laser over it’s diagnostics port, and modified it to control my PIC firmware that, in turn, controls the AD9852. The program is very basic at this point, but the structure now exists to do just about anything with it. I’m not personally invested in amateur radio, but I imagine this could be interesting for creating directly-modulated RF carriers. This board can directly output an RF signal that is amplitude, frequency, on-off, or phase keyed.

In my free time I am working on another version of this board that I may make available to the community. Please leave a comment if you’re interested.

3 thoughts on “DDS Board Revision 2”

Very interested in a community version, depending a bit on price, of course.
Would that include an USB interface, or RS-232?
You could perhaps include something akin to the design for the Digispark
(AVR and some resistors/zeners) to make a simple USB interface to drive it with.
Does your device have an external clocking option?

The board you see has USB communication over CDC. This /appears/ to be a COM port but is actually communicating directly over USB to the microcontroller. The ‘baud rate’ you see in the control window is arbitrary. The data rate is theoretically several hundred kilobytes per second. The benefit of CDC is that it is very easy to program on the host PC side using any OS.

If there is interest in a more ‘real’ custom USB interface, that is quite possible as well.

Regarding external clocking:
This board has an on-board 20 MHz oscillator. With a simple modification it could accept an external clock. Unfortunately there is no connector for it. I had planned on redesigning the board for the community version, so this is a feature I could add.