AD9850 DDS Module: Temperature Sensitivity

While tinkering with the SPI code for the AD9850 DDS module, I wrote down the ambient temperature and the frequency tweak required to zero-beat the 10 MHz output with the GPS-locked oscillator. A quick-n-dirty plot summarizing two days of randomly timed observations ensued:

AD9850 DDS Module - Frequency vs Temperature

AD9850 DDS Module – Frequency vs Temperature

The frequency offset comes from the tweak required to zero-beat the output by adjusting the initial oscillator error: a positive tweak produces a smaller count-per-hertz coefficient and reduces the output frequency. As a result, the thermal coefficient sign is backwards, because increasing temperature raises the oscillator frequency and reduces the necessary tweak. I think so, anyway; you know how these things can go wrong. More automation and reliable data would be a nice touch.

Foam sheets formed a block around the DDS module, isolating it from stray air currents and reducing the clock oscillator’s sensitivity:

AD9850 DDS module - foam insulation

AD9850 DDS module – foam insulation

I used the ambient temperature, because the thermocouple inside the foam (not shown in the picture) really wasn’t making good contact with the board, the readings didn’t make consistent sense, and, given a (nearly) constant power dissipation, the (average) oscillator temperature inside the foam should track ambient temperature with a constant offset. I think so, anyway.

The coefficient works out to 0.02 ppm/°C. Of course, the initial frequency offset is something like -400 Hz = 3 ppm, so we’re not dealing with lab-grade instrumentation here.



  1. #1 by Vedran on 2017-05-31 - 08:23

    Just wondering (without any practical experience mind you), do you need shielding between Arduino and DDS?

    • #2 by Ed on 2017-05-31 - 09:47

      So far, so good! The DDS produces about 250 mV into a 100 Ω output filter, which seems like enough signal and low-enough resistance to eliminate anything wafting over from the Arduino. I’m punting separate power supplies for the DDS and (eventually) the log amp until an awful problem crops up.

  2. #3 by Hexley Ball on 2017-06-01 - 18:31

    I’ll bet that if you put on your Analog Guru hat, you could whip up a small heater circuit to keep the oscillator can at a pretty constant temp with just a thermistor, a transistor, and maybe a few resistors. Epoxy them all to the can and voila! – a bare bones OCXO. Or maybe the heating element could be one of those nifty cartridge heaters you used in your experiments with the extruder nozzle?

    • #4 by Ed on 2017-06-01 - 20:37

      I have no idea if this would work, but all it needs is a dab of epoxy:
      AD9851 DDS module with tiny Peltier cooler
      Isn’t that just the cutest little Peltier cooler you’ve ever seen?

      • #5 by Vedran on 2017-06-02 - 09:38

        Without a BIG heat sink it should be called a “Peltier heater”… took me embarrassingly long time to figure that one out when I first started messing with them:)
        But it is cute, I’ll give you that :)

        • #6 by Ed on 2017-06-02 - 10:11

          Yup, first time around the loop, everybody forgets the “cool” side must get rid of both the IC’s waste heat and its own wattage. If we had Peltier refrigerators in our kitchens, they’d work perfectly well as ovens, too!

  1. LF Crystal Tester: DDS Buffer Amp | The Smell of Molten Projects in the Morning
  2. LF Crystal Tester: LM75 Temperature Sensor | The Smell of Molten Projects in the Morning
  3. LF Crystal Tester: Bring the Noise! | The Smell of Molten Projects in the Morning

Spam comments vanish. Comment moderation may cause a delay.

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s