Skyward boardcore
Loading...
Searching...
No Matches
Boardcore::BMX160Defs Namespace Reference

Various BMX160 register/enums definitions. More...

Classes

struct  AccRaw
 Raw struct, read directly from device. More...
 
struct  GyrRaw
 Raw struct, read directly from device. More...
 
struct  MagRaw
 Raw struct, read directly from device. More...
 
struct  TrimData
 Struct holding trim data used for magnetomer compensation. More...
 

Enumerations

enum  SELF_TEST { SELF_TEST_GYR = 0x10 , SELF_TEST_ACC_AMP = 0x08 , SELF_TEST_ACC_SIGN = 0x04 , SELF_TEST_ACC_ENABLE = 0x01 }
 Values for SELF_TEST register. More...
 
enum  FIFO_CONFIG_1 { FIFO_CONFIG_1_ACC_EN = 0x80 , FIFO_CONFIG_1_GYR_EN = 0x40 , FIFO_CONFIG_1_MAG_EN = 0x20 , FIFO_CONFIG_1_HEADER_EN = 0x10 }
 Values for FIFO_CONFIG_1 register. More...
 
enum  FIFO_DOWNS { FIFO_DOWNS_ACC_FILT_DATA = 0x80 , FIFO_DOWNS_GYR_FILT_DATA = 0x08 }
 Values for FIFO_DOWNS register. More...
 
enum  INT_OUT_CTRL { INT_OUT_CTRL_INT2_OUT_EN = 0x80 , INT_OUT_CTRL_INT2_OD = 0x40 , INT_OUT_CTRL_INT1_OUT_EN = 0x08 , INT_OUT_CTRL_INT1_OD = 0x04 }
 Values for INT_OUT_CTRL register. More...
 
enum  INT_MAP_1 { INT_MAP_1_INT_1_FIFO_WATERMARK = 0x40 , INT_MAP_1_INT_1_FIFO_FULL = 0x20 , INT_MAP_1_INT_2_FIFO_WATERMARK = 0x04 , INT_MAP_1_INT_2_FIFO_FULL = 0x02 }
 Values for INT_MAP_1 register. More...
 
enum  INT_EN_1 { INT_EN_1_FIFO_WATERMARK = 0x40 , INT_EN_1_FIFO_FULL = 0x20 }
 Values for INT_EN_1 register. More...
 
enum  MAG_IF_0 {
  MAG_IF_0_MANUAL = 0x80 , MAG_IF_0_BURST_1 = 0x00 , MAG_IF_0_BURST_2 = 0x01 , MAG_IF_0_BURST_6 = 0x02 ,
  MAG_IF_0_BURST_8 = 0x03
}
 Values for MAG_IF_0 register. More...
 
enum  FIFO_HEADER {
  FIFO_HEADER_MODE_REGULAR = 0x80 , FIFO_HEADER_MODE_CONTROL = 0x40 , FIFO_HEADER_PARM_ACC_DATA = 0x04 , FIFO_HEADER_PARM_GYR_DATA = 0x08 ,
  FIFO_HEADER_PARM_MAG_DATA = 0x10 , FIFO_HEADER_PARM_SKIP = 0x00 , FIFO_HEADER_PARM_SENSORTIME = 0x04 , FIFO_HEADER_PARM_CONFIG = 0x08
}
 Values for fifo header byte. More...
 
enum  MAG_RESET { MAG_RESET_POWER_CONTROL = 0x01 }
 Values for mag RESET. More...
 
enum  MAG_CONTROL { MAG_CONTROL_SELF_TEST = 0x01 , MAG_CONTROL_NORMAL = 0x00 , MAG_CONTROL_FORCED = 0x02 , MAG_CONTROL_SLEEP = 0x06 }
 Values for mag CONTROL. More...
 
enum class  Cmd {
  START_FOC = 0x03 , ACC_SET_PMU_MODE = 0x10 , GYR_SET_PMU_MODE = 0x14 , MAG_IF_SET_PMU_MODE = 0x18 ,
  PROG_NVM = 0xA0 , FIFO_FLUSH = 0xB0 , INT_RESET = 0xB1 , SOFTRESET = 0xB6 ,
  STEP_CNT_CLR = 0xB2
}
 
enum class  PowerMode { SUSPEND = 0x00 , NORMAL = 0x01 , LOW_POWER = 0x02 , FAST_START_UP = 0x03 }
 
enum  Registers {
  REG_CHIPID = 0x00 , REG_ERR = 0x02 , REG_PMU_STATUS = 0x03 , REG_DATA = 0x04 ,
  REG_DATA_MAG = 0x04 , REG_DATA_GYR = 0x0C , REG_DATA_ACC = 0x12 , REG_SENSORTIME_0 = 0x18 ,
  REG_SENSORTIME_1 = 0x19 , REG_SENSORTIME_2 = 0x1A , REG_STATUS = 0x1B , REG_TEMPERATURE_0 = 0x20 ,
  REG_TEMPERATURE_1 = 0x21 , REG_FIFO_LENGTH_0 = 0x22 , REG_FIFO_LENGTH_1 = 0x23 , REG_FIFO_DATA = 0x24 ,
  REG_ACC_CONF = 0x40 , REG_ACC_RANGE = 0x41 , REG_GYR_CONF = 0x42 , REG_GYR_RANGE = 0x43 ,
  REG_MAG_CONF = 0x44 , REG_FIFO_DOWNS = 0x45 , REG_FIFO_CONFIG_0 = 0x46 , REG_FIFO_CONFIG_1 = 0x47 ,
  REG_MAG_IF_0 = 0x4C , REG_MAG_IF_1 = 0x4D , REG_MAG_IF_2 = 0x4E , REG_MAG_IF_3 = 0x4F ,
  REG_INT_EN_0 = 0x50 , REG_INT_EN_1 = 0x51 , REG_INT_EN_2 = 0x52 , REG_INT_OUT_CTRL = 0x53 ,
  REG_INT_LATCH = 0x54 , REG_INT_MAP_0 = 0x55 , REG_INT_MAP_1 = 0x56 , REG_INT_MAP_2 = 0x57 ,
  REG_FOC_CONF = 0x69 , REG_CONF = 0x6A , REG_IF_CONF = 0x6B , REG_SELF_TEST = 0x6D ,
  REG_CMD = 0x7E , REG_COMM_TEST = 0x7F
}
 Internal register definitions. More...
 
enum  MagnetometerRegisters {
  MAG_REG_DATA = 0x42 , MAG_REG_RESET = 0x4B , MAG_REG_CONTROL = 0x4C , MAG_REG_REPXY = 0x51 ,
  MAG_REG_REPZ = 0x52 , MAG_REG_DIG_X1 = 0x5D , MAG_REG_DIG_Y1 = 0x5E , MAG_REG_DIG_Z4_0 = 0x62 ,
  MAG_REG_DIG_Z4_1 = 0x63 , MAG_REG_DIG_X2 = 0x64 , MAG_REG_DIG_Y2 = 0x65 , MAG_REG_DIG_Z2_0 = 0x68 ,
  MAG_REG_DIG_Z2_1 = 0x69 , MAG_REG_DIG_Z1_0 = 0x6A , MAG_REG_DIG_Z1_1 = 0x6B , MAG_REG_DIG_XYZ1_0 = 0x6C ,
  MAG_REG_DIG_XYZ1_1 = 0x6D , MAG_REG_DIG_Z3_0 = 0x6E , MAG_REG_DIG_Z3_1 = 0x6F , MAG_REG_DIG_XY2 = 0x70 ,
  MAG_REG_DIG_XY1 = 0x71
}
 Internal magnetometer definitions. More...
 

Variables

const uint16_t FIFO_SIZE = 200
 Driver's fifo size expressed as number of samples.
 
const float TEMP_SENSIBILITY = 64.0f / 32768.0f
 Temperature sensor sensibility.
 
const float MAG_SENSIBILITY = 0.003
 Magnetometer fixed sensibility.
 
const uint8_t CHIPID = 0xD8
 BMX160 Chip Id.
 
const uint8_t FIFO_CONFIG_1_DEFAULT = 0x10
 Default value for FIFO_CONFIG_1.
 
const uint8_t PMU_STATUS_ALL_MASK = 0x03 | 0x0C | 0x30
 Mask for PMU_STATUS register (Power Mode Unit).
 
const uint8_t PMU_STATUS_ALL_NORMAL = 0x01 | 0x04 | 0x10
 Mask for PMU_STATUS register, normal status for all sensors.
 
const uint8_t FIFO_STOP_BYTE = 128
 This value indicates that the data in the FIFO stops prematurely.
 
const uint8_t FIFO_HEADER_MODE_MASK = 0xC0
 Mask for fifo header mode.
 
const uint8_t FIFO_HEADER_PARM_MASK = 0x3C
 Mask for fifo header parm.
 
const uint8_t FIFO_HEADER_EXT_MASK = 0x03
 Mask for fifo header ext.
 

Detailed Description

Various BMX160 register/enums definitions.

Enumeration Type Documentation

◆ Cmd

enum class Boardcore::BMX160Defs::Cmd
strong

BMX160 Commands.

Enumerator
START_FOC 

Starts Fast Offset Calibration for acc and gyro.

ACC_SET_PMU_MODE 

Sets the PMU mode for the accelerometer.

GYR_SET_PMU_MODE 

Sets the PMU mode for the gyroscope.

MAG_IF_SET_PMU_MODE 

Sets the PMU mode for the magnetometer.

PROG_NVM 

Writes the NVM backed registers into NVM.

FIFO_FLUSH 

Clears all data in the fifo.

INT_RESET 

Resets interrupt engine, INT_STATUS reg and int pin.

SOFTRESET 

Triggers a reset including a reboot.

STEP_CNT_CLR 

Triggers a reset of the step counter.

Definition at line 247 of file BMX160Defs.h.

◆ FIFO_CONFIG_1

Values for FIFO_CONFIG_1 register.

Enumerator
FIFO_CONFIG_1_ACC_EN 

Store accelerometer data in fifo.

FIFO_CONFIG_1_GYR_EN 

Store gyroscope data in fifo.

FIFO_CONFIG_1_MAG_EN 

Store magnetometer data in fifo.

FIFO_CONFIG_1_HEADER_EN 

Stores an header for each frame.

Definition at line 75 of file BMX160Defs.h.

◆ FIFO_DOWNS

Values for FIFO_DOWNS register.

Enumerator
FIFO_DOWNS_ACC_FILT_DATA 
FIFO_DOWNS_GYR_FILT_DATA 

Definition at line 86 of file BMX160Defs.h.

◆ FIFO_HEADER

Values for fifo header byte.

Enumerator
FIFO_HEADER_MODE_REGULAR 
FIFO_HEADER_MODE_CONTROL 
FIFO_HEADER_PARM_ACC_DATA 
FIFO_HEADER_PARM_GYR_DATA 
FIFO_HEADER_PARM_MAG_DATA 
FIFO_HEADER_PARM_SKIP 
FIFO_HEADER_PARM_SENSORTIME 
FIFO_HEADER_PARM_CONFIG 

Definition at line 168 of file BMX160Defs.h.

◆ INT_EN_1

Values for INT_EN_1 register.

Enumerator
INT_EN_1_FIFO_WATERMARK 

Enables interrupt for FIFO watermark.

INT_EN_1_FIFO_FULL 

Enables interrupt for FIFO full.

Definition at line 117 of file BMX160Defs.h.

◆ INT_MAP_1

Values for INT_MAP_1 register.

Enumerator
INT_MAP_1_INT_1_FIFO_WATERMARK 
INT_MAP_1_INT_1_FIFO_FULL 
INT_MAP_1_INT_2_FIFO_WATERMARK 
INT_MAP_1_INT_2_FIFO_FULL 

Definition at line 106 of file BMX160Defs.h.

◆ INT_OUT_CTRL

Values for INT_OUT_CTRL register.

Enumerator
INT_OUT_CTRL_INT2_OUT_EN 

Output enable for INT2 pin.

INT_OUT_CTRL_INT2_OD 

Open drain enable for INT2 pin.

INT_OUT_CTRL_INT1_OUT_EN 

Output enable for INT1 pin.

INT_OUT_CTRL_INT1_OD 

Open drain enable for INT1 pin.

Definition at line 95 of file BMX160Defs.h.

◆ MAG_CONTROL

Values for mag CONTROL.

Enumerator
MAG_CONTROL_SELF_TEST 
MAG_CONTROL_NORMAL 
MAG_CONTROL_FORCED 
MAG_CONTROL_SLEEP 

Definition at line 193 of file BMX160Defs.h.

◆ MAG_IF_0

Values for MAG_IF_0 register.

Enumerator
MAG_IF_0_MANUAL 
MAG_IF_0_BURST_1 

1 byte of burst operation.

MAG_IF_0_BURST_2 

2 byte of burst operation.

MAG_IF_0_BURST_6 

6 byte of burst operation.

MAG_IF_0_BURST_8 

8 byte of burst operation.

Definition at line 126 of file BMX160Defs.h.

◆ MAG_RESET

Values for mag RESET.

Enumerator
MAG_RESET_POWER_CONTROL 

Definition at line 185 of file BMX160Defs.h.

◆ MagnetometerRegisters

Internal magnetometer definitions.

Enumerator
MAG_REG_DATA 
MAG_REG_RESET 
MAG_REG_CONTROL 
MAG_REG_REPXY 
MAG_REG_REPZ 
MAG_REG_DIG_X1 
MAG_REG_DIG_Y1 
MAG_REG_DIG_Z4_0 
MAG_REG_DIG_Z4_1 
MAG_REG_DIG_X2 
MAG_REG_DIG_Y2 
MAG_REG_DIG_Z2_0 
MAG_REG_DIG_Z2_1 
MAG_REG_DIG_Z1_0 
MAG_REG_DIG_Z1_1 
MAG_REG_DIG_XYZ1_0 
MAG_REG_DIG_XYZ1_1 
MAG_REG_DIG_Z3_0 
MAG_REG_DIG_Z3_1 
MAG_REG_DIG_XY2 
MAG_REG_DIG_XY1 

Definition at line 353 of file BMX160Defs.h.

◆ PowerMode

BMX160 power modes.

Enumerator
SUSPEND 
NORMAL 
LOW_POWER 
FAST_START_UP 

Definition at line 263 of file BMX160Defs.h.

◆ Registers

Internal register definitions.

Enumerator
REG_CHIPID 
REG_ERR 
REG_PMU_STATUS 
REG_DATA 
REG_DATA_MAG 
REG_DATA_GYR 
REG_DATA_ACC 
REG_SENSORTIME_0 
REG_SENSORTIME_1 
REG_SENSORTIME_2 
REG_STATUS 
REG_TEMPERATURE_0 
REG_TEMPERATURE_1 
REG_FIFO_LENGTH_0 
REG_FIFO_LENGTH_1 
REG_FIFO_DATA 
REG_ACC_CONF 
REG_ACC_RANGE 
REG_GYR_CONF 
REG_GYR_RANGE 
REG_MAG_CONF 
REG_FIFO_DOWNS 
REG_FIFO_CONFIG_0 
REG_FIFO_CONFIG_1 
REG_MAG_IF_0 
REG_MAG_IF_1 
REG_MAG_IF_2 
REG_MAG_IF_3 
REG_INT_EN_0 
REG_INT_EN_1 
REG_INT_EN_2 
REG_INT_OUT_CTRL 
REG_INT_LATCH 
REG_INT_MAP_0 
REG_INT_MAP_1 
REG_INT_MAP_2 
REG_FOC_CONF 
REG_CONF 
REG_IF_CONF 
REG_SELF_TEST 
REG_CMD 
REG_COMM_TEST 

Definition at line 274 of file BMX160Defs.h.

◆ SELF_TEST

Values for SELF_TEST register.

Enumerator
SELF_TEST_GYR 

Starts selftest of the gyroscope.

SELF_TEST_ACC_AMP 

Select amplitude of the selftest deflection.

SELF_TEST_ACC_SIGN 

Select sign of selftest exitation.

SELF_TEST_ACC_ENABLE 

Starts selftest of the accelerometer.

Definition at line 64 of file BMX160Defs.h.

Variable Documentation

◆ CHIPID

const uint8_t Boardcore::BMX160Defs::CHIPID = 0xD8

BMX160 Chip Id.

Definition at line 54 of file BMX160Defs.h.

◆ FIFO_CONFIG_1_DEFAULT

const uint8_t Boardcore::BMX160Defs::FIFO_CONFIG_1_DEFAULT = 0x10

Default value for FIFO_CONFIG_1.

Definition at line 59 of file BMX160Defs.h.

◆ FIFO_HEADER_EXT_MASK

const uint8_t Boardcore::BMX160Defs::FIFO_HEADER_EXT_MASK = 0x03

Mask for fifo header ext.

Definition at line 163 of file BMX160Defs.h.

◆ FIFO_HEADER_MODE_MASK

const uint8_t Boardcore::BMX160Defs::FIFO_HEADER_MODE_MASK = 0xC0

Mask for fifo header mode.

Definition at line 153 of file BMX160Defs.h.

◆ FIFO_HEADER_PARM_MASK

const uint8_t Boardcore::BMX160Defs::FIFO_HEADER_PARM_MASK = 0x3C

Mask for fifo header parm.

Definition at line 158 of file BMX160Defs.h.

◆ FIFO_SIZE

const uint16_t Boardcore::BMX160Defs::FIFO_SIZE = 200

Driver's fifo size expressed as number of samples.

Definition at line 39 of file BMX160Defs.h.

◆ FIFO_STOP_BYTE

const uint8_t Boardcore::BMX160Defs::FIFO_STOP_BYTE = 128

This value indicates that the data in the FIFO stops prematurely.

Definition at line 148 of file BMX160Defs.h.

◆ MAG_SENSIBILITY

const float Boardcore::BMX160Defs::MAG_SENSIBILITY = 0.003

Magnetometer fixed sensibility.

Definition at line 49 of file BMX160Defs.h.

◆ PMU_STATUS_ALL_MASK

const uint8_t Boardcore::BMX160Defs::PMU_STATUS_ALL_MASK = 0x03 | 0x0C | 0x30

Mask for PMU_STATUS register (Power Mode Unit).

Definition at line 138 of file BMX160Defs.h.

◆ PMU_STATUS_ALL_NORMAL

const uint8_t Boardcore::BMX160Defs::PMU_STATUS_ALL_NORMAL = 0x01 | 0x04 | 0x10

Mask for PMU_STATUS register, normal status for all sensors.

Definition at line 143 of file BMX160Defs.h.

◆ TEMP_SENSIBILITY

const float Boardcore::BMX160Defs::TEMP_SENSIBILITY = 64.0f / 32768.0f

Temperature sensor sensibility.

Definition at line 44 of file BMX160Defs.h.