MPU9250
Datasheet
MPU9250 Datasheet
MPU9250 Registermap
計測可能な値
MPU-9250では、MPU-9250とAK8963のCombo Memsである。MPU-9250とAK8963は別々のSlave Addressが割り振られているため、それぞれにアクセスする。
種類 |
概要 |
Gyroscope |
|
Accelerometer |
|
Magnetometer |
|
Slave address
センサー |
Slave address |
用途 |
MPU9250 |
0x68 |
3軸加速度、ジャイロ |
AK8963 |
0x0C |
コンパス |
(MPU9250)Register map(Selftest)
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x00 | SELF_TEST_X_GYRO | R/W | xg_st_data [7:0] |
| 0x01 | SELF_TEST_Y_GYRO | R/W | yg_st_data [7:0] |
| 0x02 | SELF_TEST_Z_GYRO | R/W | zg_st_data [7:0] |
| 0x0D | SELF_TEST_X_ACCEL | R/W | XA_ST_DATA [7:0] |
| 0x0E | SELF_TEST_Y_ACCEL | R/W | YA_ST_DATA [7:0] |
| 0x0F | SELF_TEST_Z_ACCEL | R/W | ZA_ST_DATA [7:0] |
| 0x13 | XG_OFFSET_H | R/W | X_OFFS_USR [15:8] |
| 0x14 | XG_OFFSET_L | R/W | X_OFFS_USR [7:0] |
| 0x21 | YG_OFFSET_H | R/W | Y_OFFS_USR [15:8] |
| 0x22 | YG_OFFSET_L | R/W | Y_OFFS_USR [7:0] |
| 0x17 | ZG_OFFSET_H | R/W | Z_OFFS_USR [15:8] |
| 0x18 | ZG_OFFSET_L | R/W | Z_OFFS_USR [7:0] |
| 0x19 | SMPLRT_DIV | R/W | SMPLRT_DIV[7:0] |
(MPU9250)Register map(Configuration)
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x1A | CONFIG | R/W | Config|
| 0x1B | GYRO_CONFIG | R/W | GyroscopeのConfig|
| 0x1C | ACCEL_CONFIG | R/W | AccelerometerのConfig |
| 0x1D | ACCEL_CONFIG2 | R/W | AccelerometerのConfig |
| 0x1E | LP_ACCEL_ODR | R/W | Lposc_clksel |
| 0x1F | WOM_THR | R/W | WOM_Threshold [7:0] |
(MPU9250)Register map(Accelerometer)
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x3B | ACCEL_XOUT_H | R | ACCEL_XOUT_H[15:8] |
| 0x3C | ACCEL_XOUT_L | R | ACCEL_XOUT_L[7:0] |
| 0x3D | ACCEL_YOUT_H | R | ACCEL_YOUT_H[15:8] |
| 0x3E | ACCEL_YOUT_L | R | ACCEL_YOUT_L[7:0] |
| 0x3F | ACCEL_ZOUT_H | R | ACCEL_ZOUT_H[15:8] |
| 0x40 | ACCEL_ZOUT_L | R | ACCEL_ZOUT_L[7:0] |
(MPU9250)Register map(Temperature)
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x41 | TEMP_OUT_H | R | TEMP_OUT_H[15:8] |
| 0x42 | TEMP_OUT_L | R | TEMP_OUT_L[7:0] |
(MPU9250)Register map(Gyroscope)
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x43 | GYRO_XOUT_H | R | GYRO_XOUT_H[15:8] |
| 0x44 | GYRO_XOUT_L | R | GYRO_XOUT_L[7:0] |
| 0x45 | GYRO_YOUT_H | R | GYRO_YOUT_H[15:8] |
| 0x46 | GYRO_YOUT_L | R | GYRO_YOUT_L[7:0] |
| 0x47 | GYRO_ZOUT_H | R | GYRO_ZOUT_H[15:8] |
| 0x48 | GYRO_ZOUT_L | R | GYRO_ZOUT_L[7:0] |
(MPU9250)Register map(Etc)
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x75 | WHO_AM_I | R | WHOAMI[7:0] |
| 0x6B | PWR_MGMT_1 | R | Power Management|
(AK8963)Register map
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x00 | WIA | R | Device ID |
| 0x01 | INFO | R | Information|
| 0x02 | ST1 | R | Status 1|
| 0x03 | HXL | R | Measurement X-axis data |
| 0x04 | HXH | R | Measurement X-axis data |
| 0x05 | HYL | R | Measurement Y-axis data |
| 0x06 | HYH | R | Measurement Y-axis data |
| 0x07 | HZL | R | Measurement Z-axis data |
| 0x08 | HZH | R | Measurement Z-axis data |
| 0x90 | ST2 | R | Status 2
| 0x0A | CNTL | RW | Control |
| 0x0C | ASTC | RW | Self-test |
| 0x10 | ASAX | R | X-axis sensitivity adjustment value |
| 0x11 | ASAY | R | Y-axis sensitivity adjustment value |
| 0x12 | ASAZ | R | Z-axis sensitivity adjustment value |
(MPU9250)Who_am_i
(AK8963)Who_am_i
(MPU9250)PowerOn
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
H_RESET |
SLEEP |
CYCLE |
GYRO_STANDBY |
PD_PTAT |
CLKSEL2 |
CLKSEL1 |
CLKSEL0 |
(MPU9250)H_RESET
(MPU9250)SLEEP
(MPU9250)CYCLE
Bit |
意味 |
0 |
|
1 |
LP_ACCEL_ODR registerで定義された周期でSleepとデータ取得を繰り返す |
(MPU9250)GYRO_STANDBY
(MPU9250)PD_PTAT
(MPU9250)CLKSEL
Bit |
意味 |
000 |
Internal 20MHz oscillator |
001 |
Auto selects the best available clock source |
010 |
Auto selects the best available clock source |
011 |
Auto selects the best available clock source |
100 |
Auto selects the best available clock source |
101 |
Auto selects the best available clock source |
110 |
Internal 20MHz oscillator |
111 |
Stops the clock and keeps timing generator in reset |
arduino
#define MPU9250_POWER_MNG1_REG 0x6B
#define MPU9250_POWER_MNG1_REG 0x6C
void powerOn()
{
// 実行しなくてもDefaultでOnになっている
writeI2c(MPU9250_POWER_MNG1_REG, 0x00);
writeI2c(MPU9250_POWER_MNG2_REG, 0x00);
}
(MPU9250)Configuration
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
RESV |
FIFO_MODE |
EXT_SYNC_SET2 |
EXT_SYNC_SET1 |
EXT_SYNC_SET0 |
DLPF_CFG2 |
DLPF_CFG1 |
DLPF_CFG0 |
(MPU9250)EXT_SYNC_SET
Bit |
意味 |
000 |
function disabled |
001 |
TEMP_OUT_L[0] |
010 |
GYRO_XOUT_L[0] |
011 |
GYRO_YOUT_L[0] |
100 |
GYRO_ZOUT_L[0] |
101 |
ACCEL_XOUT_L[0] |
110 |
ACCEL_YOUT_L[0] |
111 |
ACCEL_ZOUT_L[0] |
(MPU9250)DLPF_CFG
FCHOICE1 |
FCHOICE2 |
DLPF_CFG |
Gyroscope Bandwidth(Hz) |
Gyroscope Delay(ms) |
Gyroscope Fs(kHz) |
Temperature Bandwidth(Hz) |
Temperature Delay(ms) |
x |
0 |
x |
8800 |
0.064 |
32 |
4000 |
0.04 |
0 |
1 |
x |
3600 |
0.11 |
32 |
4000 |
0.04 |
1 |
1 |
0 |
250 |
0.97 |
8 |
4000 |
0.04 |
1 |
1 |
1 |
184 |
2.9 |
1 |
188 |
1.9 |
1 |
1 |
2 |
92 |
3.9 |
1 |
98 |
2.8 |
1 |
1 |
3 |
41 |
5.9 |
1 |
42 |
4.8 |
1 |
1 |
4 |
20 |
9.9 |
1 |
20 |
8.3 |
1 |
1 |
5 |
10 |
17.85 |
1 |
10 |
13.4 |
1 |
1 |
6 |
5 |
33.48 |
1 |
5 |
18.6 |
1 |
1 |
7 |
3600 |
0.17 |
8 |
4000 |
0.04 |
(MPU9250)Gyroscope Configuration
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
XGYRO_Cten |
YGYRO_Cten |
ZGYRO_Cten |
GYRO_FS_SEL1 |
GYRO_FS_SEL0 |
- |
Fchoice_b1 |
Fchoice_b2 |
(MPU9250)GYRO_FS_SEL
Bit |
意味 |
00 |
+250dps |
01 |
+500 dps |
10 |
+1000 dps |
11 |
+2000 dps |
(MPU9250)Accelerometer Configuration
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
ax_st_en |
ay_st_en |
az_st_en |
ACCEL_FS_SEL1 |
ACCEL_FS_SEL0 |
RESV |
RESV |
RESV |
(MPU9250)ACCEL_FS_SEL
Bit |
意味 |
00 |
±2g |
01 |
±4g |
10 |
±8g |
11 |
±16g |
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
RESV |
RESV |
RESV |
RESV |
accel_fchoice_b |
A_DLPFCFG2 |
A_DLPFCFG1 |
A_DLPFCFG0 |
ACCEL_FCHOICE |
A_DLPF_CFG |
Output Bandwidth (Hz) |
Output Delay (ms) |
Output Noise
Density (ug/rtHz) |
Rate (kHz) |
0 |
X |
1.13K |
0.75 |
250 |
4 |
1 |
0 |
460 |
1.94 |
250 |
1 |
1 |
1 |
184 |
5.80 |
250 |
1 |
1 |
2 |
92 |
7.80 |
250 |
1 |
1 |
3 |
41 |
11.80 |
250 |
1 |
1 |
4 |
20 |
19.80 |
250 |
1 |
1 |
5 |
10 |
35.70 |
250 |
1 |
1 |
6 |
5 |
66.96 |
250 |
1 |
1 |
7 |
460 |
1.94 |
250 |
1 |
(AK8963)Control
Bit7 |
Bit6 |
Bit5 |
Bit4 |
Bit3 |
Bit2 |
Bit1 |
Bit0 |
0 |
0 |
0 |
BIT |
MODE3 |
MODE2 |
MODE1 |
MODE0 |
(AK8963)MODE
Bit |
意味 |
0000 |
Power-down mode |
0001 |
Single measurement mode |
0010 |
Continuous measurement mode 1 |
0110 |
Continuous measurement mode 2 |
0100 |
External trigger measurement mode |
1000 |
Self-test mode |
1111 |
Fuse ROM access mode |
(AK8963)BIT
Bit |
意味 |
0 |
14-bit output |
1 |
16-bit output |
(MPU9250)Read Accelerometer
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x3B | ACCEL_XOUT_H | R | ACCEL_XOUT_H[15:8] |
| 0x3C | ACCEL_XOUT_L | R | ACCEL_XOUT_L[7:0] |
| 0x3D | ACCEL_YOUT_H | R | ACCEL_YOUT_H[15:8] |
| 0x3E | ACCEL_YOUT_L | R | ACCEL_YOUT_L[7:0] |
| 0x3F | ACCEL_ZOUT_H | R | ACCEL_ZOUT_H[15:8] |
| 0x40 | ACCEL_ZOUT_L | R | ACCEL_ZOUT_L[7:0] |
(MPU9250)Read Temperature
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x41 | TEMP_OUT_H | R | TEMP_OUT_H[15:8] |
| 0x42 | TEMP_OUT_L | R | TEMP_OUT_L[7:0] |
(MPU9250)Read Gyroscope
| Address | Name | Type | 値 |
|:--|:--|:--|:--|:--|
| 0x43 | GYRO_XOUT_H | R | GYRO_XOUT_H[15:8] |
| 0x44 | GYRO_XOUT_L | R | GYRO_XOUT_L[7:0] |
| 0x45 | GYRO_YOUT_H | R | GYRO_YOUT_H[15:8] |
| 0x46 | GYRO_YOUT_L | R | GYRO_YOUT_L[7:0] |
| 0x47 | GYRO_ZOUT_H | R | GYRO_ZOUT_H[15:8] |
| 0x48 | GYRO_ZOUT_L | R | GYRO_ZOUT_L[7:0] |
(AK8963)