G2: reconfigure chip (#927)

* changed common.c readADCFromFile to make it more general and move temperature calculation for Eiger out of this function and inside whereever it is called.
* g2 and m2: gethighvoltage was just a variable set in server, it is now moved to a get inside DAC5671 implementation (but not reading a measured value, instead what is set from a file), high voltage variable used inside DAC5671 for virtual servers
* g2: switching off hv (ifrom non zero to zero value) will wait for 10s; powering on chip reconfigures chip; powering off chip unconfigures chip; powering off chip also includes check if hv = 0, if not throw exception; chip configuration checked before acquring; at start up: hv switched off and chip powered on, so does not wait 10s to switch off hv;
* included test to check powering off chip when hv is on should throw an exception
* g2:  check if chip configured before acquiring

* nios: read hv value set from file and virtual still goes into DAC5671 for conversions to and fro dac to V, change common readadc to readparameter to generalize, make sethighvoltage into a get and set to catch errors in get as well, g2: if not at startup, remmeber hv value before setting it and after check if value was being switched off (from a non zero value) and wait 10s if it was (10s wait only for switching off from non zero and not at startup)
This commit is contained in:
2024-08-02 12:46:39 +02:00
committed by GitHub
parent ce7f01bdc4
commit c13049f144
21 changed files with 300 additions and 86 deletions

View File

@ -395,11 +395,13 @@ int Feb_Control_ReceiveHighVoltage(unsigned int *value) {
// normal
if (Feb_Control_normal) {
if (readADCFromFile(NORMAL_HIGHVOLTAGE_INPUTPORT, value) == FAIL) {
if (readParameterFromFile(NORMAL_HIGHVOLTAGE_INPUTPORT, "high voltage",
value) == FAIL) {
LOG(logERROR, ("Could not get high voltage\n"));
return 0;
}
*value /= 10;
LOG(logINFO, ("High Voltage: %d\n", (*value)));
}
// 9m
@ -624,8 +626,8 @@ int Feb_Control_SetTrimbits(unsigned int *trimbits, int top) {
<< ((7 - i) * 4); // upper
}
} // end column loop i
} // end supercolumn loop sc
} // end row loop
} // end supercolumn loop sc
} // end row loop
if (Feb_Control_activated) {
if (!Feb_Interface_WriteMemoryInLoops(Feb_Control_leftAddress,
@ -642,7 +644,7 @@ int Feb_Control_SetTrimbits(unsigned int *trimbits, int top) {
}
} // end row_set loop (groups of 16 rows)
} // end l_r loop
} // end l_r loop
memcpy(Feb_Control_last_downloaded_trimbits, trimbits,
Feb_Control_trimbit_size * sizeof(unsigned int));