808 Gilman Avenue Berkeley, CA., 94710 p:925.253.2960 www.ultraviewcorp.com
CUSTOM APPLICATION PROGRAMMING OF
THE SYNTH1000 IN WINDOWS
Powerful custom applications (beyond the functions incorporated in the GUI) for the Synth1000 device
can be quickly programmed with source code provided. The easiest method for creating a custom
application is to modify either of the GUI programs with the appropriate development environment, or
either of the supplied command line software projects, acquire.sln, which are contained in the
“command line simple control\command line utilities\acquire” and “command line examples\command
line utilities\acquire” folders. This project is a Microsoft Visual Studio project and can be immediately
built using Microsoft Visual Studio 2012. The main example file, acquire.cpp, uses the uvAPI object
(described below) in order to configure a Synth1000x2 device, resulting in the executable acquire.exe.
Modifications to either of these programs is simple for anyone proficient in the c/c++ programming
language.
SYNTH1000 OPERATIONAL OVERVIEW
The Synth1000 device uses a combination of AD9914 DDS-core implemented and firmware (FPGA-
implemented) functionality. This combination results in an augmentation of the basic DDS core
functions to enable capability such as triggered frequency hopping, frequency dwell/sweep/dwell
capability, external TTL-controlled profile switching and ramp control, and other advanced capabilities.
In programming the board, one must remember an important difference between the CPLD and DDS
core functional partition. Any CPLD-implemented function takes effect immediately upon the
corresponding write to the board. However, DDS-core implemented functions take effect only after a
qualifying “update event” as described below. This allows the user to configure a number of
parameters in the DDS cores before an “update event” occurs, to allow event-initiated behavior such
as triggered frequency/phase-hopping, dwell/sweep/dwell sinusoids, and other functionality.
“UPDATE EVENT”
As described above, the DDS cores of the Synth1000x2 device require an “update event” in order for
any programmed changes following the most recent “update event” to take effect. Thus a programmer
can configure the DDS cores for one type of operation while the current configuration is active and
running. This is important for advanced operation, such as updating profile parameters based on
sweep results.
The DDS cores recognize the following as qualifying “update events”:
A change in the enabled mode, profile, external, sweep, etc
A change in active profile on either synthA or synthB
A change in the frequency/amplitude/phase of the active profile on either synthA or synthB
A change in the sweep type
A change in the sweep rise/fall/rate/step/limits
Calling the IOUpdate() function (described below) will cause an “update event” for both DDSs,
regardless of the state of the Internal/External profile select bit.
In either internal or external mode changing to a new profile will cause an “update event”. Note, in the
software function Set_Synth_Profile_Freq, Set_Synth_Profile_Phase, and
Set_Synth_Profile_Amplitude an explicit call to the IOUpdate() function is included to avoid confusion
caused by changes that may not cause a profile change of one DDS.
v1r06
Page
23
of
27
Copyright © 2008 – 2010 Ultraview Corporation
Содержание SYNTH1000x2
Страница 2: ......