ctb, moench: implemented led enable feature

This commit is contained in:
2019-03-01 09:00:04 +01:00
parent ebee9e308e
commit bb81613900
13 changed files with 120 additions and 22 deletions

View File

@ -505,14 +505,15 @@
#define DBIT_EXT_TRG_OPRTN_MD_MSK (0x00000001 << DBIT_EXT_TRG_OPRTN_MD_OFST)
/* Pin Delay 0 RW register */
#define PIN_DELAY_0_REG (0x7C << MEM_MAP_SHIFT)
#define OUTPUT_DELAY_0_REG (0x7C << MEM_MAP_SHIFT)
#define PIN_DELAY_0_OTPT_STTNG_OFST (0) //t = OTPT_STTNG * 25 ps, max for Cyclone V = 775 ps
#define PIN_DELAY_0_OTPT_STTNG_MSK (0x0000001F << PIN_DELAY_0_OFST)
#define PIN_DELAY_0_OTPT_TRGGR_OFST (31)
#define PIN_DELAY_0_OTPT_TRGGR_MSK (0x00000001 << PIN_DELAY_0_OFST)
#define PIN_DELAY_0_OTPT_TRGGR_LD_VAL (1)
#define PIN_DELAY_0_OTPT_TRGGR_STRT_VAL (0)
#define OUTPUT_DELAY_0_OTPT_STTNG_OFST (0) //t = OTPT_STTNG * 25 ps, max for Cyclone V = 775 ps
#define OUTPUT_DELAY_0_OTPT_STTNG_MSK (0x0000001F << OUTPUT_DELAY_0_OFST)
// 1: load dynamic output settings, 0: trigger start of dynamic output delay configuration pn falling edge of ODT (output delay trigger) bit
#define OUTPUT_DELAY_0_OTPT_TRGGR_OFST (31)
#define OUTPUT_DELAY_0_OTPT_TRGGR_MSK (0x00000001 << OUTPUT_DELAY_0_OFST)
#define OUTPUT_DELAY_0_OTPT_TRGGR_LD_VAL (1)
#define OUTPUT_DELAY_0_OTPT_TRGGR_STRT_VAL (0)
/* Pin Delay 1 RW register
* Each bit configured as enable for dynamic output delay configuration */

View File

@ -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: 1fe473e830b937b05052fe69cb7bfccde451055a
Revision: 25
Repsitory UUID: ebee9e308e98f518775d42685602febda9b763ea
Revision: 29
Branch: refactor
Last Changed Author: Dhanya_Thattil
Last Changed Rev: 4359
Last Changed Date: 2019-02-26 16:09:45.000000002 +0100 ./Makefile
Last Changed Rev: 4365
Last Changed Date: 2019-03-01 08:13:34.000000002 +0100 ./RegisterDefs.h

View File

@ -1,6 +1,6 @@
#define GITURL "git@github.com:slsdetectorgroup/slsDetectorPackage.git"
#define GITREPUUID "1fe473e830b937b05052fe69cb7bfccde451055a"
#define GITREPUUID "ebee9e308e98f518775d42685602febda9b763ea"
#define GITAUTH "Dhanya_Thattil"
#define GITREV 0x4359
#define GITDATE 0x20190226
#define GITREV 0x4365
#define GITDATE 0x20190301
#define GITBRANCH "refactor"

View File

@ -2000,6 +2000,26 @@ void setPatternLoop(int level, int *startAddr, int *stopAddr, int *nLoop) {
}
int setLEDEnable(int enable) {
uint32_t addr = CONFIG_REG;
// set
if (enable >= 0) {
FILE_LOG(logINFO, ("Switching LED %s\n", (enable > 0) ? "ON" : "OFF"));
// disable
if (enable == 0) {
bus_w(addr, bus_r(addr) | CONFIG_LED_DSBL_MSK);
}
// enable
else {
bus_w(addr, bus_r(addr) & (~CONFIG_LED_DSBL_MSK));
}
}
// ~ to get the opposite
return (((~bus_r(addr)) & CONFIG_LED_DSBL_MSK) >> CONFIG_LED_DSBL_OFST);
}
/* aquisition */
int startStateMachine(){

View File

@ -253,6 +253,7 @@ uint64_t writePatternWord(int addr, uint64_t word);
int setPatternWaitAddress(int level, int addr);
uint64_t setPatternWaitTime(int level, uint64_t t);
void setPatternLoop(int level, int *startAddr, int *stopAddr, int *nLoop);
int setLEDEnable(int enable);
#endif
// gotthard specific - image, pedestal

View File

@ -211,6 +211,7 @@ const char* getFunctionName(enum detFuncs func) {
case F_STORAGE_CELL_START: return "F_STORAGE_CELL_START";
case F_CHECK_VERSION: return "F_CHECK_VERSION";
case F_SOFTWARE_TRIGGER: return "F_SOFTWARE_TRIGGER";
case F_LED: return "F_LED";
default: return "Unknown Function";
}
@ -275,6 +276,7 @@ void function_table() {
flist[F_STORAGE_CELL_START] = &storage_cell_start;
flist[F_CHECK_VERSION] = &check_version;
flist[F_SOFTWARE_TRIGGER] = &software_trigger;
flist[F_LED] = &led;
// check
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
@ -3447,3 +3449,29 @@ int software_trigger(int file_des) {
return Server_SendResult(file_des, INT32, UPDATE, NULL, 0);
}
int led(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
int arg = -1;
int retval = -1;
if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
return printSocketReadError();
FILE_LOG(logDEBUG1, ("Setting led enable to %d\n", arg));
#if (!defined(MOENCHD)) && (!defined(CHIPTESTBOARDD))
functionNotImplemented();
#else
// set & get
if ((arg == -1) || (Server_VerifyLock() == OK)) {
retval = setLEDEnable(arg);
FILE_LOG(logDEBUG1, ("LED Enable: %d\n", retval));
validate(arg, retval, "LED Enable", DEC);
}
#endif
return Server_SendResult(file_des, INT32, UPDATE, &retval, sizeof(retval));
}

View File

@ -79,4 +79,4 @@ int auto_comp_disable(int);
int storage_cell_start(int);
int check_version(int);
int software_trigger(int);
int led(int);