Recently, I purchased a DDS Signal Generator Module based on the AD9850 125MHz complete direct digital synthesizer chip as I wanted to see what kind of simple/basic software defined radio (SDR) projects I could create with it. DDS modules like this one are good for use as a local oscillator, clock generator, frequency/phase reference for a PLL, frequency up-converter circuit, etc.
To get started I wrote up how I bit banged the serial digital interface to the AD9850 to load the control word that sets the frequency and phase of the output sine wave, and how I proved it in/debugged it using the logic analyzer in WaveForms on my Eclypse Z7.
BackgroundSince I'm looking to use this little DDS Signal Generator Module for SDR-type projects, I decided that a good first step is to perform some basic RF test measurements to get a baseline of the fidelity of its output sinusoids. This would also provide a good demonstration of how to setup the test equipment for taking RF-type measurements.
The first two tests I perform on any device that outputs RF sinusoids is to measure the offset between the frequency I tell the device to output versus what the measured frequency of the actual output is. The measurement is commonly referred to as transmit center frequency offset.
The other test measurement that I like to take initially is the power level of that output RF sinusoid to verify it is within the realm of what is expected from the hardware. The combination of these two measurements is a good initial validation that there aren't any gross errors in the hardware somewhere.
Hardware SetupSince the output from this AD9850 DDS module has a maximum frequency of 40MHz, I chose to use the Digitizer Zmod with my Eclypse Z7 since it has a maximum sample rate of 125 Ms/s. Applying the Nyquist theorem which states that the sampling rate must be at least twice that of the maximum frequency of the signal being measured, that means the Digitizer Zmod can measure a signal with a maximum frequency of 62.5MHz (125M/2).
Using the SMA to alligator clips from channels 1 and 2 of the Digitizer Zmod to the sine wave outputs 1 and 2 respectively of the AD9850 DDS module:
The jumper connections from the serial interface to the Pmod on the underside of the Eclypse are from the setup to the logic analyzer to validate the serial interface between the AD9850 DDS module and the Raspberry Pi Zero driving it. It is not necessary to keep these jumper connections for the following RF measurements using the Digitizer Zmod.
Measurement Setup in WaveFormsThe first step in configuring a WaveForms workspace when using it on the Eclypse is to select the appropriate configuration of Zmods. I installed my Digitizer Zmod in Zmod port A of my Eclypse board, and since I have my AWG Zmod in Zmod port B when I connect to Waveform. This translates to option 1 of A ADC B DAC in the configuration settings after selecting the Eclypse in the Device Manager.
After selecting the Eclypse board with proper Zmod configuration, launch the spectrum analyzer from the Welcome tab (single left-click on Spectrum).
The spectrum analyzer defaults to a 500kHz center frequency with 1MHz span (which means that 1MHz of spectrum is being measured at once centered around 500kHz or 0Hz to 1MHz).
1MHz is an adequate span to use for the purposes of a center frequency, so I left that setting and just changed the center frequency to match whatever output I configured the DDS module for (notice that WaveForms will handle automatically configuring the start/stop frequencies):
The magnitude of the output for these measurements will be in straight peak value on a logarithmic scale. So under the units for the Y axis need to be changed from the default dBV to Peak (dB):
After enabling the output from the DDS module at the set center frequency, I hit the run button to start a capture:
To measure the output power level of the signal being output from the DDS module, I added a marker to the display and placed it at the highest magnitude value measured.
Select View > Markers:
Click the green + button in the Markers window that appears at the bottom of the screen to add a marker to the display.
The marker appears on the screen at the right edge of the spectrum, but it can be dragged to any point along it.
The marker can be placed on the highest peak (largest magnitude) by either manually dragging it to that point.
Or the green arrows in the Markers window can automatically find the peaks, specifically the green arrow pointing up with the line above it will place the marker at the highest peak (largest magnitude) measured in the entire 62MHz of the spectrum the Digitizer Zmod is measuring.
I repeated the max output power measurement at several different center frequencies and compared their levels to the SFDR measurements in the typical performance characteristics of the AD9850's datasheet.
SFDR or spurious-free dynamic range of any digital to analog conversion type chip is the measurement of the difference in magnitude of the center/fundamental output frequency compared to the highest spurious output signal. These measurements in the AD9850's datasheet gave me a ballpark of what the output power should be without any extra power amplification circuitry since the graphs showed the measurements.
So the -6.8dBm to -9.5dBm I measured from my DDS module seems to be about average of the typical performance, if not a bit on the lower side. Although I never found an exact schematic for the AD9850 version of the DDS module I have. I only found the AD9851 version of the schematic so there might be some extra circuitry pulling the output power down a bit I can't fully account for.
Measuring Center Frequency OffsetOnce we find the maximum output power, that sets the stage for measuring the center frequency offset. This is because the frequency deemed to be the actual output frequency is the frequency with that highest output power seem in the spectrum.
So I simply added two cursors to the X axis to take a delta measurement from the frequency where the peak magnitude marker is at, and the frequency that I set the AD9850 to output with the control word from the Raspberry Pi Zero.
Click View > X Cursors:
Add a regular cursor with the green + button then add a delta measurement cursor with the Delta button.
I placed the normal cursor at the peak magnitude marker on the X axis and the delta cursor at the set frequency value. Again I repeated this measurement over a range of frequencies from 1MHz to 40MHz and found the frequency offset to stay within the range of 500Hz to 1kHz. Which for a $20 board off Amazon, I don't think is bad.
Overall, these results tell me that I can keep moving forward with this little DDS module for use in projects!
Comments
Please log in or sign up to comment.