Sequencer Setup - DLS-Controls-Private-org/MBF-docs GitHub Wiki

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_DB_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 (s),:STEP_FREQ_S (\delta),:END_FREQ_S (e),:COUNT_S (N) is a little unexpected at first and merits some explanation. First of all, the three frequency fields s, \delta, e are all limited by the 48-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:

e = s + N \times \deltaThirdly, when the:END_FREQ_S is written to, the step \delta is updated: \delta \leftarrow (e-s)/N. Finally, the range of valid values for each field is different: s is unsigned, \delta is signed, e is signed and unbounded. This is summarised in the table below (here N_{\text{turn}} is the number of bunches per machine revolution).

PV Range Update
s

| :START_FREQ_S | 0 ,.. N_{\text{turn}}

| e \leftarrow s + N \times \delta

| | \delta

| :STEP_FREQ_S | -\frac12 N_{\text{turn}} .. \frac12 N_{\text{turn}}

| e \leftarrow s + N \times \delta

| | e

| :END_FREQ_S | Unbounded | \delta \leftarrow (e - s) / N

| | N

| :COUNT_S | 1,..,65536

| e \leftarrow s + N \times \delta

|

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.


category.storage-team category.confluence