Moench rw3 (#745)

* moench, removed chip version, filter resistor, filter cells, currentsoures, gain mode, setttings(modes), dbitphase, maxdbitphase, autocompdisable, comparatordisabletime, made acq start and stop a pulse, removed unused registers

* added parallel command

* remove gain plot for moench

* moench: updated adc invert val

* moench: update adcoffset to 0xf and adcphase to 140 degrees

* removed sync clock in moench

* updated min fw version

* removing config file in moench server
This commit is contained in:
2023-05-25 11:00:23 +02:00
committed by GitHub
parent 0a7fd0a51a
commit 65b8c9c5c1
30 changed files with 286 additions and 1216 deletions

View File

@ -702,15 +702,14 @@ std::string CmdProxy::ReadoutSpeed(int action) {
os << cmd << ' ';
if (action == defs::HELP_ACTION) {
os << "\n\t[0 or full_speed|1 or half_speed|2 or "
"quarter_speed]\n\t\t[Eiger][Jungfrau][Moench] Readout "
"speed of chip.\n\t\t[Eiger] Default speed is full_speed."
"\n\t\t[Jungfrau][Moench] Default speed is half_speed. "
"full_speed "
"option only available from v2.0 boards and is recommended to "
"set "
"number of interfaces to 2. Also overwrites "
"quarter_speed]\n\t\t[Eiger][Jungfrau][Moench] Readout speed of "
"chip.\n\t\t[Eiger][Moench] Default speed is "
"full_speed.\n\t\t[Jungfrau] Default speed is half_speed. "
"full_speed option only available from v2.0 boards and is "
"recommended to set number of interfaces to 2. Also overwrites "
"adcphase to recommended default.\n\t [144|108]\n\t\t[Gotthard2] "
"Readout speed of chip in MHz. Default is 108."
"Readout speed of chip in MHz. Default is 108.\n\t\t[Moench] "
"Only Full speed is implemented."
<< '\n';
} else {
defs::detectorType type = det->getDetectorType().squash();
@ -800,8 +799,7 @@ std::string CmdProxy::Dbitphase(int action) {
std::ostringstream os;
os << cmd << ' ';
if (action == defs::HELP_ACTION) {
os << "[n_value] [(optional)deg]\n\t[Ctb][Jungfrau][Moench] Phase "
"shift of "
os << "[n_value] [(optional)deg]\n\t[Ctb][Jungfrau] Phase shift of "
"clock to latch digital bits. Absolute phase shift. If deg used, "
"then shift in degrees. \n\t[Ctb]Changing dbitclk also resets "
"dbitphase and sets to previous values."
@ -809,7 +807,7 @@ std::string CmdProxy::Dbitphase(int action) {
} else {
auto det_type = det->getDetectorType().squash(defs::GENERIC);
if (det_type == defs::EIGER || det_type == defs::MYTHEN3 ||
det_type == defs::GOTTHARD2) {
det_type == defs::GOTTHARD2 || det_type == defs::MOENCH) {
throw RuntimeError("dbitphase not implemented for this detector");
}
if (action == defs::GET_ACTION) {
@ -1038,8 +1036,7 @@ std::string CmdProxy::CurrentSource(int action) {
os << "\n\t[0|1]\n\t\t[Gotthard2] Enable or disable current source. "
"Default "
"is disabled.\n\t[0|1] [fix|nofix] [select source] [(only for "
"chipv1.1)normal|low]\n\t\t[Jungfrau][Moench] Disable or enable "
"current "
"chipv1.1)normal|low]\n\t\t[Jungfrau] Disable or enable current "
"source with some parameters. The select source is 0-63 for "
"chipv1.0 and a 64 bit mask for chipv1.1. To disable, one needs "
"only one argument '0'."

View File

@ -1281,7 +1281,7 @@ class CmdProxy {
"verylowgain, g1_hg, g1_lg, g2_hc_hg, g2_hc_lg, "
"g2_lc_hg, g2_lc_lg, g4_hg, g4_lg, gain0]"
"\n\t Detector Settings"
"\n\t[Jungfrau][Moench] - [ gain0 | highgain0]"
"\n\t[Jungfrau] - [ gain0 | highgain0]"
"\n\t[Gotthard] - [dynamicgain | highgain | lowgain | "
"mediumgain | veryhighgain]"
"\n\t[Gotthard2] - [dynamicgain | fixgain1 | fixgain2]"
@ -1397,10 +1397,9 @@ class CmdProxy {
"\n\t[Jungfrau][Moench][CTB] Absolute maximum Phase shift of "
"ADC clock.");
GET_COMMAND(
maxdbitphaseshift, getMaxDBITPhaseShift,
"\n\t[CTB][Jungfrau][Moench] Absolute maximum Phase shift of of the "
"clock to latch digital bits.");
GET_COMMAND(maxdbitphaseshift, getMaxDBITPhaseShift,
"\n\t[CTB][Jungfrau] Absolute maximum Phase shift of of the "
"clock to latch digital bits.");
INTEGER_COMMAND_VEC_ID(highvoltage, getHighVoltage, setHighVoltage,
StringTo<int>,
@ -1429,19 +1428,19 @@ class CmdProxy {
INTEGER_COMMAND_VEC_ID(
parallel, getParallelMode, setParallelMode, StringTo<int>,
"[0, 1]\n\t[Eiger][Mythen3][Gotthard2] Enable or disable parallel "
"[0, 1]\n\t[Eiger][Mythen3][Gotthard2][Moench] Enable or disable "
"parallel "
"mode.\n\t[Mythen3] If exptime is too short, the "
"acquisition will return ERROR status and take fewer "
"frames than expected.\n\t[Mythen3][Eiger] Default: Non "
"frames than expected.\n\t[Mythen3][Eiger][Moench] Default: Non "
"parallel.\n\t[Gotthard2] Default: Parallel. Non parallel mode works "
"only in continuous mode.");
INTEGER_COMMAND_VEC_ID(
filterresistor, getFilterResistor, setFilterResistor, StringTo<int>,
"[value] [Gotthard2][Jungfrau][Moench] Set filter resistor. Increasing "
"values "
"for increasing resistance.\n\t[Gotthard2] Options: [0|1|2|3]. Default "
"is 0.\n\t[Jungfrau][Moench] Options: [0|1]. Default is 1.");
"[value] [Gotthard2][Jungfrau] Set filter resistor. Increasing "
"values for increasing resistance.\n\t[Gotthard2] Options: [0|1|2|3]. "
"Default is 0.\n\t[Jungfrau] Options: [0|1]. Default is 1.");
INTEGER_COMMAND_VEC_ID(dbitpipeline, getDBITPipeline, setDBITPipeline,
StringTo<int>,
@ -1957,9 +1956,8 @@ class CmdProxy {
/* Jungfrau Specific */
GET_COMMAND(
chipversion, getChipVersion,
"\n\t[Jungfrau][Moench] Returns chip version. Can be 1.0 or 1.1");
GET_COMMAND(chipversion, getChipVersion,
"\n\t[Jungfrau] Returns chip version. Can be 1.0 or 1.1");
INTEGER_COMMAND_VEC_ID(
temp_threshold, getThresholdTemperature, setThresholdTemperature,
@ -1984,21 +1982,20 @@ class CmdProxy {
INTEGER_COMMAND_VEC_ID(
autocompdisable, getAutoComparatorDisable, setAutoComparatorDisable,
StringTo<int>,
"[0, 1]\n\t[Jungfrau][Moench] Auto comparator disable mode. By "
"default, the "
"on-chip gain switching is active during the entire exposure.This mode "
"disables the on - chip gain switching comparator automatically after "
"93.75% (only for chipv1.0) of exposure time (only for longer than "
"100us). It is possible to set the duration for chipv1.1 using "
"compdisabletime command.\n\tDefault is 0 or this mode "
"[0, 1]\n\t[Jungfrau] Auto comparator disable mode. By "
"default, the on-chip gain switching is active during the entire "
"exposure.This mode disables the on - chip gain switching comparator "
"automatically after 93.75% (only for chipv1.0) of exposure time (only "
"for longer than 100us). It is possible to set the duration for "
"chipv1.1 using compdisabletime command.\n\tDefault is 0 or this mode "
"disabled(comparator enabled throughout). 1 enables mode. 0 disables "
"mode. ");
TIME_COMMAND(
compdisabletime, getComparatorDisableTime, setComparatorDisableTime,
"[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau][Moench] Time "
"before end of exposure when comparator is disabled. It is "
"only possible for chipv1.1.");
TIME_COMMAND(compdisabletime, getComparatorDisableTime,
setComparatorDisableTime,
"[duration] [(optional unit) ns|us|ms|s]\n\t[Jungfrau] Time "
"before end of exposure when comparator is disabled. It is "
"only possible for chipv1.1.");
INTEGER_COMMAND_SET_NOID_GET_ID(
extrastoragecells, getNumberOfAdditionalStorageCells,
@ -2026,11 +2023,10 @@ class CmdProxy {
"Jungfrau] Gain mode.\n\tCAUTION: Do not use fixg0 without caution, "
"you can damage the detector!!!");
INTEGER_COMMAND_VEC_ID(
filtercells, getNumberOfFilterCells, setNumberOfFilterCells,
StringTo<int>,
"[0-12]\n\t[Jungfrau][Moench] Set Filter Cell. Only for "
"chipv1.1. Advanced user Command");
INTEGER_COMMAND_VEC_ID(filtercells, getNumberOfFilterCells,
setNumberOfFilterCells, StringTo<int>,
"[0-12]\n\t[Jungfrau] Set Filter Cell. Only for "
"chipv1.1. Advanced user Command");
/* Gotthard Specific */
TIME_GET_COMMAND(exptimel, getExptimeLeft,

View File

@ -191,8 +191,7 @@ std::vector<defs::detectorSettings> Detector::getSettingsList() const {
defs::VERYHIGHGAIN};
case defs::JUNGFRAU:
case defs::MOENCH:
return std::vector<defs::detectorSettings>{defs::GAIN0,
defs::HIGHGAIN0};
return std::vector<defs::detectorSettings>{};
case defs::GOTTHARD2:
return std::vector<defs::detectorSettings>{
defs::DYNAMICGAIN, defs::FIXGAIN1, defs::FIXGAIN2};
@ -507,9 +506,10 @@ std::vector<defs::speedLevel> Detector::getReadoutSpeedList() const {
switch (getDetectorType().squash()) {
case defs::EIGER:
case defs::JUNGFRAU:
case defs::MOENCH:
return std::vector<defs::speedLevel>{defs::FULL_SPEED, defs::HALF_SPEED,
defs::QUARTER_SPEED};
case defs::MOENCH:
return std::vector<defs::speedLevel>{defs::FULL_SPEED};
case defs::GOTTHARD2:
return std::vector<defs::speedLevel>{defs::G2_108MHZ, defs::G2_144MHZ};
default:
@ -1704,7 +1704,6 @@ void Detector::setStorageCellDelay(ns value, Positions pos) {
std::vector<defs::gainMode> Detector::getGainModeList() const {
switch (getDetectorType().squash()) {
case defs::JUNGFRAU:
case defs::MOENCH:
return std::vector<defs::gainMode>{
defs::DYNAMIC, defs::FORCE_SWITCH_G1, defs::FORCE_SWITCH_G2,
defs::FIX_G1, defs::FIX_G2, defs::FIX_G0};