eive-obsw/linux/obc/PdecConfig.h

57 lines
1.5 KiB
C
Raw Normal View History

2021-11-01 12:41:20 +01:00
#ifndef LINUX_OBC_PDECCONFIG_H_
#define LINUX_OBC_PDECCONFIG_H_
#include <cstring>
2022-08-24 17:27:47 +02:00
#include "fsfw/returnvalues/returnvalue.h"
2022-01-17 15:58:27 +01:00
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);
uint32_t getImrReg();
2022-01-17 15:58:27 +01:00
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];
bool enableTcNewIrq = true;
bool enableTcAbortIrq = true;
bool enableNewFarIrq = true;
2022-01-17 15:58:27 +01:00
void initialize();
2021-11-01 12:41:20 +01:00
};
#endif /* LINUX_OBC_PDECCONFIG_H_ */