Flux jumping

From MCEWiki
Revision as of 00:30, 18 April 2008 by 24.84.194.46 (talk) (Requirements)

The DAC range for sq1 feedback typically amounts to slightly more than 2 periods of the sq1 v-phi curve. In some cases, such as extended observations or IV curve acquisition, a much larger dynamic range is desired. The flux jumping feature uses a pre-programmed value of the v-phi period to bring out-of-range computed sq1 feedback values back into the DAC range.

Requirements

1) The DAC range of the sq1 feedback should span at least 1.5 periods of the sq1 v-phi curve.

2) The periods of the sq1 v-phi curves must be known, on a column-by-column basis, in sq1 fb DAC units.

Implementation

Each sq1 feedback is managed separately. The implementation is as follows:

1) For each sq1 feedback, we define

  • x : the sq1 feedback calculated by the PID servo loop
  • j : the number of flux jumps
  • y : the value applied to the sq1 feedback DAC
  • q : the flux quantum (pre-programmed by the user), in sq1 fb DAC units.

2) When the sq1 feedback x is calculated, the value applied to the DAC is

y = x - j*q

3) The sq1 fb value is signed and the DAC has a range of -8192 to +8191. If the value applied to the DAC is greater than 3/4 of full positive scale (if y > 6143) then q is incremented by 1. If the value applied to the DAC drops below 3/4 of full negative scale (if y < -6143) then q is decremented by 1.


Preparation

Before enabling flux jumping, it is necessary to load the flx_quanta registers with values appropriate for your setup. Good measurements of the flux quanta are extremely valuable here. IDL scripts are available for measuring these quickly and reliably from existing ramp_sq1_fb script output (contact UBC to have that script merged into your branch).

The flux quantum measurements should be transcribed into the experiment.cfg configuration file; they will be written to the MCE the next time the config script is compiled and run (such as on the next auto-tuning). The relevant parameter is:

### Each entry of flux_quanta_rc# is repeated 41 times and written to
### 'rc# flx_quanta%'; a full flx_quanta array can be implemented if
### needed.

flux_quanta = [ 7720, 7720, 7720, 7680, 7680, 7660, 7680, 7700,
                7680, 7720, 7720, 7760, 7740, 7680, 7740, 7720,
                7720, 7700, 7680, 7680, 7720, 7660, 7680, 7680,
                7720, 7640, 7660, 7720, 7660, 7760, 7720, 7660 ];

Currently the config system accepts a single flux quantum for each column, and applies it to all rows. The MCE supports having separate flux quanta for each detector, and that functionality can be enabled for users, if desired.

After modifying the flux quanta in experiment.cfg, you can write the values to the MCE by running "mce_make_config" followed by the $MAS_DATA/config_mce_auto_setup_* .

Readout

Data modes that report "feedback" or "filtered feedback" will report the full, computed feedback (i.e. y) or filtered feedback signal; they do not report the DAC value applied. In modes that also report the flux jump counter (such as 5 and 9), the number reported is the 8 bit signed integer (j) corresponding to the number of flux quanta subtracted from the sq1 fb to obtain the DAC output value.

When both the feedback and jump counter are reported, it is possible to determine the DAC value applied using the equation above. Note however that there may be a delay of 1 frame between a change in the flux jump counter and its appearance in the data stream. (UBC: clarify, is this exactly one internal frame, always, or what?)