diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer index a306b0ba5..f9fe6772d 100755 Binary files a/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer and b/slsDetectorServers/xilinx_ctbDetectorServer/bin/xilinx_ctbDetectorServer_developer differ diff --git a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c index b7acce53d..8762ad4af 100644 --- a/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/xilinx_ctbDetectorServer/slsDetectorFunctionList.c @@ -426,7 +426,8 @@ void setupDetector() { for (int idac = NDAC_ONLY; idac < NDAC; ++idac) { if (idac == D_PWR_EMPTY) continue; - initError = setPower(idac, 0, initErrorMessage); + int min = (idac == D_PWR_IO) ? VIO_MIN_MV : POWER_RGLTR_MIN; + initError = setPower(idac, min, initErrorMessage); if (initError == FAIL) return; } @@ -1406,6 +1407,7 @@ int setPower(enum DACINDEX ind, int val, char *mess) { LOG(logINFO, ("Setting Power %s to %d mV\n", powerNames[pwrIndex], val)); + int startup = (dacValues[ind] == -1) ? 1 : 0; powerEnable(0, pwrIndex); if (val > 0) { @@ -1428,7 +1430,9 @@ int setPower(enum DACINDEX ind, int val, char *mess) { } dacValues[ind] = dacval; - powerEnable(1, pwrIndex); + // dont power on at startup (was -1 before) + if (startup == 0) + powerEnable(1, pwrIndex); } return OK; diff --git a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp index de2c2c372..65c8eadd3 100644 --- a/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp +++ b/slsDetectorSoftware/tests/Caller/test-Caller-chiptestboard.cpp @@ -1060,9 +1060,9 @@ TEST_CASE("v_abcd", "[.cmdcall]") { if (det_type == defs::XILINX_CHIPTESTBOARD && det.isVirtualDetectorServer().tsquash( "inconsistent virtual values")) { - // prev value for power regulators should have been 1200 - // (set in config) as they are only touched in this test - REQUIRE(prev_val.squash(-1) == 1200); + // prev value for power regulators should have been minimum + // as they are only touched in this test + REQUIRE(prev_val.squash(-1) > 0); REQUIRE_THROWS(caller.call(cmds[i], {"-100"}, -1, PUT)); } diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 890b0e0ef..d25928c77 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -7,6 +7,6 @@ #define APIGOTTHARD2 "0.0.0 0x260116" #define APIMOENCH "0.0.0 0x260116" #define APIEIGER "0.0.0 0x260116" -#define APIXILINXCTB "0.0.0 0x260116" +#define APIXILINXCTB "0.0.0 0x260123" #define APIJUNGFRAU "0.0.0 0x260116" #define APIMYTHEN3 "0.0.0 0x260116" diff --git a/tests/scripts/utils_for_test.py b/tests/scripts/utils_for_test.py index 80b3f2b47..bff86f886 100644 --- a/tests/scripts/utils_for_test.py +++ b/tests/scripts/utils_for_test.py @@ -234,11 +234,6 @@ def loadConfig(name, rx_hostname = 'localhost', settingsdir = None, log_file_fp d.powerchip = 1 if name == "xilinx_ctb": - d.v_a = 1200 - d.v_b = 1200 - d.v_c = 1200 - d.v_d = 1200 - d.v_io = 1200 d.configureTransceiver() if settingsdir is not None and name in ['eiger', 'mythen3']: