AD9959, relative phases in a frequency sweep

We want 3 RF outputs at 2MHz controlled via USB and external triggers at P0, P1 and P2 at U2. First, we want some hold in the output, all the frequencies and phases to be same and then a linear frequency sweep in one of the channel.

What I observe is, at the beginning of ramp relative phases are stable BUT not at the end of the ramp.

Saurabh - The term stable here concerns me. Once the sweep is over, there is almost certainly going to be a phase offset between the channel that you sweep and the channels that you did not sweep. That phase difference will be inherent to a standard DDS solution. That phase difference should be constant until you sweep again, though - If you are not seeing that something very odd is occurring.

If you are seeing a constant phase difference, and wish to correct for it, there are a couple of options:

1) Clear all of the phase accumulators at the same time after the sweep. They will all be put back to a common phase, but all the signals will experience a sudden phase jump when it happens.

2) The digital nature of the DDS should result in the phase difference being the same every time you sweep, IF the sweep parameters (step size, step rate, beginning and ending frequency) are not changed. In this case, if you can measure the phase offset in the lab, you can use the Phase Offset Word of the channel being swept to balance out the offset (if the relative phase of the swept channel is now -x degrees, you can put x into the phase offset word). If you repeat the sweep, you will need to add that same value to whatever is currently stored in the POW for this to work correctly.

3) If both of these are problematic, then your only other choice is to alter the sweep parameters such that when the sweep is over the instantaneous phase of the swept channel is in phase with the other channels. This would be a math challenge, and it would severely limit your options for the sweep parameters (step size, rate, start and stop frequency) - I would guess at least three of them would have to be changed at least slightly from whatever you currently have them set at.

When I use the term stability, I meant relative phase stability between the channels and shot to shot, between different sweep runs.

So, I set all the 3 channels in-phase at the beginning of the ramp (using I/O_Update for e.g. to clear all phase accumulators) and ramp one of the channel frequency. I agree, there is going to be a frequency offset at the end of the ramp. And this frequency offset doesn't changes until the next sweep begins, true.

But should not this frequency offset/delay be stable/same at the end of the ramp over different shots/runs/sweeps?

I am having the same sweep parameters for all the runs.

I do not want a phase jump at any point during the sweep, essentially we wish to have a smooth walk in time of these signals. It did sound a bit strange to you, do you think I could be missing something trivial?

"But should not this frequency offset/delay be stable/same at the end of the ramp over different shots/runs/sweeps?

I am having the same sweep parameters for all the runs."

Every sweep is going to result in a specific phase offset from the previous state. If you perform the sweep once and end up X degrees out of phase, the next sweep (assuming that sweep has all the same parameters - sweep rate, beginning/ending frequency, step size) should result in you being 2X degrees out of phase. If you change any parameters of the sweep, then the next phase offset change will be different.

Right, it may or may not result in a fixed phase difference at the end of the ramp, given by whether one has checked Auto_Clear_Phase_Accumulator in Chip Level Control or not.

If I do not select/check auto_clear_phase_accumulator and only give logic high/low to one of the profile pin (external trigger for initiating the ramp), it does gain a fixed phase offset every shot.

Now if I want to put 2/3 RF's in phase at the beginning, I can give an I/O_Update pulse with Auto_Clear_Phase_accumulator box checked and it does put them in phase (given one has set 0deg phase offset in channel control). And now IF I give a logic high to one of the profile pins to start the ramp, phase jumps at that instant and then ramps. why?

So, all looks good so far apart from this resetting the phase in the beginning. Any suggestion would be highly helpful.

" And now IF I give a logic high to one of the profile pins to start the ramp, phase jumps at that instant and then ramps. why?"

I didn't understand that this was occurring at the beginning of the ramp before. Changing the profile pins is equivalent to issuing an I/O Update, so I believe that when you change the profile pin for the channel you wish to sweep, you are once again clearing the phase accumulator at the start of the sweep. If I am right, then the solution is to turn off the Auto_Clear_Phase_accumulator function after you have put them in phase.

No, there isn't. Having said that, you shouldn't need one. The Auto_Clear_Phase_Accumulator bit can remain set until your next IO_UPDATE without affecting the function of the device. If you need to update any registers before your next sweep, just be sure to clear that bit and then reset it the next time you go to ramp.