eive-obsw/mission/devices/devicedefinitions/MGMHandlerRM3100Definitions.h

64 lines
2.3 KiB
C
Raw Normal View History

2020-10-01 02:06:39 +02:00
#ifndef MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_
#define MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_
2020-12-21 19:52:00 +01:00
#include <fsfw/devicehandlers/DeviceHandlerIF.h>
2020-12-21 19:50:01 +01:00
#include <cstdint>
2020-10-01 02:06:39 +02:00
namespace RM3100 {
2020-12-21 19:50:01 +01:00
static constexpr uint8_t READ_MASK = 0b1000'0000;
/*----------------------------------------------------------------------------*/
/* CMM Register
/*----------------------------------------------------------------------------*/
static constexpr uint8_t SET_CMM_CMZ = 1 << 6;
static constexpr uint8_t SET_CMM_CMY = 1 << 5;
static constexpr uint8_t SET_CMM_CMX = 1 << 4;
static constexpr uint8_t SET_CMM_DRDM = 1 << 2;
static constexpr uint8_t SET_CMM_START = 1;
static constexpr uint8_t CMM_REGISTER = 0x01;
static constexpr uint8_t CMM_VALUE = SET_CMM_CMZ | SET_CMM_CMY | SET_CMM_CMX |
SET_CMM_DRDM | SET_CMM_START;
/*----------------------------------------------------------------------------*/
/* Cycle count register
/*----------------------------------------------------------------------------*/
static constexpr uint8_t CYCLE_COUNT_VALUE = 0xC8;
static constexpr uint8_t GAIN = CYCLE_COUNT_VALUE / 100 * 38;
static constexpr uint8_t CYCLE_COUNT_START_REGISTER = 0x04;
/*----------------------------------------------------------------------------*/
/* TMRC register
/*----------------------------------------------------------------------------*/
static constexpr uint8_t TMRC_150HZ_VALUE = 0x94;
static constexpr uint8_t TMRC_75HZ_VALUE = 0x95;
static constexpr uint8_t TMRC_DEFAULT_37HZ_VALUE = 0x96;
static constexpr uint8_t TMRC_REGISTER = 0x0B;
static constexpr uint8_t TMRC_DEFAULT_VALUE = TMRC_75HZ_VALUE;
static constexpr uint8_t MEASUREMENT_REG_START = 0x24;
static constexpr uint8_t BIST_REGISTER = 0x33;
static constexpr uint8_t DATA_READY_VAL = 0b1000'0000;
static constexpr uint8_t STATUS_REGISTER = 0x34;
static constexpr uint8_t REVID_REGISTER = 0x36;
// Range in Microtesla. 1 T equals 10000 Gauss (for comparison with LIS3 MGM)
2020-12-21 19:50:50 +01:00
static constexpr uint16_t RANGE = 800;
2020-12-21 19:50:01 +01:00
2020-12-21 19:52:00 +01:00
static constexpr DeviceCommandId_t CONFIGURE_CMM = 3;
static constexpr DeviceCommandId_t READ_CMM = 4;
2020-12-21 19:50:01 +01:00
2020-12-21 19:52:00 +01:00
//static constexpr DeviceCommandId_t CONFIGURE_CYC
static constexpr DeviceCommandId_t CONFIGURE_TMRC = 5;
static constexpr DeviceCommandId_t READ_TMRC = 6;
2020-12-21 19:50:01 +01:00
2020-10-01 02:06:39 +02:00
}
#endif /* MISSION_DEVICES_DEVICEDEFINITIONS_MGMHANDLERRM3100DEFINITIONS_H_ */