diff --git a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer index 007b9fa51..e58b7fa85 100755 Binary files a/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer and b/slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServer_developer differ diff --git a/slsDetectorServers/slsDetectorServer/src/blackfin.c b/slsDetectorServers/slsDetectorServer/src/blackfin.c index 30bc58937..1b38be10a 100644 --- a/slsDetectorServers/slsDetectorServer/src/blackfin.c +++ b/slsDetectorServers/slsDetectorServer/src/blackfin.c @@ -15,6 +15,11 @@ u_int32_t *csp0base = 0; #define CSP0 0x20200000 #define MEM_SIZE 0x100000 +#ifdef JUNGFRAUD + +extern void configureChip(); +#endif + void bus_w16(u_int32_t offset, u_int16_t data) { volatile u_int16_t *ptr1; ptr1 = (u_int16_t *)(csp0base + offset / 2); @@ -80,7 +85,21 @@ u_int32_t readRegister(u_int32_t offset) { } u_int32_t writeRegister(u_int32_t offset, u_int32_t data) { + // if electron mode bit touched +#ifdef JUNGFRAUD + int electronCollectionModeChange = 0; + if ((offset << MEM_MAP_SHIFT) == DAQ_REG) { + if ((readRegister(offset) ^ data) & DAQ_ELCTRN_CLLCTN_MDE_MSK) { + electronCollectionModeChange = 1; + } + } +#endif bus_w(offset << MEM_MAP_SHIFT, data); +#ifdef JUNGFRAUD + if (electronCollectionModeChange) { + configureChip(); + } +#endif return readRegister(offset); } diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 60d0309c3..8c9312405 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -10,4 +10,4 @@ #define APIMYTHEN3 "developer 0x230922" #define APIMOENCH "developer 0x230922" #define APIEIGER "developer 0x230922" -#define APIJUNGFRAU "developer 0x231013" +#define APIJUNGFRAU "developer 0x231018"