The sequencer has up to 7 programmable states which can be configured through this screen. When the sequencer is triggered it starts at the state configured in :SEQ:PC_S
and counts down; when state 1 completes the sequencer programme is complete, unless the super-sequencer is also in use.
During operation of a single state, the sequencer will step the swept NCO through a series of frequencies as programmed by Sweep start, Sweep step, Capture above. Each frequency will be driven for Holdoff + Dwell time turns, and data may be captured from the detectors if appropriately configured.
Sequencer State Configuration
Each sequencer state is controlled by the following PVs.
Title | PV | Description |
---|---|---|
Sweep start | :SEQ:n:START_FREQ_S | This sets the initial frequency for the swept NCO. All frequencies are in multiples of the machine revolution frequency. The super sequencer offset is added to the sweep frequency. |
Sweep step | :SEQ:n:STEP_FREQ_S | This sets the frequency advance when the sequencer steps from one dwell period to the next. |
Sweep end | :SEQ:n:END_FREQ_S | This is automatically set to start+step*capture, and is automatically updated any time any of those values changes. If this PV is written to then step will be computed (as (end-start)/capture) and this PV will update. |
Capture | :SEQ:n:COUNT_S | This configures the number of dwells in this sequencer state. |
Holdoff (state) | :SEQ:n:STATE_HOLDOFF_S | This number of turns is added to the start of this sequencer state after the initial sweep frequency has been configured. The detector is disabled for the duration of this holdoff period. |
Holdoff (dwell) | :SEQ:n:HOLDOFF_S | This number of turns is added to the start of the dwell time after the swept frequency has been stepped. The detector is disabled for the duration of the holdoff period, which can be used to give time for the swept system to settle to the new frequency. |
Dwell time | :SEQ:n:DWELL_S | This configures the number of turns for which the sweep frequency is driven and the detector is operated for a single sample. |
NCO Magnitude | :SEQ:n:GAIN_S, :SEQ:n:ENABLE_S | This determines the gain of the swept NCO excitation in 6dB steps, with 0dB corresponding to full scale DAC excitation. :ENABLE_S must be set to "On" for a signal to be generated. |
Bunch Bank | :SEQ:n:BANK_S | This determines which of the four available bunch configuration banks is selected during the operation of this state. |
Blanking | :SEQ:n:BLANK_S | If this is set to "Blanking" then the detector will be temporarily disabled during the blanking window and the dwell time will be extended. |
Data window | :SEQ:n:ENWIN_S | If this is set to "Windowed" then the detector data will be multiplied by the data window configured in Detector Window Setup. |
Tune PLL | :SEQ:n:TUNE_PLL_S | If this is set to "Follow" then the Tune PLL offset will be continuously added to the sweep NCO frequency. This is designed to allow a swept tune to track dynamic changes in the tune. |
Data capture | :SEQ:n:CAPTURE_S | This determines whether the detector is active during this sequencer state. |
The behaviour of the four fields :START_FREQ_S
(),
:STEP_FREQ_S
(),
:END_FREQ_S
(),
:COUNT_S
() is a little unexpected at first and merits a little explanation. First of all, the three frequency fields
,
,
are all limited by the 32-bit resolution of the NCO and are therefore updated with the true underlying value immediately after being written. Secondly, the end frequency is always updated when any of these fields are modified so that the following equation always holds:
|
Thirdly, when the :END_FREQ_S
is written to, the step is updated:
. Finally, the range of valid values for each field is different:
is unsigned,
is signed,
is signed and unbounded. This is summarised in the table below (here
is the number of bunches per machine revolution).
PV | Range | Update | |
---|---|---|---|
:START_FREQ_S | |||
:STEP_FREQ_S | |||
:END_FREQ_S | Unbounded | ||
:COUNT_S |
Global Setup
The following PVs control the overall state of the sequencer and show basic information.
Title | PV | Description |
---|---|---|
Start | :SEQ:PC_S | This field determines how many sequencer states will be used when the sequencer is triggered. This can be in the range 1 to 7. |
:SEQ:PC | This field is updated regularly with the current state number of the sequencer. When the sequencer is inactive this value is zero. | |
Super | :SEQ:SUPER:COUNT_S | This field determines how many super sequencer states are used, can be in the range 1 to 1024. |
:SEQ:SUPER:COUNT | This field is updated regularly with the current state number of the super sequencer. When active, it counts down to zero. | |
Stop | :SEQ:RESET_S | Processing this PV (pressing the button) will interrupt the current sequencer and super sequencer programme and reset the sequencer to state zero. It does not disarm triggering. |
Capture count | :SEQ:TOTAL:LENGTH | This field shows how many samples will be captured to memory by the current sequencer programme taking the super sequencer into account. |
Duration | :SEQ:TOTAL:DURATION:S | This field shows the expected duration of the current sequencer programme. Note that blanking events, if enabled, can stretch the duration of the sequencer programme. |
Freq offset | :SEQ:SUPER:OFFSET_S | On this screen this field shows the super sequencer offset for super sequencer state zero. |
Steady state | :SEQ:0:BANK_S | This field determines which bunch configuration bank is active when the sequencer is idle. |
The button "Super Seq" links to Super Sequencer Setup.