mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-24 02:27:59 +02:00
Jungfrau bug fix: cannot give same adcphase value to pll, updated recommended default of adcphase for half speed and quarter speed, updated client manuals for both adcphase and clkdivider
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
Path: slsDetectorsPackage/slsDetectorSoftware
|
||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repsitory UUID: b389402d647e939342dbb2c9317c688c0eb6b105
|
||||
Revision: 1714
|
||||
Branch: 3.1.0-rc
|
||||
Last Changed Author: Erik_Frojdh
|
||||
Last Changed Rev: 3458
|
||||
Last Changed Date: 2018-03-12 14:19:44.000000002 +0100 ./threadFiles/ThreadPool.o
|
||||
Repsitory UUID: 85aa47b8353bb84f52c435a967a03ddf46af5dd1
|
||||
Revision: 1716
|
||||
Branch: 3.1.1-rc
|
||||
Last Changed Author: Dhanya_Thattil
|
||||
Last Changed Rev: 3465
|
||||
Last Changed Date: 2018-03-19 18:13:27.000000002 +0100 ./threadFiles/ThreadPool.o
|
||||
|
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
Path: slsDetectorsPackage/slsDetectorSoftware/jungfrauDetectorServer
|
||||
URL: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repository Root: origin git@github.com:slsdetectorgroup/slsDetectorPackage.git
|
||||
Repsitory UUID: 8b02aa9e91bbee0470492dcf1ff67415851e14fa
|
||||
Revision: 117
|
||||
Branch: 3.1.0-rc
|
||||
Last Changed Author: Erik_Frojdh
|
||||
Last Changed Rev: 3455
|
||||
Last Changed Date: 2018-03-08 16:44:32.000000002 +0100 ./RegisterDefs.h
|
||||
Repsitory UUID: 85aa47b8353bb84f52c435a967a03ddf46af5dd1
|
||||
Revision: 118
|
||||
Branch: 3.1.1-rc
|
||||
Last Changed Author: Dhanya_Thattil
|
||||
Last Changed Rev: 3465
|
||||
Last Changed Date: 2018-03-19 17:26:38.000000002 +0100 ./RegisterDefs.h
|
||||
|
@ -1,6 +1,6 @@
|
||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||
#define GITREPUUID "8b02aa9e91bbee0470492dcf1ff67415851e14fa"
|
||||
#define GITAUTH "Erik_Frojdh"
|
||||
#define GITREV 0x3455
|
||||
#define GITDATE 0x20180308
|
||||
#define GITBRANCH "3.1.0-rc"
|
||||
#define GITREPUUID "85aa47b8353bb84f52c435a967a03ddf46af5dd1"
|
||||
#define GITAUTH "Dhanya_Thattil"
|
||||
#define GITREV 0x3465
|
||||
#define GITDATE 0x20180319
|
||||
#define GITBRANCH "3.1.1-rc"
|
||||
|
@ -487,9 +487,11 @@ int adcPhase(int st){ /**carlos needed clkphase 1 and 2? cehck with Aldo */
|
||||
printf("Setting ADC Phase to %d\n",st);
|
||||
if (st > 65535 || st < -65535)
|
||||
return clkPhase[0];
|
||||
clkPhase[1] = st - clkPhase[0];
|
||||
|
||||
printf(" phase %d\n", clkPhase[1] );
|
||||
clkPhase[1] = st - clkPhase[0];
|
||||
if (clkPhase[1] == 0)
|
||||
return clkPhase[0];
|
||||
|
||||
configurePll();
|
||||
clkPhase[0] = st;
|
||||
return clkPhase[0];
|
||||
@ -1230,8 +1232,12 @@ void configurePll() {
|
||||
#endif
|
||||
u_int32_t val;
|
||||
int32_t phase=0, inv=0;
|
||||
// ensuring PLL is never configured with same phase
|
||||
if (clkPhase[1] == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
printf(" phase in %d\n", clkPhase[1]);
|
||||
printf("Configuring PLL with phase in %d\n", clkPhase[1]);
|
||||
if (clkPhase[1]>0) {
|
||||
inv=0;
|
||||
phase=clkPhase[1];
|
||||
|
@ -101,8 +101,8 @@ enum NETWORKINDEX { TXN_FRAME };
|
||||
#define CONFIG_QUARTER_SPEED (CONFIG_TDMA_DISABLE_VAL + CONFIG_QUARTER_SPEED_10MHZ_VAL + CONFIG_MODE_1_X_10GBE_VAL)
|
||||
#define ADC_OFST_HALF_SPEED_VAL (0x20) //adc pipeline
|
||||
#define ADC_OFST_QUARTER_SPEED_VAL (0x0f)
|
||||
#define ADC_PHASE_HALF_SPEED (0x41)
|
||||
#define ADC_PHASE_QUARTER_SPEED (0x19)
|
||||
#define ADC_PHASE_HALF_SPEED (0x48) //72
|
||||
#define ADC_PHASE_QUARTER_SPEED (0x48) //72
|
||||
|
||||
/* Maybe not required for jungfrau */
|
||||
#define NTRIMBITS (6)
|
||||
|
@ -1,6 +1,6 @@
|
||||
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
|
||||
#define GITREPUUID "b389402d647e939342dbb2c9317c688c0eb6b105"
|
||||
#define GITAUTH "Erik_Frojdh"
|
||||
#define GITREV 0x3458
|
||||
#define GITDATE 0x20180312
|
||||
#define GITBRANCH "3.1.0-rc"
|
||||
#define GITREPUUID "85aa47b8353bb84f52c435a967a03ddf46af5dd1"
|
||||
#define GITAUTH "Dhanya_Thattil"
|
||||
#define GITREV 0x3465
|
||||
#define GITDATE 0x20180319
|
||||
#define GITBRANCH "3.1.1-rc"
|
||||
|
@ -710,7 +710,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
|
||||
*/
|
||||
|
||||
/*! \page config
|
||||
- <b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. MYTHEN[???]. \c Returns \c (int)
|
||||
- <b>clkdivider [i]</b> sets/gets the readout clock divider. EIGER, JUNGFRAU [0(fast speed), 1(half speed), 2(quarter speed)]. Jungfrau, full speed is not implemented and overwrites adcphase to recommended default. MYTHEN[???]. \c Returns \c (int)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName="clkdivider"; //
|
||||
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed;
|
||||
@ -766,7 +766,7 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
|
||||
++i;
|
||||
|
||||
/*! \page config
|
||||
- <b>adcphase [i]</b> Sets/gets the ADC clock frequency in MHz. For the new chiptestboard!\c Returns \c (int)
|
||||
- <b>adcphase [i]</b> Sets/gets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER) \c Returns \c (int)
|
||||
*/
|
||||
descrToFuncMap[i].m_pFuncName="adcphase"; //
|
||||
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdSpeed;
|
||||
@ -5685,9 +5685,6 @@ string slsDetectorCommand::cmdSpeed(int narg, char *args[], int action) {
|
||||
return string("cannot scan speed value ")+string(args[1]);
|
||||
|
||||
}
|
||||
// -1 could work
|
||||
else if (cmd=="adcphase")
|
||||
t = 65536;
|
||||
|
||||
myDet->setOnline(ONLINE_FLAG);
|
||||
|
||||
@ -5707,21 +5704,23 @@ string slsDetectorCommand::helpSpeed(int narg, char *args[], int action) {
|
||||
ostringstream os;
|
||||
if (action==PUT_ACTION || action==HELP_ACTION) {
|
||||
|
||||
os << "clkdivider c \t sets readout clock divider" << std::endl;
|
||||
os << "clkdivider c \t sets readout clock divider. For Jungfrau, it also overwrites adcphase to recommended default" << std::endl;
|
||||
os << "setlength c\t sets the length of the set/reset signals (in clock cycles)" << std::endl;
|
||||
os << "waitstates c \t sets the waitstates of the bus interface" << std::endl;
|
||||
os << "totdivider c\t sets the clock divider in tot mode" << std::endl;
|
||||
os << "totdutycycle c\t sets the duty cycle of the tot clock" << std::endl;
|
||||
os << "adcphase c\t Sets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER)" << std::endl;
|
||||
os << std::endl;
|
||||
|
||||
}
|
||||
if (action==GET_ACTION || action==HELP_ACTION) {
|
||||
|
||||
os << "clkdivider \t gets readout clock divider" << std::endl;
|
||||
os << "clkdivider \t gets readout clock divider. For Jungfrau, it also overwrites adcphase to recommended default" << std::endl;
|
||||
os << "setlength \t gets the length of the set/reset signals (in clock cycles)" << std::endl;
|
||||
os << "waitstates \t gets the waitstates of the bus interface" << std::endl;
|
||||
os << "totdivider \t gets the clock divider in tot mode" << std::endl;
|
||||
os << "totdutycycle \t gets the duty cycle of the tot clock" << std::endl;
|
||||
os << "totdutycycle \t gets phase of the sampling clock. For JUNGFRAU, setting speed (clkdivider) overwrites adcphase to its default recommended value. (Not for EIGER)" << std::endl;
|
||||
os << std::endl;
|
||||
|
||||
}
|
||||
|
@ -77,7 +77,7 @@ You can find examples of how this classes can be instatiated in mainClient.cpp
|
||||
@libdoc The slsDetectorUsers class is a minimal interface class which should be instantiated by the users in their acquisition software (EPICS, spec etc.). More advanced configuration functions are not implemented and can be written in a configuration or parameters file that can be read/written.
|
||||
*/
|
||||
/**
|
||||
@short Class for detector functionalitiesto embed the detector controls in the users custom interface e.g. EPICS, Lima etc.
|
||||
@short Class for detector functionalities to embed the detector controls in the users custom interface e.g. EPICS, Lima etc.
|
||||
|
||||
*/
|
||||
|
||||
@ -270,7 +270,7 @@ class slsDetectorUsers
|
||||
*/
|
||||
int getDetectorSize(int &x0, int &y0, int &nx, int &ny);
|
||||
/**
|
||||
@short setsthe maximum detector size
|
||||
@short gets the maximum detector size
|
||||
\param x0 horizontal position origin in channel number
|
||||
\param y0 vertical position origin in channel number
|
||||
\param nx number of channels in horiziontal
|
||||
|
@ -2988,7 +2988,7 @@ int set_speed(int file_des) {
|
||||
#ifdef JUNGFRAUD
|
||||
case ADC_PHASE:
|
||||
retval = adcPhase(val);
|
||||
if ((val != 65536) && (retval!=val) && (val>=0)) {
|
||||
if ((val != 100000) && (retval!=val) && (val>=0)) {
|
||||
ret=FAIL;
|
||||
sprintf(mess,"could not change set adc phase: should be %d but is %d \n", val, retval);
|
||||
cprintf(RED, "Warning: %s", mess);
|
||||
|
Reference in New Issue
Block a user