Post Go back to editing

AD9910 - Loading the RAM data files without Eval-board

Thread Summary

The user seeks to load RAM data files for a frequency sweep from 250 MHz to 350 MHz on an AD9910 device without an evaluation board. The solution involves using SPI to write start and end addresses to RAM Profile registers, selecting the profile via profile pins, and writing 32-bit frequency words to SPI address 0x16. Key clarifications include setting CFR3[15]=1 to bypass the REFCLK divide-by-2 block and verifying RAM data with RAM Enable set to 0 or 1.
AI Generated Content

 Although it would be a fundamental question, let me ask one question. I want to know how to load the RAM data files without evaluation board.

 Above all, I want to introduce my procedures for loading the RAM data files with the evaluation board and software which were provided by Analog Device. Using evauation board and software, I successfully loaded the RAM data files and I could easily generate some ramp signals which I wanted. To be specific, several detailed conditions are mentioned below.

 - Fsystemclk = 1GHz

 - Start frequency = 250 MHz

 - End frequency = 350 MHz

 - frequency step = 0.1 MHz

 => RAM data files : 250MHz, 250.1MHz, 250.2MHz ~ 352 MHz, 352.1 MHz, 352.2 MHz

                                (# of data = 1024, I attached RAM data files which consists of Hex)

 I loaded these RAM data files using RAM I/O Window in the evaluation software. And then, Using Profiles Window, I designated each RA segment by setting Beginning and Final Address, step rate, and mode control.

 

 What I really want to know about is how I can load the RAM data files without Evaluation software and board. I want to know the similar procedure as I loaded attched text files in the RAM I/O Window when I used Eval-software. I think I might have to use SPI control pin such as SDIO, SCLK, I/O_RESET pins. Could you please let me know the detailed process for loading RAM data files?

250_350MHz.txt.zip
Parents
  • Generally, what you are doing seems reasonable.

    A couple of observations:

    1) CFR3[15]=0 is the device default setting. However, the default setting enables the divide-by-2 block at the REFCLK input, which means your system clock is operating at 500MHz (rather than the desired 1GHz). To bypass the divider, program CFR3[15]=1.

     

    2) RAM Step Rate=0x000A (10 decimal). With a 1GHz system clock, this yields a RAM address step period of 40ns. So, with 1000 RAM address locations, the entire frequency sweep lasts a mere 4us. Do you have a means to reliably observe such a brief chirp? For debugging purposes, I would recommend making the step rate value very large so that the sweep occurs slowly giving you a better chance of observing what is going on.

    Also, try writing the RAM data to Register 0x16 with RAM Enable=1. It has always been unclear to me whether this bit should be set or cleared for loading the RAM. In my opinion, given the RAM controller requires knowledge of the RAM start and end address values in the selected RAM Profile, it makes sense to have RAM Enable=1 so that the profile register is in RAM mode (rather than Single Tone mode).

    Actually, now that I think about it, you can easily verify whether the RAM Enable should be set or cleared for proper operation. Write a simple test program to load and then read back (verify) the RAM data. Then, run the test with RAM Enable=0. Repeat the test with RAM Enable=1. The method that produces a valid read back of the data is the one to use.

Reply
  • Generally, what you are doing seems reasonable.

    A couple of observations:

    1) CFR3[15]=0 is the device default setting. However, the default setting enables the divide-by-2 block at the REFCLK input, which means your system clock is operating at 500MHz (rather than the desired 1GHz). To bypass the divider, program CFR3[15]=1.

     

    2) RAM Step Rate=0x000A (10 decimal). With a 1GHz system clock, this yields a RAM address step period of 40ns. So, with 1000 RAM address locations, the entire frequency sweep lasts a mere 4us. Do you have a means to reliably observe such a brief chirp? For debugging purposes, I would recommend making the step rate value very large so that the sweep occurs slowly giving you a better chance of observing what is going on.

    Also, try writing the RAM data to Register 0x16 with RAM Enable=1. It has always been unclear to me whether this bit should be set or cleared for loading the RAM. In my opinion, given the RAM controller requires knowledge of the RAM start and end address values in the selected RAM Profile, it makes sense to have RAM Enable=1 so that the profile register is in RAM mode (rather than Single Tone mode).

    Actually, now that I think about it, you can easily verify whether the RAM Enable should be set or cleared for proper operation. Write a simple test program to load and then read back (verify) the RAM data. Then, run the test with RAM Enable=0. Repeat the test with RAM Enable=1. The method that produces a valid read back of the data is the one to use.

Children
No Data