Hybrid row select for mux11d
This document is under active development.
In standard mux11d, the S1 selection signals (row_select) are provided by the Adress Card (AC). "Hybrid row select" refers to the use of Bias Card (BC) flux_fb DAC lines to augment the number of addressable S1.
- Without any firmware modifications, it should be possible to multiplex any combination of AC and BC DACs, with num_rows up to 64. However, without some firmware modification, one can configure at most 58 of those channels for servo and readout.
- With some communication protocol modification, it should be possible to configure and readout any subset of 64 rows.
Software modifications
The software components affected by hybrid row select are:
- MAS low-level and mce_script -- internal code often assumes num_rows <= 41. These instances shouldn't be too hard to find and remove.
- mux_lock -- rs_servo must be able to ramp the row_select DACs.
- config script system -- must be able to map selected row_select values to correct MCE registers.
mce.cfg considerations
The AC and BC are set up differently for fast switching, and thus a low-level solution based on virtual card re-mappings is not feasible.
- AC accepts lists of on_bias and off_bias values, and order of their application is set by the row_order register.
- BC allows a completely arbitrary matrix of flux_fb values, which is more general than the AC model. There is no equivalent of row_order, since the matrix rows themseleves can be modified to produce the equivalent reordering of output values.
The biggest obstacle here is that the manipulation of "row_order" has very different implementations for the AC and BC. The path to a transparent low-level solution is not clear.
Otherwise, the changes to mce.cfg are straight-forward. Switches should be added to increase the effective maximum num_rows to 57/58 or 64/66. The "row select" and "row deselect" virtual targets will be eliminated in favour of a mapping described in experiment.cfg.