I'd like to know how to fix output phase to any value (or reset phase to zero) after hardware reset on AD9858.
To set the phase offset to any desired value use the profile feature. There are 4 available profiles activated via the two profile pins (PS0 & PS1).
One way to generate a waveform that starts at some specific phase (theta) is to use two profiles (e.g., Profile 0 and 1). You can then switch between these two profiles by grounding PS1 and using the state of PS0 to switch between Profile 0 (PS0=0) and Profile 1 (PS0=1). Also, to make sure the phase accumulator always starts at 0 phase when you activate a profile, set CFR1=1 ("Auto Clr phase accumulator").
Let Profile 0 be a default profile that generates no output signal and holds the output at a static angle of theta by programming FTW0=0 and POW0=theta. With CFR1=1, when you select Profile 0 the accumulator resets to 0 and holds because FTW0=0. With POW0=theta, the output holds at a static phase value of theta.
Let Profile 1 be the "signal" profile by programming FTW1="desired frequency" and POW1=theta. With CRF1=1, when you select Profile 1 the accumulator resets to 0 and immediately begins "accumulating" the FTW value, but with a constant phase offset of theta (because POW1=theta).
With this arrangement, you can switch between no signal (Profile 0) and signal (Profile 1). The signal will always start of at a phase offset of theta.
Retrieving data ...