The deviceFlexDDS-NG (see manual) is precise frequency synthesiser based on AD9910 (see manual or datasheet) direct digital synthesizer. The general use of the device is in the laser system of our experimental setup. Each ext. device (FlexDDS) has two channels (correspond to one board in the device) and external devices panel can accommodate any number of controlled boards named. The actual control of a board is implemented by sending a FlexDDS script with sequence of commands to be executed. The script is generated on the base of script template which resemble the actual script with some of the fields replaced by factors (variables). Each factor can be set in different ways but most importantly the factors can be set from the front panel of FlexDDS ext.device and connected to the parameters of MM2 (see on the right). Each device board has its own folder named FlexDDS-x (x is A,B,C...). There are all the script templates for this board and its configuration file FlexDDS.CFG. Another file you may need to edit is FlexDDS.LMTS in common config folder. There are the limits of different types of factor identified by units. The format of individual unit limits is unit=min:max. (or unit=:max / unit=min: for upper or lower limit only). If the unit is missing (or unit=:) there would be no limits for that type of factor. On the top/left corner three bar button will lead you to some additional commands:
|
FlexDDS ext.device (MOTMaster2)
|
FlexDDS script templateThe template is accessible from Edit button and it is a plain text file. The active template can be selected from combo box showing all templates (*.dds files) in corresponding ext.device directory inj Config directory of MM2. Each template is accompanied by the initial values file with the same name as the template and extension *.ds0. A template has two sections: If a factor is not present in [script] section it will be ignored. |
![]() |
Macro commandsMacro command are part of the template and start with @. The interpreter will replace the macro line with particular parameterized script. The usual argument type for macro command is [dbl] (double) or [int] (integer). @Init() - similar to reset command of FlexDDS but implements complete initialization of AD9910 (according to Wolfgang) The type of the arguments: chn and mode are [int] type and the rest of them are [dbl] (rate* is rounded to integer). @setRamp(chn, mode ,rate, duration, range) - set a ramp "envelope" which will be used for ramping. That version sets ramp in symmetrical fashion (ramping Up and Down will be the same)
@setRamp2(chn, mode ,rateUp, durationUp, rangeUp, rateDown, durationDown, rangeDown) - similar to ramp but allowing Up and Down to be different. @rampFreq(chn, smooth, freqStart, durationUp,
freqMiddle, durationDown) - ramp frequency up to freqMiddle
and down to freqStart @rampAmpl(chn, smooth, apmlStart, durationUp, amplMiddle,
durationDown) - ramp amplitude [%] up to amplMiddle and down
to amplStart @rampdBm(chn, smooth,
apmlStart, durationUp, amplMiddle, durationDown) - ramp amplitude [dBm]
up to amplMiddle and down to amplStart @rampPhase(chn, smooth,
phaseStart, durationUp, phaseMiddle, durationDown) - ramp phase
[deg] up to phaseMiddle and down to phaseStart
|
@Init() is equivalent to: dds reset Example of ramp: [script] |
The script to be sentAfter setting all the factors you can see the actual script which about to be sent to the device (button Output front panel). Exactly the same script is sent when press Update button or start MM2 procedure.
|
![]() |