mpuimu 2.0.0.0
mpuimu.h File Reference

This file contains API for MPU IMU Click driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"
#include "drv_spi_master.h"

Go to the source code of this file.

Data Structures

struct  mpuimu_s
 Click ctx object definition. More...
 
struct  mpuimu_cfg_t
 Click configuration structure definition. More...
 
struct  mpuimu_accel_data_t
 
struct  mpuimu_gyro_data_t
 Gyro data object definition. More...
 

Macros

#define MPUIMU_MAP_MIKROBUS(cfg, mikrobus)
 
#define MPUIMU_MASTER_I2C   0
 
#define MPUIMU_MASTER_SPI   1
 
#define MPUIMU_RETVAL   uint8_t
 
#define MPUIMU_OK   0x00
 
#define MPUIMU_INIT_ERROR   0xFF
 
#define MPUIMU_I2C_ADDR_0   0xD2
 
#define MPUIMU_I2C_ADDR_1   0x69
 
#define MPUIMU_REG_SELF_TEST_X   0x0D
 
#define MPUIMU_REG_SELF_TEST_Y   0x0E
 
#define MPUIMU_REG_SELF_TEST_Z   0x0F
 
#define MPUIMU_REG_SELF_TEST_A   0x10
 
#define MPUIMU_REG_SMPLRT_DIV   0x19
 
#define MPUIMU_REG_MOT_THR   0x1F
 
#define MPUIMU_REG_I2C_MST_CTRL   0x24
 
#define MPUIMU_REG_I2C_SLV0_ADDR   0x25
 
#define MPUIMU_REG_I2C_SLV0   0x26
 
#define MPUIMU_REG_I2C_SLV0_CTRL   0x27
 
#define MPUIMU_REG_I2C_SLV1_ADDR   0x28
 
#define MPUIMU_REG_I2C_SLV1   0x29
 
#define MPUIMU_REG_I2C_SLV1_CTRL   0x2A
 
#define MPUIMU_REG_I2C_SLV2_ADDR   0x2B
 
#define MPUIMU_REG_I2C_SLV2   0x2C
 
#define MPUIMU_REG_I2C_SLV2_CTRL   0x2D
 
#define MPUIMU_REG_I2C_SLV3_ADDR   0x2E
 
#define MPUIMU_REG_I2C_SLV3   0x2F
 
#define MPUIMU_REG_I2C_SLV3_CTRL   0x30
 
#define MPUIMU_REG_I2C_SLV4_ADDR   0x31
 
#define MPUIMU_REG_I2C_SLV4   0x32
 
#define MPUIMU_REG_I2C_SLV4_DO   0x33
 
#define MPUIMU_REG_I2C_SLV4_CTRL   0x34
 
#define MPUIMU_REG_I2C_SLV4_DI   0x35
 
#define MPUIMU_REG_I2C_MST_STATUS   0x36
 
#define MPUIMU_REG_I2C_SLV0_DO   0x63
 
#define MPUIMU_REG_I2C_SLV1_DO   0x64
 
#define MPUIMU_REG_I2C_SLV2_DO   0x65
 
#define MPUIMU_REG_I2C_SLV3_DO   0x66
 
#define MPUIMU_REG_I2C_MST_DELAY_CT   0x67
 
#define MPUIMU_REG_INT_PIN_CFG   0x37
 
#define MPUIMU_REG_INT_ENABLE   0x38
 
#define MPUIMU_REG_INT_STATUS   0x3A
 
#define MPUIMU_REG_SIGNAL_PATH_RES   0x68
 
#define MPUIMU_REG_MOT_DETECT_CTRL   0x69
 
#define MPUIMU_REG_USER_CTRL   0x6A
 
#define MPUIMU_REG_PWR_MGMT_1   0x6B
 
#define MPUIMU_REG_PWR_MGMT_2   0x6C
 
#define MPUIMU_REG_FIFO_EN   0x23
 
#define MPUIMU_REG_FIFO_COUNTH   0x72
 
#define MPUIMU_REG_FIFO_COUNTL   0x73
 
#define MPUIMU_REG_FIFO_R_W   0x74
 
#define MPUIMU_REG_WHO_AM_I   0x75
 
#define MPUIMU_CFG_CONFIG   0x1A
 
#define MPUIMU_CFG_RAW_ACCEL   0x3B
 
#define MPUIMU_CFG_RAW_GYRO   0x43
 
#define MPUIMU_CFG_STANDARD_GYRO   0x1B
 
#define MPUIMU_CFG_STANDARD_ACCEL   0x1C
 
#define MPUIMU_CFG_PWR   0x80
 
#define MPUIMU_CFG_PWR_SET   0x00
 
#define MPUIMU_CFG_FIFO_ENABLE   0x78
 
#define MPUIMU_CFG_INT_ENABLE   0x10
 
#define MPUIMU_EXT_SENS_DATA_00   0x49
 
#define MPUIMU_EXT_SENS_DATA_01   0x4A
 
#define MPUIMU_EXT_SENS_DATA_02   0x4B
 
#define MPUIMU_EXT_SENS_DATA_03   0x4C
 
#define MPUIMU_EXT_SENS_DATA_04   0x4D
 
#define MPUIMU_EXT_SENS_DATA_05   0x4E
 
#define MPUIMU_EXT_SENS_DATA_06   0x4F
 
#define MPUIMU_EXT_SENS_DATA_07   0x50
 
#define MPUIMU_EXT_SENS_DATA_08   0x51
 
#define MPUIMU_EXT_SENS_DATA_11   0x54
 
#define MPUIMU_EXT_SENS_DATA_09   0x52
 
#define MPUIMU_EXT_SENS_DATA_10   0x53
 
#define MPUIMU_EXT_SENS_DATA_12   0x55
 
#define MPUIMU_EXT_SENS_DATA_13   0x56
 
#define MPUIMU_EXT_SENS_DATA_14   0x57
 
#define MPUIMU_EXT_SENS_DATA_15   0x58
 
#define MPUIMU_EXT_SENS_DATA_16   0x59
 
#define MPUIMU_EXT_SENS_DATA_17   0x5A
 
#define MPUIMU_EXT_SENS_DATA_18   0x5B
 
#define MPUIMU_EXT_SENS_DATA_19   0x5C
 
#define MPUIMU_EXT_SENS_DATA_20   0x5D
 
#define MPUIMU_EXT_SENS_DATA_21   0x5E
 
#define MPUIMU_EXT_SENS_DATA_22   0x5F
 
#define MPUIMU_EXT_SENS_DATA_23   0x60
 
#define MPUIMU_GYRO_XOUT_H   0x43
 
#define MPUIMU_GYRO_XOUT_L   0x44
 
#define MPUIMU_GYRO_YOUT_H   0x45
 
#define MPUIMU_GYRO_YOUT_L   0x46
 
#define MPUIMU_GYRO_ZOUT_H   0x47
 
#define MPUIMU_GYRO_ZOUT_L   0x48
 
#define MPUIMU_ACCEL_XOUT_H   0x3B
 
#define MPUIMU_ACCEL_XOUT_L   0x3C
 
#define MPUIMU_ACCEL_YOUT_H   0x3D
 
#define MPUIMU_ACCEL_YOUT_L   0x3E
 
#define MPUIMU_ACCEL_ZOUT_H   0x3F
 
#define MPUIMU_ACCEL_ZOUT_L   0x40
 
#define MPUIMU_TEMP_OUT_H   0x41
 
#define MPUIMU_TEMP_OUT_L   0x42
 

Typedefs

typedef uint8_t mpuimu_select_t
 Communication type.
 
typedef void(* mpuimu_master_io_t) (struct mpuimu_s *, uint8_t, uint8_t *, uint8_t)
 Master Input/Output type.
 
typedef struct mpuimu_s mpuimu_t
 Click ctx object definition.
 

Functions

void mpuimu_cfg_setup (mpuimu_cfg_t *cfg)
 Config Object Initialization function.
 
MPUIMU_RETVAL mpuimu_init (mpuimu_t *ctx, mpuimu_cfg_t *cfg)
 Initialization function.
 
void mpuimu_default_cfg (mpuimu_t *ctx)
 Click Default Configuration function.
 
void mpuimu_generic_write (mpuimu_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic write function.
 
void mpuimu_generic_read (mpuimu_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
 Generic read function.
 
int16_t mpuimu_get_axis (mpuimu_t *ctx, uint8_t adr_reg_high)
 High register data function.
 
void mpuimu_read_accel (mpuimu_t *ctx, mpuimu_accel_data_t *accel_data)
 Read Axis function.
 
void mpuimu_read_gyro (mpuimu_t *ctx, mpuimu_gyro_data_t *gyro_data)
 Read Axis function.
 
float mpuimu_read_temperature (mpuimu_t *ctx)
 Temperature read function.
 
void software_reset (mpuimu_t *ctx)
 Software reset function.
 

Detailed Description

This file contains API for MPU IMU Click driver.