|
|
|
@ -454,6 +454,7 @@ bool AP_BoardConfig::spi_check_register(const char *devname, uint8_t regnum, uin
@@ -454,6 +454,7 @@ bool AP_BoardConfig::spi_check_register(const char *devname, uint8_t regnum, uin
|
|
|
|
|
#define MPU_WHOAMI_MPU60X0 0x68 |
|
|
|
|
#define MPU_WHOAMI_MPU9250 0x71 |
|
|
|
|
#define MPU_WHOAMI_ICM20608 0xaf |
|
|
|
|
#define MPU_WHOAMI_ICM20602 0x12 |
|
|
|
|
|
|
|
|
|
#define LSMREG_WHOAMI 0x0f |
|
|
|
|
#define LSM_WHOAMI_LSM303D 0x49 |
|
|
|
@ -476,12 +477,14 @@ void AP_BoardConfig::px4_autodetect(void)
@@ -476,12 +477,14 @@ void AP_BoardConfig::px4_autodetect(void)
|
|
|
|
|
#elif defined(CONFIG_ARCH_BOARD_PX4FMU_V2) |
|
|
|
|
if ((spi_check_register(HAL_INS_MPU60x0_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU60X0) || |
|
|
|
|
spi_check_register(HAL_INS_MPU9250_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU9250) || |
|
|
|
|
spi_check_register(HAL_INS_ICM20608_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608)) && |
|
|
|
|
spi_check_register(HAL_INS_ICM20608_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) || |
|
|
|
|
spi_check_register(HAL_INS_ICM20608_EXT_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20602)) && |
|
|
|
|
spi_check_register(HAL_INS_LSM9DS0_EXT_A_NAME, LSMREG_WHOAMI, LSM_WHOAMI_LSM303D)) { |
|
|
|
|
// Pixhawk2 has LSM303D and MPUxxxx on external bus
|
|
|
|
|
px4.board_type.set(PX4_BOARD_PIXHAWK2); |
|
|
|
|
hal.console->printf("Detected PIXHAWK2\n"); |
|
|
|
|
} else if (spi_check_register(HAL_INS_ICM20608_AM_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) && |
|
|
|
|
} else if ((spi_check_register(HAL_INS_ICM20608_AM_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) || |
|
|
|
|
spi_check_register(HAL_INS_ICM20608_AM_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20602)) && |
|
|
|
|
spi_check_register(HAL_INS_MPU9250_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU9250)) { |
|
|
|
|
// PHMINI has an ICM20608 and MPU9250 on sensor bus
|
|
|
|
|
px4.board_type.set(PX4_BOARD_PHMINI); |
|
|
|
@ -489,6 +492,7 @@ void AP_BoardConfig::px4_autodetect(void)
@@ -489,6 +492,7 @@ void AP_BoardConfig::px4_autodetect(void)
|
|
|
|
|
} else if (spi_check_register(HAL_INS_LSM9DS0_A_NAME, LSMREG_WHOAMI, LSM_WHOAMI_LSM303D) && |
|
|
|
|
(spi_check_register(HAL_INS_MPU60x0_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU60X0) || |
|
|
|
|
spi_check_register(HAL_INS_ICM20608_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20608) || |
|
|
|
|
spi_check_register(HAL_INS_ICM20608_NAME, MPUREG_WHOAMI, MPU_WHOAMI_ICM20602) || |
|
|
|
|
spi_check_register(HAL_INS_MPU9250_NAME, MPUREG_WHOAMI, MPU_WHOAMI_MPU9250))) { |
|
|
|
|
// classic or upgraded Pixhawk1
|
|
|
|
|
px4.board_type.set(PX4_BOARD_PIXHAWK); |
|
|
|
|