/*
$License:
Copyright (C) 2010 InvenSense Corporation, All Rights Reserved.
- $
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+ $
*/
/**
/*==== M_HW REGISTER SET ====*/
enum {
- MPUREG_XG_OFFS_TC = 0,
- MPUREG_YG_OFFS_TC,
- MPUREG_ZG_OFFS_TC,
- MPUREG_X_FINE_GAIN,
- MPUREG_Y_FINE_GAIN,
- MPUREG_Z_FINE_GAIN,
- MPUREG_XA_OFFS_H,
- MPUREG_XA_OFFS_L_TC,
- MPUREG_YA_OFFS_H,
- MPUREG_YA_OFFS_L_TC,
- MPUREG_ZA_OFFS_H,
+ MPUREG_XG_OFFS_TC = 0, /* 0x00 */
+ MPUREG_YG_OFFS_TC, /* 0x00 */
+ MPUREG_ZG_OFFS_TC, /* 0x00 */
+ MPUREG_X_FINE_GAIN, /* 0x00 */
+ MPUREG_Y_FINE_GAIN, /* 0x00 */
+ MPUREG_Z_FINE_GAIN, /* 0x00 */
+ MPUREG_XA_OFFS_H, /* 0x00 */
+ MPUREG_XA_OFFS_L_TC, /* 0x00 */
+ MPUREG_YA_OFFS_H, /* 0x00 */
+ MPUREG_YA_OFFS_L_TC, /* 0x00 */
+ MPUREG_ZA_OFFS_H, /* 0x00 */
MPUREG_ZA_OFFS_L_TC, /* 0xB */
- MPUREG_0C_RSVD,
- MPUREG_0D_RSVD,
- MPUREG_0E_RSVD,
- MPUREG_0F_RSVD,
- MPUREG_10_RSVD,
- MPUREG_11_RSVD,
- MPUREG_12_RSVD,
- MPUREG_XG_OFFS_USRH,
- MPUREG_XG_OFFS_USRL,
- MPUREG_YG_OFFS_USRH,
- MPUREG_YG_OFFS_USRL,
- MPUREG_ZG_OFFS_USRH,
- MPUREG_ZG_OFFS_USRL,
+ MPUREG_0C_RSVD, /* 0x00 */
+ MPUREG_0D_RSVD, /* 0x00 */
+ MPUREG_0E_RSVD, /* 0x00 */
+ MPUREG_0F_RSVD, /* 0x00 */
+ MPUREG_10_RSVD, /* 0x00 */
+ MPUREG_11_RSVD, /* 0x00 */
+ MPUREG_12_RSVD, /* 0x00 */
+ MPUREG_XG_OFFS_USRH, /* 0x00 */
+ MPUREG_XG_OFFS_USRL, /* 0x00 */
+ MPUREG_YG_OFFS_USRH, /* 0x00 */
+ MPUREG_YG_OFFS_USRL, /* 0x00 */
+ MPUREG_ZG_OFFS_USRH, /* 0x00 */
+ MPUREG_ZG_OFFS_USRL, /* 0x00 */
MPUREG_SMPLRT_DIV, /* 0x19 */
MPUREG_CONFIG, /* 0x1A ==> DLPF_FS_SYNC */
- MPUREG_GYRO_CONFIG,
- MPUREG_ACCEL_CONFIG,
- MPUREG_ACCEL_FF_THR,
- MPUREG_ACCEL_FF_DUR,
- MPUREG_ACCEL_MOT_THR,
- MPUREG_ACCEL_MOT_DUR,
- MPUREG_ACCEL_ZRMOT_THR,
- MPUREG_ACCEL_ZRMOT_DUR,
+ MPUREG_GYRO_CONFIG, /* 0x00 */
+ MPUREG_ACCEL_CONFIG, /* 0x00 */
+ MPUREG_ACCEL_FF_THR, /* 0x00 */
+ MPUREG_ACCEL_FF_DUR, /* 0x00 */
+ MPUREG_ACCEL_MOT_THR, /* 0x00 */
+ MPUREG_ACCEL_MOT_DUR, /* 0x00 */
+ MPUREG_ACCEL_ZRMOT_THR, /* 0x00 */
+ MPUREG_ACCEL_ZRMOT_DUR, /* 0x00 */
MPUREG_FIFO_EN, /* 0x23 */
- MPUREG_I2C_MST_CTRL,
+ MPUREG_I2C_MST_CTRL, /* 0x00 */
MPUREG_I2C_SLV0_ADDR, /* 0x25 */
- MPUREG_I2C_SLV0_REG,
- MPUREG_I2C_SLV0_CTRL,
+ MPUREG_I2C_SLV0_REG, /* 0x00 */
+ MPUREG_I2C_SLV0_CTRL, /* 0x00 */
MPUREG_I2C_SLV1_ADDR, /* 0x28 */
- MPUREG_I2C_SLV1_REG_PASSWORD,
- MPUREG_I2C_SLV1_CTRL,
+ MPUREG_I2C_SLV1_REG_PASSWORD, /* 0x00 */
+ MPUREG_I2C_SLV1_CTRL, /* 0x00 */
MPUREG_I2C_SLV2_ADDR, /* 0x2B */
- MPUREG_I2C_SLV2_REG,
- MPUREG_I2C_SLV2_CTRL,
+ MPUREG_I2C_SLV2_REG, /* 0x00 */
+ MPUREG_I2C_SLV2_CTRL, /* 0x00 */
MPUREG_I2C_SLV3_ADDR, /* 0x2E */
- MPUREG_I2C_SLV3_REG,
- MPUREG_I2C_SLV3_CTRL,
+ MPUREG_I2C_SLV3_REG, /* 0x00 */
+ MPUREG_I2C_SLV3_CTRL, /* 0x00 */
MPUREG_I2C_SLV4_ADDR, /* 0x31 */
- MPUREG_I2C_SLV4_REG,
- MPUREG_I2C_SLV4_DO,
- MPUREG_I2C_SLV4_CTRL,
- MPUREG_I2C_SLV4_DI,
+ MPUREG_I2C_SLV4_REG, /* 0x00 */
+ MPUREG_I2C_SLV4_DO, /* 0x00 */
+ MPUREG_I2C_SLV4_CTRL, /* 0x00 */
+ MPUREG_I2C_SLV4_DI, /* 0x00 */
MPUREG_I2C_MST_STATUS, /* 0x36 */
MPUREG_INT_PIN_CFG, /* 0x37 ==> -* INT_CFG */
MPUREG_INT_ENABLE, /* 0x38 ==> / */
MPUREG_DMP_INT_STATUS, /* 0x39 */
MPUREG_INT_STATUS, /* 0x3A */
MPUREG_ACCEL_XOUT_H, /* 0x3B */
- MPUREG_ACCEL_XOUT_L,
- MPUREG_ACCEL_YOUT_H,
- MPUREG_ACCEL_YOUT_L,
- MPUREG_ACCEL_ZOUT_H,
- MPUREG_ACCEL_ZOUT_L,
+ MPUREG_ACCEL_XOUT_L, /* 0x00 */
+ MPUREG_ACCEL_YOUT_H, /* 0x00 */
+ MPUREG_ACCEL_YOUT_L, /* 0x00 */
+ MPUREG_ACCEL_ZOUT_H, /* 0x00 */
+ MPUREG_ACCEL_ZOUT_L, /* 0x00 */
MPUREG_TEMP_OUT_H, /* 0x41 */
- MPUREG_TEMP_OUT_L,
+ MPUREG_TEMP_OUT_L, /* 0x00 */
MPUREG_GYRO_XOUT_H, /* 0x43 */
- MPUREG_GYRO_XOUT_L,
- MPUREG_GYRO_YOUT_H,
- MPUREG_GYRO_YOUT_L,
- MPUREG_GYRO_ZOUT_H,
- MPUREG_GYRO_ZOUT_L,
+ MPUREG_GYRO_XOUT_L, /* 0x00 */
+ MPUREG_GYRO_YOUT_H, /* 0x00 */
+ MPUREG_GYRO_YOUT_L, /* 0x00 */
+ MPUREG_GYRO_ZOUT_H, /* 0x00 */
+ MPUREG_GYRO_ZOUT_L, /* 0x00 */
MPUREG_EXT_SLV_SENS_DATA_00, /* 0x49 */
- MPUREG_EXT_SLV_SENS_DATA_01,
- MPUREG_EXT_SLV_SENS_DATA_02,
- MPUREG_EXT_SLV_SENS_DATA_03,
- MPUREG_EXT_SLV_SENS_DATA_04,
- MPUREG_EXT_SLV_SENS_DATA_05,
+ MPUREG_EXT_SLV_SENS_DATA_01, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_02, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_03, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_04, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_05, /* 0x00 */
MPUREG_EXT_SLV_SENS_DATA_06, /* 0x4F */
- MPUREG_EXT_SLV_SENS_DATA_07,
- MPUREG_EXT_SLV_SENS_DATA_08,
- MPUREG_EXT_SLV_SENS_DATA_09,
- MPUREG_EXT_SLV_SENS_DATA_10,
- MPUREG_EXT_SLV_SENS_DATA_11,
+ MPUREG_EXT_SLV_SENS_DATA_07, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_08, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_09, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_10, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_11, /* 0x00 */
MPUREG_EXT_SLV_SENS_DATA_12, /* 0x55 */
- MPUREG_EXT_SLV_SENS_DATA_13,
- MPUREG_EXT_SLV_SENS_DATA_14,
- MPUREG_EXT_SLV_SENS_DATA_15,
- MPUREG_EXT_SLV_SENS_DATA_16,
- MPUREG_EXT_SLV_SENS_DATA_17,
+ MPUREG_EXT_SLV_SENS_DATA_13, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_14, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_15, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_16, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_17, /* 0x00 */
MPUREG_EXT_SLV_SENS_DATA_18, /* 0x5B */
- MPUREG_EXT_SLV_SENS_DATA_19,
- MPUREG_EXT_SLV_SENS_DATA_20,
- MPUREG_EXT_SLV_SENS_DATA_21,
- MPUREG_EXT_SLV_SENS_DATA_22,
- MPUREG_EXT_SLV_SENS_DATA_23,
+ MPUREG_EXT_SLV_SENS_DATA_19, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_20, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_21, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_22, /* 0x00 */
+ MPUREG_EXT_SLV_SENS_DATA_23, /* 0x00 */
ACCEL_INTEL_STATUS, /* 0x61 */
- MPUREG_62_RSVD,
- MPUREG_63_RSVD,
- MPUREG_64_RSVD,
- MPUREG_65_RSVD,
- MPUREG_66_RSVD,
- MPUREG_67_RSVD,
+ MPUREG_62_RSVD, /* 0x00 */
+ MPUREG_63_RSVD, /* 0x00 */
+ MPUREG_64_RSVD, /* 0x00 */
+ MPUREG_65_RSVD, /* 0x00 */
+ MPUREG_66_RSVD, /* 0x00 */
+ MPUREG_67_RSVD, /* 0x00 */
SIGNAL_PATH_RESET, /* 0x68 */
ACCEL_INTEL_CTRL, /* 0x69 */
MPUREG_USER_CTRL, /* 0x6A */
MPUREG_PWR_MGMT_1, /* 0x6B */
- MPUREG_PWR_MGMT_2,
+ MPUREG_PWR_MGMT_2, /* 0x00 */
MPUREG_BANK_SEL, /* 0x6D */
MPUREG_MEM_START_ADDR, /* 0x6E */
MPUREG_MEM_R_W, /* 0x6F */
- MPUREG_PRGM_STRT_ADDRH,
- MPUREG_PRGM_STRT_ADDRL,
+ MPUREG_PRGM_STRT_ADDRH, /* 0x00 */
+ MPUREG_PRGM_STRT_ADDRL, /* 0x00 */
MPUREG_FIFO_COUNTH, /* 0x72 */
- MPUREG_FIFO_COUNTL,
+ MPUREG_FIFO_COUNTL, /* 0x00 */
MPUREG_FIFO_R_W, /* 0x74 */
MPUREG_WHOAMI, /* 0x75,117 */
#define BIT_STBY_ZG 0x01
/* although it has 6, this refers to the gyros */
-#define MPU_NUM_AXES (3)
+#define MPU_NUM_AXES (3)
+
+#define ACCEL_MOT_THR_LSB (32) /* mg */
+#define ACCEL_MOT_DUR_LSB (1)
+#define ACCEL_ZRMOT_THR_LSB_CONVERSION(mg) ((mg *1000)/255)
+#define ACCEL_ZRMOT_DUR_LSB (64)
/*----------------------------------------------------------------------------*/
/*---- Alternative names to take care of conflicts with current mpu3050.h ----*/