57 lines
1.5 KiB
C++
57 lines
1.5 KiB
C++
#ifndef LINUX_OBC_PDECCONFIG_H_
|
|
#define LINUX_OBC_PDECCONFIG_H_
|
|
|
|
#include <cstring>
|
|
|
|
#include "fsfw/returnvalues/returnvalue.h"
|
|
|
|
/**
|
|
* @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.
|
|
*
|
|
* @author J. Meier
|
|
*/
|
|
class PdecConfig {
|
|
public:
|
|
PdecConfig();
|
|
virtual ~PdecConfig();
|
|
|
|
/**
|
|
* @brief Returns the configuration word by specifying the position.
|
|
*/
|
|
uint32_t getConfigWord(uint8_t wordNo);
|
|
uint32_t getImrReg();
|
|
|
|
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 = 0x3DC;
|
|
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;
|
|
|
|
void initialize();
|
|
};
|
|
|
|
#endif /* LINUX_OBC_PDECCONFIG_H_ */
|