Best way for amplitude scaling of a DDS source? - Page 1
Forum section: electronics / projects

author: dzseki
author_rank: Frequent Contributor
timestamp: January 05, 2023, 11:11:30 pm
content: I'd like to build an adjustable signal source around the AD9106 12bit 180Msps DDS chip. I want my source to be scalable both in frequency and in amplitude, with emphasis on low distortion (and noise).To my understanding better not to poke with the AD9106's DAC output in terms of amplitude scaling (at least for bulk adjustment). Eg. if I set the output at 1/2 FS, then I only have 11bits left, and my output spectra suffers accordingly, at 1/4 FS 10 bits, and so on.I thought about leaving the DAC output at FS, then adjust the amplitude with some analog multiplier/VCA. But I have some concerns here as well...Initially I was astonished by the "quick specs" of VCA810, having a mulitplier noise of 2.4nV/sqrt(Hz), but looking closer to its harmonic performance it is utter crap.Looking further in TI's VCA family the VCA824 looks promising but here is something I don't understand. In the electrical characteristics they mention that the input voltage noise is typically 6nV/sqrt(Hz), on figure 21 (in the datasheet) they show a curve aboutOutputVoltage Noise spectra, which settles around 30nV/sqrt(Hz), how are the two related? Yet, the harmonic performance of the VCA824 is still behind the performance of the AD9106's.From AD the AD834 and AD835 multiplier can come into play but the AD835 appears to be rather noisy, while the AD834 appears to be so-so (but expensive and quirky because of the current output), but both datasheet lacks detailed graphs on spectral performance and noise performance, they appear to be behind in these regards to the VCA824 anyway.I even thought about using a series of small signal transformers and by changing the secondary coils I might have a few relative noise free output levels, and combining this with the DAC output scaling (not more than down to 1/4Fs or so) the overal result could be reasonable, but the amplitude control range would be somewhat limited and is definitely quirky to build.So how would the pros doing?

author: langwadt
author_rank: Super Contributor
timestamp: January 05, 2023, 11:40:52 pm
content: isn't that what the DACxAGAIN and DACxRSET registers are for ?

author: cncjerry
author_rank: Unknown
timestamp: January 06, 2023, 12:16:18 am
content: Depending on the output you want, you might be better off using an attenuator. For instance, on the phase noise measurement system I built (designed by Andrew Holme), we need to keep the input into the ADCs for both reference oscillators and the DUT oscillator as near as possible to the peak ADC input in order to maximize the dynamic range of the ADC. So we amplify it and then dial it back with a precision attenuator. You can also attenuate then amplify but it depends on the the source levels, etc. Using a step attenuator also allows you to get back to a previously selected output very easily.If you go this route, there are a lot of attenuators to be had and I use a combination of fixed and variable HP attenuators (e.g. 33320, 33321, etc) Then the amplifier in our case has to have a low noise factor. Another person who built the system recommended the QBit-QB188s though I always get the name/number wrong, but that is close enough to the number to find it. By the way, I would stay away from the electronic attenuators as I've yet to find the use for them. Also, I've had bad luck with the rotary type and had to send a few back.You don't want to use the DDS digital output to set the gain. I would recommend taking a look at all the AD DDS chips. I used the 9910 recently and there was another I can't remember, both of which you can purchase in kit form off eBay that have very good dynamic range, low noise and spurs and good SSB noise, much better than even recent models. People used the AD9850 then 9851 and 9951 for years when they could have used the 9954 with quadrature output and variable phase for not much more. Also, the 9954 (again I sometime confuse the numbers) has probably been superseded by something to date.Jerry

author: dzseki
author_rank: Frequent Contributor
timestamp: January 06, 2023, 07:22:30 am
content: Quote from: langwadt on January 05, 2023, 11:40:52 pmAccording to the datasheet, these registers are for calibrating the output levels of the DACs. There is a separate RSET pin for each DAC, although the recommended value here is 8kOhm, as I guess if I want to scale down the output I need larger resistors there, maybe a switchable resistor network could work for a limited range (instead of stepped transformers).

author: Kleinstein
author_rank: Super Contributor
timestamp: January 06, 2023, 09:51:13 am
content: For fine adjustment the DACs reference side can be used. With the AD9106 it looks it can do this even internally. This usually only works for a small range (like 1:2 or 6 dB). The adjustment at the DAC reference does not loose resolution, though it may add some noise and INL. It would be the digital gain part (seems to be also in the AD9106) that looses resolution.For the coarse adjustment it would be better use an external attenuator - usually resistive, though transformer taps could work as well. The attenuator may in part even be all the way to the output to also attenuate amplifier noise. An attenuator at the output gives some extra protection.The speed of the chip is not that high and one could likely get away with a simple amplifier, with an extra leveling loop to compensate for gain variations (could also be an issue with a VCO).One may still need a calibration for attenuator steps. With some 6 dB of fine adjustment in the DDS chip it does not need than many extra steps: 5 dB ... 80 dB would only be 4 bits / relays.

author: dzseki
author_rank: Frequent Contributor
timestamp: October 18, 2023, 07:03:46 am
content: Picking up this thread again.So adjusting the reference voltage of the DDS IC seems to be a very clever idea indeed the datasheet suggests that the VREF should be between 0.1...1.25V (1V nominal), this is rather a broad range, in fact I've settled with a range of 0.2V...1V (5x factor) controlled by a 12bit DAC, plus adding a switchable network for range resistor (FSADJx) with two values a further range of 5x is added, which leads to 25x (~28dB) coverage.In the meantime I've set the requirements for the output voltage compliance, and figured to add a signal transformer (with 1:20 turn ratio) to the mix as well. This result in 4 physical ranges, and within each range it is continuously adjustable. The total dynamic coverage of 500x (~54dB), output voltage between 20mV...10V RMS should be achieved.There is a disadvantage though. The VREF is common to all channels, and I want two outputs to be semi independent. This means the main channel should be adjusted as outlined above, and the secondary channel should track the main channel but I may need higher output levels than the main output (but never less).I still want to avoid analog multiplier. So the next idea would be to substitute the range resistor of the secondary channel with a DigiPot, specifically the AD5270 (10bit, 1% tolerance, typ tempco <25ppm/°C). I've never used a digipot, and was always suspicious about them, but this might be an acceptable application for it, since this part of the circuit is essentially DC.

author: Kleinstein
author_rank: Super Contributor
timestamp: October 18, 2023, 08:13:42 am
content: Chances are the actual limit is the current for the DACs, not the Rset and voltage reference by itself. So it may not be such a good idea to vary both over a large range. Chance one would have to settle with a fixed ref and only adjust on the Rset side to get individual control. I don't know the details on the chip internal adjustments - the external AD5270/5271 offer better resolution (7/8 bit) with a relative good TC.One may still have to check if the resistance range is right.

author: dzseki
author_rank: Frequent Contributor
timestamp: October 18, 2023, 08:53:29 am
content: Well, there is about +/-25% of trimming capability both on the internal reference and Rset resistors. The DAC output tempco with internal Vref is about 250ppm/°C, of which ~100ppm can be addressed to the internal Vref. I will use external Vref and Rset anyway.Using Rset exclusively for amplitude adjustment is a good idea, although:Voltage stability is a prime concern on the main output, also (inevitably) there will be signal transformers in the signal path along the way, their response is not super flat in the desired frequency range, therefore there will be an analog feedback loop stabilizing the output both with temperature and frequency, this is most convenient to be done through Vref pin. If the output value changes only by setting Rset, I have to deal with the varying feedback (that is measured from the output) somehow for the servo loop.