I have an AD9910 on a custom circuit board controlled with a PIC1459 processor. I send commands via USB/serial from a python GUI on a win7 host. The circuit board defaults to parallel mode, but I have managed to control the chip via the profile registers and have implemented the DRG which can be nicely verified with an oscilloscope connected to the board output. My problem is with the RAM mode for which I can't seem to get an output signal. This is roughly what I've done:
1. Set profile pins to select profile 0
2. Set the playback destination to frequency.
3. Write to profile 0 register (0x0E): Start = 0, Stop = 7, rate = 10 uSec, biDir mode. The byte values are:
0x0, 0x9, 0xC4, 0x1, 0xC0, 0x0, 0x0, 0x2
4. Write 8 words to the RAM data port (0x16) representing 100Mhz, 110Mhz, ....170Mhz.
(for 100Mhz I send 4 bytes: 0x19, 0x99, 0x99, 0x99)
5. Enabling RAM mode results in no output. I expect to see a changing display similar to the DRG mode on the oscilloscope.
The datasheet says that I can read the ram data back. To debug this issue I tried reading the 8 words written. This results in getting the last word written plus 7 garbage words. Subsequent reads shifts the position of the one good word. Reading the profile register again seems to reset this trend.
Should I be able to verify what I wrote? Am I writing the correct values to the registers? Is there something I've missed?
Any suggestions would be appreciated!