AD9850 DDS
wb4jfi at knology.net
wb4jfi at knology.net
Sun Mar 17 07:30:39 CDT 2013
If you just apply power, you will see an RF signal out of the DDS (make sure any “sleep” hardware pin is OFF – not in sleep mode), but the frequency may not always be the same. I think that it does default to certain values, but don’t remember with the 9850. The AD9850 data sheet should tell you what the default power-up values are for the various parameters. If I remember correctly, there is also a hardware line that must be either high or low to select serial-loading of data.
There are also more bits than just the FTW that must be loaded into the AD9850 each time. I will look at the data sheet again, I suggest that you become rather familiar with the data sheet. I think there are like 40-bits that must be loaded each time, with 32(?) being the FTW.
The FTW calculations are generally the same for all Analog Devices DDS chips. First, you divide the number of bits in the FTW (2^32, or 4 billion-something) by the master oscillator frequency (in Hertz), which yields the number of Hertz per bit (or sub-Hertz per bit actually). You then multiply that number by the frequency that you want generated. The 32-bit word result is the FTW that must be sent to the DDS chip. Add that to whatever other bits are necessary, and then crank all those bits out one at a time, while toggling the clock line. I can’t seem to find my AD9850 data sheet at the moment, and must head back to bed after feeding the cats.... more later. (the above is from memory) Read carefully the data sheet, especially regarding phase of clock versus data bit transitions, especially at the end of the writing process.
Terry
From: Alex Fraser
Sent: Sunday, March 17, 2013 3:32 AM
To: tacos at amrad.org
Subject: Re: AD9850 DDS
Yes Terry it does help. I have been searching the web off and on all day. I found some good stuff which I will regurgitate here when I can organize it. I think tomorrow I'm going to put some power on one of these boards, not that I expect to get a wave out, but to see what physically I must do, get power to the bread board, cut jumpers and what not. I am starting pretty much from scratch, I haven't bread boarded in years. I might as well burn my first one up and get that behind me ;-) We must sacrifice and see the smoke!
It seems to me that I had a two meter radio years ago, an Icom 22s IIRC that used diodes soldered on a board to set the channels so if you wanted to change frequency you pulled the board. looked up or calculated the placement of diodes and saved yourself having to buy a crystal. I wonder if it would be that simple for getting one particular frequency using the parallel input? I have to do some reading on what this chip needs to see to put out.
As I said I'm starting pretty much from scratch. I have a frequency counter kit I will build this week and it will give me a chance to play with my new soldering iron. I'll start mail ordering other stuff too, I need a stock of headers and stuff like that as these data based soldering projects don't lend them self to dead bug methods easily. I'll also probably get an Arduino board and proto shield as I found a couple of pages showing how to's for these boards. As you know you have to think down the road with projects if you don't want to be waiting at the mailbox for parts.
I do have a couple of laptops with parallel ports and just the other day I found my stash of gold plated d25 connectors.
wb4jfi at knology.net wrote:
Hey Alex.
The AD9850 is pretty old as far as DDS chips go. I was playing with them and the AD9832 several years ago. I have not used this exact module, but have one that I purchased recently that is very similar. I also have several different ones that I home-made using the AD9850, AD9851, AD9832, AD9835 over the years. Plus, we have used the David Brainerd DDS boards that use the newer AD995x series DDS chips. The newer chips use less current and produce fewer spurs, as the A/D uses more bits – generally speaking.
We used to drive these DDS chips with a parallel port on a computer, using a few bits to drive the DDS chips in SERIAL mode. It’s pretty easy, you drop the chip select, toggle the clock line up and down while also setting the data line to either low or high, then bring the chip select high again after the prescribed number of bits have been transferred. The exact bit sequence, number of bits, etc are all DDS chip specific, as are the specific signal names, but they all used this same general principle.
Some of the DDS chips also have parallel inputs, but most people did not mess with parallel data loading. It was faster to load, but harder to implement the hardware. I don’t remember anyone using the serial port, as the DDS chips don’t talk async serial. You would need to use only the RS232 CONTROL lines (not the data lines), and bit-bang those lines with a software serial interface. Plus, the voltages are wrong on a true RS232 serial port.
You should probably use a driver/buffer chip between the PC parallel port and the DDS chip, to protect the DDS chip. I found that I used a 74HC244 as the buffer.
If you look at the AD9850 on the Analog Devices web site, there is probably a development or demo board that used the chip, and was driven by a PC parallel port, from what I remember. Of course, parallel ports on PCs are getting harder to find.
The Brainerd DDS/receiver boards had a good following, and there was some PIC code that could be used either on the Brainerd AD995x board, or other DDS chips, with the Spark Fun “UBW” USB Bit-Whacker board. Both used a variant of the PIC 18F2550 chip for control. Windows programs were written to drive the PIC chip, via the USB connection. The original code was written by Tom (can’t remember callsign), but another ham and I added a LOT of additional support to it, including support for many other DDS chips, A/B VFOs, Tx/Rx switching, offsets, variable clock freqs and multipliers, and other stuff. That code is still out there on a Yahoo web site. including C source code.
I haven’t played with these DDS chips in a while, as the Si570 kind of took over, but I still have several of the older boards, and some of the old code. Most of the code could be translated to an Arduino, except the Arduino doesn’t have great math libraries. I’m not sure that you can get an accurate calculation of the FTW (Frequency Tuning Word) that needs to be sent to the DDS chip, but you may get within a few Hertz or tens of Hertz, which may be good enough. I had to do a lot of messing around to get the larger FTWs working on the PIC chip, as it also had math library issues.
Anyway, I might be able to find some archived DOS-based C code to drive the AD9832 and AD9850, given a little time. It was originally written for Run-C (a C interpreter), then Borland Turbo-C, my favorite tools of the day. Otherwise, I can certainly help you with how to program the DDS. If you can find a PC with a parallel port, that’s a good start.
The AD9850 is rather long-in-the-tooth, and somewhat poor in spurious signals, but these modules are certainly cheap enough! I hope this helps.
73, Terry, WB4JFI
From: Alex Fraser
Sent: Saturday, March 16, 2013 5:07 PM
To: tacos at amrad.org
Subject: AD9850 DDS
I got a package in the mail all the way from China. I bought 3 of these AD9850 modules on ebay
http://www.ebay.com/itm/400385385193?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
My goal is to be able to generate an RF signal which I can use in place of a crystal oscillator in a radio.
First the physical aspects. The 10 pins are spaced .1 apart and the two rows are what looks like .8 from each other.
I first tried sticking them on a PATA hard drive cable and that works, though I only need one row. I then remembered I had some plastic breadboards
stashed away, which amazingly I found right away, so I can start right away trying to do something with these modules. I imagine there will be some frequency limitation on using them on a breadboard, but to start I can use the lower range of their frequencies.
Has anyone used these? Anyone know of some good sites online on how to get these things working in Ham radio? I think eventually I would want to be able to control them with a independent little gizmo, but to start now I would be very happy to control them from a PC. I would need to know what interface to use, like serial port or parallel port and probably need some help with software to push the desired signal out of the port.
I'm getting ahead of myself and haven't even got any lights to light, but if these boards, with those pin spacing would fit on an Arduino proto typing shield and folks thought it feasible (easy enough for a newbie!) then I would start acquiring the hardware now to do just that.
--
\\\\\\\\\\\\\\\\-----++++*0*++++-----//////////////////
No electrons were harmed in the creation of this message
--------------------------------------------------------
~~~********************Alex Fraser********************~~~
--------------------------------------------------------
[[[[[[~~^^^#___=>>>```/\/\**O**/\/\```<<<=___#^^^~~]]]]]]
------------------------------------------------------------------------------
_______________________________________________
Tacos mailing list
Tacos at amrad.org
https://amrad.org/mailman/listinfo/tacos
--
\\\\\\\\\\\\\\\\-----++++*0*++++-----//////////////////
No electrons were harmed in the creation of this message
--------------------------------------------------------
~~~********************Alex Fraser********************~~~
--------------------------------------------------------
[[[[[[~~^^^#___=>>>```/\/\**O**/\/\```<<<=___#^^^~~]]]]]]
--------------------------------------------------------------------------------
_______________________________________________
Tacos mailing list
Tacos at amrad.org
https://amrad.org/mailman/listinfo/tacos
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://amrad.org/pipermail/tacos/attachments/20130317/c037d05a/attachment-0001.html>
More information about the Tacos
mailing list