From John Bodin
It would be very nice if we could agree on a simple serial protocol
that would allow any PC program, be it DOS or Windoze, to take total
control over the DDS (I know that Andy G4JNT has done something
in this direction).
My DDS control protocol allows the 32 bit frequency word or 5 bit phase to
be sent as printable Ascii hex characters using a simple serial protocol
with simple handshaking, useable from any terminal or driver software, at
19200 baud. Driver software reads back user data from the DDS controller to
let this know the clock frequency. That way, the software can be
independant of any particular DDS unit it has to control. (Very useful when
you have five DDS modules in the shack operating from clocks ranging from 5
MHz up to 94.45 MHz and soon 4.194304MHz as well) There is also a module
address facility built in (thanks to Larry for that idea) to allow multidrop
use where one serial line can control several DDS units, a-la Icom C-IV
interface. Last option is a command that updates the frequency or phase in
the DDS only after an external trigger pulse. This makes GPS timed PSK or
FSK straightforwrd, after the new value is sent to the DDS controller, the
new value will appear exactly 3.2us after the UTC timing pulse.
Summary of the DDS module commands :
------------------------------------
The first character sent is a Board Address which precedes all commands.
This is a single Hex character sent as ASCII 0 - F and potentially allows
up to 16 modules to be driven from the same COM port. If correctly
addressed, the module responds with a Z [cr][lf] and this response sould be
waited for
The next character is a command which may have hex data following it.
Q Followed by eight hex digits for the frequency command word
terminated by a carriage return
P Followed by two hex digits for phase word and [cr]
U Writes the data sent above to the AD9850 DDS chip
T Writes the data to the AD9850 after the next 0/1 transition on the
external trigger input
W As for U, but also stores the data in the PIC's non-volatile EEPROM
memory for switch on next time.
Y Followed by one Hex digit, changes the board address and stores in
EEPROM. No [cr] needed
K Followed by 10 hex digits & [cr]. Read back user data, usually clock
frequency
R Readback current data values in operation - not necessarily those in
EEPROM
So, to update the frequency (to one mentioned a lot on this reflector :-|
the following characters are sent assuming the board address is 7 The dot
. means wait for a response :
7.Q06F58E8C[cr]
7.U
Andy G4JNT
--
The Information contained in this E-Mail and any subsequent correspondence
is private and is intended solely for the intended recipient(s).
For those other than the recipient any disclosure, copying, distribution,
or any action taken or omitted to be taken in reliance on such information is
prohibited and may be unlawful.
|