From 2123fb47a542e44732283c8d1b7152cff24b4439 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Mon, 11 Nov 2019 10:41:42 +0100 Subject: [PATCH] mythen3: config reg enable all counters, dr --- .../mythen3DetectorServer/RegisterDefs.h | 13 +++++ .../bin/mythen3DetectorServer_developer | Bin 147824 -> 147824 bytes .../slsDetectorFunctionList.c | 47 +++++++++++++++++- .../slsDetectorServer_defs.h | 1 + slsSupportLib/include/versionAPI.h | 2 +- 5 files changed, 61 insertions(+), 2 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h index 854de5380..328e8f20a 100644 --- a/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/mythen3DetectorServer/RegisterDefs.h @@ -103,6 +103,19 @@ /* Config RW regiseter */ #define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL) +#define CONFIG_COUNTER_ENA_OFST (0) +#define CONFIG_COUNTER_ENA_MSK (0x00000003 << CONFIG_COUNTER_ENA_OFST) +#define CONFIG_COUNTER_ENA_DEFAULT_VAL ((0x0 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_COUNTER_ENA_1_VAL ((0x1 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_COUNTER_ENA_2_VAL ((0x2 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_COUNTER_ENA_ALL_VAL ((0x3 << CONFIG_COUNTER_ENA_OFST) & CONFIG_COUNTER_ENA_MSK) +#define CONFIG_DYNAMIC_RANGE_OFST (4) +#define CONFIG_DYNAMIC_RANGE_MSK (0x00000003 << CONFIG_DYNAMIC_RANGE_OFST) +#define CONFIG_DYNAMIC_RANGE_1_VAL ((0x0 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_DYNAMIC_RANGE_4_VAL ((0x1 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_DYNAMIC_RANGE_16_VAL ((0x2 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) +#define CONFIG_DYNAMIC_RANGE_24_VAL ((0x3 << CONFIG_DYNAMIC_RANGE_OFST) & CONFIG_DYNAMIC_RANGE_MSK) + /* Control RW register */ // assumed for MY3 #define CONTROL_REG (0x21 * REG_OFFSET + BASE_CONTROL) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 9f8919b8b1ac43b75bcc16754466efa470c9ec37..c9ab60226802b6a9387e4dd3ec84879e82ca9366 100755 GIT binary patch delta 38465 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 AYXATM diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index 0740690cd..2a3efb317 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -368,6 +368,13 @@ void setupDetector() { // defaults setHighVoltage(DEFAULT_HIGH_VOLTAGE); setDefaultDacs(); + + // dynamic range + setDynamicRange(DEFAULT_DYNAMIC_RANGE); + // enable all counters + bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_COUNTER_ENA_MSK); + bus_w(CONFIG_REG, bus_r(CONFIG_REG) | CONFIG_COUNTER_ENA_ALL_VAL); + // Initialization of acquistion parameters setNumFrames(DEFAULT_NUM_FRAMES); @@ -419,7 +426,45 @@ void resetPeripheral() { /* set parameters - dr, roi */ int setDynamicRange(int dr){ - return 32; //TODO + if (dr > 0) { + uint32_t regval = 0; + switch(dr) { + case 1: + regval = CONFIG_DYNAMIC_RANGE_1_VAL; + break; + case 4: + regval = CONFIG_DYNAMIC_RANGE_4_VAL; + break; + case 16: + regval = CONFIG_DYNAMIC_RANGE_16_VAL; + break; + case 24: + case 32: + regval = CONFIG_DYNAMIC_RANGE_24_VAL; + break; + default: + FILE_LOG(logERROR, ("Invalid dynamic range %d\n", dr)); + return -1; + } + // set it + bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_DYNAMIC_RANGE_MSK); + bus_w(CONFIG_REG, bus_r(CONFIG_REG) | regval); + } + + uint32_t regval = bus_r(CONFIG_REG & CONFIG_DYNAMIC_RANGE_MSK); + switch(regval) { + case CONFIG_DYNAMIC_RANGE_1_VAL: + return 1; + case CONFIG_DYNAMIC_RANGE_4_VAL: + return 4; + case CONFIG_DYNAMIC_RANGE_16_VAL: + return 16; + case CONFIG_DYNAMIC_RANGE_24_VAL: + return 32; + default: + FILE_LOG(logERROR, ("Invalid dynamic range %d read back\n", regval >> CONFIG_DYNAMIC_RANGE_OFST)); + return -1; + } } diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index d5d41ce61..f407d9847 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -17,6 +17,7 @@ #define DAC_MAX_MV (2048) /** Default Parameters */ +#define DEFAULT_DYNAMIC_RANGE (24) #define DEFAULT_NUM_FRAMES (1) #define DEFAULT_NUM_CYCLES (1) #define DEFAULT_EXPTIME (100*1000*1000) //ns diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 63bce4c5f..ad06b4102 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -9,4 +9,4 @@ #define APIJUNGFRAU 0x191106 #define APIEIGER 0x191106 #define APIGOTTHARD2 0x191108 -#define APIMYTHEN3 0x191108 +#define APIMYTHEN3 0x191111