The SigGen1 board is working! It’s been a while since the initial post about this project so an update is long over due. This article provides an update, also including the schematic and bill of materials. The operation and features are briefly covered. I am currently working on an Arduino library to control the DDS chip and need to implement a serial control protocol.
The First Bode plot:
This picture shows the log amp output feeding the A/D converter. The frequency is sweeping from 100KHz to 1MHz and the circuit is a simple low pass filter made with a resistor and capacitor on a bread board. You can see the gain rolling off (or loss increasing) as the frequency sweeps higher from left to right.
This plot was done by triggering the oscilloscope on the SYNCOUT pin on channel 2 with the log amp output on channel 1. A couple of BNC to clip lead test cables connect to the RC circuit. The frequency sweep is linear so the graph may not look normal to the RF guys.
|Frequency Range:||20Hz to 25MHz|
|Waveforms:||Sine, Square, and Saw-tooth|
|Log Amp input:||Allows gain vs. frequency measurements, Bode plots|
|Interface:||Serial, USB via FTDI serial to USB cable|
|Customizable:||Processor function provided by the open source Arduino compatible Bare Bones Board|
|License:||Creative Commons Attribution 2.5 License|
The parts for a SigGen1 total up to about $53 not including the PCB or the Arduino board. About $20 of this is in Analog Devices parts which you may be able to get as samples. I have several PCBs and can give a few away. If you plan to be at the Belton Ham Expo or the Austin Maker Fair and would like one of the PCBs let me know with an email. Please don’t ask for a PCB if you don’t plan to put one together and provide feedback.
The module can be broken down to four major functional areas. The microcontroller, Direct Digital Synthesizer (DDS), output signal conditioning, and the Log Amp Input section. Each is covered briefly below.
A set of sockets (U1 and J2) can be installed along the side of the PCB to mate with the Modern Devices Arduino Compatible Bare Bones Board (BBB). The Bare Bones Board provides all the control functions for the SigGen1 module. This board is fully compatible with the Open source Arduino development environment which makes it easy to develop customized applications.
Interfacing to the SigGen1 board leaves several of the digital I/O lines and all but 1 of the Analog inputs available for other applications.
The Bare Bones Board works with RS232 adaptors such as the P3 available from Wulfden or with the FDTI TL-232R-5.0V USB to TTL serial interface cable. This interface works with the free Arduino development tools and PC based control/plotting applications.
Power is supplied from the Bare Bones Board via either the USB interface or by connection to the power supply regulator on that board.
The DDS section is centered around the AD5932 (U5) from Analog Devices. This part has a 24-bit DDS core and provides frequency sweeping functions as well as Sine, Square, and saw-tooth wave forms. It is driven from a 50MHz oscillator (U2) and can output frequencies as high as 25MHz although it would be better to keep the upper limit near 10MHz to maintain good sine shapes.
The AD5932 is interfaced to the microcontroller via a serial interface and a few I/O lines. Two of these I/O lines are critical for the sweeping function. The CTRL input initiates the sweep and the SYNCOUT signals the end of a sweep. The microcontroller loads up all the sweep control settings then toggles the CNTL line to start the sweep. It then polls the SYNCOUT watching for the end of sweep signal so it can once again toggle the CNTL to repeat the sweep.
Output Signal Conditioning:
Two BNC outputs are provided, a high level and a low level output. The output signals are conditioned using an AD8012 from Analog Devices. This is a very high speed dual Op-Amp. The high level output passes through a 26dB attenuator for the low level output.
The high level output is designed to accommodate passive filter measurements where there will be substantial attenuation. The low level output accommodates measurements on filters or amplifies where there will be gain. The attenuator can be adjusted by changing R13 and R14. The key here is that depending on your application you can select the appropriate signal level output for measurements.
Log Amp Input Section:
The log amp input is via a BNC jack with 90dB of dynamic range with +24mV/dB output. The log amp function is handled by a AD8310 (U3) and it’s output is connected to the Bare Bones Board 10 bit A/D Input 1. An input attenuator is provided and can be adjusted via R1 and R11.
Part Data Sheets:
For reference here are the datasheets for the major components.
This is the first rev of the SigGen design. Plans for the next version include placement of connectors so that either the “Official Arduino“, the Bare Bones Board, or even the Arduino Compatible ATMega168 can be placed on the board.
Look for alternate parts for several of the expensive components such as the 100uF tantalum capacitors. We could just up the lower frequency limits to maybe 10KHz but we initially wanted to cover the audio range. These capacitors are expensive but they are necessary to keep the response flat at the lower frequencies.
Maybe remove one of the BNC jacks and provide a signal level switch under control of the Arduino.
Add a X/Y O-Scope display feature as described in this previous post.
I hope to keep the cost down and provide a useful piece of equipment for Limor’s Open Bench effort.
More Information about DDS:
If your are wondering how a DDS works take a look at these links. The first one is for a project that might be better for the home hobbyist. Jasper makes a DDS using a R2R ladder network directly from a AT2313. This could be done with an Arduino but would be limited to about 300KHz.
- Mini DDS project at Jesper’s AVR pages
- Direct Digital Synthesizer (DDS) Stuff at Spread Spectrum Scene
- Direct Digital Synthesizer Links
- Direct Digital Synthesis (DDS) at Radio Electronics
What would be a reasonable lower frequency limit? Is there another DDS chip we should look at? We did look at the Analog Devices line and there is a slightly cheaper part but not by enough to make it worth changing. The frequency sweep feature is worth the slight extra cost. Who else makes DDS chips we should consider?