Add flags to the HK counter readouts in the PPSS table, for the patch to
find them.
The patch copies the modulus (cadence) from the ICU counter read to the
HK counter reads, 60s replacing the 600s cadence.
The ICU counter reads gain a clear=True flag, i.e., address bit 0x80.
All counter reads happen in second 0. HK first, ICU later. 16
counters each from 0x00 and 0x30.
This patch adds 8 bps to the STEP telemetry.
The PPSS gains six entries to overwrite the IX thresholds to enable
the small pixels at a selected cadences.
Enable with `table.ppss.interleaved_small(msg, 5)` to readout small
pixels in second 2 of each 5s interval.
The µs incr between IX config commands has been significantly reduced to
make space for the extra threshold writes. Please test!
The multi hit counts were part of nominal in solo_data(). They got lost
with version 8, when all DPS was reimplemented except for Low Latency.
This commit removes all old data products in solo_data except for low
latency. The multi hit counts are kept and appended to LL.
The version number is bumped to 9.1.
The STEP unit EEPROM contains v6 in page 0x00000/0x60000. The ICU
config memory contains v7 in page 0x70000 and v8 in 0x60000. We plan to
write v8 into page 0x10000/0x70000 to not overwrite v6. v7 was never
written to EEPROM. At ICU reboot (after EGAM), the v8 config will the
appear in 0x70000.
This patch creates the STEP config compiled for 0x70000.
A preliminary xml to burn it into EEPORM is included. Missing from that
xml is the restart of the unit after burn.
The SOC parses our telemetry for index entries and feeds their data
model with assumptions about the resulting data rate. This patch
restores the assignment of index entries to relative data rate.
[2] Full nominal config with 10s cadence
[6] patch to 1s cadence
[7] == [2]
Calibration of ADC readings `HIT` to energy `E` works like this
```
E = MULI HIT * gain
E = ADDI HIT + pedl
```
The `pedl` was calculated as
```
pedl = -$floor(p*gain)
```
where `p` is the ADC reading corresponding to E = 0 keV.
Since `p` is a large magnitude negative number, the limited precision
of the `MULI` instruction parameter causes significant errors in `pedl`.
This patch aims to fis those errors. The new formula for `pedl` is
```
pedl = $floor(-p*$MRND(gain))
```
i.e., we use the same value for `gain` as the `MULI` instruction. This
is now in place for any automatic calibration calculations in
`step_temp_calib.l3`.
For the FS in space we use a fixed precomputed calibration. This is based on
the TVAC FS calibration for T=-36°C, with some adjustments for the changed
`acq_time=6`. The TVAC calib has been saved earlier to
`step_fs_calib-36.calib` with full precision, i.e., without taking `$MRND()`
into account. The awk script `step_fs_calib-36.awk` reverts those
calculations, applies the adjustments, and outputs the adjustes numbers. Since
awk does not have access to `$MRND()`, the script has been changed to output
formulas for `pedl`, including `$MRND()`,
Set the acq_time=6 (as in v7).
Fix large pixel calib for T=-36°C. The fix is based on IFTP data from
July 4 to July 20 with acq_time=6 and acq_time=1.
For each IX a rought estimate was obtained for the shift of the pedestal
and the 160keV pulser peaks. The shift was applied to all large pixels.
Set the acq_time=6 (as in v7).
Fix large pixel calib for T=-36°C. The fix is based on IFTP data from
July 4 to July 20 with acq_time=6 and acq_time=1.
For each IX a rought estimate was obtained for the shift of the pedestal
and the 160keV pulser peaks. The shift was applied to all large pixels.
New method: step_dps.step_hist()
to generate 1D histograms.
New method: step_dps.step_sensor_main()
to return a main STEP dps_product
4keV … 64keV, 2bpo, 1s
New method: step_dps.step_sensor_aux()
to return an aux STEP dps_product
60s
1kev…2KeV, 1 bin
2keV…4keV, 7 bins
64keV… 256keV, 15 bins
256keV…384keV, 1 bin
Changed method: step_dps.assemble()
pick only LL dps_products from step.data
add two main and two aux dps_products.
Version 8.1