6#include "FrontEndBase.h"
7#include "FrontEndFactory.h"
8#include "cdtIbmRegsMap.h"
9#include "hvCalibration.h"
11enum class TiaBoardVersion : uint8_t { V3_0 = 0, V3_2 = 1 };
27const std::unordered_map<uint32_t, FWInfo> fwMap = {{0xa973c7e4, {
"v1.2.0", 1584549000, 0xBE}},
28 {0x1f1a44d2, {
"v1.4.1", 1249940700, 0x96}},
29 {0xf3015ede, {
"v1.4.3", 1249940700, 0x96}}};
39 CdtIonBMAPI(RMMAPI* rmmApi,
int ring,
int node, TiaBoardVersion tia_board_version, std::string name);
44 void writeHV(
const double voltage,
const double voltagePerSec);
67 RMMResult setADCDataInjection(
bool enable, uint32_t value);
69 TiaBoardVersion getTiaBoardVersion()
const {
73 const std::string& getTiaBoardVersionLabel()
const {
74 return tiaBoardVersionLabel;
78 bool isI2cRequestDone();
79 void jumpToVoltage(
const double voltage);
80 uint32_t calcDacForVoltage(
const double voltage);
81 rmmStatus setSerdesSampling(uint16_t sampling);
83 std::atomic<bool> _isHVRampRunning{
false};
84 std::atomic<bool> _hvStopRequested{
false};
86 std::atomic<uint32_t> previousDacValue{0};
88 TiaBoardVersion tiaVersion;
89 std::string tiaBoardVersionLabel;
92 FWInfo activeFwInfo{
"v1.4.1", 1249940700, 0x96};
93 void fetchConfigParams();
std::string getFirmwareVersionLegacy()
Retrieves the legacy firmware version.
Definition cdtIbmApi.cpp:215
bool isMeasRunning()
Checks if the measurement is currently running.
Definition cdtIbmApi.cpp:203
CdtIonBMAPI(RMMAPI *rmmApi, int ring, int node, TiaBoardVersion tia_board_version, std::string name)
Constructor for the CdtIonBMAPI class.
Definition cdtIbmApi.cpp:29
void configFE()
Configures the FEN with default values.
Definition cdtIbmApi.cpp:66
RMMResult getEmulatedADCValue()
Retrieves the current emulated ADC value.
Definition cdtIbmApi.cpp:498
rmmStatus setEmulatedADCValue(uint32_t value)
Sets the emulated ADC value.
Definition cdtIbmApi.cpp:487
void writeHV(const double voltage, const double voltagePerSec)
Writes a voltage value to the HV chip, ensuring proper enabling and smooth ramping.
Definition cdtIbmApi.cpp:281
uint8_t getADCSummation()
Retrieves the summation over 'n' ADC samples.
Definition cdtIbmApi.cpp:182
double readHV()
Reads the measured voltage from the HV chip via I2C.
Definition cdtIbmApi.cpp:249
double getSamplingPeriod()
Retrieves the current sampling period.
Definition cdtIbmApi.cpp:129
bool isStopHVRequested() const
Checks if a stop request has been issued.
Definition cdtIbmApi.cpp:449
RMMResult isEmulatedADCDataEnabled()
Checks whether ADC data emulation is currently enabled.
Definition cdtIbmApi.cpp:474
double getWindowTime()
Retrieves the current integration window time from the CDRE board.
Definition cdtIbmApi.cpp:415
rmmStatus enableEmulateADCData(bool enable)
Enables or disables emulation of ADC data.
Definition cdtIbmApi.cpp:462
void resetHVStop()
Resets the stop request flag, allowing operations to continue.
Definition cdtIbmApi.cpp:440
void measurementEnable(bool enable)
Enables or disables the measurement process.
Definition cdtIbmApi.cpp:191
bool isHVRampRunning() const
Checks if the high-voltage (HV) ramp process is currently running.
Definition cdtIbmApi.cpp:379
void requestHVStop()
Requests to stop ongoing operations.
Definition cdtIbmApi.cpp:433
void setWindowTime(double seconds)
Sets the integration window time for the CDRE board.
Definition cdtIbmApi.cpp:393
rmmStatus setSumCounterStop(uint32_t value)
Sets the TIA SERDES sum counter stop value.
Definition cdtIbmApi.cpp:150
rmmStatus setADCSummation(uint8_t value)
Sets the summation over 'n' consecutive ADC samples.
Definition cdtIbmApi.cpp:167
uint32_t getFirmwareHash()
Retrieves the ESS firmware hash.
Definition cdtIbmApi.cpp:227
rmmStatus setSamplingPeriod(double sampling)
Sets the sampling period in microseconds.
Definition cdtIbmApi.cpp:110
Holds firmware-dependent configuration parameters.
Definition cdtIbmApi.h:18
std::string version
Firmware version as a string (e.g., "v1.2.0")
Definition cdtIbmApi.h:19
uint32_t refClock
Reference clock frequency in Hz.
Definition cdtIbmApi.h:20
uint32_t serdesSampling
Default SERDES sampling value.
Definition cdtIbmApi.h:21