MPU-6500 accel-only low power mode

By longline , 11 August 2014

Hello.
When I configure the MPU-6500 into accelerometer-only low power mode (continuous data output), I get different data from when it operates in normal mode. I imagine that there is a setting that I'm missing, but I'm not sure what it is. I'm seeing incorrect data in low power mode, though as I increase the output data rate, the z-axis gets closer to the correct data, for whatever that's worth.

For example, for a device at rest:


  • Normal mode output: (-402, 252, 3890) at all data rates.

  • LPM output @31.25Hz: (143, -164, 336)

  • LPM output @62.5Hz: (279, -318, 656)

  • LPM output @125Hz: (520, -592, 1241)

  • LPM output @250Hz: (886, -1010, 2198)

  • LPM output @500Hz: (1147, -1325, 3255)


Any suggestions would be greatly appreciated.

Here are the register values that are common to both the normal and the low-power mode configurations:

0x19 SMPLRT_DIV 0x07
SMPLRT_DIV 0x07 (divide 1 KHz/8 = 125 Hz)
0x1A CONFIG 0x03
DLPF_CFG 0x03 (41Hz bandwidth gyro LPF)
EXT_SYNC_SET 0x00 (disabled)
FIFO_MODE 0x00 (overwrite fifo)
0x1B GYRO_CONFIG 0x18
FCHOICE_B 00 (no filter bypass)
reserved 0
GYRO_FS_SEL b11 (2000dps)
ZG_ST 0
YG_ST 0
XG_ST 0
0x1C ACCEL_CONFIG 0x10
reserved 000
ACCEL_FS_SEL 01 (4g)
ZA_ST 0
YA_ST 0
XA_ST 0
0x1D ACCEL_CONFIG_2 0x03 0b00000011
A_DLPF_CFG 011 (41 Hz)
ACCEL_FCHOICE_B 0 (no filter bypass)
reserved 0000
0x1E LP_ACCEL_ODR 0x09
LPOSC_CLKSEL 1001 (125 Hz)
reserved 0000
0x1F WOM_THR 0x01
WOM_THRESHOLD 0x01 (4 mg)
0x37 INT_PIN_CFG 0x00
ACTL 0 (INT active high)
OPEN 0 (push-pull)
LATCH_INT_EN 0 (50 uS pulse)
INT_ANYRD_2CLEAR 0 (cleared on INT_STATUS read)
ACTL_FSYNC 0 (FSYNC active high)
FSYNC_INT_MODE_EN 0 (disable FSYNC)
BYPASS_EN 0 (no I2C_MASTER bypass)
0x69 ACCEL_INTEL_CTRL 0xC0
ACCEL_INTEL_MODE 1 (compare current to previous)
ACCEL_INTEL_EN 1 (enable wake-on-motion)


In normal mode:

0x6B PWR_MGMT_1 0x00
DEVICE_RESET 0
SLEEP 0
CYCLE 0 (no duty cycle)
GYRO_STANDBY 0
TEMP_DIS 0 (enable temperature sensor)
CLKSEL 0 (internal 20 MHz)
0x6C PWR_MGMT_2 0x07
LP_WAKE_CTRL 0 (not using MPU-6050 compatibility mode)
DISABLE_XA 0
DISABLE_YA 0
DISABLE_ZA 0
DISABLE_XG 1
DISABLE_YG 1
DISABLE_ZG 1


In low-power mode:

0x6B PWR_MGMT_1 0x28
DEVICE_RESET 0
SLEEP 0
CYCLE 1 (duty cycle as directed by LP_ACCEL_ODR)
GYRO_STANDBY 0
TEMP_DIS 1 (disable temperature sensor)
CLKSEL 0 (internal 20 MHz)
0x6C PWR_MGMT_2 0x07
LP_WAKE_CTRL 0 (not using MPU-6050 compatibility mode)
DISABLE_XA 0
DISABLE_YA 0
DISABLE_ZA 0
DISABLE_XG 1
DISABLE_YG 1
DISABLE_ZG 1
phpbb Topic ID
16461