CDT I-BM API 1.0.0
Loading...
Searching...
No Matches
cdtIbmApi.h
1#pragma once
2
3#include <iostream>
4#include <string>
5
6#include "CdtHv.h"
7#include "cdtIbmRegsMap.h"
8
14struct FWInfo {
15 std::string version;
16 uint32_t refClock;
17 uint32_t serdesSampling;
18};
19
23const std::unordered_map<uint32_t, FWInfo> fwMap = {{0xa973c7e4, {"v1.2.0", 1584549000, 0xBE}},
24 {0x1f1a44d2, {"v1.4.1", 1249940700, 0x96}},
25 {0xf3015ede, {"v1.4.3", 1249940700, 0x96}}};
26
33class CdtIonBMAPI : public CdtHv {
34 public:
35 CdtIonBMAPI(RMMAPI* rmmApi, int ring, int node, std::string name, TiaBoardVersion tia_board_version);
36 void configFE();
37 uint32_t getFirmwareHash();
38
39 rmmStatus setSamplingPeriod(double sampling);
40 double getSamplingPeriod();
41 rmmStatus setSumCounterStop(uint32_t value);
42 rmmStatus setADCSummation(uint8_t value);
43 uint8_t getADCSummation();
44
45 rmmStatus enableEmulateADCData(bool enable);
46 rmmStatus setEmulatedADCValue(uint32_t value);
47 RMMResult isEmulatedADCDataEnabled();
48 RMMResult getEmulatedADCValue();
49
50 // TODO: Remove that once the FW readback is done
51 RMMResult setADCDataInjection(bool enable, uint32_t value);
52
53 private:
54 rmmStatus setSerdesSampling(uint16_t sampling);
55
56 RMMLog ibmLog;
57
58 FWInfo activeFwInfo{"v1.4.1", 1249940700, 0x96};
59 void fetchConfigParams();
60};
void configFE()
Configures the FEN with default values.
Definition cdtIbmApi.cpp:63
RMMResult getEmulatedADCValue()
Retrieves the current emulated ADC value.
Definition cdtIbmApi.cpp:230
rmmStatus setEmulatedADCValue(uint32_t value)
Sets the emulated ADC value.
Definition cdtIbmApi.cpp:219
uint8_t getADCSummation()
Retrieves the summation over 'n' ADC samples.
Definition cdtIbmApi.cpp:178
double getSamplingPeriod()
Retrieves the current sampling period.
Definition cdtIbmApi.cpp:125
RMMResult isEmulatedADCDataEnabled()
Checks whether ADC data emulation is currently enabled.
Definition cdtIbmApi.cpp:208
rmmStatus enableEmulateADCData(bool enable)
Enables or disables emulation of ADC data.
Definition cdtIbmApi.cpp:196
CdtIonBMAPI(RMMAPI *rmmApi, int ring, int node, std::string name, TiaBoardVersion tia_board_version)
Constructor for the CdtIonBMAPI class.
Definition cdtIbmApi.cpp:27
rmmStatus setSumCounterStop(uint32_t value)
Sets the TIA SERDES sum counter stop value.
Definition cdtIbmApi.cpp:146
rmmStatus setADCSummation(uint8_t value)
Sets the summation over 'n' consecutive ADC samples.
Definition cdtIbmApi.cpp:163
uint32_t getFirmwareHash()
Retrieves the ESS firmware hash.
Definition cdtIbmApi.cpp:185
rmmStatus setSamplingPeriod(double sampling)
Sets the sampling period in microseconds.
Definition cdtIbmApi.cpp:106
Holds firmware-dependent configuration parameters.
Definition cdtIbmApi.h:14
std::string version
Firmware version as a string (e.g., "v1.2.0")
Definition cdtIbmApi.h:15
uint32_t refClock
Reference clock frequency in Hz.
Definition cdtIbmApi.h:16
uint32_t serdesSampling
Default SERDES sampling value.
Definition cdtIbmApi.h:17