Post Go back to editing

On EVAL board, the output frequency (DDS) is not exactly as my config.

Category: Hardware
Product Number: AD9910

On AD9910 EVAL board with crystal mode (25MHz),  I config N value in CFR3 for sysClk. Expect to output a DDS sine wave of 50MHz.

CFR1 = 0x00402002

CFR2 = 0x00400820

CFR3 = 0x193F4528  <--- N will be configured from 20, 24, 28, 32, 36, to 40.

FTW in Profile register will be set according to sysClk.

Question:  I expected the output freq of 50MHz, but it was not. See below yellow mark (55MHz). Some are over 55MHz, some under 55MHz. 

Is there something wrong with my config ? or wrong programming ?

SysClk = 500MHz SysClk = 600MHz SysClk = 700MHz

SysClk = 800MHz SysClk = 900MHz SysClk = 1000MHz

Thread Notes

  • ADI North America will be on winter shutdown starting December 24, 2024; perhaps another community member can assist you until our return on January 2, 2025.
  • Hi  ,

    May I know your specific application?

    I assume your input clock is 25 MHz since you used the crystal. You intended output is 50 MHz, so I assume you used the onboard PLL. May I know what are the values? Are you using a custom PCB? If you're using the evaluation board, did you customize the board? 

    Aside from that, I'm sensing that there might be differences with your input clock, might be it is not exact 50 MHz? Might worth checking.

    All the best,

    Jules

  • Hi, Jules

    I used your AD9910 EVAL board and controlled AD9910 registers via SPI from STM32L053.

    I config the jumpers on EVAL board

        1) Remove C51 and C52

        2) Put 0 ohm on R4 and R11

        3) W7 switch to XTAL mode, using 25MHz crystal on your board.

        4) Remove W3 / W5 / W6

        5) W1 / W4 switch to Disable

    After that, STM32L053 set values as I mentioned the first message.

    My question is like the first message said DDS is not exactly on 50MHz.

  • Hi, Jules

    In our application, we used EVAL board to generate sine waves of 50MHz to test an equipment and calculate its response. In next step, we would increase the DDS frequency from 50MHz to 60MHz by a step of 250kHz. In final, we would get all of the responses.

    But, I tried system clocks of AD9910, when I changed the N value with corresponding FTW. Based on every system clock to generate a 50MHz, the EVAL board couldn't generate accurate 50MHz. See my above pictures, yellow mark (55MHz), based on different system clock of AD9910. Some pictures are over 55MHz, some pictures under 55MHz. Not accurate on 50MHz. How to generate an accurate 50MHz ?

    BR

    Peter Lu

  • Hi  ,

    I can confirm that when generating signals using DDS is not the exact number. Example would be in the evaluation software, when generating 50 MHz (@500MHz external clock), it does not give the exact 50 MHz but rather only 50.00000005 MHz. There's a small difference but not to the extent that it would reach 55 MHz as per your experience. 

    Sorry I might have missed that part where you were changing the N values? When you changed your N values, did you also change your loop filter values? R1, C1, C2? I'm thinking this might be the reason. You have to have the exact values of your loop filter whenever you make changes to your feedback divider N. This might be the reason why you did not get the exact value of 50 MHz and instead got 55 MHz. 

    All the best,

    Jules

  • Thanks, Jules.

    Put R1, C1, C2, and then DDS frequency becomes stable.