diff --git a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h index dfd19ed63..0efc7b5a9 100644 --- a/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h +++ b/slsDetectorServers/jungfrauDetectorServer/RegisterDefs.h @@ -250,7 +250,7 @@ #define PLL_CNTRL_ADDR_OFST (16) #define PLL_CNTRL_ADDR_MSK (0x0000003F << PLL_CNTRL_ADDR_OFST) -/* Sample Register (Obsolete) */ +/* Sample Register (Obsolete) FIXME: what is it now? */ #define SAMPLE_REG (0x59 << MEM_MAP_SHIFT) #define SAMPLE_ADC_SAMPLE_SEL_OFST (0) @@ -417,10 +417,25 @@ - - - - +/* FIXME UNKNOWN 0 */ +#define UNKNOWN_0_REG (0xF0 << MEM_MAP_SHIFT) +#define UNKNOWN_0_UNKNOWN_OFST (31) +#define UNKNOWN_0_UNKNOWN_MSK (0x00000001 << UNKNOWN_0_UNKNOWN_OFST) + +/* FIXME UNKNOWN 1 */ +#define UNKNOWN_1_REG (0xF1 << MEM_MAP_SHIFT) +#define UNKNOWN_1_UNKNOWN_OFST (31) +#define UNKNOWN_1_UNKNOWN_MSK (0x00000001 << UNKNOWN_1_UNKNOWN_OFST) + +/* FIXME UNKNOWN 2 */ +#define UNKNOWN_2_REG (0xF2 << MEM_MAP_SHIFT) +#define UNKNOWN_2_UNKNOWN_OFST (31) +#define UNKNOWN_2_UNKNOWN_MSK (0x00000001 << UNKNOWN_2_UNKNOWN_OFST) + +/* FIXME UNKNOWN 3 */ +#define UNKNOWN_3_REG (0xF3 << MEM_MAP_SHIFT) +#define UNKNOWN_3_UNKNOWN_OFST (31) +#define UNKNOWN_3_UNKNOWN_MSK (0x00000001 << UNKNOWN_3_UNKNOWN_OFST) diff --git a/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt b/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt index 7f2d0b731..6bbce7a54 100644 --- a/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt +++ b/slsDetectorServers/jungfrauDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorPackage/slsDetectorServers/jungfrauDetectorServer -URL: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage -Repository Root: origin https://www.github.com/slsdetectorgroup/slsDetectorPackage -Repsitory UUID: 6765fd0dc89176b4eceaf5e2304ef808a316ba9b -Revision: 26 -Branch: refactor +URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git +Repsitory UUID: 6cb043b2d999f9a15edb3a554ad91fbcded10f72 +Revision: 28 +Branch: jungfrau Last Changed Author: Dhanya_Thattil -Last Changed Rev: 4394 -Last Changed Date: 2019-03-13 08:04:56.000000002 +0100 ./RegisterDefs.h +Last Changed Rev: 4471 +Last Changed Date: 2019-03-22 11:20:39.000000002 +0100 ./slsDetectorFunctionList.c diff --git a/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h b/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h index 9c24f9052..69511b6dc 100644 --- a/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h +++ b/slsDetectorServers/jungfrauDetectorServer/gitInfoJungfrau.h @@ -1,6 +1,6 @@ -#define GITURL "https://www.github.com/slsdetectorgroup/slsDetectorPackage" -#define GITREPUUID "6765fd0dc89176b4eceaf5e2304ef808a316ba9b" +#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git" +#define GITREPUUID "6cb043b2d999f9a15edb3a554ad91fbcded10f72" #define GITAUTH "Dhanya_Thattil" -#define GITREV 0x4394 -#define GITDATE 0x20190313 -#define GITBRANCH "refactor" +#define GITREV 0x4471 +#define GITDATE 0x20190322 +#define GITBRANCH "jungfrau" diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c index 7fc375901..fa727ea8e 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorFunctionList.c @@ -424,6 +424,9 @@ void setupDetector() { cleanFifos(); resetCore(); + setUnknowns(); + + configureASICTimer(); bus_w(ADC_PORT_INVERT_REG, ADC_PORT_INVERT_VAL); @@ -486,6 +489,9 @@ void resetCore() { FILE_LOG(logINFO, ("Resetting Core\n")); bus_w(CONTROL_REG, bus_r(CONTROL_REG) | CONTROL_CORE_RST_MSK); bus_w(CONTROL_REG, bus_r(CONTROL_REG) & ~CONTROL_CORE_RST_MSK); + + //FIXME: usleep required?? + usleep(1000 * 1000); } void resetPeripheral() { @@ -1080,7 +1086,10 @@ int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t cleanFifos(); resetCore(); - usleep(500 * 1000); /* todo maybe without */ + //FIXME: usleep(500 * 1000); /* todo maybe without */ + usleep(1000 * 1000); + + setUnknowns(); return OK; } @@ -1333,6 +1342,21 @@ int setTemperatureEvent(int val) { return ((bus_r(TEMP_CTRL_REG) & TEMP_CTRL_OVR_TMP_EVNT_MSK) >> TEMP_CTRL_OVR_TMP_EVNT_OFST); } +void setUnknowns() { + // set unknowns + bus_w(UNKNOWN_0_REG, bus_r(UNKNOWN_0_REG) | UNKNOWN_0_UNKNOWN_MSK); + bus_w(UNKNOWN_1_REG, bus_r(UNKNOWN_1_REG) | UNKNOWN_1_UNKNOWN_MSK); + bus_w(UNKNOWN_2_REG, bus_r(UNKNOWN_2_REG) | UNKNOWN_2_UNKNOWN_MSK); + bus_w(UNKNOWN_3_REG, bus_r(UNKNOWN_3_REG) | UNKNOWN_3_UNKNOWN_MSK); + + usleep(1 * 1000 * 1000); + + // reset unknowns + bus_w(UNKNOWN_0_REG, bus_r(UNKNOWN_0_REG) & (~(UNKNOWN_0_UNKNOWN_MSK))); + bus_w(UNKNOWN_1_REG, bus_r(UNKNOWN_1_REG) & (~(UNKNOWN_1_UNKNOWN_MSK))); + bus_w(UNKNOWN_2_REG, bus_r(UNKNOWN_2_REG) & (~(UNKNOWN_2_UNKNOWN_MSK))); + bus_w(UNKNOWN_3_REG, bus_r(UNKNOWN_3_REG) & (~(UNKNOWN_3_UNKNOWN_MSK))); +} int setNetworkParameter(enum NETWORKINDEX mode, int value) { diff --git a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h index 6deb39151..dd24a78bd 100644 --- a/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/jungfrauDetectorServer/slsDetectorServer_defs.h @@ -81,13 +81,13 @@ enum NETWORKINDEX { TXN_FRAME }; #define SAMPLE_ADC_HALF_SPEED (SAMPLE_DECMT_FACTOR_2_VAL + SAMPLE_DGTL_SAMPLE_0_VAL + SAMPLE_ADC_DECMT_FACTOR_0_VAL + SAMPLE_ADC_SAMPLE_0_VAL) /* 0x1000 */ #define SAMPLE_ADC_QUARTER_SPEED (SAMPLE_DECMT_FACTOR_4_VAL + SAMPLE_DGTL_SAMPLE_8_VAL + SAMPLE_ADC_DECMT_FACTOR_1_VAL + SAMPLE_ADC_SAMPLE_0_VAL) /* 0x2810 */ -#define CONFIG_HALF_SPEED (CONFIG_TDMA_DISABLE_VAL + CONFIG_HALF_SPEED_20MHZ_VAL + CONFIG_OPRTN_MDE_1_X_10GBE_VAL) +#define CONFIG_HALF_SPEED (CONFIG_TDMA_DISABLE_VAL + CONFIG_HALF_SPEED_20MHZ_VAL + CONFIG_OPRTN_MDE_1_X_10GBE_VAL) /**0x100000 */ #define CONFIG_QUARTER_SPEED (CONFIG_TDMA_DISABLE_VAL + CONFIG_QUARTER_SPEED_10MHZ_VAL + CONFIG_OPRTN_MDE_1_X_10GBE_VAL) -#define ADC_OFST_HALF_SPEED_VAL (0x1f) //(0x20) +#define ADC_OFST_HALF_SPEED_VAL (0x20)//(0x1f) //(0x20) #define ADC_OFST_QUARTER_SPEED_VAL (0x0f) //(0x0f) -#define ADC_PHASE_HALF_SPEED (0x2D) //45 +#define ADC_PHASE_HALF_SPEED (0x28)//(0x2D) //45 #define ADC_PHASE_QUARTER_SPEED (0x2D) //45 -#define ADC_PORT_INVERT_VAL (0x453b2a9c) +#define ADC_PORT_INVERT_VAL (0x5A5A5A5A)//(0x453b2a9c) #define MAX_PHASE_SHIFTS (160) /* MSB & LSB DEFINES */ diff --git a/slsDetectorServers/slsDetectorServer/AD9257.h b/slsDetectorServers/slsDetectorServer/AD9257.h index 5568a1082..ce5d167c8 100755 --- a/slsDetectorServers/slsDetectorServer/AD9257.h +++ b/slsDetectorServers/slsDetectorServer/AD9257.h @@ -205,8 +205,13 @@ void AD9257_Configure(){ AD9257_Set(AD9257_OUT_MODE_REG, AD9257_OUT_BINARY_OFST_VAL); //output clock phase +//if defined(GOTTHARDD) || defined(JUNGFRAUD) #ifdef GOTTHARDD FILE_LOG(logINFO, ("\tOutput clock phase is at default: 180\n")); +#elif JUNGFRAUD + // This is not required (by default it is 180) (like gotthard) + FILE_LOG(logINFO, ("\tOutput clock phase: 180\n")); + AD9257_Set(AD9257_OUT_PHASE_REG, AD9257_OUT_CLK_180_VAL); #else FILE_LOG(logINFO, ("\tOutput clock phase: 60\n")); AD9257_Set(AD9257_OUT_PHASE_REG, AD9257_OUT_CLK_60_VAL); diff --git a/slsDetectorServers/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorServers/slsDetectorServer/slsDetectorFunctionList.h index 720fa9007..d6609e8a3 100644 --- a/slsDetectorServers/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorServers/slsDetectorServer/slsDetectorFunctionList.h @@ -280,6 +280,7 @@ extern void eraseFlash(); // programfpga.h extern int startWritingFPGAprogram(FILE** filefp); // programfpga.h extern void stopWritingFPGAprogram(FILE* filefp); // programfpga.h extern int writeFPGAProgram(char* fpgasrc, size_t fsize, FILE* filefp); // programfpga.h +void setUnknowns(); // eiger specific - iodelay, pulse, rate, temp, activate, delay nw parameter #elif EIGERD