DDS controlled via soundcard

Andre Kesteloot andre.kesteloot@ieee.org
Sun, 27 Jan 2002 12:02:55 -0500


--------------A106AB7D0A36AC98BB14BB46
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

DL4YHF@aol.com wrote:

> Hi all,
>
> During a nice QSO in Jason mode today, and thinking about this and
> that, a crazy idea went through my brain. Maybe it's only good for the
> waste bin but how about this:
>
> Let the PC produce a digital control word for a DDS  VIA THE SOUNDCARD
> ?
>
> A DDS like the AD9832 needs a special serial control word, which is
> generated by a PIC processor in most cases. Three digital lines are
> required. How about "producing" the control word for the DDS via the
> SOUNDCARD ? We could either use a stereo output for clock+data
> (producing digital signals) , a few clamping diodes, two or three
> transistors and possibly a monoflop for the FSYNC signal (a third
> control line from PC to PIC). An alternative would be using different
> levels for the FSYNC, but proper level adjustment and clamping would
> be required because most audio outputs are only "AC coupled".
>
> Johan (SM6LKM) has written a routine in "C" for PIC controllers which
> I have adapted to run under DOS, using the parallel port. But it's
> complicated to do this under windoze, especially if the DDS shall be
> controlled in a highly "synchronous" way through the parallel port.
>
>
> What would be the benefit of using the soundcard to drive a DDS ?
> - you wouldn't need a programmed PIC processor acting as an interface
> between PC and DDS.
> - you wouldn't need a LPT interface which is tricky to access under
> Windoze NT + XP.
> - you wouldn't need a serial interface which does not exist on some
> cheap notebooks.
> - no need to fool around with USB programming
> - The serial control word for the DDS chip can be timed very precisely
> under windoze. A
> continuous output (with update the DDS every 100 ms or so) is
> possible.
>
>
> Disadvantages:
> - It's not a 'stand-alone' solution. A PC (or at least one of these
> tiny PDA's) is always needed. But which of the "modern modes" runs
> without a PC ?
> - To implement this, basic knowledge of Windoze API programming is
> required. But I know at least one other reader of this reflector who
> has.. ;-)
>
>
> If this sounds interesting, let me know and I'll do some more
> "research". The result could be a routine which produces raw 16-bit
> analogue samples to drive an AD9832 (which is the only DDS I have at
> the moment).
>
> 73,
>  Wolf DL4YHF.




--------------A106AB7D0A36AC98BB14BB46
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
DL4YHF@aol.com wrote:
<blockquote TYPE=CITE><font face="arial,helvetica"><font size=-1>Hi all,</font></font>
<p><font face="arial,helvetica"><font size=-1>During a nice QSO in Jason
mode today, and thinking about this and that, a crazy idea went through
my brain. Maybe it's only good for the waste bin but how about this:</font></font>
<p><font face="arial,helvetica"><font size=-1>Let the PC produce a digital
control word for a DDS&nbsp; VIA THE SOUNDCARD ?</font></font>
<p><font face="arial,helvetica"><font size=-1>A DDS like the AD9832 needs
a special serial control word, which is generated by a PIC processor in
most cases. Three digital lines are required. How about "producing" the
control word for the DDS via the SOUNDCARD ? We could either use a stereo
output for clock+data (producing digital signals) , a few clamping diodes,
two or three transistors and possibly a monoflop for the FSYNC signal (a
third control line from PC to PIC). An alternative would be using different
levels for the FSYNC, but proper level adjustment and clamping would be
required because most audio outputs are only "AC coupled".</font></font>
<p><font face="arial,helvetica"><font size=-1>Johan (SM6LKM) has written
a routine in "C" for PIC controllers which I have adapted to run under
DOS, using the parallel port. But it's complicated to do this under windoze,
especially if the DDS shall be controlled in a highly "synchronous" way
through the parallel port.</font></font>
<br>&nbsp;
<p><font face="arial,helvetica"><font size=-1>What would be the benefit
of using the soundcard to drive a DDS ?</font></font>
<br><font face="arial,helvetica"><font size=-1>- you wouldn't need a programmed
PIC processor acting as an interface between PC and DDS.</font></font>
<br><font face="arial,helvetica"><font size=-1>- you wouldn't need a LPT
interface which is tricky to access under Windoze NT + XP.</font></font>
<br><font face="arial,helvetica"><font size=-1>- you wouldn't need a serial
interface which does not exist on some cheap notebooks.</font></font>
<br><font face="arial,helvetica"><font size=-1>- no need to fool around
with USB programming</font></font>
<br><font face="arial,helvetica"><font size=-1>- The serial control word
for the DDS chip can be timed very precisely under windoze. A</font></font>
<br><font face="arial,helvetica"><font size=-1>continuous output (with
update the DDS every 100 ms or so) is possible.</font></font>
<br>&nbsp;
<p><font face="arial,helvetica"><font size=-1>Disadvantages:</font></font>
<br><font face="arial,helvetica"><font size=-1>- It's not a 'stand-alone'
solution. A PC (or at least one of these tiny PDA's) is always needed.
But which of the "modern modes" runs without a PC ?</font></font>
<br><font face="arial,helvetica"><font size=-1>- To implement this, basic
knowledge of Windoze API programming is required. But I know at least one
other reader of this reflector who has.. ;-)</font></font>
<br>&nbsp;
<p><font face="arial,helvetica"><font size=-1>If this sounds interesting,
let me know and I'll do some more "research". The result could be a routine
which produces raw 16-bit analogue samples to drive an AD9832 (which is
the only DDS I have at the moment).</font></font>
<p><font face="arial,helvetica"><font size=-1>73,</font></font>
<br><font face="arial,helvetica"><font size=-1>&nbsp;Wolf DL4YHF.</font></font></blockquote>

<br>&nbsp;
<br>&nbsp;</html>

--------------A106AB7D0A36AC98BB14BB46--