AP_InertialSensor: add support to MPU6500

Just like and MPU9250 without mag and with different WHOAMI register.
This commit is contained in:
Lucas De Marchi 2017-02-06 15:47:39 -08:00 committed by Andrew Tridgell
parent 8002df6e45
commit 2d50eb312c
2 changed files with 8 additions and 0 deletions

View File

@ -218,6 +218,7 @@ extern const AP_HAL::HAL& hal;
// WHOAMI values
#define MPU_WHOAMI_6000 0x68
#define MPU_WHOAMI_20608 0xaf
#define MPU_WHOAMI_6500 0x70
#define MPU_WHOAMI_MPU9250 0x71
#define MPU_WHOAMI_MPU9255 0x73
@ -330,6 +331,8 @@ AP_InertialSensor_Backend *AP_InertialSensor_Invensense::probe(AP_InertialSensor
}
if (sensor->_mpu_type == Invensense_MPU9250) {
sensor->_id = HAL_INS_MPU9250_SPI;
} else if (sensor->_mpu_type == Invensense_MPU6500) {
sensor->_id = HAL_INS_MPU6500;
} else {
sensor->_id = HAL_INS_MPU60XX_SPI;
}
@ -394,6 +397,7 @@ void AP_InertialSensor_Invensense::start()
adev = DEVTYPE_ACC_MPU9250;
break;
case Invensense_MPU6000:
case Invensense_MPU6500:
case Invensense_ICM20608:
default:
gdev = DEVTYPE_GYR_MPU6000;
@ -810,6 +814,9 @@ bool AP_InertialSensor_Invensense::_check_whoami(void)
case MPU_WHOAMI_6000:
_mpu_type = Invensense_MPU6000;
return true;
case MPU_WHOAMI_6500:
_mpu_type = Invensense_MPU6500;
return true;
case MPU_WHOAMI_MPU9250:
case MPU_WHOAMI_MPU9255:
_mpu_type = Invensense_MPU9250;

View File

@ -58,6 +58,7 @@ public:
enum Invensense_Type {
Invensense_MPU6000=0,
Invensense_MPU6500,
Invensense_MPU9250,
Invensense_ICM20608,
};