2021-11-01 12:41:20 +01:00
|
|
|
#ifndef LINUX_OBC_PDECCONFIG_H_
|
|
|
|
#define LINUX_OBC_PDECCONFIG_H_
|
|
|
|
|
|
|
|
#include <cstring>
|
|
|
|
|
2022-01-17 15:58:27 +01:00
|
|
|
#include "fsfw/returnvalues/HasReturnvaluesIF.h"
|
|
|
|
|
2021-11-01 12:41:20 +01:00
|
|
|
/**
|
2021-11-02 11:11:38 +01:00
|
|
|
* @brief This class generates the configuration words for the configuration memory of the PDEC
|
|
|
|
* IP Cores.
|
|
|
|
*
|
|
|
|
* @details Fields are initialized according to pecification in PDEC datasheet section 6.11.3.1
|
|
|
|
* PROM usage.
|
2021-11-01 12:41:20 +01:00
|
|
|
*
|
|
|
|
* @author J. Meier
|
|
|
|
*/
|
2021-11-02 11:11:38 +01:00
|
|
|
class PdecConfig {
|
2022-01-17 15:58:27 +01:00
|
|
|
public:
|
|
|
|
PdecConfig();
|
|
|
|
virtual ~PdecConfig();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Returns the configuration word by specifying the position.
|
|
|
|
*/
|
|
|
|
uint32_t getConfigWord(uint8_t wordNo);
|
|
|
|
|
|
|
|
private:
|
|
|
|
// TC transfer frame configuration parameters
|
|
|
|
static const uint8_t VERSION_ID = 0;
|
|
|
|
// BD Frames
|
|
|
|
static const uint8_t BYPASS_FLAG = 1;
|
|
|
|
static const uint8_t CONTROL_COMMAND_FLAG = 0;
|
|
|
|
|
|
|
|
static const uint8_t VIRTUAL_CHANNEL = 0;
|
|
|
|
static const uint8_t RESERVED_FIELD_A = 0;
|
|
|
|
static const uint16_t SPACECRAFT_ID = 0x274;
|
|
|
|
static const uint16_t DUMMY_BITS = 0;
|
|
|
|
// Parameters to control the FARM for AD frames
|
|
|
|
// Set here for future use
|
|
|
|
static const uint8_t POSITIVE_WINDOW = 10;
|
|
|
|
static const uint8_t NEGATIVE_WINDOW = 151;
|
|
|
|
static const uint8_t HIGH_AU_MAP_ID = 0xF;
|
|
|
|
static const uint8_t ENABLE_DERANDOMIZER = 1;
|
|
|
|
|
|
|
|
static const uint8_t CONFIG_WORDS_NUM = 2;
|
|
|
|
|
|
|
|
uint32_t configWords[CONFIG_WORDS_NUM];
|
|
|
|
|
|
|
|
void initialize();
|
2021-11-01 12:41:20 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /* LINUX_OBC_PDECCONFIG_H_ */
|