RadioProcessor
Using the AWG feature
To make use of the AWG feature, use the
pb_inst_radio_shape()
function to generate the instructions of
your pulse program. This function has two additional parameters over the standard
pb_inst_radio()
function. They are:
use_shape
: if this is 0, no shape will be applied to the pulse. If it is nonzero, whatever waveform is loaded
as the shape will be used to shape the RF pulse. The shape waveform can be loaded by the
user with the pb_dds_load() function
amp
:
This selects which amplitude register to use. The values stored in the amplitude register can
be set with the pb_set_amp() function.
If a shaped pulse is used, the shape will be stretched to last the duration of the entire instruction. There are
two other functions which are also used to control the AWG features:
pb_set_amp()
-
This function sets the values of the amplitude registers to the given values. There are
4 amplitude registers, so any pulse program can use four distinct amplitude values on its
output.
pb_dds_load()
- This function loads both the DDS waveform, and the shape waveform. The DDS
waveform is loaded with a sinewave by default, so you do not need to re-load it unless
you wish to use a different shape.
Example programs
An example program is included with the SpinAPI Package in the RadioProcessor directory to demonstrate
how the AWG capabilities are used.
The example program is
awg.exe
, which is a simple demo program you can use to view the AWG outputs
on your oscilloscope. By default, this program generates two sinc-shaped pulses back to back followed by a
1ms delay. You can enter the amplitude for each one, as well as the desired RF frequency to be used. The
TTL outputs are enabled at the same time the pulses are generated, and can be used as the trigger for the
oscilloscope. The RF output can be viewed on another channel.
The source code for this program is well documented, please take a look to gain a better understanding on
how the AWG features of the board are controlled.
Backwards compatibility with older code.
If you have an AWG-capable RadioProcessor board, you can still use older code which uses the
pb_inst_radio()
function. This code will still behave correctly; it will default to not using any shape and
using amplitude register 0. The
pb_set_defaults()
function always initializes amplitude register 0 to 1.0,
and the DDS waveform is loaded with a sinewave, so the code will continue to operate the same as it did on
previous generations of the RadioProcessor board which did not have AWG capabilities.
Relevant spinapi functions:
pb_inst_radio_shape()
2020-10-07
39
www.spincore.com