Introduction
USB driver
MCA-1K Device
Overview
Module Constants
ARM Data structures
Version
Status
Controls
Calibration
Histogram
Time Histogram
Two-channel Logger
API
Overview
|
MCA-1K Data Structure: arm_ctrl
Summary
The arm_ctrl data structure is used to control all aspects of the MCA-1K operation. The documentation applies to PMT and SiPM-based MCA-1K systems, such as the PMT-1000 and the SiPM-1000.
Data structure
For arm_ctrl these are the 'register' and 'field' data in use. All register data are 32-bit floats (float32).
arm_ctrl registers and fields — Operation and calibration |
Register number and field name | Description |
AC0: gain_stabilization | Bit field governing gain stabilization, cf 'user' table below. |
AC1: peltier | Either fixed Peltier power (0 to 100%) or maximum power; To allow a host control loop (only in SiPM-based systems with a Peltier controller; eg SiPM-1010). |
AC2: temp_ctrl | 0 → Use ARM temperature sensor; 1 → Use external temperature sensor; [4:7]=> (0→ no Peltier cooling; 1→ constant cooling power; 2→ control loop) |
AC3: temp_target | Reserved; In SiPM-based systems with a Peltier cooler, this field has the target temperature. |
AC4: temp_period | Update period for temperature measurements |
AC5: temp_weight | Weight for geometric averaging: Purpose is noise reduction or matching thermal relaxation |
AC6: cal_temp | Temperature (in deg C) at which the detector was calibrated |
AC7: cal_ov | Operating voltage when the detector was calibrated |
AC8: cal_dg | Digital gain when the detector was calibrated (reserved for future use) |
AC9: cal_target | Target value for ROI or LED measured response; used with gain_stab=2,3 |
AC10: cal_roi_lowAC11: cal_roi_high | [roi_low : roi_high] => Region of interest used when gain-stabilizing on ROI (reserved for future use). |
All arm_ctrl registers and fields concerning operation settings and calibration
arm_ctrl registers and fields — Count rate measurement |
Register number and field name | Description |
AC12: run_mode | Run mode is a bit field |
AC13: run_action | Run_action is a bit field, with self-clearing bits; cf 'user' table below. |
AC13[0]: clear_statistics | Clear data for the active counter bank. |
AC14: run_time_sample | Requested run time for sample counting; 0→ forever |
AC15: run_time_bck | Requested run time for background counting; 0→ forever |
AC16: alarm_thr | Alarm threshold for foreground vs bck; If the probability of the foreground data being caused by the accepted background is less than this, an alarm will be raised (AS7[2]) |
AC17: roi_low | ROI for count rate and alarming purpose |
AC18: roi_high | ROI for count rate and alarming purpose. |
arm_ctrl registers and fields concerning count rate measurements.
arm_ctrl registers and fields — time-slice operation |
Register number and field name | Description |
AC19: ts_period | Currently fixed at 100ms. |
AC20: ts_reset | Set to 2 to reset the time-slice (Portal Monitor) alarm system. |
AC21: ts_L | Summation length for alarm computation |
AC22: ts_H | History length for alarms; maximum length of alarm before resetting |
AC23: ts_wait | Minimum wait time until we will accept alarms, having sufficient background accuracy |
AC24: ts_B | Background averaging length |
AC25: ts_eps | Alarm threshold for time-slice system |
AC26: trigger_width | Output pulse width, for alarms. |
AC27: trigger_threshold | Trigger threshold in V; typ 0.015V, range 0..3V |
AC28: integration_time | A measure of the light-collection time, in units of CPU clock cycles of 1/48MHz. Use 23 for NaI. |
AC29: led_width | A measure of the LED pulse with, in units of 6CPU clock cycles, ie 6/48MHz. Use 5 to 10. |
AC30: cal_events | Number of events to average to create a new LED or ROI average. Use 1000 with an LED. |
xctrl_0 | Logger control. xctrl_0[7:0] ⇒ Logger dwell time in multiples of 50ms time slices. Set to 0 to turn logger off. xctrl_0[15:8] ⇒ Input data source for logger channel 0; xctrl_0[23:16] ⇒ Input data source for logger channel 1. Input data source is arm_status[] index - for example 4 for CPU temperature. There are two computed data source: 256 ⇒ number of events recorded during dwell time; 257 ⇒ number of events falling into the alarm ROI recorded during dwell time; |
AC32 to AC38: reserved | Reserved values for use with custom data acquistion modes acq_type > 3 |
arm_ctrl registers and fields concerning the time-slice subsystem
arm_ctrl — user entries |
Register number and field name | Description |
gs_mode | AC0[0:3]; 0→OFF, 1→LUT, ie use lookup table for temperature correction, 2→LED, Use an LED and the LED lookup table; |
histogram_run | AC12[0]; Activate acquiring counting and histogram data |
acq_type | AC12[3:1]; Type of data acquisition: 0→ standard histogram, 1→ Counting only, 2→ Histogram with noise suppression, 3→ Arrival times, 4→ neutron detectors. |
active_bank | AC12[4]; Select which bank will be active: 0→ foreground, 1→ background. |
read_clear | AC12[5]; 1→ Enable read_and_clear feature for counting. When enabled a histogram and counter bank is set to zero after a data read. |
two_bank | AC12[6]; Enable automatic selection of the inactive bank for reading and clearing. User then toggles active bank when desired. |
histo_2k | AC12[7]; Use one 2K×32 sample histogram (no background histogram) |
sample_alarm | AC12[8]; Compute alarm probability for foreground vs background |
time_slice | AC12[9]; Activate time slice system and dynamic alarming. Performs alarm computations 10 times per second; for portal monitors and backpacks. |
clear_statistics | AC13[0]; Self-clearing action; clears the time and event counter of the targeted bank. Targeted bank is active_bank if two_bank=0. It is the inactive bank if two_bank=1. |
clear_histogram | AC13[1]; Self-clearing action; clears the histogram of the targeted bank. Targeted bank is active_bank if two_bank=0. It is the inactive bank if two_bank=1. |
clear_alarm | AC13[2]; Self-clearing action; Clears a persisent alarm output on trigger_out; eg from a portal monitor alarm. |
clear_logger | AC13[3]; Self-clearing action; Reset the logger to begin recording data at index 0. |
The arm_ctrl user dictionary is used to pack and unpack bit fields.
|