LArPix v2 ASIC Configuration Registers¶
-
class
larpix.configuration.configuration_v2.
Configuration_v2
[source]¶ Represents the desired configuration state of a LArPix v2 chip.
Each register name is available as its own attribute for inspecting and setting the value of the corresponding register.
Certain configuration values are set channel-by-channel. These are represented by a list of values. For example:
>>> conf.pixel_trim_dac[2:5] [16, 16, 16] >>> conf.channel_mask[20] = 1 >>> conf.external_trigger_mask = [0] * 64
Additionally, other configuration values take up more than or less than one complete register. These are still set by referencing the appropriate name. For example,
cross_trigger_mode
shares a register with a few other values, and adjusting the value of thecross_trigger_mode
attribute will leave the other values unchanged.Each register name can cover more than one ‘physical’ register depending on the size of the data it holds. You can see which physical registers a given register name corresponds to by using the register_map attribute, e.g.:
>>> conf.register_map['digital_threshold'] # 64 registers, 1 per channel range(173, 237) >>> conf.register_map['enable_dynamic_reset'] # Register 170 range(170, 171) >>> conf.register_map['enable_min_delta_adc'] # Shares register 170 range(170, 171)
-
adc_burst_length
¶ simple value property
registers:
range(130, 131)
valid types:
<class 'int'>
value range:
0
to255
-
adc_hold_delay
¶ simple value property
registers:
range(129, 130)
valid types:
<class 'int'>
value range:
0
to15
-
bypass_caps_en
¶ compound property
registers:
range(65, 66)
bits:
[2]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['csa_gain', 'csa_bypass_enable']
-
channel_mask
¶ list-like property
list length:
64
registers:
range(131, 139)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
chip_id
¶ simple value property
registers:
range(122, 123)
valid types:
<class 'int'>
value range:
0
to255
-
clk_ctrl
¶ compound property
registers:
range(123, 124)
bits:
[3, 4]
valid types:
<class 'int'>
value range:
0
to2
shares a register with:
['load_config_defaults', 'enable_fifo_diagnostics']
-
cross_trigger_mask
¶ list-like property
list length:
64
registers:
range(147, 155)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
csa_bypass_enable
¶ compound property
registers:
range(65, 66)
bits:
[1]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['csa_gain', 'bypass_caps_en']
-
csa_bypass_select
¶ list-like property
list length:
64
registers:
range(84, 92)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
csa_enable
¶ list-like property
list length:
64
registers:
range(66, 74)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
csa_gain
¶ compound property
registers:
range(65, 66)
bits:
[0]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['csa_bypass_enable', 'bypass_caps_en']
-
csa_monitor_select
¶ list-like property
list length:
64
registers:
range(92, 100)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
csa_testpulse_dac
¶ simple value property
registers:
range(108, 109)
valid types:
<class 'int'>
value range:
0
to255
-
csa_testpulse_enable
¶ list-like property
list length:
64
registers:
range(100, 108)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
current_monitor_bank0
¶ list-like property
list length:
4
registers:
range(109, 110)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
current_monitor_bank1
¶ list-like property
list length:
4
registers:
range(110, 111)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
current_monitor_bank2
¶ list-like property
list length:
4
registers:
range(111, 112)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
current_monitor_bank3
¶ list-like property
list length:
4
registers:
range(112, 113)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
digital_monitor_chan
¶ simple value property
registers:
range(119, 120)
valid types:
<class 'int'>
value range:
0
to63
-
digital_monitor_enable
¶ compound property
registers:
range(118, 119)
bits:
[0]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['digital_monitor_select']
-
digital_monitor_select
¶ compound property
registers:
range(118, 119)
bits:
[1, 2, 3, 4]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to10
shares a register with:
['digital_monitor_enable']
-
digital_threshold
¶ list-like property
list length:
64
registers:
range(173, 237)
element valid types:
<class 'int'>
element value range:
0
to255
-
enable_cross_trigger
¶ compound property
registers:
range(128, 129)
bits:
[0]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_periodic_reset', 'enable_rolling_periodic_reset', 'enable_periodic_trigger', 'enable_rolling_periodic_trigger', 'enable_periodic_trigger_veto', 'enable_hit_veto']
-
enable_dynamic_reset
¶ compound property
registers:
range(170, 171)
bits:
[0]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_min_delta_adc', 'threshold_polarity', 'reset_length', 'mark_first_packet']
-
enable_fifo_diagnostics
¶ compound property
registers:
range(123, 124)
bits:
[2]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['load_config_defaults', 'clk_ctrl']
-
enable_hit_veto
¶ compound property
registers:
range(128, 129)
bits:
[6]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_cross_trigger', 'enable_periodic_reset', 'enable_rolling_periodic_reset', 'enable_periodic_trigger', 'enable_rolling_periodic_trigger', 'enable_periodic_trigger_veto']
-
enable_min_delta_adc
¶ compound property
registers:
range(170, 171)
bits:
[1]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_dynamic_reset', 'threshold_polarity', 'reset_length', 'mark_first_packet']
-
enable_miso_differential
¶ compound list-like property
list length:
4
registers:
range(125, 126)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
shares a register with:
['enable_miso_downstream']
-
enable_miso_downstream
¶ compound list-like property
list length:
4
registers:
range(125, 126)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
shares a register with:
['enable_miso_differential']
-
enable_miso_upstream
¶ list-like property
list length:
4
registers:
range(124, 125)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
enable_mosi
¶ list-like property
list length:
4
registers:
range(126, 127)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
enable_periodic_reset
¶ compound property
registers:
range(128, 129)
bits:
[1]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_cross_trigger', 'enable_rolling_periodic_reset', 'enable_periodic_trigger', 'enable_rolling_periodic_trigger', 'enable_periodic_trigger_veto', 'enable_hit_veto']
-
enable_periodic_trigger
¶ compound property
registers:
range(128, 129)
bits:
[3]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_cross_trigger', 'enable_periodic_reset', 'enable_rolling_periodic_reset', 'enable_rolling_periodic_trigger', 'enable_periodic_trigger_veto', 'enable_hit_veto']
-
enable_periodic_trigger_veto
¶ compound property
registers:
range(128, 129)
bits:
[5]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_cross_trigger', 'enable_periodic_reset', 'enable_rolling_periodic_reset', 'enable_periodic_trigger', 'enable_rolling_periodic_trigger', 'enable_hit_veto']
-
enable_rolling_periodic_reset
¶ compound property
registers:
range(128, 129)
bits:
[2]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_cross_trigger', 'enable_periodic_reset', 'enable_periodic_trigger', 'enable_rolling_periodic_trigger', 'enable_periodic_trigger_veto', 'enable_hit_veto']
-
enable_rolling_periodic_trigger
¶ compound property
registers:
range(128, 129)
bits:
[4]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_cross_trigger', 'enable_periodic_reset', 'enable_rolling_periodic_reset', 'enable_periodic_trigger', 'enable_periodic_trigger_veto', 'enable_hit_veto']
-
external_trigger_mask
¶ list-like property
list length:
64
registers:
range(139, 147)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
ibias_buffer
¶ simple value property
registers:
range(76, 77)
valid types:
<class 'int'>
value range:
0
to15
-
ibias_comp
¶ simple value property
registers:
range(75, 76)
valid types:
<class 'int'>
value range:
0
to15
-
ibias_csa
¶ simple value property
registers:
range(77, 78)
valid types:
<class 'int'>
value range:
0
to15
-
ibias_tdac
¶ simple value property
registers:
range(74, 75)
valid types:
<class 'int'>
value range:
0
to15
-
ibias_tpulse
¶ simple value property
registers:
range(80, 81)
valid types:
<class 'int'>
value range:
0
to15
-
ibias_vcm_buffer
¶ simple value property
registers:
range(79, 80)
valid types:
<class 'int'>
value range:
0
to15
-
ibias_vref_buffer
¶ simple value property
registers:
range(78, 79)
valid types:
<class 'int'>
value range:
0
to15
-
load_config_defaults
¶ compound property
registers:
range(123, 124)
bits:
[1]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_fifo_diagnostics', 'clk_ctrl']
-
mark_first_packet
¶ compound property
registers:
range(170, 171)
bits:
[6]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_dynamic_reset', 'enable_min_delta_adc', 'threshold_polarity', 'reset_length']
-
min_delta_adc
¶ simple value property
registers:
range(172, 173)
valid types:
<class 'int'>
value range:
0
to255
-
override_ref
¶ compound property
registers:
range(81, 82)
bits:
[5]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['ref_current_trim', 'ref_kickstart']
-
periodic_reset_cycles
¶ simple value property
registers:
range(163, 166)
valid types:
<class 'int'>
value range:
0
to16777215
-
periodic_trigger_cycles
¶ simple value property
registers:
range(166, 170)
valid types:
<class 'int'>
value range:
0
to4294967295
-
periodic_trigger_mask
¶ list-like property
list length:
64
registers:
range(155, 163)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
pixel_trim_dac
¶ list-like property
list length:
64
registers:
range(0, 64)
element valid types:
<class 'int'>
element value range:
0
to31
-
ref_current_trim
¶ compound property
registers:
range(81, 82)
bits:
[0, 1, 2, 3, 4]
valid types:
<class 'int'>
value range:
0
to31
shares a register with:
['override_ref', 'ref_kickstart']
-
ref_kickstart
¶ compound property
registers:
range(81, 82)
bits:
[6]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['ref_current_trim', 'override_ref']
-
reset_length
¶ compound property
registers:
range(170, 171)
bits:
[3, 4, 5]
valid types:
<class 'int'>
value range:
0
to7
shares a register with:
['enable_dynamic_reset', 'enable_min_delta_adc', 'threshold_polarity', 'mark_first_packet']
-
reset_threshold
¶ simple value property
registers:
range(171, 172)
valid types:
<class 'int'>
value range:
0
to255
-
slope_control0
¶ compound property
registers:
range(120, 121)
bits:
[0, 1, 2, 3]
valid types:
<class 'int'>
value range:
0
to15
shares a register with:
['slope_control1']
-
slope_control1
¶ compound property
registers:
range(120, 121)
bits:
[4, 5, 6, 7]
valid types:
<class 'int'>
value range:
0
to15
shares a register with:
['slope_control0']
-
slope_control2
¶ compound property
registers:
range(121, 122)
bits:
[0, 1, 2, 3]
valid types:
<class 'int'>
value range:
0
to15
shares a register with:
['slope_control3']
-
slope_control3
¶ compound property
registers:
range(121, 122)
bits:
[4, 5, 6, 7]
valid types:
<class 'int'>
value range:
0
to15
shares a register with:
['slope_control2']
-
test_mode_uart0
¶ compound property
registers:
range(127, 128)
bits:
[0, 1]
valid types:
<class 'int'>
value range:
0
to4
shares a register with:
['test_mode_uart1', 'test_mode_uart2', 'test_mode_uart3']
-
test_mode_uart1
¶ compound property
registers:
range(127, 128)
bits:
[2, 3]
valid types:
<class 'int'>
value range:
0
to4
shares a register with:
['test_mode_uart0', 'test_mode_uart2', 'test_mode_uart3']
-
test_mode_uart2
¶ compound property
registers:
range(127, 128)
bits:
[4, 5]
valid types:
<class 'int'>
value range:
0
to4
shares a register with:
['test_mode_uart0', 'test_mode_uart1', 'test_mode_uart3']
-
test_mode_uart3
¶ compound property
registers:
range(127, 128)
bits:
[6, 7]
valid types:
<class 'int'>
value range:
0
to4
shares a register with:
['test_mode_uart0', 'test_mode_uart1', 'test_mode_uart2']
-
threshold_global
¶ simple value property
registers:
range(64, 65)
valid types:
<class 'int'>
value range:
0
to255
-
threshold_polarity
¶ compound property
registers:
range(170, 171)
bits:
[2]
valid types:
(<class 'int'>, <class 'bool'>)
value range:
0
to1
shares a register with:
['enable_dynamic_reset', 'enable_min_delta_adc', 'reset_length', 'mark_first_packet']
-
vcm_dac
¶ simple value property
registers:
range(83, 84)
valid types:
<class 'int'>
value range:
0
to255
-
voltage_monitor_bank0
¶ list-like property
list length:
3
registers:
range(113, 114)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
voltage_monitor_bank1
¶ list-like property
list length:
3
registers:
range(114, 115)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
voltage_monitor_bank2
¶ list-like property
list length:
3
registers:
range(115, 116)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
voltage_monitor_bank3
¶ list-like property
list length:
3
registers:
range(116, 117)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
voltage_monitor_refgen
¶ list-like property
list length:
8
registers:
range(117, 118)
element valid types:
(<class 'int'>, <class 'bool'>)
element value range:
0
to1
-
vref_dac
¶ simple value property
registers:
range(82, 83)
valid types:
<class 'int'>
value range:
0
to255
-