AP_HAL_ChibiOS: add replacement IMU detection on CubeOrangePlus

This commit is contained in:
bugobliterator 2022-10-21 12:34:41 +05:30 committed by Andrew Tridgell
parent 2a4921c139
commit bc07e76f83
1 changed files with 40 additions and 5 deletions

View File

@ -22,14 +22,49 @@ APJ_BOARD_ID 1063
undef CHECK_ICM20602_EXT
undef CHECK_IMU0_PRESENT
undef CHECK_IMU1_PRESENT
undef CHECK_IMU2_PRESENT
undef CHECK_ICM20649
undef BOARD_VALIDATE
undef IMU
PG1 ICM45686_CS CS
#IMU 0
SPIDEV icm42688_ext SPI4 DEVID4 ACCEL_EXT_CS MODE3 2*MHZ 8*MHZ
IMU Invensensev3 SPI:icm42688_ext ROTATION_YAW_90
IMU Invensensev2 SPI:icm20948_ext ROTATION_PITCH_180
IMU Invensensev2 SPI:icm20948 ROTATION_YAW_270
#IMU 1
SPIDEV icm42688_ext2 SPI4 DEVID4 GYRO_EXT_CS MODE3 2*MHZ 8*MHZ
CHECK_ICM42688_EXT spi_check_register("icm42688_ext", INV3REG_WHOAMI, INV3_WHOAMI_ICM42688)
#IMU 2
SPIDEV icm45686 SPI1 DEVID4 ICM45686_CS MODE1 2*MHZ 8*MHZ
SPIDEV icm20649 SPI1 DEVID4 MPU_CS MODE3 4*MHZ 8*MHZ
CHECK_IMU0_PRESENT $CHECK_ICM42688_EXT
# INSTANCE:<num> keyword is used to denote the instance number of the sensor
# while probing. Probing is skipped if the instance number doesn't match the
# backend count. Its important the IMUs are listed in order of precedence globally
# (i.e. INSTANCE:0 IMUs are listed before INSTANCE:1 IMUs) and locally (i.e. IMUs
# on the same bus are listed in order of detection precedence)
IMU Invensensev3 SPI:icm42688_ext ROTATION_YAW_90 INSTANCE:0
IMU Invensensev3 SPI:icm42688_ext2 ROTATION_PITCH_180_YAW_90 INSTANCE:1
IMU Invensensev2 SPI:icm20948_ext ROTATION_PITCH_180 INSTANCE:1
IMU Invensensev3 SPI:icm45686 ROTATION_ROLL_180_YAW_135 INSTANCE:2
IMU Invensensev2 SPI:icm20649 ROTATION_YAW_270 INSTANCE:2
CHECK_ICM20649 spi_check_register_inv2("icm20649", INV2REG_WHOAMI, INV2_WHOAMI_ICM20649)
CHECK_ICM45686 spi_check_register_inv2("icm45686", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686)
CHECK_ICM42688_EXT2 spi_check_register("icm42688_ext2", INV3REG_WHOAMI, INV3_WHOAMI_ICM42688)
CHECK_ICM45686_EXT2 spi_check_register("icm42688_ext2", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686)
CHECK_ICM45686_EXT spi_check_register("icm42688_ext", INV3REG_456_WHOAMI, INV3_WHOAMI_ICM45686)
CHECK_ICM42688_EXT spi_check_register("icm42688_ext", INV3REG_WHOAMI, INV3_WHOAMI_ICM42688)
CHECK_IMU0_PRESENT $CHECK_ICM45686 || $CHECK_ICM20649
CHECK_IMU1_PRESENT $CHECK_ICM20948_EXT || $CHECK_ICM42688_EXT2 || $CHECK_ICM45686_EXT2
CHECK_IMU2_PRESENT $CHECK_ICM42688_EXT || $CHECK_ICM45686_EXT
BOARD_VALIDATE $CHECK_IMU0_PRESENT $CHECK_IMU1_PRESENT $CHECK_IMU2_PRESENT $CHECK_BARO0_PRESENT $CHECK_BARO1_PRESENT