Open loop data acquisition

From MCEWiki

This article describes the acquisition of open loop data using the MCE. This is useful for characterizing noise contributions from each stage of the amplifier chain, as well as for identifying the origin of weird contaminating signals.

mce_freeze_servo

The script mce_freeze_servo is invoked as

mce_freeze_servo <stage> [options]

The stage argument should be one of: preamp, sa, sq2, sq1, tes.

In all cases, the script will perform the following actions:

  • Disable the MCE servo on the SQ1 feedback
  • Disable multiplexing of the SQ1 bias
  • Sets the data_mode to 0 (error signal).

Additional operations are performed depending on the stage argument.

After the script runs, mce_run or mce_raw_acq_1col can be used to acquire open loop data. To then recover the original MCE configuration, it is necessary to run mce_reconfig, or something.


Pre-amp stage

This stage is provided for completeness. In this case the SA bias and SA offset are both set to 0, to facilitate measurement of the MCE preamp (and any noise from the superconducting series array...).

SA and SQ2 Stages

When stage=sa or stage=sq2, all SQ1 biases are set to 0. (Some caution must be taken with row_order in this case; since the script does not alter row_order, only row_select lines appearing in row_order will have their biases zeroed.)

When stage=sa mode, the script will also the SQ2 biases to 0.

SQ1 and TES Stages

In these cases the script must be invoked with the --row=<row> argument, to specify a particular row to study. The reason that only a single row can be studied is that the feedback on a given column must take a single, constant value, and thus can only be optimized for a single SQ1 (per column).

The good news is that the script will automatically determine the appropriate feedback value, by acquiring locked feedback data for the chosen row prior to disabling the servo. (By default, the script will issue "wb flx_lp_init 1", resetting the servo, before acquiring the feedback data. This can be suppressed with the --no-reinit option.)

The only difference between stage=sq1 and stage=tes is that in the former case, the script will zero the TES biases (and it will do this before determining the feedback set point).

To acquire noise on all rows, you could write a bash script that looks like this:

filebase=rowdata_121211
for row in `seq 0 32` ; do
  mce_reconfig
  # Additional configuration (readout rate, etc.)
  # ...
  mce_freeze_servo sq1 --row=$row
  filename=`printf %s%_row02i $filebase $row`
  mce_run $filename 10000 s
done