Difference between revisions of "Data mode"
(→MCE Data Types) |
|||
Line 3: | Line 3: | ||
= MCE Data Types = | = MCE Data Types = | ||
There are 5 types of data that the MCE can return in data packets: | There are 5 types of data that the MCE can return in data packets: | ||
− | # '''sq1_fb''': the feedback | + | # '''sq1_fb''': the calculated SQ1 feedback: |
− | #* <math>sq1\_fb_{n+1} = \frac{1}{2^{12}} \left[\left(gainp \times | + | #* <math>sq1\_fb_{n+1} = \frac{1}{2^{12}} \left[\left(gainp \times q_{n}\right) + \left(gaini \times \sum_{i=1}^{n} error_i\right) + \left(gaind \times [error_{n} - error_{n-1}]\right) \right]</math> |
− | #* | + | #* where <math> q_n=error_n + b\times q_{n-1}</math> |
− | + | #* ''n'' is the multiplexing-frame index | |
− | #* | + | #* ''i'' is reset when the PID servo is restarted by setting the ''servo_mode'' to 3 or ''flx_lp_init'' to 1. |
− | #* | + | #* ''b'' < 1 and specified by ''pterm_decay_bits''. See [http://www.phas.ubc.ca/~mce/mcedocs/software/SC2_ELE_S580_515_mce_command_description.pdf mce_command_description]. |
− | # '''error''': the error calculated from the Series-Array | + | # '''error''': the error calculated from the Series-Array signal sampled @ 50MHz by the ADC: |
#* <math>error = \sum_{i=1}^{sample\_num} (adc\_reading_{i} - adc\_offset)</math> | #* <math>error = \sum_{i=1}^{sample\_num} (adc\_reading_{i} - adc\_offset)</math> | ||
# '''sq1_fb_filtered''': the low-pass filtered SQ1 feedback (see [[ Digital 4-pole Butterworth Low-pass filter | 4-pole Butterworth low-pass filter ]]). The effective DC gain, including quantization error, is approximately: | # '''sq1_fb_filtered''': the low-pass filtered SQ1 feedback (see [[ Digital 4-pole Butterworth Low-pass filter | 4-pole Butterworth low-pass filter ]]). The effective DC gain, including quantization error, is approximately: | ||
#* <math>sq1\_fb\_filtered_{n} \simeq 1218 \times \left[sq1\_fb_{n-1}\right]</math> | #* <math>sq1\_fb\_filtered_{n} \simeq 1218 \times \left[sq1\_fb_{n-1}\right]</math> | ||
− | # '''num_flux_jumps''': | + | # '''num_flux_jumps''': number of flux-jumps. See [[ Flux jumping ]]. |
− | + | # '''raw_data''': raw ADC samples @ 50 MHz. See [[ Raw-mode readout ]]. | |
− | # '''raw_data''': raw | ||
− | |||
− | |||
= Data Modes and Windowing = | = Data Modes and Windowing = |
Revision as of 11:20, 18 July 2012
In MCE-speak, a "data mode" or "data_mode" is a way of encoding MCE signals into binary data. Data modes are readout parameters, and do not affect the way that the MCE servos, multiplexes, biases, or phi0-corrects.
Contents
MCE Data Types
There are 5 types of data that the MCE can return in data packets:
- sq1_fb: the calculated SQ1 feedback:
- <math>sq1\_fb_{n+1} = \frac{1}{2^{12}} \left[\left(gainp \times q_{n}\right) + \left(gaini \times \sum_{i=1}^{n} error_i\right) + \left(gaind \times [error_{n} - error_{n-1}]\right) \right]</math>
- where <math> q_n=error_n + b\times q_{n-1}</math>
- n is the multiplexing-frame index
- i is reset when the PID servo is restarted by setting the servo_mode to 3 or flx_lp_init to 1.
- b < 1 and specified by pterm_decay_bits. See mce_command_description.
- error: the error calculated from the Series-Array signal sampled @ 50MHz by the ADC:
- <math>error = \sum_{i=1}^{sample\_num} (adc\_reading_{i} - adc\_offset)</math>
- sq1_fb_filtered: the low-pass filtered SQ1 feedback (see 4-pole Butterworth low-pass filter ). The effective DC gain, including quantization error, is approximately:
- <math>sq1\_fb\_filtered_{n} \simeq 1218 \times \left[sq1\_fb_{n-1}\right]</math>
- num_flux_jumps: number of flux-jumps. See Flux jumping .
- raw_data: raw ADC samples @ 50 MHz. See Raw-mode readout .
Data Modes and Windowing
- The data modes below offer the types of data listed above in various combinations, and with different windowings. Each data point in a data packet is 32 bits wide, and may have several types of data packed into it. The table below specifies the different packings.
- The table below makes liberal use of variables sq1_fb, error, sq1_fb_filtered, num_flux_jumps, and raw_data, which are defined above.
- Generally, a data packet contains one data point per pixel, although there are exceptions to this:
- Fast Data: packets contain data for a subset of pixels to allow readout at a faster rate: High rate acquisition .
- Raw Data: packets contain a 50MHz time stream of data starting from row zero.
Data Mode | Summary | Pixel-Data Description | RC Firmware Revision |
---|---|---|---|
0 | Error | 32b (signed) co-added Error signal err[31:0].
|
all |
1 | Feedback | When servo_mode = 3:
32b (signed) SQ1 Feedback data fb[31:0].
When servo_mode != 3:
Note that servo_mode=3 is the normal running condition. The non-servoing form, used at times during array-auto-tune for example, is included here for completeness. |
all |
2 | Filtered feedback | 32b (signed) low-pass filtered SQ1 feedback data fb[31:0].
|
2.0.5 and later |
3 obsolete (see 12) |
Raw 50 MHz | Raw 50 MHz ADC samples raw[13:i], where i=0 in rev. 4.3.7 and i=6 in all previous firmware.
|
Only 3.0.6, 3.0.16, 3.0.25, 4.1.7, 4.2.7, 4.3.7 |
4 | 18:14 Mixed | Signed 18b SQ1 feedback fb[31] & fb[28:12] + signed 14b coadded error signal err[31] & err[12:0].
|
2.0.9 and later |
5 | 24:8 mixed | Signed 24b SQ1 feedback fb[31:8] + signed 8b num_flux_jumps fj[7:0].
|
all |
6 obsolete | 18:14 mixed | Signed 18b filtered data filter[31] & filter[27:11] + signed 14b coadded error signal err[31] & err[12:0].
|
3.0.30 to 4.0.6 only |
7 | 22:10 mixed | Signed 22b filtered data filter[31] & filter[27:7] + signed 10b coadded error signal err[31] & err[12:4].
|
4.0.2 and later |
8 obsolete | 24:8 mixed | Signed 24b filtered data filter[31:8] + signed 8b num_flux_jumps fj[7:0].
|
4.0.4 only |
9 obsolete | 24:8 mixed | Signed 24b filtered data filter[31] & filter[23:1] + signed 8b num_flux_jumps fj[7:0].
|
4.0.5 till 4.0.a |
10 | 25:7 mixed | Signed 25b filtered data filter[27:3] + signed 7b num_flux_jumps fj[6:0].
|
4.1.6, 4.0.b and later |
11 | 6:3 mixed, debugging mode | Unsigned 6b row_index + unsigned 3b column_index.
|
5.0.0 and later |
12 | Raw 50 MHz | Raw 50 MHz ADC samples raw[13:0], sign-extended to 32 bits.
|
4.0.d, 4.0.e, 5.0.1+ |
Automatic loading of data with mas_data.pro
Please note that, by default, mas_data.pro will rescale data in the following way:
- error signals are rescaled to match the units of data mode 0.
- sq1 feedback is rescaled to sq1_feedback (DAC) units (i.e. data mode 1 divided by 212)
- filtered sq1 feedback is rescaled to the units of data mode 2.
This means the IDL user does not need to worry about the windowing of the different data modes for many applications.