M5Unified
m5::BMI270_Class Class Reference

#include <BMI270_Class.hpp>

Inheritance diagram for m5::BMI270_Class:
Collaboration diagram for m5::BMI270_Class:

Public Member Functions

virtual ~BMI270_Class ()
 
 BMI270_Class (std::uint8_t i2c_addr=DEFAULT_ADDRESS, std::uint32_t freq=400000, I2C_Class *i2c=&In_I2C)
 
imu_spec_t begin (I2C_Class *i2c=nullptr) override
 
imu_spec_t getImuRawData (imu_raw_data_t *data) const override
 
void getConvertParam (imu_convert_param_t *param) const override
 
bool getTempAdc (int16_t *adc) const override
 
std::uint8_t WhoAmI (void)
 
- Public Member Functions inherited from m5::IMU_Base
virtual ~IMU_Base ()
 
 IMU_Base (std::uint8_t i2c_addr, std::uint32_t freq=400000, I2C_Class *i2c=&In_I2C)
 
virtual bool setINTPinActiveLogic (bool level)
 
- Public Member Functions inherited from m5::I2C_Device
 I2C_Device (std::uint8_t i2c_addr, std::uint32_t freq, I2C_Class *i2c=&In_I2C)
 
void setPort (I2C_Class *i2c)
 
bool writeRegister8 (std::uint8_t reg, std::uint8_t data) const
 
std::uint8_t readRegister8 (std::uint8_t reg) const
 
bool writeRegister8Array (const std::uint8_t *reg_data_array, std::size_t length) const
 
bool writeRegister (std::uint8_t reg, const std::uint8_t *data, std::size_t length) const
 
bool readRegister (std::uint8_t reg, std::uint8_t *result, std::size_t length) const
 
bool bitOn (std::uint8_t reg, std::uint8_t bit) const
 
bool bitOff (std::uint8_t reg, std::uint8_t bit) const
 
bool isEnabled (void) const
 

Static Public Attributes

static constexpr const std::uint8_t CHIP_ID_ADDR = 0x00
 
static constexpr const std::uint8_t ERR_REG_ADDR = 0x02
 
static constexpr const std::uint8_t STATUS_ADDR = 0x03
 
static constexpr const std::uint8_t AUX_X_LSB_ADDR = 0x04
 
static constexpr const std::uint8_t ACC_X_LSB_ADDR = 0x0C
 
static constexpr const std::uint8_t GYR_X_LSB_ADDR = 0x12
 
static constexpr const std::uint8_t SENSORTIME_ADDR = 0x18
 
static constexpr const std::uint8_t EVENT_ADDR = 0x1B
 
static constexpr const std::uint8_t INT_STATUS_0_ADDR = 0x1C
 
static constexpr const std::uint8_t INT_STATUS_1_ADDR = 0x1D
 
static constexpr const std::uint8_t SC_OUT_0_ADDR = 0x1E
 
static constexpr const std::uint8_t SYNC_COMMAND_ADDR = 0x1E
 
static constexpr const std::uint8_t GYR_CAS_GPIO0_ADDR = 0x1E
 
static constexpr const std::uint8_t INTERNAL_STATUS_ADDR = 0x21
 
static constexpr const std::uint8_t TEMPERATURE_0_ADDR = 0x22
 
static constexpr const std::uint8_t FIFO_LENGTH_0_ADDR = 0x24
 
static constexpr const std::uint8_t FIFO_DATA_ADDR = 0x26
 
static constexpr const std::uint8_t FEAT_PAGE_ADDR = 0x2F
 
static constexpr const std::uint8_t FEATURES_REG_ADDR = 0x30
 
static constexpr const std::uint8_t ACC_CONF_ADDR = 0x40
 
static constexpr const std::uint8_t GYR_CONF_ADDR = 0x42
 
static constexpr const std::uint8_t AUX_CONF_ADDR = 0x44
 
static constexpr const std::uint8_t FIFO_DOWNS_ADDR = 0x45
 
static constexpr const std::uint8_t FIFO_WTM_0_ADDR = 0x46
 
static constexpr const std::uint8_t FIFO_WTM_1_ADDR = 0x47
 
static constexpr const std::uint8_t FIFO_CONFIG_0_ADDR = 0x48
 
static constexpr const std::uint8_t FIFO_CONFIG_1_ADDR = 0x49
 
static constexpr const std::uint8_t AUX_DEV_ID_ADDR = 0x4B
 
static constexpr const std::uint8_t AUX_IF_CONF_ADDR = 0x4C
 
static constexpr const std::uint8_t AUX_RD_ADDR = 0x4D
 
static constexpr const std::uint8_t AUX_WR_ADDR = 0x4E
 
static constexpr const std::uint8_t AUX_WR_DATA_ADDR = 0x4F
 
static constexpr const std::uint8_t INT1_IO_CTRL_ADDR = 0x53
 
static constexpr const std::uint8_t INT2_IO_CTRL_ADDR = 0x54
 
static constexpr const std::uint8_t INT_LATCH_ADDR = 0x55
 
static constexpr const std::uint8_t INT1_MAP_FEAT_ADDR = 0x56
 
static constexpr const std::uint8_t INT2_MAP_FEAT_ADDR = 0x57
 
static constexpr const std::uint8_t INT_MAP_DATA_ADDR = 0x58
 
static constexpr const std::uint8_t INIT_CTRL_ADDR = 0x59
 
static constexpr const std::uint8_t INIT_ADDR_0 = 0x5B
 
static constexpr const std::uint8_t INIT_ADDR_1 = 0x5C
 
static constexpr const std::uint8_t INIT_DATA_ADDR = 0x5E
 
static constexpr const std::uint8_t AUX_IF_TRIM = 0x68
 
static constexpr const std::uint8_t GYR_CRT_CONF_ADDR = 0x69
 
static constexpr const std::uint8_t NVM_CONF_ADDR = 0x6A
 
static constexpr const std::uint8_t IF_CONF_ADDR = 0x6B
 
static constexpr const std::uint8_t ACC_SELF_TEST_ADDR = 0x6D
 
static constexpr const std::uint8_t GYR_SELF_TEST_AXES_ADDR = 0x6E
 
static constexpr const std::uint8_t SELF_TEST_MEMS_ADDR = 0x6F
 
static constexpr const std::uint8_t NV_CONF_ADDR = 0x70
 
static constexpr const std::uint8_t ACC_OFF_COMP_0_ADDR = 0x71
 
static constexpr const std::uint8_t GYR_OFF_COMP_3_ADDR = 0x74
 
static constexpr const std::uint8_t GYR_OFF_COMP_6_ADDR = 0x77
 
static constexpr const std::uint8_t GYR_USR_GAIN_0_ADDR = 0x78
 
static constexpr const std::uint8_t PWR_CONF_ADDR = 0x7C
 
static constexpr const std::uint8_t PWR_CTRL_ADDR = 0x7D
 
static constexpr const std::uint8_t CMD_REG_ADDR = 0x7E
 
static constexpr const std::uint8_t G_TRIGGER_CMD = 0x02
 
static constexpr const std::uint8_t USR_GAIN_CMD = 0x03
 
static constexpr const std::uint8_t NVM_PROG_CMD = 0xA0
 
static constexpr const std::uint8_t SOFT_RESET_CMD = 0xB6
 
static constexpr const std::uint8_t FIFO_FLUSH_CMD = 0xB0
 
static constexpr std::uint8_t DEFAULT_ADDRESS = 0x69
 

Protected Member Functions

bool _upload_file (const std::uint8_t *config_data, std::size_t index, std::size_t write_len)
 
bool auxSetupMode (std::uint8_t i2c_addr)
 
bool auxWriteRegister8 (std::uint8_t reg, std::uint8_t data)
 
std::uint8_t auxReadRegister8 (std::uint8_t reg)
 

Additional Inherited Members

- Public Types inherited from m5::IMU_Base
enum  imu_spec_t { imu_spec_none = 0 , imu_spec_accel = 0b0001 , imu_spec_gyro = 0b0010 , imu_spec_mag = 0b0100 }
 
- Protected Attributes inherited from m5::I2C_Device
I2C_Class_i2c
 
std::uint32_t _freq
 
std::uint8_t _addr
 
bool _init
 

Detailed Description

Definition at line 11 of file BMI270_Class.hpp.

Constructor & Destructor Documentation

◆ ~BMI270_Class()

virtual m5::BMI270_Class::~BMI270_Class ( )
virtual

◆ BMI270_Class()

m5::BMI270_Class::BMI270_Class ( std::uint8_t  i2c_addr = DEFAULT_ADDRESS,
std::uint32_t  freq = 400000,
I2C_Class i2c = &In_I2C 
)

Member Function Documentation

◆ _upload_file()

bool m5::BMI270_Class::_upload_file ( const std::uint8_t *  config_data,
std::size_t  index,
std::size_t  write_len 
)
protected

◆ auxReadRegister8()

std::uint8_t m5::BMI270_Class::auxReadRegister8 ( std::uint8_t  reg)
protected

◆ auxSetupMode()

bool m5::BMI270_Class::auxSetupMode ( std::uint8_t  i2c_addr)
protected

◆ auxWriteRegister8()

bool m5::BMI270_Class::auxWriteRegister8 ( std::uint8_t  reg,
std::uint8_t  data 
)
protected

◆ begin()

imu_spec_t m5::BMI270_Class::begin ( I2C_Class i2c = nullptr)
overridevirtual

Implements m5::IMU_Base.

◆ getConvertParam()

void m5::BMI270_Class::getConvertParam ( imu_convert_param_t param) const
overridevirtual

Implements m5::IMU_Base.

◆ getImuRawData()

imu_spec_t m5::BMI270_Class::getImuRawData ( imu_raw_data_t data) const
overridevirtual

Implements m5::IMU_Base.

◆ getTempAdc()

bool m5::BMI270_Class::getTempAdc ( int16_t *  adc) const
overridevirtual

Reimplemented from m5::IMU_Base.

◆ WhoAmI()

std::uint8_t m5::BMI270_Class::WhoAmI ( void  )

Member Data Documentation

◆ ACC_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::ACC_CONF_ADDR = 0x40
staticconstexpr

Definition at line 33 of file BMI270_Class.hpp.

◆ ACC_OFF_COMP_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::ACC_OFF_COMP_0_ADDR = 0x71
staticconstexpr

Definition at line 64 of file BMI270_Class.hpp.

◆ ACC_SELF_TEST_ADDR

constexpr const std::uint8_t m5::BMI270_Class::ACC_SELF_TEST_ADDR = 0x6D
staticconstexpr

Definition at line 60 of file BMI270_Class.hpp.

◆ ACC_X_LSB_ADDR

constexpr const std::uint8_t m5::BMI270_Class::ACC_X_LSB_ADDR = 0x0C
staticconstexpr

Definition at line 18 of file BMI270_Class.hpp.

◆ AUX_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_CONF_ADDR = 0x44
staticconstexpr

Definition at line 35 of file BMI270_Class.hpp.

◆ AUX_DEV_ID_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_DEV_ID_ADDR = 0x4B
staticconstexpr

Definition at line 41 of file BMI270_Class.hpp.

◆ AUX_IF_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_IF_CONF_ADDR = 0x4C
staticconstexpr

Definition at line 42 of file BMI270_Class.hpp.

◆ AUX_IF_TRIM

constexpr const std::uint8_t m5::BMI270_Class::AUX_IF_TRIM = 0x68
staticconstexpr

Definition at line 56 of file BMI270_Class.hpp.

◆ AUX_RD_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_RD_ADDR = 0x4D
staticconstexpr

Definition at line 43 of file BMI270_Class.hpp.

◆ AUX_WR_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_WR_ADDR = 0x4E
staticconstexpr

Definition at line 44 of file BMI270_Class.hpp.

◆ AUX_WR_DATA_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_WR_DATA_ADDR = 0x4F
staticconstexpr

Definition at line 45 of file BMI270_Class.hpp.

◆ AUX_X_LSB_ADDR

constexpr const std::uint8_t m5::BMI270_Class::AUX_X_LSB_ADDR = 0x04
staticconstexpr

Definition at line 17 of file BMI270_Class.hpp.

◆ CHIP_ID_ADDR

constexpr const std::uint8_t m5::BMI270_Class::CHIP_ID_ADDR = 0x00
staticconstexpr

Definition at line 14 of file BMI270_Class.hpp.

◆ CMD_REG_ADDR

constexpr const std::uint8_t m5::BMI270_Class::CMD_REG_ADDR = 0x7E
staticconstexpr

Definition at line 70 of file BMI270_Class.hpp.

◆ DEFAULT_ADDRESS

constexpr std::uint8_t m5::BMI270_Class::DEFAULT_ADDRESS = 0x69
staticconstexpr

Definition at line 80 of file BMI270_Class.hpp.

◆ ERR_REG_ADDR

constexpr const std::uint8_t m5::BMI270_Class::ERR_REG_ADDR = 0x02
staticconstexpr

Definition at line 15 of file BMI270_Class.hpp.

◆ EVENT_ADDR

constexpr const std::uint8_t m5::BMI270_Class::EVENT_ADDR = 0x1B
staticconstexpr

Definition at line 21 of file BMI270_Class.hpp.

◆ FEAT_PAGE_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FEAT_PAGE_ADDR = 0x2F
staticconstexpr

Definition at line 31 of file BMI270_Class.hpp.

◆ FEATURES_REG_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FEATURES_REG_ADDR = 0x30
staticconstexpr

Definition at line 32 of file BMI270_Class.hpp.

◆ FIFO_CONFIG_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_CONFIG_0_ADDR = 0x48
staticconstexpr

Definition at line 39 of file BMI270_Class.hpp.

◆ FIFO_CONFIG_1_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_CONFIG_1_ADDR = 0x49
staticconstexpr

Definition at line 40 of file BMI270_Class.hpp.

◆ FIFO_DATA_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_DATA_ADDR = 0x26
staticconstexpr

Definition at line 30 of file BMI270_Class.hpp.

◆ FIFO_DOWNS_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_DOWNS_ADDR = 0x45
staticconstexpr

Definition at line 36 of file BMI270_Class.hpp.

◆ FIFO_FLUSH_CMD

constexpr const std::uint8_t m5::BMI270_Class::FIFO_FLUSH_CMD = 0xB0
staticconstexpr

Definition at line 77 of file BMI270_Class.hpp.

◆ FIFO_LENGTH_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_LENGTH_0_ADDR = 0x24
staticconstexpr

Definition at line 29 of file BMI270_Class.hpp.

◆ FIFO_WTM_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_WTM_0_ADDR = 0x46
staticconstexpr

Definition at line 37 of file BMI270_Class.hpp.

◆ FIFO_WTM_1_ADDR

constexpr const std::uint8_t m5::BMI270_Class::FIFO_WTM_1_ADDR = 0x47
staticconstexpr

Definition at line 38 of file BMI270_Class.hpp.

◆ G_TRIGGER_CMD

constexpr const std::uint8_t m5::BMI270_Class::G_TRIGGER_CMD = 0x02
staticconstexpr

Definition at line 73 of file BMI270_Class.hpp.

◆ GYR_CAS_GPIO0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_CAS_GPIO0_ADDR = 0x1E
staticconstexpr

Definition at line 26 of file BMI270_Class.hpp.

◆ GYR_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_CONF_ADDR = 0x42
staticconstexpr

Definition at line 34 of file BMI270_Class.hpp.

◆ GYR_CRT_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_CRT_CONF_ADDR = 0x69
staticconstexpr

Definition at line 57 of file BMI270_Class.hpp.

◆ GYR_OFF_COMP_3_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_OFF_COMP_3_ADDR = 0x74
staticconstexpr

Definition at line 65 of file BMI270_Class.hpp.

◆ GYR_OFF_COMP_6_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_OFF_COMP_6_ADDR = 0x77
staticconstexpr

Definition at line 66 of file BMI270_Class.hpp.

◆ GYR_SELF_TEST_AXES_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_SELF_TEST_AXES_ADDR = 0x6E
staticconstexpr

Definition at line 61 of file BMI270_Class.hpp.

◆ GYR_USR_GAIN_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_USR_GAIN_0_ADDR = 0x78
staticconstexpr

Definition at line 67 of file BMI270_Class.hpp.

◆ GYR_X_LSB_ADDR

constexpr const std::uint8_t m5::BMI270_Class::GYR_X_LSB_ADDR = 0x12
staticconstexpr

Definition at line 19 of file BMI270_Class.hpp.

◆ IF_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::IF_CONF_ADDR = 0x6B
staticconstexpr

Definition at line 59 of file BMI270_Class.hpp.

◆ INIT_ADDR_0

constexpr const std::uint8_t m5::BMI270_Class::INIT_ADDR_0 = 0x5B
staticconstexpr

Definition at line 53 of file BMI270_Class.hpp.

◆ INIT_ADDR_1

constexpr const std::uint8_t m5::BMI270_Class::INIT_ADDR_1 = 0x5C
staticconstexpr

Definition at line 54 of file BMI270_Class.hpp.

◆ INIT_CTRL_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INIT_CTRL_ADDR = 0x59
staticconstexpr

Definition at line 52 of file BMI270_Class.hpp.

◆ INIT_DATA_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INIT_DATA_ADDR = 0x5E
staticconstexpr

Definition at line 55 of file BMI270_Class.hpp.

◆ INT1_IO_CTRL_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT1_IO_CTRL_ADDR = 0x53
staticconstexpr

Definition at line 46 of file BMI270_Class.hpp.

◆ INT1_MAP_FEAT_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT1_MAP_FEAT_ADDR = 0x56
staticconstexpr

Definition at line 49 of file BMI270_Class.hpp.

◆ INT2_IO_CTRL_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT2_IO_CTRL_ADDR = 0x54
staticconstexpr

Definition at line 47 of file BMI270_Class.hpp.

◆ INT2_MAP_FEAT_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT2_MAP_FEAT_ADDR = 0x57
staticconstexpr

Definition at line 50 of file BMI270_Class.hpp.

◆ INT_LATCH_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT_LATCH_ADDR = 0x55
staticconstexpr

Definition at line 48 of file BMI270_Class.hpp.

◆ INT_MAP_DATA_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT_MAP_DATA_ADDR = 0x58
staticconstexpr

Definition at line 51 of file BMI270_Class.hpp.

◆ INT_STATUS_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT_STATUS_0_ADDR = 0x1C
staticconstexpr

Definition at line 22 of file BMI270_Class.hpp.

◆ INT_STATUS_1_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INT_STATUS_1_ADDR = 0x1D
staticconstexpr

Definition at line 23 of file BMI270_Class.hpp.

◆ INTERNAL_STATUS_ADDR

constexpr const std::uint8_t m5::BMI270_Class::INTERNAL_STATUS_ADDR = 0x21
staticconstexpr

Definition at line 27 of file BMI270_Class.hpp.

◆ NV_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::NV_CONF_ADDR = 0x70
staticconstexpr

Definition at line 63 of file BMI270_Class.hpp.

◆ NVM_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::NVM_CONF_ADDR = 0x6A
staticconstexpr

Definition at line 58 of file BMI270_Class.hpp.

◆ NVM_PROG_CMD

constexpr const std::uint8_t m5::BMI270_Class::NVM_PROG_CMD = 0xA0
staticconstexpr

Definition at line 75 of file BMI270_Class.hpp.

◆ PWR_CONF_ADDR

constexpr const std::uint8_t m5::BMI270_Class::PWR_CONF_ADDR = 0x7C
staticconstexpr

Definition at line 68 of file BMI270_Class.hpp.

◆ PWR_CTRL_ADDR

constexpr const std::uint8_t m5::BMI270_Class::PWR_CTRL_ADDR = 0x7D
staticconstexpr

Definition at line 69 of file BMI270_Class.hpp.

◆ SC_OUT_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::SC_OUT_0_ADDR = 0x1E
staticconstexpr

Definition at line 24 of file BMI270_Class.hpp.

◆ SELF_TEST_MEMS_ADDR

constexpr const std::uint8_t m5::BMI270_Class::SELF_TEST_MEMS_ADDR = 0x6F
staticconstexpr

Definition at line 62 of file BMI270_Class.hpp.

◆ SENSORTIME_ADDR

constexpr const std::uint8_t m5::BMI270_Class::SENSORTIME_ADDR = 0x18
staticconstexpr

Definition at line 20 of file BMI270_Class.hpp.

◆ SOFT_RESET_CMD

constexpr const std::uint8_t m5::BMI270_Class::SOFT_RESET_CMD = 0xB6
staticconstexpr

Definition at line 76 of file BMI270_Class.hpp.

◆ STATUS_ADDR

constexpr const std::uint8_t m5::BMI270_Class::STATUS_ADDR = 0x03
staticconstexpr

Definition at line 16 of file BMI270_Class.hpp.

◆ SYNC_COMMAND_ADDR

constexpr const std::uint8_t m5::BMI270_Class::SYNC_COMMAND_ADDR = 0x1E
staticconstexpr

Definition at line 25 of file BMI270_Class.hpp.

◆ TEMPERATURE_0_ADDR

constexpr const std::uint8_t m5::BMI270_Class::TEMPERATURE_0_ADDR = 0x22
staticconstexpr

Definition at line 28 of file BMI270_Class.hpp.

◆ USR_GAIN_CMD

constexpr const std::uint8_t m5::BMI270_Class::USR_GAIN_CMD = 0x03
staticconstexpr

Definition at line 74 of file BMI270_Class.hpp.


The documentation for this class was generated from the following file: