Square Wave using AD9910 Eval Board

I have followed the previous question (https://ez.analog.com/dds/f/q-a/28425/can-ad9910-generate-square-and-triangular-waves/153397#153397) to get a square wave using the DRG. However I had a few follow up questions:

- The Rising/Falling step interval in amplitude mode goes up in discrete values (for example. 0.2880us , 0.2960us, 0.3040us..) I want to generate a square wave of frequency somewhere between these values, is it possible to do that?

- If I wanted to use the RAM for square wave generation, how would I go about it? I want to generate a square wave of 1.7MHz. I am not at all familiar with what to put in the begining and final addresses.

  • 0
    •  Analog Employees 
    on May 7, 2021 7:05 AM


    Unfortunately, the rising/falling step interval is limited to incremental values of 0.08us (0.08us, 0.16us, 0.24us, 0.32us...). Then this thread might help regarding RAM for square wave generation.

    Best regards,


  • 0
    •  Analog Employees 
    on May 7, 2021 1:08 PM

    The AD9910 relies on a sampling clock (i.e., the system clock). Hence, the timing of the internal signal generating core relates to the system clock frequency, fs. The DRG and RAM operate at a rate of fs/4. The implication being that the DRG and RAM generate signals on clock boundaries of fs/4 (4ns for fs=1GHz). Hence, it is not possible to directly generate a square wave with edges that deviate from an fs/4 grid using the DRG or RAM.

    However, you could use the DDS to generate square waves. Because the DDS generates a sinusoid, the mid-point crossings of the sinusoid can be used to generate the edges of a square wave. A comparator placed at the output of the DDS will convert the sinusoid to a square wave. The frequency of the square wave will have the same tuning resolution as the DDS (increments of fs/2^32, which equates to 0.23Hz for fs=1GHz).