circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

Issue 130 May 2001
DDS-GEN—Part 2: The Generator


by Robert Lacoste
Lucky for us it was a cloudy night in France when Robert was scheduled to write the second part of the article on his DDS-GEN project! Don’t miss out as he covers everything from hardware selection to software design to prototype contruction this month.

Start Direct Digital Synthesis?The AD9852 monster chipHardwarePrototype ConstructionOn The Software SideDesign MethodologyWhat’s Next?Sources & PDF

Design Methodology

As I explained in Part 1 last month, I prefer spending time doing simulation steps rather than burning a zillion OTP chips. In order to get the DDS-GEN working as quickly as possible, I settled on the following four development steps:

Step 1: The full main program was developed and simulated on my PC under Bill’s classic Visual C++ environment. The I2C-MMI peripheral was fully simulated with software routines and the shadow DDS register parameters were displayed with the debugger as required. This step allowed me to debug all of the user interface and menu software (80% of the total code) without having to get onto the target chip;

Step 2: An emulation of the interrupt handling code was developed in C, and the target DDS chip was connected to the PC through a hacked LPT parallel port. This step was like a homemade ICE (on the hardware side, no more than a DB25-to-87LPC764 socket and some C lines), and allowed me to fully debug the DDS chip register issues (register mapping, truncation errors, etc.);

Step 3: The specific target code was added (mainly I2C-related stuff), the interrupt routine was optimized, and everything was cross-compiled to the target 87LPC764. Then, everything was debugged on the target;

Step 4: This step wasn’t planned, but I had a memory space issue. The first cross compilation ended with a RAM and ROM requirement about twice as large as 87LPC764 chip capability. A full iteration from Step 1 and a lot of simplifications and optimization were needed.


© Circuit Cellar, The Magazine for Computer Applications. Reprinted with permission. For subscription information call (860) 875-2199, email subscribe@circuitcellar.com or on our web site at www.circuitcellar.com.