In a few of my project posts over the past couple of months, I've been chronicling how I've figured out how to use and verify the functionality of a little DDS Signal Generator Module that I found on Amazon. Since this little DDS module based on the AD9850 125MHz direct digital synthesizer chip came with pre-soldered headers, I threw it on a breadboard to use my Eclypse Z7 FPGA development board with test equipment Zmods and dedicated WaveForms Linux image to take basic measurements of the digital interface and the RF analog output of the AD9850.
So far, I have validated my custom serial interface to the AD9850 using the logic analyzer in WaveForms and validated the basic RF output characteristics of center frequency offset and signal output power/magnitude with the spectrum analyzer in WaveForms.
Even though the DDS module hasn't shown any immediate major errors, I did want to take a closer look at the quality of the RF analog output signal from the AD9850.
Amplitude Quantization Error in DDSA direct digital synthesizer chip is always going to have a certain amount of spurious output due to the limitation of the digitation process of translating a digital value to an analog value. Since these spurious outputs (commonly referred to as spurs) are always going to be present to some extent, it becomes a question of how to manage/reduce them.
Specifically, the main cause of spurs in a DDS or any DAC/ADC chip is amplitude quantization error where there are not enough bits in the digital side to accurately represent the corresponding analog value. The best wording of this error due to truncation I've found is from Analog Devices website: "The phase errors introduced by this truncation result in errors in amplitude during the phase-to-amplitude conversion by the DDS. Since the amplitude errors are periodic in the time domain, they appear as line spectra (spurs) in the frequency domain and are what is known as phase truncation spurs."
Since I already had the spectrum analyzer in WaveForms setup and connected to my DDS module, I decided a spur measurement would be the next step.
Measuring Spurs in WaveFormsCurious if the quantization errors of the AD9850 on my DDS module where bad enough to create any concerning spurious outputs, I took a look at the output sine wave with a larger span setting in the spectrum analyzer compared to the 1MHz span setting I was using to measure the center/fundamental frequency offset and output power.
I repeated measuring the spurs at various center frequencies.
The main peak at the set center frequency is clear, and while there some definite spurs above the noise floor across the rest of the spectrum it looks pretty good for a $20 board I found on Amazon.
Noticed Something WeirdWhile nothing looked immediately alarming, I noticed as I continued to repeat the testing that the spurs were changing.
So I started adding markers to each of the peaks that were spurs by adding a marker then using the find next peak left/right buttons to place them on each respective peak.
The spurs would increase in power level the longer I ran the AD9850 and some would remain after disabling its output.
I did notice that a good majority of these spurs were approximately some distant harmonic of 125MHz which is what the clock oscillator on the DDS module board is running at that the AD9850 uses as a reference clock. So I am inclined to think is a some sort of grounding issue like a ground loop on the PCB.
ConclusionsAgain, this was a $20 board from Amazon that arrived in regular styrofoam and plastic baggie vs ESD-safe foam/bag so I'm honestly surprised that some weird quantization errors are the biggest issue I've found so far. But we'll see as I keep putting it through its paces, and WaveForms on my Eclypse will be right there to catch it!
Comments
Please log in or sign up to comment.