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 the cross_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 to 255

adc_hold_delay

simple value property

registers: range(129, 130)

valid types: <class 'int'>

value range: 0 to 15

bypass_caps_en

compound property

registers: range(65, 66)

bits: [2]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 1

chip_id

simple value property

registers: range(122, 123)

valid types: <class 'int'>

value range: 0 to 255

clk_ctrl

compound property

registers: range(123, 124)

bits: [3, 4]

valid types: <class 'int'>

value range: 0 to 2

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 to 1

csa_bypass_enable

compound property

registers: range(65, 66)

bits: [1]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 1

csa_enable

list-like property

list length: 64

registers: range(66, 74)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

csa_gain

compound property

registers: range(65, 66)

bits: [0]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 1

csa_testpulse_dac

simple value property

registers: range(108, 109)

valid types: <class 'int'>

value range: 0 to 255

csa_testpulse_enable

list-like property

list length: 64

registers: range(100, 108)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

current_monitor_bank0

list-like property

list length: 4

registers: range(109, 110)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

current_monitor_bank1

list-like property

list length: 4

registers: range(110, 111)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

current_monitor_bank2

list-like property

list length: 4

registers: range(111, 112)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

current_monitor_bank3

list-like property

list length: 4

registers: range(112, 113)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

digital_monitor_chan

simple value property

registers: range(119, 120)

valid types: <class 'int'>

value range: 0 to 63

digital_monitor_enable

compound property

registers: range(118, 119)

bits: [0]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 10

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 to 255

enable_cross_trigger

compound property

registers: range(128, 129)

bits: [0]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 1

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 to 1

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 to 1

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 to 1

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 to 1

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 to 1

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 to 1

enable_mosi

list-like property

list length: 4

registers: range(126, 127)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

enable_periodic_reset

compound property

registers: range(128, 129)

bits: [1]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 1

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 to 1

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 to 1

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 to 1

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 to 1

ibias_buffer

simple value property

registers: range(76, 77)

valid types: <class 'int'>

value range: 0 to 15

ibias_comp

simple value property

registers: range(75, 76)

valid types: <class 'int'>

value range: 0 to 15

ibias_csa

simple value property

registers: range(77, 78)

valid types: <class 'int'>

value range: 0 to 15

ibias_tdac

simple value property

registers: range(74, 75)

valid types: <class 'int'>

value range: 0 to 15

ibias_tpulse

simple value property

registers: range(80, 81)

valid types: <class 'int'>

value range: 0 to 15

ibias_vcm_buffer

simple value property

registers: range(79, 80)

valid types: <class 'int'>

value range: 0 to 15

ibias_vref_buffer

simple value property

registers: range(78, 79)

valid types: <class 'int'>

value range: 0 to 15

load_config_defaults

compound property

registers: range(123, 124)

bits: [1]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 1

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 to 255

override_ref

compound property

registers: range(81, 82)

bits: [5]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 16777215

periodic_trigger_cycles

simple value property

registers: range(166, 170)

valid types: <class 'int'>

value range: 0 to 4294967295

periodic_trigger_mask

list-like property

list length: 64

registers: range(155, 163)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

pixel_trim_dac

list-like property

list length: 64

registers: range(0, 64)

element valid types: <class 'int'>

element value range: 0 to 31

ref_current_trim

compound property

registers: range(81, 82)

bits: [0, 1, 2, 3, 4]

valid types: <class 'int'>

value range: 0 to 31

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 to 1

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 to 7

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 to 255

slope_control0

compound property

registers: range(120, 121)

bits: [0, 1, 2, 3]

valid types: <class 'int'>

value range: 0 to 15

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 to 15

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 to 15

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 to 15

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 to 4

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 to 4

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 to 4

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 to 4

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 to 255

threshold_polarity

compound property

registers: range(170, 171)

bits: [2]

valid types: (<class 'int'>, <class 'bool'>)

value range: 0 to 1

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 to 255

voltage_monitor_bank0

list-like property

list length: 3

registers: range(113, 114)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

voltage_monitor_bank1

list-like property

list length: 3

registers: range(114, 115)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

voltage_monitor_bank2

list-like property

list length: 3

registers: range(115, 116)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

voltage_monitor_bank3

list-like property

list length: 3

registers: range(116, 117)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

voltage_monitor_refgen

list-like property

list length: 8

registers: range(117, 118)

element valid types: (<class 'int'>, <class 'bool'>)

element value range: 0 to 1

vref_dac

simple value property

registers: range(82, 83)

valid types: <class 'int'>

value range: 0 to 255