I will be setting up a new Phaser board over the next few days and subsequently write a driver for multi-tone rf generation in our experiments. I would therefore like to get an understanding of the subtleties involved in setting rf parameters for different phaser oscillators. The docstrings clearly state that latencies between oscillators within a channel and between oscillator parameters are deterministic (with respect to the 25 MS/s sample clock) but not matched. There is not much information, however, on whether and how the unmatched latencies affect the use of phaser for the generation of pulses that should have definite frequency and phase when they turn on.
Question 1:
For the following code
at_mu(phaser.get_next_frame_mu())
phaser.channel[0].oscillator[0].set_frequency(xxx)
phaser.channel[0].oscillator[0].set_amplitude_phase(xxx)
can I expect the frequency and amplitude/phase settings to become active for the same sample or is it possible that latencies are such that one becomes active for a later sample than the other? Could this be dependent on which oscillator is used (so that they would become active for the same sample if osc0 is set, but different samples if osc4 is instead used in the code above)?
Question 2:
Assume that an rtio event is submitted to change the FTW of osc0 with a timestamp that happens to lie in the middle of the cycle of incrementing NCOs, say when the phase accumulator of osc2 is about to be incremented. Is updating FTWs (or amplitude,...) independent of incrementing phase accumulators or can the FTW only be updated when the corresponding phase accumulator is about to be addressed? In other words, will the FTW of osc0 be updated at the next rtio cycle (not touching the corresponding phase accumulator yet) or only at the next sample cycle? Depending on which behaviour applies, I think the sample at which the FTW becomes active might be different.
Question 3:
Is there an inherent difference between aligning to a frame or to a sample, apart from the factor of 8 in time? I believe only the former is explicitly provided as a method.