AnsweredAssumed Answered

AD9910 DRG mode in amplitude sweep (triangle waveform) output full rang different from single tone

Question asked by WadeChien on Oct 23, 2017
Latest reply on Dec 20, 2017 by WadeChien

Hi all


first of all, I want to thank this engineer zone forum and especially Kenny G. for lots of useful information about AD9910, so besides basic single tone for sine wave generator, I could finally get my triangle waveform going after one week figure out how proper calculation of step size/rate and configuration is, and it does work!


however, my question about triangle waveform that cause me here is the amplitude, what I am trying to do is triangle wave with adjustable frequency(also period) and duty(in %) like function generator we use quite often.

And for amplitude, it's okay a fixed value for now and I can amplify it externally. in detail,


I set my full swing current at 20mA with external resistor 25 ohm, I can get 0.5V maximum output not exceed the restriction of current output+/-.


Like I said I don't care about amplitude at this point, I set upper/lower limit to maximum value(0x00000000, and 0xFFFFFFFF), and output type to cosine, FTW to 0 as Kenny G. suggests in AD9910 Dig Ramp Mode Capabilities 

and I expect full range will perform as what we see in single tone mode yields 0V~0.5V at Iout and 0.5V to 0V at IoutB(inverse). 

sinewave(single tone)output at Iout and IoutB pin

however, what I get is the triangle amplitude sweep(DRG) looks symmetric to a bias voltage (1/2 full range)

triangle wave output at IOUT and IOUTB(using DRG mode, amplitude sweep)

when I use a instrument-amp circuit

dds_output differential amplifier to get bipolar output(single end)


trying to turn output signal from single end to a bipolar(+ and -) output with gain = 2, I get

triangle waveform output signal after differential amplifier


if I set output type to sinewave, it appears to be even smaller(likely half of the amount of cosine output)

output type set to sinewave


could anyone help me understand where the problem is or this is what it could produce, so I know I have to add a bias circuit to my differential amplifier.



plus I attached my circuit about AD9910, and my code(HMI_AD9910.c/.h) to control it through SPI from a microcontroller (especially two function named "AD9910_triangle_wave" and AD9910_single_tone")


Any thoughts will be appreciated.