c6dofimu21 2.1.0.0
Data Structures | Macros | Typedefs | Enumerations | Functions
c6dofimu21.h File Reference

This file contains API for 6DOF IMU 21 Click Driver. More...

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

Go to the source code of this file.

Data Structures

struct  c6dofimu21_s
 6DOF IMU 21 Click context object. More...
 
struct  c6dofimu21_cfg_t
 6DOF IMU 21 Click configuration object. More...
 
struct  c6dofimu21_data_t
 6DOF IMU 21 data object. More...
 

Macros

#define C6DOFIMU21_REG_FIFO_CTRL1   0x06
 6DOF IMU 21 description register. More...
 
#define C6DOFIMU21_REG_FIFO_CTRL2   0x07
 
#define C6DOFIMU21_REG_FIFO_CTRL3   0x08
 
#define C6DOFIMU21_REG_FIFO_CTRL4   0x09
 
#define C6DOFIMU21_REG_FIFO_CTRL5   0x0A
 
#define C6DOFIMU21_REG_DRDY_PULSE_CFG   0x0B
 
#define C6DOFIMU21_REG_INT0_CTRL   0x0D
 
#define C6DOFIMU21_REG_INT1_CTRL   0x0E
 
#define C6DOFIMU21_REG_DEVICE_ID   0x0F
 
#define C6DOFIMU21_REG_CTRL1_XL   0x10
 
#define C6DOFIMU21_REG_CTRL2_G   0x11
 
#define C6DOFIMU21_REG_CTRL3_C   0x12
 
#define C6DOFIMU21_REG_CTRL4_C   0x13
 
#define C6DOFIMU21_REG_CTRL5_C   0x14
 
#define C6DOFIMU21_REG_CTRL6_C   0x15
 
#define C6DOFIMU21_REG_CTRL7_G   0x16
 
#define C6DOFIMU21_REG_CTRL8_XL   0x17
 
#define C6DOFIMU21_REG_CTRL9_XL   0x18
 
#define C6DOFIMU21_REG_CTRL10_C   0x19
 
#define C6DOFIMU21_REG_MASTER_CFG   0x1A
 
#define C6DOFIMU21_REG_WAKE_UP_SRC   0x1B
 
#define C6DOFIMU21_REG_TAP_SRC   0x1C
 
#define C6DOFIMU21_REG_D6D_SRC   0x1D
 
#define C6DOFIMU21_REG_STATUS   0x1E
 
#define C6DOFIMU21_REG_T_OUT_L   0x20
 
#define C6DOFIMU21_REG_T_OUT_H   0x21
 
#define C6DOFIMU21_REG_G_X_OUT_L   0x22
 
#define C6DOFIMU21_REG_G_X_OUT_H   0x23
 
#define C6DOFIMU21_REG_G_Y_OUT_L   0x24
 
#define C6DOFIMU21_REG_G_Y_OUT_H   0x25
 
#define C6DOFIMU21_REG_G_Z_OUT_L   0x26
 
#define C6DOFIMU21_REG_G_Z_OUT_H   0x27
 
#define C6DOFIMU21_REG_XL_X_OUT_L   0x28
 
#define C6DOFIMU21_REG_XL_X_OUT_H   0x29
 
#define C6DOFIMU21_REG_XL_Y_OUT_L   0x2A
 
#define C6DOFIMU21_REG_XL_Y_OUT_H   0x2B
 
#define C6DOFIMU21_REG_XL_Z_OUT_L   0x2C
 
#define C6DOFIMU21_REG_XL_Z_OUT_H   0x2D
 
#define C6DOFIMU21_REG_FIFO_STATUS1   0x3A
 
#define C6DOFIMU21_REG_FIFO_STATUS2   0x3B
 
#define C6DOFIMU21_REG_FIFO_STATUS3   0x3C
 
#define C6DOFIMU21_REG_FIFO_STATUS4   0x3D
 
#define C6DOFIMU21_REG_FIFO_DATA_OUT_L   0x3E
 
#define C6DOFIMU21_REG_FIFO_DATA_OUT_H   0x3F
 
#define C6DOFIMU21_REG_FUNC_SRC1   0x53
 
#define C6DOFIMU21_REG_TAP_CFG   0x58
 
#define C6DOFIMU21_REG_TAP_THS_6D   0x59
 
#define C6DOFIMU21_REG_INT_DUR2   0x5A
 
#define C6DOFIMU21_REG_WAKE_UP_THS   0x5B
 
#define C6DOFIMU21_REG_WAKE_UP_DUR   0x5C
 
#define C6DOFIMU21_REG_FREE_FALL   0x5D
 
#define C6DOFIMU21_REG_MD1_CFG   0x5E
 
#define C6DOFIMU21_REG_MD2_CFG   0x5F
 
#define C6DOFIMU21_REG_X_OFS_USR   0x73
 
#define C6DOFIMU21_REG_Y_OFS_USR   0x74
 
#define C6DOFIMU21_REG_Z_OFS_USR   0x75
 
#define C6DOFIMU21_FULL_SCALE_MASK   0x0C
 6DOF IMU 21 description setting. More...
 
#define C6DOFIMU21_ACCLE_FS_2G   0x00
 
#define C6DOFIMU21_ACCLE_FS_16G   0x04
 
#define C6DOFIMU21_ACCLE_FS_4G   0x08
 
#define C6DOFIMU21_ACCLE_FS_8G   0x0C
 
#define C6DOFIMU21_GYRO_FS_250DPS   0x00
 
#define C6DOFIMU21_GYRO_FS_500DPS   0x04
 
#define C6DOFIMU21_GYRO_FS_1000DPS   0x08
 
#define C6DOFIMU21_GYRO_FS_2000DPS   0x0C
 
#define C6DOFIMU21_ODR_XL_POWER_DOWN   0x00
 6DOF IMU 21 accel ODR setting. More...
 
#define C6DOFIMU21_ODR_XL_1_6_HZ   0xB0
 
#define C6DOFIMU21_ODR_XL_12_5_HZ   0x10
 
#define C6DOFIMU21_ODR_XL_26_HZ   0x20
 
#define C6DOFIMU21_ODR_XL_52_HZ   0x30
 
#define C6DOFIMU21_ODR_XL_104_HZ   0x40
 
#define C6DOFIMU21_ODR_XL_208_HZ   0x50
 
#define C6DOFIMU21_ODR_XL_416_HZ   0x60
 
#define C6DOFIMU21_ODR_XL_833_HZ   0x70
 
#define C6DOFIMU21_ODR_XL_1_66_KHZ   0x80
 
#define C6DOFIMU21_ODR_XL_3_33_KHZ   0x90
 
#define C6DOFIMU21_ODR_XL_6_66_KHZ   0xA0
 
#define C6DOFIMU21_ODR_G_POWER_DOWN   0x00
 6DOF IMU 21 gyro ODR setting. More...
 
#define C6DOFIMU21_ODR_G_12_5_HZ   0x10
 
#define C6DOFIMU21_ODR_G_26_HZ   0x20
 
#define C6DOFIMU21_ODR_G_52_HZ   0x30
 
#define C6DOFIMU21_ODR_G_104_HZ   0x40
 
#define C6DOFIMU21_ODR_G_208_HZ   0x50
 
#define C6DOFIMU21_ODR_G_416_HZ   0x60
 
#define C6DOFIMU21_ODR_G_833_HZ   0x70
 
#define C6DOFIMU21_ODR_G_1_66_KHZ   0x80
 
#define C6DOFIMU21_ODR_G_3_33_KHZ   0x90
 
#define C6DOFIMU21_ODR_G_6_66_KHZ   0xA0
 
#define C6DOFIMU21_SOFTWARE_RESET   0x01
 6DOF IMU 21 software reset setting. More...
 
#define C6DOFIMU21_DEVICE_ID   0x6A
 6DOF IMU 21 device ID setting. More...
 
#define C6DOFIMU21_ACCEL_2G_CONV_MUL   0.061f
 6DOF IMU 21 data conversion factor setting. More...
 
#define C6DOFIMU21_ACCEL_4G_CONV_MUL   0.122f
 
#define C6DOFIMU21_ACCEL_8G_CONV_MUL   0.244f
 
#define C6DOFIMU21_ACCEL_16G_CONV_MUL   0.488f
 
#define C6DOFIMU21_GYRO_250DPS_CONV_MUL   8.75f
 
#define C6DOFIMU21_GYRO_500DPS_CONV_MUL   17.5f
 
#define C6DOFIMU21_GYRO_1000DPS_CONV_MUL   35.0f
 
#define C6DOFIMU21_GYRO_2000DPS_CONV_MUL   70.0f
 
#define C6DOFIMU21_DEVICE_ADDRESS_0   0x6A
 6DOF IMU 21 device address setting. More...
 
#define C6DOFIMU21_DEVICE_ADDRESS_1   0x6B
 
#define C6DOFIMU21_SET_DATA_SAMPLE_EDGE   SET_SPI_DATA_SAMPLE_EDGE
 Data sample selection. More...
 
#define C6DOFIMU21_SET_DATA_SAMPLE_MIDDLE   SET_SPI_DATA_SAMPLE_MIDDLE
 
#define C6DOFIMU21_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping. More...
 

Typedefs

typedef err_t(* c6dofimu21_master_io_t) (struct c6dofimu21_s *, uint8_t, uint8_t *, uint8_t)
 
typedef struct c6dofimu21_s c6dofimu21_t
 6DOF IMU 21 Click context object. More...
 

Enumerations

enum  c6dofimu21_drv_t { C6DOFIMU21_DRV_SEL_SPI , C6DOFIMU21_DRV_SEL_I2C }
 6DOF IMU 21 Click driver selector. More...
 
enum  c6dofimu21_return_value_t { C6DOFIMU21_OK = 0 , C6DOFIMU21_ERROR = -1 }
 6DOF IMU 21 Click return value data. More...
 

Functions

void c6dofimu21_cfg_setup (c6dofimu21_cfg_t *cfg)
 6DOF IMU 21 configuration object setup function. More...
 
void c6dofimu21_drv_interface_sel (c6dofimu21_cfg_t *cfg, c6dofimu21_drv_t drv_sel)
 6DOF IMU 21 driver interface setup function. More...
 
err_t c6dofimu21_init (c6dofimu21_t *ctx, c6dofimu21_cfg_t *cfg)
 6DOF IMU 21 initialization function. More...
 
err_t c6dofimu21_default_cfg (c6dofimu21_t *ctx)
 6DOF IMU 21 default configuration function. More...
 
err_t c6dofimu21_generic_write (c6dofimu21_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 6DOF IMU 21 data writing function. More...
 
err_t c6dofimu21_generic_read (c6dofimu21_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 6DOF IMU 21 data reading function. More...
 
uint8_t c6dofimu22_get_int0_pin (c6dofimu21_t *ctx)
 6DOF IMU 21 get int0 pin function. More...
 
uint8_t c6dofimu22_get_int1_pin (c6dofimu21_t *ctx)
 6DOF IMU 21 get int1 pin function. More...
 
err_t c6dofimu21_write_reg (c6dofimu21_t *ctx, uint8_t reg, uint8_t data_in)
 6DOF IMU 21 data writing function. More...
 
err_t c6dofimu21_read_reg (c6dofimu21_t *ctx, uint8_t reg, uint8_t *data_out)
 6DOF IMU 21 register data reading function. More...
 
err_t c6dofimu21_software_reset (c6dofimu21_t *ctx)
 6DOF IMU 21 software reset device function. More...
 
err_t c6dofimu21_read_accel_data (c6dofimu21_t *ctx, c6dofimu21_data_t *accel_data)
 6DOF IMU 21 read accel function. More...
 
err_t c6dofimu21_read_gyro_data (c6dofimu21_t *ctx, c6dofimu21_data_t *gyro_data)
 6DOF IMU 21 read gyro function. More...
 

Detailed Description

This file contains API for 6DOF IMU 21 Click Driver.

Typedef Documentation

◆ c6dofimu21_master_io_t

typedef err_t(* c6dofimu21_master_io_t) (struct c6dofimu21_s *, uint8_t, uint8_t *, uint8_t)

Driver serial interface.

◆ c6dofimu21_t

typedef struct c6dofimu21_s c6dofimu21_t

6DOF IMU 21 Click context object.

Context object definition of 6DOF IMU 21 Click driver.

Enumeration Type Documentation

◆ c6dofimu21_drv_t

6DOF IMU 21 Click driver selector.

Selects target driver interface of 6DOF IMU 21 Click driver.

Enumerator
C6DOFIMU21_DRV_SEL_SPI 

SPI driver descriptor.

C6DOFIMU21_DRV_SEL_I2C 

I2C driver descriptor.

◆ c6dofimu21_return_value_t

6DOF IMU 21 Click return value data.

Predefined enum values for driver return values.

Enumerator
C6DOFIMU21_OK 
C6DOFIMU21_ERROR