Post Go back to editing

Registers Appear To Take Random Values

Category: Hardware
Product Number: EVAL-AD9914, AD9914

I'm currently using the AD9914 evaluation software connected to an EVAL-AD9914. After powering on the board and connecting it to my computer, if I try to read the registers using the "Read Registers" and view it in the debug panel, it appears that the values of the registers are just changing randomly. What am I doing wrong? 

After pressing "Read Registers" (green circle on the top toolbar)

Thread Notes

  • Hi  ,

    I moved this thread to Direct Digital Synthesis (DDS). 

    Can you send me your setup file in the evaluation software? I just like to check what you wanted to do.

    All the best,

    Jules

  • I can't seem to be able to upload the setup file (the website says the file type is not allowed) but I believe I figured out that the issue is something else. My apologies for not originally saying that I was trying to get a serial connection working between the AD9914 and an FPGA. I have SYNCIO tied to ground with a jumper, the F[0:3] is set correctly with jumpers, and I'm driving CS, SDIO, SCK, and I/O_UPDATE from the FPGA (with a buffer in between). 

      

    This is what I see on my oscilloscope. CS and I/O_UPDATE are driven by the same pin in green (where it drives two buffers), SCK is in purple, and SDIO is in yellow. CS is connected to MPIO0, SCK is connected to MPIO1, SDIO is connected to MPIO2, and I/O_UPDATE is connected to IOUPDATE-BUF. My intention is to write to the first register, so the instruction command is 00. Then, I want to write AA01550A to that register (mostly random values that I can verify). I am continually repeating this same write command. Whenever I do this, all registers are changing value in seemingly random ways. Also, thank you for your quick reply!

  • I believe I figured out why I was getting random values in the registers. I was transmitting write commands while the USB controller was trying to send read commands with the same bus. Sending the write commands significantly slower fixed the issue of the registers having random values. Now, I'm just trying to figure out why my command isn't writing anything to the registers I'm reading.

  • Hi  ,

    You can zip the setup file though. Sorry forgot to mention it earlier. 

    Sorry just want to clarify if you still encounter some issues?

    All the best,

    Jules

  • Oh okay then, attached is my setup file. Now, what I'm doing is sending the write command roughly once a second, and then using the debug menu in the software to read the registers of the chip. The command looks identical to my original screenshot, except CS and I/O_UPDATE are help high by default, only brought down before the command is sent. From what I understand from the timing diagrams in the datasheet, this should be transferring my data (AA01550A) into register 0x00. However, when reading with the debug software, it seems that the register values are stuck at all zeros. Is there something wrong with how I implemented the serial protocol? 

    ad9914setupfile1.zip

  • Hi  ,

    Just wanted to confirm if you were using 300 MHz as your input clock? Because when you try to bypass the PLL the input frequency should be within as shown below:

    Operating beyond the specifications is not guaranteed to give optimum performance. 

    Aside from that I don't think there are problems with your read and write. Just to confirm that you are using the evaluation software when reading and writing?

    All the best,

    Jules

  • I changed REF CLK to be 500MHz. Right now, what I'm doing is reading the registers using the software, and writing (or at least attempting) to the register using an external FPGA. What's happening is when the FPGA isn't connected, the register values are at their default values. As soon as I plug in the FPGA, all of the registers go to zero. What's even more curious is the fact that while I'm reading that the registers are zero from the debug software, I'm looking at the output of the AD9914 and it's giving me a sine wave (I set it to profile mode and to output a sine wave of 100KHz), even though if all the registers were zero like the debug software was saying, that shouldn't be possible.

  • Hi  ,

    I see. I can't think of any ways that makes this errors with your read and write aside from the FPGA that you have used. It might have set something to its default state when you connected the board. 

    May I know if you're using 3-wire or 4 -wire mode? 

    When you used the board as it is using our evaluation software, does if gives you the right values? Or does it function as intended? 

    All the best,

    Jules