diff --git a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h index 5db0ac0d5..78f5d89ce 100644 --- a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h @@ -110,8 +110,8 @@ // CSM mode = high current (100%), low current (16%) #define CONFIG_V11_STATUS_CRRNT_SRC_LOW_OFST (19) #define CONFIG_V11_STATUS_CRRNT_SRC_LOW_MSK (0x00000001 << CONFIG_V11_STATUS_CRRNT_SRC_LOW_OFST) -#define CONFIG_V11_STATUS_FLTR_RSSTR_SMLR_OFST (21) -#define CONFIG_V11_STATUS_FLTR_RSSTR_SMLR_MSK (0x00000001 << CONFIG_V11_STATUS_FLTR_RSSTR_SMLR_OFST) +#define CONFIG_V11_STATUS_FLTR_RSSTR_HGHR_OFST (21) +#define CONFIG_V11_STATUS_FLTR_RSSTR_HGHR_MSK (0x00000001 << CONFIG_V11_STATUS_FLTR_RSSTR_HGHR_OFST) #define CONFIG_V11_STATUS_AUTO_MODE_OVRRD_OFST (23) #define CONFIG_V11_STATUS_AUTO_MODE_OVRRD_MSK (0x00000001 << CONFIG_V11_STATUS_AUTO_MODE_OVRRD_OFST) @@ -260,8 +260,8 @@ // CSM mode = high current (100%), low current (16%) #define CONFIG_V11_CRRNT_SRC_LOW_OFST (19) #define CONFIG_V11_CRRNT_SRC_LOW_MSK (0x00000001 << CONFIG_V11_CRRNT_SRC_LOW_OFST) -#define CONFIG_V11_FLTR_RSSTR_SMLR_OFST (21) -#define CONFIG_V11_FLTR_RSSTR_SMLR_MSK (0x00000001 << CONFIG_V11_FLTR_RSSTR_SMLR_OFST) +#define CONFIG_V11_FLTR_RSSTR_HGHR_OFST (21) +#define CONFIG_V11_FLTR_RSSTR_HGHR_MSK (0x00000001 << CONFIG_V11_FLTR_RSSTR_HGHR_OFST) #define CONFIG_V11_AUTO_MODE_OVRRD_OFST (23) #define CONFIG_V11_AUTO_MODE_OVRRD_MSK (0x00000001 << CONFIG_V11_AUTO_MODE_OVRRD_OFST) diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index c588aa91c..5a59f13ec 100755 Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer differ diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index d881defc2..f91ce0ca1 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -2175,16 +2175,12 @@ int getFilterResistor() { uint32_t addr = CONFIG_V11_REG; #else uint32_t addr = CONFIG_V11_STATUS_REG; -#endif - uint32_t regval = bus_r(addr); -#ifndef VIRTUAL - regval ^= BIT32_MASK; #endif // 0 for lower value, 1 for higher value - if (regval & CONFIG_V11_STATUS_FLTR_RSSTR_SMLR_MSK) { - return 0; + if (bus_r(addr) & CONFIG_V11_STATUS_FLTR_RSSTR_HGHR_MSK) { + return 1; } - return 1; + return 0; } int setFilterResistor(int value) { @@ -2192,14 +2188,14 @@ int setFilterResistor(int value) { if (value == 0) { LOG(logINFO, ("Setting Lower Filter Resistor\n")); bus_w(CONFIG_V11_REG, - bus_r(CONFIG_V11_REG) | CONFIG_V11_FLTR_RSSTR_SMLR_MSK); + bus_r(CONFIG_V11_REG) & ~CONFIG_V11_FLTR_RSSTR_HGHR_MSK); return OK; } // higher resistor else if (value == 1) { LOG(logINFO, ("Setting Higher Filter Resistor\n")); bus_w(CONFIG_V11_REG, - bus_r(CONFIG_V11_REG) & ~CONFIG_V11_FLTR_RSSTR_SMLR_MSK); + bus_r(CONFIG_V11_REG) | CONFIG_V11_FLTR_RSSTR_HGHR_MSK); return OK; } LOG(logERROR, ("Could not set Filter Resistor. Invalid value %d\n", value)); @@ -2341,12 +2337,8 @@ int getFixCurrentSource() { int getNormalCurrentSource() { if (getChipVersion() == 11) { - // TODO FIRMWARE FIX TOGGLING - int regval = bus_r(CONFIG_V11_STATUS_REG); -#ifndef VIRTUAL - regval ^= BIT32_MASK; -#endif - int low = ((regval & CONFIG_V11_STATUS_CRRNT_SRC_LOW_MSK) >> + int low = ((bus_r(CONFIG_V11_STATUS_REG) & + CONFIG_V11_STATUS_CRRNT_SRC_LOW_MSK) >> CONFIG_V11_STATUS_CRRNT_SRC_LOW_OFST); return (low == 0 ? 1 : 0); }