------------------------------------------------------------------------------ ==> ==> 'Repairing' ZEUS HV-controller calibration parameters in EEPROM: ==> ---------------------------------------------------------------- ==> ------------------------------------------------------------------------------ Tools ====== float2bytes: ------------ asks for a float number and subsequently prints out the byte representation (4 bytes). hexline: -------- "hexline " produces 2 lines in INTELHEX-format, suitable for downloading to the HV-controller. ------------------------------------------------------------------------------ ==> Example of repairing an EEPROM location: (Controller #6, HV supply #1, calibration constant 'e') ============================================================ Creating the HEX-file ---------------------- > float2bytes Give float: 6.532 6.532000 => 40 d1 6 25 > hexline 7e34 40 d1 6 25 address=7e34 data=40 d1 6 25 Resulting INTELHEX-data: :047e340040d106250e :00000001ff Getting the INTELHEX-data into the HV-controller ------------------------------------------------ (the following commands are given on the terminal connected to the controller) Reset the HV-controller (to make sure we run the EPROM program, not the EEPROM program): S6RST Download the INTELHEX-data: S6LHX :047e340040d106250e :00000001FF Reset the HV-controller again (to make it use the new constant): S6RST Now check the supplies calibration constants (and the others as well) to see if all went well...: S6CAL1 S6.1RPA the reply is: s6.1RPA.7912.713.144.1796.-1216.6532.-1349 ^ Here is constant 'e' (Check others as well to make sure nothing else got corrupted: S6.2RPA, S6.3RPA, S6.0RPA) ------------------------------------------------------------------------------ ==> ==> Addresses of parameters and calibration constants in the HV-controllers ==> ----------------------------------------------------------------------- ==> SRTD HV-controllers ==================== --> General settings: Hex Description Addr #bytes Comment ----------- ----- ------ ------- valid settings 7e00 1 char, contains 'V' if yes sample frequency 7e01 1 int, in units of 0.1 Hz control frequency 7e02 1 int, in units of 0.1 Hz control delay 7e03 1 int, in seconds duty-cycle dark current HV#1 7e04 1 int, in ADC-counts duty-cycle dark current HV#2 7e05 1 int, in ADC-counts duty-cycle dark current HV#3 7e06 1 int, in ADC-counts duty-cycle safety margin 7e07 1 int, in ADC-counts maximum #trips (then->off) 7e08 1 int requested voltage HV#1 7e0d 2 int, in Volts requested voltage HV#2 7e0f 2 int, in Volts requested voltage HV#3 7e11 2 int, in Volts requested voltage aux-supply 7e13 2 int, in Volts valid program in EEPROM 7ff0 1 char, contains 'V' if yes EEPROM program id 7ff1 1 char, not used jump to EEPROM (if valid progr) 7ff2 1 char, contains 'Y' if yes --> Calibration constants: calib const set HV#1 7e16 1 int, set-number (1 or 2) calib const set HV#2 7e17 1 int, set-number (1 or 2) calib const set HV#3 7e18 1 int, set-number (1 or 2) calib const set aux-supply 7e19 1 int, set-number (1 or 2) --> Set #1 HV#1 a 7e20 4 float HV#1 b 7e24 4 float HV#1 aa 7e28 4 float HV#1 c 7e2c 4 float HV#1 d 7e30 4 float HV#1 e 7e34 4 float HV#1 f 7e38 4 float HV#2 a 7e3c 4 float HV#2 b 7e40 4 float HV#2 aa 7e44 4 float HV#2 c 7e48 4 float HV#2 d 7e4c 4 float HV#2 e 7e50 4 float HV#2 f 7e54 4 float HV#3 a 7e58 4 float HV#3 b 7e5c 4 float HV#3 aa 7e60 4 float HV#3 c 7e64 4 float HV#3 d 7e68 4 float HV#3 e 7e6c 4 float HV#3 f 7e70 4 float AUX a 7e74 4 float AUX b 7e78 4 float AUX aa 7e7c 4 float AUX c 7e80 4 float AUX d 7e84 4 float AUX e 7e88 4 float AUX f 7e8c 4 float (--> Set #2 <=== Not used until a new calibration occurs (or at least until calib constants are saved again...) HV#1 a 7f00 4 float HV#1 b 7f04 4 float etc.. etc.. etc... AUX f 7f6c 4 float ) ------------------------------------------------------------------------------ PRESAMPLER, BPC, FPLUG HV-controllers ====================================== --> General settings: Hex Description Addr #bytes Comment ----------- ----- ------ ------- valid settings 7e00 1 char, contains 'V' if yes sample frequency 7e01 1 int, in units of 0.1 Hz control frequency 7e02 1 int, in units of 0.1 Hz control delay 7e03 1 int, in seconds maximum current HV#1 7e04 2 int, in units of 0.1 microA maximum #trips (then->off) 7e06 1 int requested voltage aux-supply 7e20 2 int, in Volts requested voltage HV#1 7e22 2 int, in Volts requested voltage HV#2 7e24 2 int, in Volts requested voltage HV#3 7e26 2 int, in Volts requested voltage HV#4 7e28 2 int, in Volts requested voltage HV#5 7e2a 2 int, in Volts requested voltage HV#6 7e2c 2 int, in Volts valid program in EEPROM 7ff0 1 char, contains 'V' if yes EEPROM program id 7ff1 1 char, not used jump to EEPROM (if valid progr) 7ff2 1 char, contains 'Y' if yes --> Calibration constants: valid calibration constants AUX 7e30 1 char, contains 'V' if yes valid calib constants HV#1 7e31 1 char, contains 'V' if yes valid calib constants HV#2 7e32 1 char, contains 'V' if yes valid calib constants HV#3 7e33 1 char, contains 'V' if yes valid calib constants HV#4 7e34 1 char, contains 'V' if yes valid calib constants HV#5 7e35 1 char, contains 'V' if yes valid calib constants HV#6 7e36 1 char, contains 'V' if yes AUX a 7e40 4 float AUX b 7e44 4 float AUX aa 7e48 4 float AUX c 7e4c 4 float AUX d 7e50 4 float AUX e 7e54 4 float AUX f 7e58 4 float AUX g 7e5c 4 float HV#1 a 7e60 4 float HV#1 b 7e64 4 float HV#1 aa 7e68 4 float HV#1 c 7e6c 4 float HV#1 d 7e70 4 float HV#1 e 7e74 4 float HV#1 f 7e78 4 float HV#1 g 7e7c 4 float HV#2 a 7e80 4 float HV#2 b 7e84 4 float HV#2 aa 7e88 4 float HV#2 c 7e8c 4 float HV#2 d 7e90 4 float HV#2 e 7e94 4 float HV#2 f 7e98 4 float HV#2 g 7e9c 4 float HV#3 a 7ea0 4 float HV#3 b 7ea4 4 float HV#3 aa 7ea8 4 float HV#3 c 7eac 4 float HV#3 d 7eb0 4 float HV#3 e 7eb4 4 float HV#3 f 7eb8 4 float HV#3 g 7ebc 4 float HV#4 a 7ec0 4 float HV#4 b 7ec4 4 float HV#4 aa 7ec8 4 float HV#4 c 7ecc 4 float HV#4 d 7ed0 4 float HV#4 e 7ed4 4 float HV#4 f 7ed8 4 float HV#4 g 7edc 4 float HV#5 a 7ee0 4 float HV#5 b 7ee4 4 float HV#5 aa 7ee8 4 float HV#5 c 7eec 4 float HV#5 d 7ef0 4 float HV#5 e 7ef4 4 float HV#5 f 7ef8 4 float HV#5 g 7efc 4 float HV#6 a 7f00 4 float HV#6 b 7f04 4 float HV#6 aa 7f08 4 float HV#6 c 7f0c 4 float HV#6 d 7f10 4 float HV#6 e 7f14 4 float HV#6 f 7f18 4 float HV#6 g 7f1c 4 float ------------------------------------------------------------------------------ ==> !NEW! (in FPC-HV and after SRTD/PRES/BPC-HV EPROM upgrades during 97/98 winter shutdown) in SRTD-HV v6.1, PRES-HV v1.4, BPC-HV v1.4 and FPC-HV v1.4: 1. All controllers will listen to a command with command tag '#'. This has been added to make it possible to find all controllers on the RS232 communication bus without knowing which type(s) exactly are present (Normally one addresses SRTD controllers with 'S', PRESAMPLER controllers with 'P', BPC controllers with 'B' and FPC controllers with 'F'.) 2. New, undocumented feature: when a valid program is present in EEPROM -AND- EEPROM location 0x7ff2 is set to 'Y' (using a HEX-file; there is no command available to do it...) the module will automatically switch to the EEPROM program at power-up; it will still be possible to switch back to the EPROM program from EEPROM. ------------------------------------------------------------------------------