From ec18db868f9cc8ca3f5049ceae6532715f4f3337 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 13 Mar 2019 08:37:45 +0100 Subject: [PATCH] ctb, moench, jungfrau server: changing phase only changes one clock in one direction. ctb and moench phase shift connected to adc clk, instead of run clk --- .../ctbDetectorServer/gitInfo.txt | 12 ++++----- .../ctbDetectorServer/gitInfoCtb.h | 8 +++--- .../slsDetectorFunctionList.c | 25 ++++++++++++------- .../slsDetectorServer_defs.h | 3 ++- .../jungfrauDetectorServer/gitInfo.txt | 12 ++++----- .../jungfrauDetectorServer/gitInfoJungfrau.h | 8 +++--- .../slsDetectorFunctionList.c | 24 ++++++++---------- .../slsDetectorServer_defs.h | 1 + .../moenchDetectorServer/gitInfo.txt | 12 ++++----- .../moenchDetectorServer/gitInfoMoench.h | 8 +++--- .../slsDetectorFunctionList.c | 25 ++++++++++++------- .../slsDetectorServer_defs.h | 3 ++- 12 files changed, 77 insertions(+), 64 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/gitInfo.txt b/slsDetectorServers/ctbDetectorServer/gitInfo.txt index 092c3298d..2c53e2c03 100644 --- a/slsDetectorServers/ctbDetectorServer/gitInfo.txt +++ b/slsDetectorServers/ctbDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorPackage/slsDetectorServers/ctbDetectorServer -URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repsitory UUID: 1103f56256f3f8b5037343f9e9a2ef90139dc6d0 -Revision: 37 +URL: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage +Repository Root: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage +Repsitory UUID: 6765fd0dc89176b4eceaf5e2304ef808a316ba9b +Revision: 38 Branch: refactor Last Changed Author: Dhanya_Thattil -Last Changed Rev: 4389 -Last Changed Date: 2019-03-08 14:05:26.000000002 +0100 ./RegisterDefs.h +Last Changed Rev: 4394 +Last Changed Date: 2019-03-13 08:04:56.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorServers/ctbDetectorServer/gitInfoCtb.h b/slsDetectorServers/ctbDetectorServer/gitInfoCtb.h index 8086a7c7a..9c24f9052 100644 --- a/slsDetectorServers/ctbDetectorServer/gitInfoCtb.h +++ b/slsDetectorServers/ctbDetectorServer/gitInfoCtb.h @@ -1,6 +1,6 @@ -#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "1103f56256f3f8b5037343f9e9a2ef90139dc6d0" +#define GITURL "https://www.github.com/slsdetectorgroup/slsDetectorPackage" +#define GITREPUUID "6765fd0dc89176b4eceaf5e2304ef808a316ba9b" #define GITAUTH "Dhanya_Thattil" -#define GITREV 0x4389 -#define GITDATE 0x20190308 +#define GITREV 0x4394 +#define GITDATE 0x20190313 #define GITBRANCH "refactor" diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c index 3662d38fb..c5d3ad6fa 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorFunctionList.c @@ -786,7 +786,7 @@ void setSpeed(enum speedVariable ind, int val) { case ADC_PHASE: case PHASE_SHIFT: FILE_LOG(logINFOBLUE, ("Configuring ADC Phase\n")); - configurePhase(RUN_CLK, val); + configurePhase(ADC_CLK, val); break; case DBIT_PHASE: FILE_LOG(logINFOBLUE, ("Configuring Dbit Phase\n")); @@ -1639,6 +1639,12 @@ void configurePhase(enum CLKINDEX ind, int val) { FILE_LOG(logERROR, ("\tPhase provided for C%d(%s) outside limits\n", ind, clock_names[ind])); return; } + int relativePhase = clkPhase[ind] - val; + + // same phase + if (!relativePhase) { + return; + } FILE_LOG(logINFO, ("Configuring Phase of C%d(%s) to %d\n", ind, clock_names[ind], val)); @@ -1648,16 +1654,17 @@ void configurePhase(enum CLKINDEX ind, int val) { // set mode register to polling mode ALTERA_PLL_SetModePolling(); - int phase = 0, inv = 0; - if (val > 0) { - inv = 0; - phase = val; + + int phase = 0; + int maxShifts = ((ind == ADC_CLK) ? MAX_PHASE_SHIFTS_ADC_CLK : MAX_PHASE_SHIFTS_DBIT_CLK); + + // delay clk + if (relativePhase > 0) { + phase = (maxShifts - relativePhase); } else { - inv = 1; - val = -1 * val; - phase = (~val); + phase = (-1) * relativePhase; } - FILE_LOG(logINFO, ("\tphase out %d (0x%08x), inv:%d\n", phase, phase, inv)); + FILE_LOG(logINFO, ("\tphase out %d (0x%08x)\n", phase, phase)); ALTERA_PLL_SetPhaseShift(phase, (int)ind, 0); diff --git a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h index 53862a55e..ae6e9597e 100644 --- a/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/ctbDetectorServer/slsDetectorServer_defs.h @@ -80,7 +80,8 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7, D8, D9, /* Defines in the Firmware */ #define MAX_PATTERN_LENGTH (0xFFFF) #define DIGITAL_IO_DELAY_MAXIMUM_PS ((OUTPUT_DELAY_0_OTPT_STTNG_MSK >> OUTPUT_DELAY_0_OTPT_STTNG_OFST) * OUTPUT_DELAY_0_OTPT_STTNG_STEPS) - +#define MAX_PHASE_SHIFTS_ADC_CLK (320) +#define MAX_PHASE_SHIFTS_DBIT_CLK (32) #define WAIT_TME_US_FR_ACQDONE_REG (100) // wait time in us after acquisition done to ensure there is no data in fifo #define WAIT_TIME_US_PLL (10 * 1000) diff --git a/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt b/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt index 6a7478df2..7f2d0b731 100644 --- a/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorPackage/slsDetectorServers/jungfrauDetectorServer -URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repsitory UUID: 93192c6e84a34ad3416f99b95e58356b609f61c6 -Revision: 24 +URL: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage +Repository Root: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage +Repsitory UUID: 6765fd0dc89176b4eceaf5e2304ef808a316ba9b +Revision: 26 Branch: refactor Last Changed Author: Dhanya_Thattil -Last Changed Rev: 4370 -Last Changed Date: 2019-03-01 15:23:53.000000002 +0100 ./RegisterDefs.h +Last Changed Rev: 4394 +Last Changed Date: 2019-03-13 08:04:56.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h index f505e414f..9c24f9052 100644 --- a/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,6 +1,6 @@ -#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "93192c6e84a34ad3416f99b95e58356b609f61c6" +#define GITURL "https://www.github.com/slsdetectorgroup/slsDetectorPackage" +#define GITREPUUID "6765fd0dc89176b4eceaf5e2304ef808a316ba9b" #define GITAUTH "Dhanya_Thattil" -#define GITREV 0x4370 -#define GITDATE 0x20190301 +#define GITREV 0x4394 +#define GITDATE 0x20190313 #define GITBRANCH "refactor" diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index c82d7ddec..7fc375901 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -1255,29 +1255,25 @@ void configurePll() { #ifdef VIRTUAL return; #endif - int32_t phase=0, inv=0; + int32_t phase=0; // ensuring PLL is never configured with same phase if (clkPhase[1] == 0) { return; } FILE_LOG(logINFO, ("\tConfiguring PLL with phase in %d\n", clkPhase[1])); + + // delay ADC clk if (clkPhase[1]>0) { - inv=0; - phase=clkPhase[1]; - } else { - inv=1; - phase=-1*clkPhase[1]; + phase = MAX_PHASE_SHIFTS - clkPhase[1]; } + // advance adc clk + else { + phase = (-1) * clkPhase[1]; + } + FILE_LOG(logDEBUG1, ("\tphase out %d (0x%08x)\n", phase, phase)); - - if (inv) { - ALTERA_PLL_SetPhaseShift(phase, 1, 0); - } else { - ALTERA_PLL_SetPhaseShift(phase, 0, 0); - - ALTERA_PLL_SetPhaseShift(phase, 2, 0); - } + ALTERA_PLL_SetPhaseShift(phase, 1, 0); // phase, 1: adc clk, 0:neg usleep(10000); } diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 73e14684c..6deb39151 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -88,6 +88,7 @@ enum NETWORKINDEX { TXN_FRAME }; #define ADC_PHASE_HALF_SPEED (0x2D) //45 #define ADC_PHASE_QUARTER_SPEED (0x2D) //45 #define ADC_PORT_INVERT_VAL (0x453b2a9c) +#define MAX_PHASE_SHIFTS (160) /* MSB & LSB DEFINES */ #define MSB_OF_64_BIT_REG_OFST (32) diff --git a/slsDetectorServers/moenchDetectorServer/gitInfo.txt b/slsDetectorServers/moenchDetectorServer/gitInfo.txt index 1350528ac..ac12c4a00 100644 --- a/slsDetectorServers/moenchDetectorServer/gitInfo.txt +++ b/slsDetectorServers/moenchDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorPackage/slsDetectorServers/moenchDetectorServer -URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git -Repsitory UUID: ae5938799fb1bf7a5cb64bdb329f9c0d9ab44a03 -Revision: 15 +URL: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage +Repository Root: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage +Repsitory UUID: 6765fd0dc89176b4eceaf5e2304ef808a316ba9b +Revision: 16 Branch: refactor Last Changed Author: Dhanya_Thattil -Last Changed Rev: 4393 -Last Changed Date: 2019-03-08 14:05:26.000000002 +0100 ./RegisterDefs.h +Last Changed Rev: 4394 +Last Changed Date: 2019-03-13 08:04:56.000000002 +0100 ./RegisterDefs.h diff --git a/slsDetectorServers/moenchDetectorServer/gitInfoMoench.h b/slsDetectorServers/moenchDetectorServer/gitInfoMoench.h index 40443e417..9c24f9052 100644 --- a/slsDetectorServers/moenchDetectorServer/gitInfoMoench.h +++ b/slsDetectorServers/moenchDetectorServer/gitInfoMoench.h @@ -1,6 +1,6 @@ -#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" -#define GITREPUUID "ae5938799fb1bf7a5cb64bdb329f9c0d9ab44a03" +#define GITURL "https://www.github.com/slsdetectorgroup/slsDetectorPackage" +#define GITREPUUID "6765fd0dc89176b4eceaf5e2304ef808a316ba9b" #define GITAUTH "Dhanya_Thattil" -#define GITREV 0x4393 -#define GITDATE 0x20190308 +#define GITREV 0x4394 +#define GITDATE 0x20190313 #define GITBRANCH "refactor" diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c index 4cc9aa1cd..6f2e425b7 100644 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorFunctionList.c @@ -762,7 +762,7 @@ void setSpeed(enum speedVariable ind, int val) { case ADC_PHASE: case PHASE_SHIFT: FILE_LOG(logINFOBLUE, ("Configuring ADC Phase\n")); - configurePhase(RUN_CLK, val); + configurePhase(ADC_CLK, val); break; case DBIT_PHASE: FILE_LOG(logINFOBLUE, ("Configuring Dbit Phase\n")); @@ -1274,6 +1274,12 @@ void configurePhase(enum CLKINDEX ind, int val) { FILE_LOG(logERROR, ("\tPhase provided for C%d(%s) outside limits\n", ind, clock_names[ind])); return; } + int relativePhase = clkPhase[ind] - val; + + // same phase + if (!relativePhase) { + return; + } FILE_LOG(logINFO, ("Configuring Phase of C%d(%s) to %d\n", ind, clock_names[ind], val)); @@ -1283,16 +1289,17 @@ void configurePhase(enum CLKINDEX ind, int val) { // set mode register to polling mode ALTERA_PLL_SetModePolling(); - int phase = 0, inv = 0; - if (val > 0) { - inv = 0; - phase = val; + + int phase = 0; + int maxShifts = ((ind == ADC_CLK) ? MAX_PHASE_SHIFTS_ADC_CLK : MAX_PHASE_SHIFTS_DBIT_CLK); + + // delay clk + if (relativePhase > 0) { + phase = (maxShifts - relativePhase); } else { - inv = 1; - val = -1 * val; - phase = (~val); + phase = (-1) * relativePhase; } - FILE_LOG(logINFO, ("\tphase out %d (0x%08x), inv:%d\n", phase, phase, inv)); + FILE_LOG(logINFO, ("\tphase out %d (0x%08x)\n", phase, phase)); ALTERA_PLL_SetPhaseShift(phase, (int)ind, 0); diff --git a/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h index 9bec751ba..fa2aac94b 100644 --- a/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/moenchDetectorServer/slsDetectorServer_defs.h @@ -61,7 +61,8 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7}; /* Defines in the Firmware */ #define MAX_PATTERN_LENGTH (0xFFFF) #define DIGITAL_IO_DELAY_MAXIMUM_PS ((OUTPUT_DELAY_0_OTPT_STTNG_MSK >> OUTPUT_DELAY_0_OTPT_STTNG_OFST) * OUTPUT_DELAY_0_OTPT_STTNG_STEPS) - +#define MAX_PHASE_SHIFTS_ADC_CLK (320) +#define MAX_PHASE_SHIFTS_DBIT_CLK (32) #define WAIT_TME_US_FR_ACQDONE_REG (100) // wait time in us after acquisition done to ensure there is no data in fifo #define WAIT_TIME_US_PLL (10 * 1000)