Home |
Search |
Today's Posts |
|
#1
|
|||
|
|||
xpyttl wrote:
"Ken Scharf" wrote in message ... Has anybody here attempted to use a pic to control a dds chip (and wrote the software himself)? Wander on over to http://www.amqrp.org/elmer160/board/index.html and click the 'Test Software.ZIP' link. In the source is just a few lines to control the DDS. That particular program does everything but the kitchen sink, and the DDS part is just a tiny fraction. The advantage here is that the DDS code is split out, and you can see just how simple it really is. Then, click on the 'VFO Software.ZIP' link. That piece of code for the same hardware is really focused on the VFO capability, and has all sorts of features. I think Craig still has the original code still in there from WB2V that allows you to calibrate your oscillator against WWV. If not, the original 'SigGen' code does. Google for SigGen, WB2V, WB9KZY or AA0ZZ. .. The amqrp.org site has lots of good stuff there, thanks. Google turned up http://www.njqrp.org/ham-pic/projects.htm Lots of good code there. Best way to learn how to program a new micro is to look at code already written for it. Thanks! |
#2
|
|||
|
|||
It's really not difficult at all once you understand the DDS serial message
structure. I did it in PICBasic with a 14F675 and a AD9850 DDS for my HF Lab System, including a 9600 baud software UART and a few routines that do analog capture and log detector calibration (http://mysite.verizon.net/jdrocci/). The whole code footprint was about 600 words if I recall, and it could be much smaller if it were coded in assembly, as the Basic compiler loads a number of subroutines that don't always get called. If you're daunted by the math involved, PICBasic might be the way to go as it includes multiply & divide capabilities. Joe W3JDR "Ken Scharf" wrote in message ... Has anybody here attempted to use a pic to control a dds chip (and wrote the software himself)? I was looking at G3XJP's article on his 'pic-n-mix' vfo using an 16C84 to control an AD9850. I can't belive he was able to get all that functionality into just 1k of code and 64 bytes of eeprom. (you can find his article as an apnote on the Analog Devices web site ... AN-557 is the number) I'm thinking of using the AD9954 dds chip instead of the 9850. I'm just starting to look at what's required in code to get from a BCD input to the DDS word. Keep in mind G3XJP didn't hard code his clock as a constant, it can be adjusted. The formula to get the DDS word involves some math with fractional parts, it can be done in interger math with some scaling or lookup tables, but there isn't much room in a pic. I just ordered some 16F88's with 4k of program space and 256 bytes of eeprom so I would have a little more room. Any starting ideas would be welcome! |
#3
|
|||
|
|||
"Ken Scharf" wrote in message
... Has anybody here attempted to use a pic to control a dds chip (and wrote the software himself)? Wander on over to http://www.amqrp.org/elmer160/board/index.html and click the 'Test Software.ZIP' link. In the source is just a few lines to control the DDS. That particular program does everything but the kitchen sink, and the DDS part is just a tiny fraction. The advantage here is that the DDS code is split out, and you can see just how simple it really is. Then, click on the 'VFO Software.ZIP' link. That piece of code for the same hardware is really focused on the VFO capability, and has all sorts of features. I think Craig still has the original code still in there from WB2V that allows you to calibrate your oscillator against WWV. If not, the original 'SigGen' code does. Google for SigGen, WB2V, WB9KZY or AA0ZZ. ... |