I am attempting to move my AD9959 eval board to external control using a teensyduino 3.2 running a custom library tailored to the AD9959 to handle the SPI transactions. When I look at the transmitted data signal from the teensy, it decodes correctly; I can see the programmed command to write a single-tone frequency at maximum amplitude and 0 phase, the IO update pulse to apply that request, and then a read request of the frequency on the channel I just wrote. The problem I am encountering is that the read request does not pull the data I just wrote, nor do I see an output on the desired channel. Eg the decoded MOSI signal looks like:
0x 04 00 A3 D7 17 06 00 00 00 05 00 00 84 00 00 00 00
where 0x00A3D717 is an assignment of ~500kHz for a 10MHz clock with the internal multiplier set at 20, and the library defaults 0x000000 on the amplitude as a maximum. After the 0x84 I would expect the 00A3D717 to be repeated back. Am I correct in understanding that this would appear on the MOSI line (SDIO_0) instead of MISO (SDIO_2)?
I have tried adjusting the IO_Update pulse manually to ensure that it is sufficiently long to encompass a period of SYNC_CLK, but I still did not see an output. I have also been having some trouble actually reading back the SYNC_CLK signal. I do not know whether or not this library automatically suppresses it, but I don't get the impression it does.
The library I am using leads me to connect only the following pins, as they are the ones necessary to provide the functionality I need:
(Jumper W9 connected, PC_CTRL set to MANUAL, REFCLK provided externally)
Are there certain pins that would need to be connected regardless of whether or not their functionality is directly utilized? Are there any suggestions for what could be causing the commands to not "take"? I can follow the SPI signals clear to the pins of the DDS chip but I don't know how to look any further. Any help would be most appreciated!