Hello,We are working with AD9914 (DDS) Evaluation board to generate Frequency Chirp.We encountered strange DDS behavior and request to explain it.
In short, Chirp duration does not linearly depend on GUI Sweep definitions.The number of Chirp steps breaks simple steps' logic.
We prepared Chirp signal, with both "No-Dwell" checked options.The Chirp period is prepared with 100 rising and 1 failing steps for ~100 us duration. But we get the real Chirp period about 2 us, not 100! (We used DROVER signal output for time measure.)
For reference purpose, we did the same Chirp with 10000 rising stepsand we get real 100 us duration.
So the simple steps' logic "works" for 10000 steps and "doesn't work" for100 steps. More of that, we get incorrect results for other situations alsoand do not include.
This is the strange behavior that we need to explain.
DetailsWe create 2 DDS setups (A and B) with these identical parameters. Chirp frequency range: 100-200 MHz Calculated Rising Chirp time: ~100 us Calculated Failing Chirp time: ~10 ns (one step) "No-Dwell" setting: Both are set Internal PLL: 2500 MHz External Clock: 125 MHz. Different between setups: A setup: Number of rising steps 100 - 1 MHz Rising Step Size - 1 us Rising Sweep Ramp Rate B setup: Number of rising steps 10000 - 0.01 MHz Rising Step Size - 0.01 us Rising Sweep Ramp Rate
Result of Chirp period measured as time between 2 DROVER signals: A setup: expected time 100 us, real time ~2 us ! B setup: expected time 100 us, real time ~100 us The attached ZIP file includes 2 directories: 2500_100_200_100steps - for setup A 2500_100_200_10000steps - for setup BEach directory includes GUI setup file GUI images Scopes images of the DROVER and Chirp signals and time measureAlso image of External Clock frequency measurement.
Note: Also additional question appears, seeing on scopes images of the Chirp signal. Its amplitude is not constant. Why?
The amplitude ripple is probably caused by the reconstruction filter at the output of the DDS, which is an elliptic filter having ripples in its pass band response (expected behavior for this type of filter).
The 100-step trace is odd because there appears to be about a 1us "flat" interval. It looks like there is no sweep occurring during that 1us period, which is troublesome to me.
Try checking the Load SRR @ I/O Update box.
You also might try employing a few more steps in the "short duration" portion of the sweep.
Note the DROVER pin is not a completely reliable means of measuring the sweep time. With both No-dwell bits set, DROVER pulses at each end of the sweep: at the top and bottom.
Hi @KennyG, thank you for the help. 1. Output amplitude and Reconstruction filter. We have no any filter after DDS. DDS spec, figure 2 on page 3 does not show any filter after DAC. The Evaluation board has T102 in output path, but think it is not the point (I'm not good in the RF field). 2. The 100-step trace.Basing on AD9914 specification, I must get (almost) the same Chirp period for100-steps and for 10000-steps sweeps. This time must be predictable!But I have 20 times less, 100 us vs 2 us! 3. Load SRR @ I/O UpdateFrom AD9914 spec, page 39. "Load LRR at input/output update... 1 = interrupts the digital ramp timer operation to load a new linear ramp rate (LRR) value any time I/O_UPDATE is asserted or a PS[2:0] change occurs"So "SRR @ I/O Update" impacts only on the first Chirp after IO Update. For continuous work, it is not relevant.PS[2:0] is not changed.In spite of this theory, I tested it 'checked' and 'unchecked' (and Clear Accumulator and Auto Clear also) in my lab. The 100-steps Chirp does not change its 2 us period.
3. DROVER signal. In general, 2 evens or 2 odds DROVER pulses define one Chirp period. In my case, failing slope has one step (10 ns) and 2 DROVERs (Upper rage and lower range) merge to 1 pulse. More of that, I did several other measures to be sure that DROVER gives me the correct value.
KennyG said:You also might try employing a few more steps in the "short duration" portion of the sweep.
This is like voodoo
Point well taken on the Load SRR check box. It should only impact the first sweep.
Obviously, the filter theory does not apply in your case. Though the pass band ripple issue is valid when the filter is in use.
Given you are looking at the unfiltered output, the ripple is a sampling artifact. It is due to the instantaneous sample points of the waveform as the frequency changes over the course of the sweep. Essentially, the sampled waveform fails to hit the top and bottom points of sinusoid because the instantaneous phase changes result in skipping over the peak (or trough) of the wave.
I agree with you on the 10000-step profile. It should definitely be 100us duration. There is no apparent reason for it to be otherwise. Voodoo, maybe? ;^)
Just a sanity check: Did you press the Load button after making the changes to the sweep parameters?
There is the off chance the GUI is not updating like it should. Have you tried shutting down the Eval. Bd. program and restarting it? (I know, more Voodoo.)
EDIT: I meant 100-step profile (not 10000). In either case, both profiles should yield 100us duration.
KennyG said:Just a sanity check: Did you press the Load button after making the changes to the sweep parameters?
Answer: In may LAB setup of AD994, I have 2 saved GUI profiles (for 100 and 10000 steps, they are attached to the first post) and DROVER signal is permanently connected to the scope also. Each setup load to AD9914, I check that "lock detected" green led is on in the GUI's Control Tab. And I see that DROVER signal is changing its period as I explained above. I did it tens of times and the result is stable.
More of that our team observed such a problem in another stepping and frequencies, but I gave current configuration (100 MHz, 200 MHz, 100 us, 100/10000 steps) to simplify understanding and calculations.
2. Do anything can reproduce the described problem, using setup files attached to the first post?
Just letting you know I haven't forgotten about you.
I hope to have time next week to set up a board and see if I can replicate your problem.