LibDriver MPU6500
Loading...
Searching...
No Matches
driver_mpu6500.c File Reference

driver mpu6500 source file More...

#include "driver_mpu6500.h"
#include "driver_mpu6500_code.h"
#include <math.h>
Include dependency graph for driver_mpu6500.c:

Go to the source code of this file.

Macros

#define CHIP_NAME   "TDK MPU6500"
 chip information definition
#define MANUFACTURER_NAME   "TDK"
#define SUPPLY_VOLTAGE_MIN   1.71f
#define SUPPLY_VOLTAGE_MAX   3.45f
#define MAX_CURRENT   3.2f
#define TEMPERATURE_MIN   -40.0f
#define TEMPERATURE_MAX   85.0f
#define DRIVER_VERSION   1000
#define MPU6500_REG_SELF_TEST_X_GYRO   0x00
 chip register definition
#define MPU6500_REG_SELF_TEST_Y_GYRO   0x01
#define MPU6500_REG_SELF_TEST_Z_GYRO   0x02
#define MPU6500_REG_SELF_TEST_X_ACCEL   0x0D
#define MPU6500_REG_SELF_TEST_Y_ACCEL   0x0E
#define MPU6500_REG_SELF_TEST_Z_ACCEL   0x0F
#define MPU6500_REG_XG_OFFSET_H   0x13
#define MPU6500_REG_XG_OFFSET_L   0x14
#define MPU6500_REG_YG_OFFSET_H   0x15
#define MPU6500_REG_YG_OFFSET_L   0x16
#define MPU6500_REG_ZG_OFFSET_H   0x17
#define MPU6500_REG_ZG_OFFSET_L   0x18
#define MPU6500_REG_SMPRT_DIV   0x19
#define MPU6500_REG_CONFIG   0x1A
#define MPU6500_REG_GYRO_CONFIG   0x1B
#define MPU6500_REG_ACCEL_CONFIG   0x1C
#define MPU6500_REG_ACCEL_CONFIG2   0x1D
#define MPU6500_REG_LP_ACCEL_ODR   0x1E
#define MPU6500_REG_WOM_THR   0x1F
#define MPU6500_REG_MOTION_DURATION   0x20
#define MPU6500_REG_FIFO_EN   0x23
#define MPU6500_REG_I2C_MST_CTRL   0x24
#define MPU6500_REG_I2C_MST_STATUS   0x36
#define MPU6500_REG_I2C_MST_DELAY_CTRL   0x67
#define MPU6500_REG_I2C_SLV0_ADDR   0x25
#define MPU6500_REG_I2C_SLV0_REG   0x26
#define MPU6500_REG_I2C_SLV0_CTRL   0x27
#define MPU6500_REG_I2C_SLV0_DO   0x63
#define MPU6500_REG_I2C_SLV1_ADDR   0x28
#define MPU6500_REG_I2C_SLV1_REG   0x29
#define MPU6500_REG_I2C_SLV1_CTRL   0x2A
#define MPU6500_REG_I2C_SLV1_DO   0x64
#define MPU6500_REG_I2C_SLV2_ADDR   0x2B
#define MPU6500_REG_I2C_SLV2_REG   0x2C
#define MPU6500_REG_I2C_SLV2_CTRL   0x2D
#define MPU6500_REG_I2C_SLV2_DO   0x65
#define MPU6500_REG_I2C_SLV3_ADDR   0x2E
#define MPU6500_REG_I2C_SLV3_REG   0x2F
#define MPU6500_REG_I2C_SLV3_CTRL   0x30
#define MPU6500_REG_I2C_SLV3_DO   0x66
#define MPU6500_REG_I2C_SLV4_ADDR   0x31
#define MPU6500_REG_I2C_SLV4_REG   0x32
#define MPU6500_REG_I2C_SLV4_CTRL   0x34
#define MPU6500_REG_I2C_SLV4_DO   0x33
#define MPU6500_REG_I2C_SLV4_DI   0x35
#define MPU6500_REG_EXT_SENS_DATA_00   0x49
#define MPU6500_REG_INT_PIN_CFG   0x37
#define MPU6500_REG_INT_ENABLE   0x38
#define MPU6500_REG_INT_STATUS   0x3A
#define MPU6500_REG_ACCEL_XOUT_H   0x3B
#define MPU6500_REG_ACCEL_XOUT_L   0x3C
#define MPU6500_REG_ACCEL_YOUT_H   0x3D
#define MPU6500_REG_ACCEL_YOUT_L   0x3E
#define MPU6500_REG_ACCEL_ZOUT_H   0x3F
#define MPU6500_REG_ACCEL_ZOUT_L   0x40
#define MPU6500_REG_TEMP_OUT_H   0x41
#define MPU6500_REG_TEMP_OUT_L   0x42
#define MPU6500_REG_GYRO_XOUT_H   0x43
#define MPU6500_REG_GYRO_XOUT_L   0x44
#define MPU6500_REG_GYRO_YOUT_H   0x45
#define MPU6500_REG_GYRO_YOUT_L   0x46
#define MPU6500_REG_GYRO_ZOUT_H   0x47
#define MPU6500_REG_GYRO_ZOUT_L   0x48
#define MPU6500_REG_SIGNAL_PATH_RESET   0x68
#define MPU6500_REG_MOT_DETECT_CTRL   0x69
#define MPU6500_REG_USER_CTRL   0x6A
#define MPU6500_REG_PWR_MGMT_1   0x6B
#define MPU6500_REG_PWR_MGMT_2   0x6C
#define MPU6500_REG_BANK_SEL   0x6D
#define MPU6500_REG_MEM   0x6F
#define MPU6500_REG_PROGRAM_START   0x70
#define MPU6500_REG_FIFO_COUNTH   0x72
#define MPU6500_REG_FIFO_COUNTL   0x73
#define MPU6500_REG_R_W   0x74
#define MPU6500_REG_WHO_AM_I   0x75
#define MPU6500_REG_XA_OFFSET_H   0x77
#define MPU6500_REG_XA_OFFSET_L   0x78
#define MPU6500_REG_YA_OFFSET_H   0x7A
#define MPU6500_REG_YA_OFFSET_L   0x7B
#define MPU6500_REG_ZA_OFFSET_H   0x7D
#define MPU6500_REG_ZA_OFFSET_L   0x7E
#define MPU6500_DMP_SAMPLE_RATE   200
 mpu6500 dmp code definition
#define MPU6500_DMP_GYRO_SF   (46850825LL * 200 / MPU6500_DMP_SAMPLE_RATE)
#define MPU6500_DMP_D_PEDSTD_TIMECTR   964
#define MPU6500_DMP_D_PEDSTD_STEPCTR   (768 + 0x60)
#define MPU6500_DMP_D_1_36   (256 + 36)
#define MPU6500_DMP_D_1_40   (256 + 40)
#define MPU6500_DMP_D_1_44   (256 + 44)
#define MPU6500_DMP_D_1_72   (256 + 72)
#define MPU6500_DMP_D_1_79   (256 + 79)
#define MPU6500_DMP_D_1_88   (256 + 88)
#define MPU6500_DMP_D_1_90   (256 + 90)
#define MPU6500_DMP_D_1_92   (256 + 92)
#define MPU6500_DMP_D_1_218   (256 + 218)
#define MPU6500_DMP_D_0_22   (512 + 22)
#define MPU6500_DMP_D_0_104   104
#define MPU6500_DMP_TAPW_MIN   478
#define MPU6500_DMP_TAP_THX   468
#define MPU6500_DMP_TAP_THY   472
#define MPU6500_DMP_TAP_THZ   476
#define MPU6500_DMP_CFG_6   2753
#define MPU6500_DMP_CFG_8   2718
#define MPU6500_DMP_CFG_MOTION_BIAS   1208
#define MPU6500_DMP_CFG_LP_QUAT   2712
#define MPU6500_DMP_CFG_FIFO_ON_EVENT   2690
#define MPU6500_DMP_FCFG_1   1062
#define MPU6500_DMP_FCFG_2   1066
#define MPU6500_DMP_FCFG_3   1088
#define MPU6500_DMP_FCFG_7   1073
#define MPU6500_DMP_D_EXT_GYRO_BIAS_X   (61 * 16)
#define MPU6500_DMP_D_EXT_GYRO_BIAS_Y   (61 * 16 + 4)
#define MPU6500_DMP_D_EXT_GYRO_BIAS_Z   (61 * 16 + 8)
#define MPU6500_DMP_D_ACCEL_BIAS   660
#define MPU6500_DMP_FEATURE_SEND_ANY_GYRO
#define MPU6500_DMP_CFG_15   2727
#define MPU6500_DMP_CFG_27   2742
#define MPU6500_DMP_CFG_GYRO_RAW_DATA   2722
#define MPU6500_DMP_CFG_20   2224
#define MPU6500_DMP_CFG_ORIENT_INT   1853
#define MPU6500_DMP_QUAT_ERROR_THRESH   (1L << 24)
#define MPU6500_DMP_QUAT_MAG_SQ_NORMALIZED   (1L << 28)
#define MPU6500_DMP_QUAT_MAG_SQ_MIN
#define MPU6500_DMP_QUAT_MAG_SQ_MAX
#define MPU6500_DMP_INT_SRC_TAP   0x01
#define MPU6500_DMP_INT_SRC_ORIENT   0x08
#define MPU6500_DMP_TAP_THRESH   250
#define MPU6500_DMP_TAP_MIN_TAP_COUNT   1
#define MPU6500_DMP_TAP_TIME   100
#define MPU6500_DMP_TAP_TIME_MULTI   200
#define MPU6500_DMP_SHAKE_REJECT_THRESH   200
#define MPU6500_DMP_SHAKE_REJECT_TIME   40
#define MPU6500_DMP_SHAKE_REJECT_TIMEOUT   10
#define MIN(a, b)
 inner function definition

Functions

uint8_t mpu6500_dmp_load_firmware (mpu6500_handle_t *handle)
 load the dmp firmware
uint8_t mpu6500_dmp_set_pedometer_walk_time (mpu6500_handle_t *handle, uint32_t ms)
 dmp set the pedometer walk time
uint8_t mpu6500_dmp_get_pedometer_walk_time (mpu6500_handle_t *handle, uint32_t *ms)
 dmp get the pedometer walk time
uint8_t mpu6500_dmp_set_pedometer_step_count (mpu6500_handle_t *handle, uint32_t count)
 dmp set the pedometer step count
uint8_t mpu6500_dmp_get_pedometer_step_count (mpu6500_handle_t *handle, uint32_t *count)
 dmp get the pedometer step count
uint8_t mpu6500_dmp_set_shake_reject_timeout (mpu6500_handle_t *handle, uint16_t ms)
 dmp set the shake reject timeout
uint8_t mpu6500_dmp_get_shake_reject_timeout (mpu6500_handle_t *handle, uint16_t *ms)
 dmp get the shake reject timeout
uint8_t mpu6500_dmp_set_shake_reject_time (mpu6500_handle_t *handle, uint16_t ms)
 dmp set the shake reject time
uint8_t mpu6500_dmp_get_shake_reject_time (mpu6500_handle_t *handle, uint16_t *ms)
 dmp get the shake reject time
uint8_t mpu6500_dmp_set_shake_reject_thresh (mpu6500_handle_t *handle, uint16_t dps)
 dmp set the shake reject thresh
uint8_t mpu6500_dmp_get_shake_reject_thresh (mpu6500_handle_t *handle, uint16_t *dps)
 dmp get the shake reject thresh
uint8_t mpu6500_dmp_set_tap_time_multi (mpu6500_handle_t *handle, uint16_t ms)
 dmp set max time between taps to register as a multi tap
uint8_t mpu6500_dmp_get_tap_time_multi (mpu6500_handle_t *handle, uint16_t *ms)
 dmp get max time between taps to register as a multi tap
uint8_t mpu6500_dmp_set_tap_time (mpu6500_handle_t *handle, uint16_t ms)
 dmp set the tap time
uint8_t mpu6500_dmp_get_tap_time (mpu6500_handle_t *handle, uint16_t *ms)
 dmp get the tap time
uint8_t mpu6500_dmp_set_min_tap_count (mpu6500_handle_t *handle, uint8_t cnt)
 dmp set the min tap count
uint8_t mpu6500_dmp_get_min_tap_count (mpu6500_handle_t *handle, uint8_t *cnt)
 dmp get the min tap count
uint8_t mpu6500_dmp_set_gyro_calibrate (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 dmp enable or disable gyro calibrate
uint8_t mpu6500_dmp_set_3x_quaternion (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 dmp enable or disable generate 3 axis quaternions from dmp
uint8_t mpu6500_dmp_set_6x_quaternion (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 dmp enable or disable generate 6 axis quaternions from dmp
uint8_t mpu6500_dmp_set_interrupt_mode (mpu6500_handle_t *handle, mpu6500_dmp_interrupt_mode_t mode)
 dmp set the interrupt mode
uint8_t mpu6500_dmp_set_gyro_bias (mpu6500_handle_t *handle, int32_t bias[3])
 dmp set the gyro bias
uint8_t mpu6500_dmp_set_accel_bias (mpu6500_handle_t *handle, int32_t bias[3])
 dmp set the accel bias
uint8_t mpu6500_dmp_set_orientation (mpu6500_handle_t *handle, int8_t mat[9])
 dmp set the orientation
uint8_t mpu6500_dmp_set_feature (mpu6500_handle_t *handle, uint16_t mask)
 dmp enable or disable the dmp feature
uint8_t mpu6500_dmp_set_fifo_rate (mpu6500_handle_t *handle, uint16_t rate)
 dmp set the fifo rate
uint8_t mpu6500_dmp_get_fifo_rate (mpu6500_handle_t *handle, uint16_t *rate)
 dmp get the fifo rate
uint8_t mpu6500_dmp_set_tap_axes (mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
 dmp enable or disable the tap axes
uint8_t mpu6500_dmp_get_tap_axes (mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t *enable)
 dmp get the tap axes status
uint8_t mpu6500_dmp_set_tap_thresh (mpu6500_handle_t *handle, mpu6500_axis_t axis, uint16_t mg_ms)
 dmp set the tap thresh
uint8_t mpu6500_dmp_get_tap_thresh (mpu6500_handle_t *handle, mpu6500_axis_t axis, uint16_t *mg_ms)
 dmp get the tap thresh
uint8_t mpu6500_dmp_read (mpu6500_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], int32_t(*quat)[4], float *pitch, float *roll, float *yaw, uint16_t *l)
 dmp read the data
uint8_t mpu6500_dmp_set_tap_callback (mpu6500_handle_t *handle, void(*callback)(uint8_t count, uint8_t direction))
 dmp set the tap callback
uint8_t mpu6500_dmp_set_orient_callback (mpu6500_handle_t *handle, void(*callback)(uint8_t orientation))
 dmp set the orient callback
uint8_t mpu6500_dmp_set_enable (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the dmp
uint8_t mpu6500_dmp_gyro_accel_raw_offset_convert (mpu6500_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3], int32_t gyro_offset[3], int32_t accel_offset[3])
 dmp gyro accel raw offset convert
uint8_t mpu6500_set_interface (mpu6500_handle_t *handle, mpu6500_interface_t interface)
 set the chip interface
uint8_t mpu6500_get_interface (mpu6500_handle_t *handle, mpu6500_interface_t *interface)
 get the chip interface
uint8_t mpu6500_set_addr_pin (mpu6500_handle_t *handle, mpu6500_address_t addr_pin)
 set the chip address pin
uint8_t mpu6500_get_addr_pin (mpu6500_handle_t *handle, mpu6500_address_t *addr_pin)
 get the chip address pin
uint8_t mpu6500_init (mpu6500_handle_t *handle)
 initialize the chip
uint8_t mpu6500_deinit (mpu6500_handle_t *handle)
 close the chip
uint8_t mpu6500_read (mpu6500_handle_t *handle, int16_t(*accel_raw)[3], float(*accel_g)[3], int16_t(*gyro_raw)[3], float(*gyro_dps)[3], uint16_t *len)
 read the data
uint8_t mpu6500_read_temperature (mpu6500_handle_t *handle, int16_t(*raw), float *degrees)
 read the temperature
uint8_t mpu6500_irq_handler (mpu6500_handle_t *handle)
 irq handler
uint8_t mpu6500_set_fifo (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable fifo
uint8_t mpu6500_get_fifo (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the fifo status
uint8_t mpu6500_force_fifo_reset (mpu6500_handle_t *handle)
 force reset the fifo
uint8_t mpu6500_set_iic_master (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the iic master mode
uint8_t mpu6500_get_iic_master (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic master status
uint8_t mpu6500_set_disable_iic_slave (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the iic slave mode
uint8_t mpu6500_get_disable_iic_slave (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic slave status
uint8_t mpu6500_fifo_reset (mpu6500_handle_t *handle)
 reset the fifo
uint8_t mpu6500_get_fifo_reset (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the fifo reset status
uint8_t mpu6500_iic_master_reset (mpu6500_handle_t *handle)
 reset the iic master controller
uint8_t mpu6500_get_iic_master_reset (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic master reset status
uint8_t mpu6500_sensor_reset (mpu6500_handle_t *handle)
 reset all sensors
uint8_t mpu6500_get_sensor_reset (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the sensor reset status
uint8_t mpu6500_device_reset (mpu6500_handle_t *handle)
 reset the chip
uint8_t mpu6500_get_device_reset (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the device reset status
uint8_t mpu6500_set_clock_source (mpu6500_handle_t *handle, mpu6500_clock_source_t clock_source)
 set the chip clock source
uint8_t mpu6500_get_clock_source (mpu6500_handle_t *handle, mpu6500_clock_source_t *clock_source)
 get the chip clock source
uint8_t mpu6500_set_ptat (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the temperature sensor
uint8_t mpu6500_get_ptat (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the temperature sensor status
uint8_t mpu6500_set_cycle_wake_up (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the cycle wake up mode
uint8_t mpu6500_get_cycle_wake_up (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the cycle wake up mode status
uint8_t mpu6500_set_sleep (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the sleep mode
uint8_t mpu6500_get_sleep (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the sleep status
uint8_t mpu6500_set_gyro_standby (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the gyro standby
uint8_t mpu6500_get_gyro_standby (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the gyro standby status
uint8_t mpu6500_set_standby_mode (mpu6500_handle_t *handle, mpu6500_source_t source, mpu6500_bool_t enable)
 set source into standby mode
uint8_t mpu6500_get_standby_mode (mpu6500_handle_t *handle, mpu6500_source_t source, mpu6500_bool_t *enable)
 get the source mode
uint8_t mpu6500_get_fifo_count (mpu6500_handle_t *handle, uint16_t *count)
 get the fifo counter value
uint8_t mpu6500_fifo_get (mpu6500_handle_t *handle, uint8_t *buf, uint16_t len)
 fifo read bytes
uint8_t mpu6500_fifo_set (mpu6500_handle_t *handle, uint8_t *buf, uint16_t len)
 fifo write bytes
uint8_t mpu6500_set_signal_path_reset (mpu6500_handle_t *handle, mpu6500_signal_path_reset_t path)
 set the signal path reset
uint8_t mpu6500_set_sample_rate_divider (mpu6500_handle_t *handle, uint8_t d)
 set the sample rate divider
uint8_t mpu6500_get_sample_rate_divider (mpu6500_handle_t *handle, uint8_t *d)
 get the sample rate divider
uint8_t mpu6500_set_extern_sync (mpu6500_handle_t *handle, mpu6500_extern_sync_t sync)
 set the extern sync type
uint8_t mpu6500_get_extern_sync (mpu6500_handle_t *handle, mpu6500_extern_sync_t *sync)
 get the extern sync type
uint8_t mpu6500_set_low_pass_filter (mpu6500_handle_t *handle, mpu6500_low_pass_filter_t filter)
 set the low pass filter
uint8_t mpu6500_get_low_pass_filter (mpu6500_handle_t *handle, mpu6500_low_pass_filter_t *filter)
 get the low pass filter
uint8_t mpu6500_set_fifo_mode (mpu6500_handle_t *handle, mpu6500_fifo_mode mode)
 set the fifo mode
uint8_t mpu6500_get_fifo_mode (mpu6500_handle_t *handle, mpu6500_fifo_mode *mode)
 get the fifo mode
uint8_t mpu6500_set_gyroscope_test (mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
 set the gyroscope test
uint8_t mpu6500_get_gyroscope_test (mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t *enable)
 get the gyroscope test
uint8_t mpu6500_set_gyroscope_range (mpu6500_handle_t *handle, mpu6500_gyroscope_range_t range)
 set the gyroscope range
uint8_t mpu6500_get_gyroscope_range (mpu6500_handle_t *handle, mpu6500_gyroscope_range_t *range)
 get the gyroscope range
uint8_t mpu6500_set_gyroscope_choice (mpu6500_handle_t *handle, uint8_t choice)
 set the gyroscope choice
uint8_t mpu6500_get_gyroscope_choice (mpu6500_handle_t *handle, uint8_t *choice)
 get the gyroscope choice
uint8_t mpu6500_set_accelerometer_test (mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t enable)
 set the accelerometer test
uint8_t mpu6500_get_accelerometer_test (mpu6500_handle_t *handle, mpu6500_axis_t axis, mpu6500_bool_t *enable)
 get the accelerometer test
uint8_t mpu6500_set_accelerometer_range (mpu6500_handle_t *handle, mpu6500_accelerometer_range_t range)
 set the accelerometer range
uint8_t mpu6500_get_accelerometer_range (mpu6500_handle_t *handle, mpu6500_accelerometer_range_t *range)
 get the accelerometer range
uint8_t mpu6500_set_fifo_1024kb (mpu6500_handle_t *handle)
 set fifo 1024kb
uint8_t mpu6500_set_accelerometer_choice (mpu6500_handle_t *handle, uint8_t choice)
 set the accelerometer choice
uint8_t mpu6500_get_accelerometer_choice (mpu6500_handle_t *handle, uint8_t *choice)
 get the accelerometer choice
uint8_t mpu6500_set_accelerometer_low_pass_filter (mpu6500_handle_t *handle, mpu6500_accelerometer_low_pass_filter_t filter)
 set the accelerometer low pass filter
uint8_t mpu6500_get_accelerometer_low_pass_filter (mpu6500_handle_t *handle, mpu6500_accelerometer_low_pass_filter_t *filter)
 get the accelerometer low pass filter
uint8_t mpu6500_set_low_power_accel_output_rate (mpu6500_handle_t *handle, mpu6500_low_power_accel_output_rate_t rate)
 set the low power accel output rate
uint8_t mpu6500_get_low_power_accel_output_rate (mpu6500_handle_t *handle, mpu6500_low_power_accel_output_rate_t *rate)
 get the low power accel output rate
uint8_t mpu6500_set_wake_on_motion (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable wake on motion
uint8_t mpu6500_get_wake_on_motion (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the wake on motion status
uint8_t mpu6500_set_accel_compare_with_previous_sample (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable accel compare with previous sample
uint8_t mpu6500_get_accel_compare_with_previous_sample (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the accel compare with previous sample status
uint8_t mpu6500_set_fifo_enable (mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t enable)
 enable or disable the fifo function
uint8_t mpu6500_get_fifo_enable (mpu6500_handle_t *handle, mpu6500_fifo_t fifo, mpu6500_bool_t *enable)
 get the fifo function status
uint8_t mpu6500_set_interrupt_level (mpu6500_handle_t *handle, mpu6500_pin_level_t level)
 set the interrupt level
uint8_t mpu6500_get_interrupt_level (mpu6500_handle_t *handle, mpu6500_pin_level_t *level)
 get the interrupt level
uint8_t mpu6500_set_interrupt_pin_type (mpu6500_handle_t *handle, mpu6500_pin_type_t type)
 set the interrupt pin type
uint8_t mpu6500_get_interrupt_pin_type (mpu6500_handle_t *handle, mpu6500_pin_type_t *type)
 get the interrupt pin type
uint8_t mpu6500_set_interrupt_latch (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the interrupt latch
uint8_t mpu6500_get_interrupt_latch (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the interrupt latch status
uint8_t mpu6500_set_interrupt_read_clear (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the interrupt reading clear
uint8_t mpu6500_get_interrupt_read_clear (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the interrupt reading clear status
uint8_t mpu6500_set_fsync_interrupt_level (mpu6500_handle_t *handle, mpu6500_pin_level_t level)
 set the fsync interrupt level
uint8_t mpu6500_get_fsync_interrupt_level (mpu6500_handle_t *handle, mpu6500_pin_level_t *level)
 get the fsync interrupt level
uint8_t mpu6500_set_fsync_interrupt (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the fsync interrupt
uint8_t mpu6500_get_fsync_interrupt (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the fsync interrupt status
uint8_t mpu6500_set_iic_bypass (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the iic bypass
uint8_t mpu6500_get_iic_bypass (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic bypass status
uint8_t mpu6500_set_interrupt (mpu6500_handle_t *handle, mpu6500_interrupt_t type, mpu6500_bool_t enable)
 enable or disable the interrupt
uint8_t mpu6500_get_interrupt (mpu6500_handle_t *handle, mpu6500_interrupt_t type, mpu6500_bool_t *enable)
 get the interrupt status
uint8_t mpu6500_get_interrupt_status (mpu6500_handle_t *handle, uint8_t *status)
 get the interrupt status
uint8_t mpu6500_set_gyroscope_x_test (mpu6500_handle_t *handle, uint8_t data)
 set the gyroscope x test
uint8_t mpu6500_get_gyroscope_x_test (mpu6500_handle_t *handle, uint8_t *data)
 get the gyroscope x test
uint8_t mpu6500_set_gyroscope_y_test (mpu6500_handle_t *handle, uint8_t data)
 set the gyroscope y test
uint8_t mpu6500_get_gyroscope_y_test (mpu6500_handle_t *handle, uint8_t *data)
 get the gyroscope y test
uint8_t mpu6500_set_gyroscope_z_test (mpu6500_handle_t *handle, uint8_t data)
 set the gyroscope z test
uint8_t mpu6500_get_gyroscope_z_test (mpu6500_handle_t *handle, uint8_t *data)
 get the gyroscope z test
uint8_t mpu6500_set_accelerometer_x_test (mpu6500_handle_t *handle, uint8_t data)
 set the accelerometer x test
uint8_t mpu6500_get_accelerometer_x_test (mpu6500_handle_t *handle, uint8_t *data)
 get the accelerometer x test
uint8_t mpu6500_set_accelerometer_y_test (mpu6500_handle_t *handle, uint8_t data)
 set the accelerometer y test
uint8_t mpu6500_get_accelerometer_y_test (mpu6500_handle_t *handle, uint8_t *data)
 get the accelerometer y test
uint8_t mpu6500_set_accelerometer_z_test (mpu6500_handle_t *handle, uint8_t data)
 set the accelerometer z test
uint8_t mpu6500_get_accelerometer_z_test (mpu6500_handle_t *handle, uint8_t *data)
 get the accelerometer z test
uint8_t mpu6500_set_accelerometer_x_offset (mpu6500_handle_t *handle, int16_t offset)
 set the accelerometer x offset
uint8_t mpu6500_get_accelerometer_x_offset (mpu6500_handle_t *handle, int16_t *offset)
 get the accelerometer x offset
uint8_t mpu6500_set_accelerometer_y_offset (mpu6500_handle_t *handle, int16_t offset)
 set the accelerometer y offset
uint8_t mpu6500_get_accelerometer_y_offset (mpu6500_handle_t *handle, int16_t *offset)
 get the accelerometer y offset
uint8_t mpu6500_set_accelerometer_z_offset (mpu6500_handle_t *handle, int16_t offset)
 set the accelerometer z offset
uint8_t mpu6500_get_accelerometer_z_offset (mpu6500_handle_t *handle, int16_t *offset)
 get the accelerometer z offset
uint8_t mpu6500_accelerometer_offset_convert_to_register (mpu6500_handle_t *handle, float mg, int16_t *reg)
 convert the accelerometer offset to the register raw data
uint8_t mpu6500_accelerometer_offset_convert_to_data (mpu6500_handle_t *handle, int16_t reg, float *mg)
 convert the register raw data to the accelerometer offset
uint8_t mpu6500_set_gyro_x_offset (mpu6500_handle_t *handle, int16_t offset)
 set the gyro x offset
uint8_t mpu6500_get_gyro_x_offset (mpu6500_handle_t *handle, int16_t *offset)
 get the gyro x offset
uint8_t mpu6500_set_gyro_y_offset (mpu6500_handle_t *handle, int16_t offset)
 set the gyro y offset
uint8_t mpu6500_get_gyro_y_offset (mpu6500_handle_t *handle, int16_t *offset)
 get the gyro y offset
uint8_t mpu6500_set_gyro_z_offset (mpu6500_handle_t *handle, int16_t offset)
 set the gyro z offset
uint8_t mpu6500_get_gyro_z_offset (mpu6500_handle_t *handle, int16_t *offset)
 get the gyro z offset
uint8_t mpu6500_gyro_offset_convert_to_register (mpu6500_handle_t *handle, float dps, int16_t *reg)
 convert the gyro offset to the register raw data
uint8_t mpu6500_gyro_offset_convert_to_data (mpu6500_handle_t *handle, int16_t reg, float *dps)
 convert the register raw data to the gyro offset
uint8_t mpu6500_set_motion_threshold (mpu6500_handle_t *handle, uint8_t threshold)
 set the motion_threshold
uint8_t mpu6500_get_motion_threshold (mpu6500_handle_t *handle, uint8_t *threshold)
 get the motion_threshold
uint8_t mpu6500_motion_threshold_convert_to_register (mpu6500_handle_t *handle, float mg, uint8_t *reg)
 convert the motion threshold to the register raw data
uint8_t mpu6500_motion_threshold_convert_to_data (mpu6500_handle_t *handle, uint8_t reg, float *mg)
 convert the register raw data to the motion threshold
uint8_t mpu6500_self_test (mpu6500_handle_t *handle, int32_t gyro_offset_raw[3], int32_t accel_offset_raw[3])
 run the self test
uint8_t mpu6500_set_iic_clock (mpu6500_handle_t *handle, mpu6500_iic_clock_t clk)
 set the iic clock
uint8_t mpu6500_get_iic_clock (mpu6500_handle_t *handle, mpu6500_iic_clock_t *clk)
 get the iic clock
uint8_t mpu6500_set_iic_multi_master (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable iic multi master
uint8_t mpu6500_get_iic_multi_master (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic multi master status
uint8_t mpu6500_set_iic_wait_for_external_sensor (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable iic wait for external sensor
uint8_t mpu6500_get_iic_wait_for_external_sensor (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic wait for external sensor status
uint8_t mpu6500_set_iic_read_mode (mpu6500_handle_t *handle, mpu6500_iic_read_mode_t mode)
 set the iic read mode
uint8_t mpu6500_get_iic_read_mode (mpu6500_handle_t *handle, mpu6500_iic_read_mode_t *mode)
 get the iic read mode
uint8_t mpu6500_set_iic_fifo_enable (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t enable)
 enable or disable the iic fifo
uint8_t mpu6500_get_iic_fifo_enable (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t *enable)
 get the iic fifo status
uint8_t mpu6500_set_iic_mode (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_mode_t mode)
 set the iic mode
uint8_t mpu6500_get_iic_mode (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_mode_t *mode)
 get the iic mode
uint8_t mpu6500_set_iic_address (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t addr_7bit)
 set the iic address
uint8_t mpu6500_get_iic_address (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *addr_7bit)
 get the iic address
uint8_t mpu6500_set_iic_register (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t reg)
 set the iic register
uint8_t mpu6500_get_iic_register (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *reg)
 get the iic register
uint8_t mpu6500_set_iic_data_out (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t data)
 set the iic data out
uint8_t mpu6500_get_iic_data_out (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *data)
 get the iic data out
uint8_t mpu6500_set_iic_enable (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t enable)
 enable or disable the iic
uint8_t mpu6500_get_iic_enable (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t *enable)
 get the iic status
uint8_t mpu6500_set_iic_byte_swap (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t enable)
 enable or disable the iic byte swap
uint8_t mpu6500_get_iic_byte_swap (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_bool_t *enable)
 get the iic byte swap status
uint8_t mpu6500_set_iic_transaction_mode (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_transaction_mode_t mode)
 set the iic transaction mode
uint8_t mpu6500_get_iic_transaction_mode (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_transaction_mode_t *mode)
 get the iic transaction mode
uint8_t mpu6500_set_iic_group_order (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_group_order_t order)
 set the iic group order
uint8_t mpu6500_get_iic_group_order (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, mpu6500_iic_group_order_t *order)
 get the iic group order
uint8_t mpu6500_set_iic_transferred_len (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t len)
 set the iic transferred length
uint8_t mpu6500_get_iic_transferred_len (mpu6500_handle_t *handle, mpu6500_iic_slave_t slave, uint8_t *len)
 get the iic transferred length
uint8_t mpu6500_get_iic_status (mpu6500_handle_t *handle, uint8_t *status)
 get the iic status
uint8_t mpu6500_set_iic_delay_enable (mpu6500_handle_t *handle, mpu6500_iic_delay_t delay, mpu6500_bool_t enable)
 enable or disable the iic delay
uint8_t mpu6500_get_iic_delay_enable (mpu6500_handle_t *handle, mpu6500_iic_delay_t delay, mpu6500_bool_t *enable)
 get the iic delay status
uint8_t mpu6500_set_iic4_enable (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the iic4
uint8_t mpu6500_get_iic4_enable (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic4 status
uint8_t mpu6500_set_iic4_interrupt (mpu6500_handle_t *handle, mpu6500_bool_t enable)
 enable or disable the iic4 interrupt
uint8_t mpu6500_get_iic4_interrupt (mpu6500_handle_t *handle, mpu6500_bool_t *enable)
 get the iic4 interrupt status
uint8_t mpu6500_set_iic4_transaction_mode (mpu6500_handle_t *handle, mpu6500_iic4_transaction_mode_t mode)
 set the iic4 transaction mode
uint8_t mpu6500_get_iic4_transaction_mode (mpu6500_handle_t *handle, mpu6500_iic4_transaction_mode_t *mode)
 get the iic4 transaction mode
uint8_t mpu6500_set_iic_delay (mpu6500_handle_t *handle, uint8_t delay)
 set the iic delay
uint8_t mpu6500_get_iic_delay (mpu6500_handle_t *handle, uint8_t *delay)
 get the iic delay
uint8_t mpu6500_set_iic4_data_out (mpu6500_handle_t *handle, uint8_t data)
 set the iic4 data out
uint8_t mpu6500_get_iic4_data_out (mpu6500_handle_t *handle, uint8_t *data)
 get the iic4 data out
uint8_t mpu6500_set_iic4_data_in (mpu6500_handle_t *handle, uint8_t data)
 set the iic4 data in
uint8_t mpu6500_get_iic4_data_in (mpu6500_handle_t *handle, uint8_t *data)
 get the iic4 data in
uint8_t mpu6500_read_extern_sensor_data (mpu6500_handle_t *handle, uint8_t *data, uint8_t len)
 read the extern sensor data
uint8_t mpu6500_set_reg (mpu6500_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
 set the chip register
uint8_t mpu6500_get_reg (mpu6500_handle_t *handle, uint8_t reg, uint8_t *buf, uint16_t len)
 get the chip register
uint8_t mpu6500_info (mpu6500_info_t *info)
 get the chip's information

Detailed Description

driver mpu6500 source file

Copyright (c) 2015 - present LibDriver All rights reserved

The MIT License (MIT)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Version
1.0.0
Author
Shifeng Li
Date
2024-07-30

history

Date Version Author Description
2024/07/30 1.0 Shifeng Li first upload

Definition in file driver_mpu6500.c.

Macro Definition Documentation

◆ CHIP_NAME

#define CHIP_NAME   "TDK MPU6500"

chip information definition

chip name

Definition at line 44 of file driver_mpu6500.c.

◆ DRIVER_VERSION

#define DRIVER_VERSION   1000

driver version

Definition at line 51 of file driver_mpu6500.c.

◆ MANUFACTURER_NAME

#define MANUFACTURER_NAME   "TDK"

manufacturer name

Definition at line 45 of file driver_mpu6500.c.

◆ MAX_CURRENT

#define MAX_CURRENT   3.2f

chip max current

Definition at line 48 of file driver_mpu6500.c.

◆ MIN

#define MIN ( a,
b )
Value:
(((a) < (b)) ? (a) : (b))

inner function definition

min function

Definition at line 199 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_15

#define MPU6500_DMP_CFG_15   2727

cfg 15 register

Definition at line 175 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_20

#define MPU6500_DMP_CFG_20   2224

cfg 20 register

Definition at line 178 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_27

#define MPU6500_DMP_CFG_27   2742

cfg 27 register

Definition at line 176 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_6

#define MPU6500_DMP_CFG_6   2753

cfg 6 register

Definition at line 160 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_8

#define MPU6500_DMP_CFG_8   2718

cfg 8 register

Definition at line 161 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_FIFO_ON_EVENT

#define MPU6500_DMP_CFG_FIFO_ON_EVENT   2690

fifo on event register

Definition at line 164 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_GYRO_RAW_DATA

#define MPU6500_DMP_CFG_GYRO_RAW_DATA   2722

cfg gyro raw data register

Definition at line 177 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_LP_QUAT

#define MPU6500_DMP_CFG_LP_QUAT   2712

lp quat register

Definition at line 163 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_MOTION_BIAS

#define MPU6500_DMP_CFG_MOTION_BIAS   1208

motion bias register

Definition at line 162 of file driver_mpu6500.c.

◆ MPU6500_DMP_CFG_ORIENT_INT

#define MPU6500_DMP_CFG_ORIENT_INT   1853

cfg orient int register

Definition at line 179 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_0_104

#define MPU6500_DMP_D_0_104   104

104 register

Definition at line 155 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_0_22

#define MPU6500_DMP_D_0_22   (512 + 22)

22 register

Definition at line 154 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_218

#define MPU6500_DMP_D_1_218   (256 + 218)

218 register

Definition at line 153 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_36

#define MPU6500_DMP_D_1_36   (256 + 36)

36 register

Definition at line 145 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_40

#define MPU6500_DMP_D_1_40   (256 + 40)

40 register

Definition at line 146 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_44

#define MPU6500_DMP_D_1_44   (256 + 44)

44 register

Definition at line 147 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_72

#define MPU6500_DMP_D_1_72   (256 + 72)

72 register

Definition at line 148 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_79

#define MPU6500_DMP_D_1_79   (256 + 79)

79 register

Definition at line 149 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_88

#define MPU6500_DMP_D_1_88   (256 + 88)

88 register

Definition at line 150 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_90

#define MPU6500_DMP_D_1_90   (256 + 90)

90 register

Definition at line 151 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_1_92

#define MPU6500_DMP_D_1_92   (256 + 92)

92 register

Definition at line 152 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_ACCEL_BIAS

#define MPU6500_DMP_D_ACCEL_BIAS   660

accel bias register

Definition at line 172 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_EXT_GYRO_BIAS_X

#define MPU6500_DMP_D_EXT_GYRO_BIAS_X   (61 * 16)

gyro bias x register

Definition at line 169 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_EXT_GYRO_BIAS_Y

#define MPU6500_DMP_D_EXT_GYRO_BIAS_Y   (61 * 16 + 4)

gyro bias y register

Definition at line 170 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_EXT_GYRO_BIAS_Z

#define MPU6500_DMP_D_EXT_GYRO_BIAS_Z   (61 * 16 + 8)

gyro bias z register

Definition at line 171 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_PEDSTD_STEPCTR

#define MPU6500_DMP_D_PEDSTD_STEPCTR   (768 + 0x60)

step counter mem register

Definition at line 144 of file driver_mpu6500.c.

◆ MPU6500_DMP_D_PEDSTD_TIMECTR

#define MPU6500_DMP_D_PEDSTD_TIMECTR   964

walk time mem register

Definition at line 143 of file driver_mpu6500.c.

◆ MPU6500_DMP_FCFG_1

#define MPU6500_DMP_FCFG_1   1062

fcfg 1 register

Definition at line 165 of file driver_mpu6500.c.

◆ MPU6500_DMP_FCFG_2

#define MPU6500_DMP_FCFG_2   1066

fcfg 2 register

Definition at line 166 of file driver_mpu6500.c.

◆ MPU6500_DMP_FCFG_3

#define MPU6500_DMP_FCFG_3   1088

fcfg 3 register

Definition at line 167 of file driver_mpu6500.c.

◆ MPU6500_DMP_FCFG_7

#define MPU6500_DMP_FCFG_7   1073

fcfg 7 register

Definition at line 168 of file driver_mpu6500.c.

◆ MPU6500_DMP_FEATURE_SEND_ANY_GYRO

#define MPU6500_DMP_FEATURE_SEND_ANY_GYRO
Value:

send any gyro register

Definition at line 173 of file driver_mpu6500.c.

◆ MPU6500_DMP_GYRO_SF

#define MPU6500_DMP_GYRO_SF   (46850825LL * 200 / MPU6500_DMP_SAMPLE_RATE)

gyro sf

Definition at line 142 of file driver_mpu6500.c.

◆ MPU6500_DMP_INT_SRC_ORIENT

#define MPU6500_DMP_INT_SRC_ORIENT   0x08

int src orient

Definition at line 187 of file driver_mpu6500.c.

◆ MPU6500_DMP_INT_SRC_TAP

#define MPU6500_DMP_INT_SRC_TAP   0x01

int src tap

Definition at line 186 of file driver_mpu6500.c.

◆ MPU6500_DMP_QUAT_ERROR_THRESH

#define MPU6500_DMP_QUAT_ERROR_THRESH   (1L << 24)

quat error thresh

Definition at line 180 of file driver_mpu6500.c.

◆ MPU6500_DMP_QUAT_MAG_SQ_MAX

#define MPU6500_DMP_QUAT_MAG_SQ_MAX
Value:
#define MPU6500_DMP_QUAT_MAG_SQ_NORMALIZED
#define MPU6500_DMP_QUAT_ERROR_THRESH

quat mag sq max

Definition at line 184 of file driver_mpu6500.c.

◆ MPU6500_DMP_QUAT_MAG_SQ_MIN

#define MPU6500_DMP_QUAT_MAG_SQ_MIN
Value:

quat mag sq min

Definition at line 182 of file driver_mpu6500.c.

◆ MPU6500_DMP_QUAT_MAG_SQ_NORMALIZED

#define MPU6500_DMP_QUAT_MAG_SQ_NORMALIZED   (1L << 28)

quat mag sq normalized

Definition at line 181 of file driver_mpu6500.c.

◆ MPU6500_DMP_SAMPLE_RATE

#define MPU6500_DMP_SAMPLE_RATE   200

mpu6500 dmp code definition

sample rate

Definition at line 141 of file driver_mpu6500.c.

◆ MPU6500_DMP_SHAKE_REJECT_THRESH

#define MPU6500_DMP_SHAKE_REJECT_THRESH   200

200 ms

Definition at line 192 of file driver_mpu6500.c.

◆ MPU6500_DMP_SHAKE_REJECT_TIME

#define MPU6500_DMP_SHAKE_REJECT_TIME   40

40 ms

Definition at line 193 of file driver_mpu6500.c.

◆ MPU6500_DMP_SHAKE_REJECT_TIMEOUT

#define MPU6500_DMP_SHAKE_REJECT_TIMEOUT   10

10 ms

Definition at line 194 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_MIN_TAP_COUNT

#define MPU6500_DMP_TAP_MIN_TAP_COUNT   1

1

Definition at line 189 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_THRESH

#define MPU6500_DMP_TAP_THRESH   250

250 mg/ms

Definition at line 188 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_THX

#define MPU6500_DMP_TAP_THX   468

tap threshold x register

Definition at line 157 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_THY

#define MPU6500_DMP_TAP_THY   472

tap threshold y register

Definition at line 158 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_THZ

#define MPU6500_DMP_TAP_THZ   476

tap threshold z register

Definition at line 159 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_TIME

#define MPU6500_DMP_TAP_TIME   100

100 ms

Definition at line 190 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAP_TIME_MULTI

#define MPU6500_DMP_TAP_TIME_MULTI   200

200 ms

Definition at line 191 of file driver_mpu6500.c.

◆ MPU6500_DMP_TAPW_MIN

#define MPU6500_DMP_TAPW_MIN   478

tap time min register

Definition at line 156 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_CONFIG

#define MPU6500_REG_ACCEL_CONFIG   0x1C

accel configure register

Definition at line 71 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_CONFIG2

#define MPU6500_REG_ACCEL_CONFIG2   0x1D

accel configure 2 register

Definition at line 72 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_XOUT_H

#define MPU6500_REG_ACCEL_XOUT_H   0x3B

accel xout high register

Definition at line 105 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_XOUT_L

#define MPU6500_REG_ACCEL_XOUT_L   0x3C

accel xout low register

Definition at line 106 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_YOUT_H

#define MPU6500_REG_ACCEL_YOUT_H   0x3D

accel yout high register

Definition at line 107 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_YOUT_L

#define MPU6500_REG_ACCEL_YOUT_L   0x3E

accel yout low register

Definition at line 108 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_ZOUT_H

#define MPU6500_REG_ACCEL_ZOUT_H   0x3F

accel zout high register

Definition at line 109 of file driver_mpu6500.c.

◆ MPU6500_REG_ACCEL_ZOUT_L

#define MPU6500_REG_ACCEL_ZOUT_L   0x40

accel zout low register

Definition at line 110 of file driver_mpu6500.c.

◆ MPU6500_REG_BANK_SEL

#define MPU6500_REG_BANK_SEL   0x6D

bank sel register

Definition at line 124 of file driver_mpu6500.c.

◆ MPU6500_REG_CONFIG

#define MPU6500_REG_CONFIG   0x1A

configure register

Definition at line 69 of file driver_mpu6500.c.

◆ MPU6500_REG_EXT_SENS_DATA_00

#define MPU6500_REG_EXT_SENS_DATA_00   0x49

extern sensor data 00 register

Definition at line 101 of file driver_mpu6500.c.

◆ MPU6500_REG_FIFO_COUNTH

#define MPU6500_REG_FIFO_COUNTH   0x72

fifo count high threshold register

Definition at line 127 of file driver_mpu6500.c.

◆ MPU6500_REG_FIFO_COUNTL

#define MPU6500_REG_FIFO_COUNTL   0x73

fifo count low threshold register

Definition at line 128 of file driver_mpu6500.c.

◆ MPU6500_REG_FIFO_EN

#define MPU6500_REG_FIFO_EN   0x23

fifo enable register

Definition at line 76 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_CONFIG

#define MPU6500_REG_GYRO_CONFIG   0x1B

gyro configure register

Definition at line 70 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_XOUT_H

#define MPU6500_REG_GYRO_XOUT_H   0x43

gyro xout high register

Definition at line 113 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_XOUT_L

#define MPU6500_REG_GYRO_XOUT_L   0x44

gyro xout low register

Definition at line 114 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_YOUT_H

#define MPU6500_REG_GYRO_YOUT_H   0x45

gyro yout high register

Definition at line 115 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_YOUT_L

#define MPU6500_REG_GYRO_YOUT_L   0x46

gyro yout low register

Definition at line 116 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_ZOUT_H

#define MPU6500_REG_GYRO_ZOUT_H   0x47

gyro zout high register

Definition at line 117 of file driver_mpu6500.c.

◆ MPU6500_REG_GYRO_ZOUT_L

#define MPU6500_REG_GYRO_ZOUT_L   0x48

gyro zout low register

Definition at line 118 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_MST_CTRL

#define MPU6500_REG_I2C_MST_CTRL   0x24

i2c master ctrl register

Definition at line 77 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_MST_DELAY_CTRL

#define MPU6500_REG_I2C_MST_DELAY_CTRL   0x67

i2c master delay ctrl register

Definition at line 79 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_MST_STATUS

#define MPU6500_REG_I2C_MST_STATUS   0x36

i2c master status register

Definition at line 78 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV0_ADDR

#define MPU6500_REG_I2C_SLV0_ADDR   0x25

iic slave0 address register

Definition at line 80 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV0_CTRL

#define MPU6500_REG_I2C_SLV0_CTRL   0x27

iic slave0 ctrl register

Definition at line 82 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV0_DO

#define MPU6500_REG_I2C_SLV0_DO   0x63

iic slave0 do register

Definition at line 83 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV0_REG

#define MPU6500_REG_I2C_SLV0_REG   0x26

iic slave0 reg register

Definition at line 81 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV1_ADDR

#define MPU6500_REG_I2C_SLV1_ADDR   0x28

iic slave1 address register

Definition at line 84 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV1_CTRL

#define MPU6500_REG_I2C_SLV1_CTRL   0x2A

iic slave1 ctrl register

Definition at line 86 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV1_DO

#define MPU6500_REG_I2C_SLV1_DO   0x64

iic slave1 do register

Definition at line 87 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV1_REG

#define MPU6500_REG_I2C_SLV1_REG   0x29

iic slave1 reg register

Definition at line 85 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV2_ADDR

#define MPU6500_REG_I2C_SLV2_ADDR   0x2B

iic slave2 address register

Definition at line 88 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV2_CTRL

#define MPU6500_REG_I2C_SLV2_CTRL   0x2D

iic slave2 ctrl register

Definition at line 90 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV2_DO

#define MPU6500_REG_I2C_SLV2_DO   0x65

iic slave2 do register

Definition at line 91 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV2_REG

#define MPU6500_REG_I2C_SLV2_REG   0x2C

iic slave2 reg register

Definition at line 89 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV3_ADDR

#define MPU6500_REG_I2C_SLV3_ADDR   0x2E

iic slave3 address register

Definition at line 92 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV3_CTRL

#define MPU6500_REG_I2C_SLV3_CTRL   0x30

iic slave3 ctrl register

Definition at line 94 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV3_DO

#define MPU6500_REG_I2C_SLV3_DO   0x66

iic slave3 do register

Definition at line 95 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV3_REG

#define MPU6500_REG_I2C_SLV3_REG   0x2F

iic slave3 reg register

Definition at line 93 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV4_ADDR

#define MPU6500_REG_I2C_SLV4_ADDR   0x31

iic slave4 address register

Definition at line 96 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV4_CTRL

#define MPU6500_REG_I2C_SLV4_CTRL   0x34

iic slave4 ctrl register

Definition at line 98 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV4_DI

#define MPU6500_REG_I2C_SLV4_DI   0x35

iic slave4 di register

Definition at line 100 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV4_DO

#define MPU6500_REG_I2C_SLV4_DO   0x33

iic slave4 do register

Definition at line 99 of file driver_mpu6500.c.

◆ MPU6500_REG_I2C_SLV4_REG

#define MPU6500_REG_I2C_SLV4_REG   0x32

iic slave4 reg register

Definition at line 97 of file driver_mpu6500.c.

◆ MPU6500_REG_INT_ENABLE

#define MPU6500_REG_INT_ENABLE   0x38

interrupt enable register

Definition at line 103 of file driver_mpu6500.c.

◆ MPU6500_REG_INT_PIN_CFG

#define MPU6500_REG_INT_PIN_CFG   0x37

interrupt pin configure register

Definition at line 102 of file driver_mpu6500.c.

◆ MPU6500_REG_INT_STATUS

#define MPU6500_REG_INT_STATUS   0x3A

interrupt status register

Definition at line 104 of file driver_mpu6500.c.

◆ MPU6500_REG_LP_ACCEL_ODR

#define MPU6500_REG_LP_ACCEL_ODR   0x1E

low power accel odr register

Definition at line 73 of file driver_mpu6500.c.

◆ MPU6500_REG_MEM

#define MPU6500_REG_MEM   0x6F

memory register

Definition at line 125 of file driver_mpu6500.c.

◆ MPU6500_REG_MOT_DETECT_CTRL

#define MPU6500_REG_MOT_DETECT_CTRL   0x69

motion detect ctrl register

Definition at line 120 of file driver_mpu6500.c.

◆ MPU6500_REG_MOTION_DURATION

#define MPU6500_REG_MOTION_DURATION   0x20

motion duration register

Definition at line 75 of file driver_mpu6500.c.

◆ MPU6500_REG_PROGRAM_START

#define MPU6500_REG_PROGRAM_START   0x70

program start register

Definition at line 126 of file driver_mpu6500.c.

◆ MPU6500_REG_PWR_MGMT_1

#define MPU6500_REG_PWR_MGMT_1   0x6B

power management 1 register

Definition at line 122 of file driver_mpu6500.c.

◆ MPU6500_REG_PWR_MGMT_2

#define MPU6500_REG_PWR_MGMT_2   0x6C

power management 2 register

Definition at line 123 of file driver_mpu6500.c.

◆ MPU6500_REG_R_W

#define MPU6500_REG_R_W   0x74

fifo read write data register

Definition at line 129 of file driver_mpu6500.c.

◆ MPU6500_REG_SELF_TEST_X_ACCEL

#define MPU6500_REG_SELF_TEST_X_ACCEL   0x0D

accel self test x register

Definition at line 59 of file driver_mpu6500.c.

◆ MPU6500_REG_SELF_TEST_X_GYRO

#define MPU6500_REG_SELF_TEST_X_GYRO   0x00

chip register definition

gyro self test x register

Definition at line 56 of file driver_mpu6500.c.

◆ MPU6500_REG_SELF_TEST_Y_ACCEL

#define MPU6500_REG_SELF_TEST_Y_ACCEL   0x0E

accel self test y register

Definition at line 60 of file driver_mpu6500.c.

◆ MPU6500_REG_SELF_TEST_Y_GYRO

#define MPU6500_REG_SELF_TEST_Y_GYRO   0x01

gyro self test y register

Definition at line 57 of file driver_mpu6500.c.

◆ MPU6500_REG_SELF_TEST_Z_ACCEL

#define MPU6500_REG_SELF_TEST_Z_ACCEL   0x0F

accel self test z register

Definition at line 61 of file driver_mpu6500.c.

◆ MPU6500_REG_SELF_TEST_Z_GYRO

#define MPU6500_REG_SELF_TEST_Z_GYRO   0x02

gyro self test z register

Definition at line 58 of file driver_mpu6500.c.

◆ MPU6500_REG_SIGNAL_PATH_RESET

#define MPU6500_REG_SIGNAL_PATH_RESET   0x68

signal path reset register

Definition at line 119 of file driver_mpu6500.c.

◆ MPU6500_REG_SMPRT_DIV

#define MPU6500_REG_SMPRT_DIV   0x19

smprt div register

Definition at line 68 of file driver_mpu6500.c.

◆ MPU6500_REG_TEMP_OUT_H

#define MPU6500_REG_TEMP_OUT_H   0x41

temp high register

Definition at line 111 of file driver_mpu6500.c.

◆ MPU6500_REG_TEMP_OUT_L

#define MPU6500_REG_TEMP_OUT_L   0x42

temp low register

Definition at line 112 of file driver_mpu6500.c.

◆ MPU6500_REG_USER_CTRL

#define MPU6500_REG_USER_CTRL   0x6A

user ctrl register

Definition at line 121 of file driver_mpu6500.c.

◆ MPU6500_REG_WHO_AM_I

#define MPU6500_REG_WHO_AM_I   0x75

who am I register

Definition at line 130 of file driver_mpu6500.c.

◆ MPU6500_REG_WOM_THR

#define MPU6500_REG_WOM_THR   0x1F

wom threshold register

Definition at line 74 of file driver_mpu6500.c.

◆ MPU6500_REG_XA_OFFSET_H

#define MPU6500_REG_XA_OFFSET_H   0x77

accel offset x high register

Definition at line 131 of file driver_mpu6500.c.

◆ MPU6500_REG_XA_OFFSET_L

#define MPU6500_REG_XA_OFFSET_L   0x78

accel offset x low register

Definition at line 132 of file driver_mpu6500.c.

◆ MPU6500_REG_XG_OFFSET_H

#define MPU6500_REG_XG_OFFSET_H   0x13

gyro offset x high register

Definition at line 62 of file driver_mpu6500.c.

◆ MPU6500_REG_XG_OFFSET_L

#define MPU6500_REG_XG_OFFSET_L   0x14

gyro offset x low register

Definition at line 63 of file driver_mpu6500.c.

◆ MPU6500_REG_YA_OFFSET_H

#define MPU6500_REG_YA_OFFSET_H   0x7A

accel offset y high register

Definition at line 133 of file driver_mpu6500.c.

◆ MPU6500_REG_YA_OFFSET_L

#define MPU6500_REG_YA_OFFSET_L   0x7B

accel offset y low register

Definition at line 134 of file driver_mpu6500.c.

◆ MPU6500_REG_YG_OFFSET_H

#define MPU6500_REG_YG_OFFSET_H   0x15

gyro offset y high register

Definition at line 64 of file driver_mpu6500.c.

◆ MPU6500_REG_YG_OFFSET_L

#define MPU6500_REG_YG_OFFSET_L   0x16

gyro offset y low register

Definition at line 65 of file driver_mpu6500.c.

◆ MPU6500_REG_ZA_OFFSET_H

#define MPU6500_REG_ZA_OFFSET_H   0x7D

accel offset z high register

Definition at line 135 of file driver_mpu6500.c.

◆ MPU6500_REG_ZA_OFFSET_L

#define MPU6500_REG_ZA_OFFSET_L   0x7E

accel offset z low register

Definition at line 136 of file driver_mpu6500.c.

◆ MPU6500_REG_ZG_OFFSET_H

#define MPU6500_REG_ZG_OFFSET_H   0x17

gyro offset z high register

Definition at line 66 of file driver_mpu6500.c.

◆ MPU6500_REG_ZG_OFFSET_L

#define MPU6500_REG_ZG_OFFSET_L   0x18

gyro offset z low register

Definition at line 67 of file driver_mpu6500.c.

◆ SUPPLY_VOLTAGE_MAX

#define SUPPLY_VOLTAGE_MAX   3.45f

chip max supply voltage

Definition at line 47 of file driver_mpu6500.c.

◆ SUPPLY_VOLTAGE_MIN

#define SUPPLY_VOLTAGE_MIN   1.71f

chip min supply voltage

Definition at line 46 of file driver_mpu6500.c.

◆ TEMPERATURE_MAX

#define TEMPERATURE_MAX   85.0f

chip max operating temperature

Definition at line 50 of file driver_mpu6500.c.

◆ TEMPERATURE_MIN

#define TEMPERATURE_MIN   -40.0f

chip min operating temperature

Definition at line 49 of file driver_mpu6500.c.