Issue
130 May 2001
DDS-GENPart
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! Dont miss out as he covers
everything from hardware selection to software design
to prototype contruction this month.
Start Direct Digital Synthesis?
The AD9852 monster chip Hardware
Prototype Construction On The Software Side Design Methodology Whats 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 Bills 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 wasnt 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.