I am trying to use AD9954 with phase offset words programmed in Ram locations.
I can change the phase by setting the CFR1 as RAM Disabled and programming the POW0 word manually every time.
But what I need is to be able to program 2 different Phase offset words in RAM and access it using PS0, and PS1 pins.
I cannot understand what I am doing wrong - any help would be appreciated
Here is what I am doing so far
1) CFR1 -> 0x C0 00 02 42 (MSB to LSB; RAM Enabled, RAM set to drive Phase Offset Adder )
2) ASF -> 0x 80 00
3) FTW0 -> (a know frequency value - I am getting the right frequency)
4) RSCW1 -> 0x 00 00 00 00 00 (Start and End Address as 0, 0 since I need only one RAM location for each Phase offset word)
5) RSCW2 -> 0x 00 00 01 04 00 (Start Address and End Address as 1, 1 for second memory location)
6) Set PS0 = PS1 = 0 and update RAM data with instruction cycle 0x0b followed by First Phase data
7) Set PS0 = 1, PS1 =0 and update RAM Data with instruction cycle 0x0b followed by second Phase data (Phase data is store in bits <31:18> as shown in figure2 of the datasheet
Now during runtime when I change PS0 to access different phase values, Phase is not changing.