boards/matek/h743: add fix to resolve no startup of imu for matek_h743 target (#20184)

* Add fix for matek_h743 target that resolves no startup of imu for h743-wing v3 and h743-wlite boards
* Added imu driver according to spi bus (https://www.mateksys.com/?portfolio=h743-wing-v2#tab-id-7)
This commit is contained in:
matthewoots
2022-09-10 01:02:38 +08:00
committed by GitHub
parent e268e69265
commit b09329f287
3 changed files with 11 additions and 5 deletions

View File

@@ -15,6 +15,7 @@ CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_IMU_INVENSENSE_MPU6000=y CONFIG_DRIVERS_IMU_INVENSENSE_MPU6000=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602=y CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM42605=y CONFIG_DRIVERS_IMU_INVENSENSE_ICM42605=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM42688P=y
CONFIG_COMMON_LIGHT=n CONFIG_COMMON_LIGHT=n
CONFIG_COMMON_MAGNETOMETER=y CONFIG_COMMON_MAGNETOMETER=y
CONFIG_COMMON_OPTICAL_FLOW=y CONFIG_COMMON_OPTICAL_FLOW=y

View File

@@ -6,14 +6,18 @@
board_adc start board_adc start
# Internal SPI bus ICM-42605 # Internal SPI bus ICM-42605
if ! icm42605 -R 14 -s start if ! mpu6000 -R 12 -b 1 -s start
then then
# internal SPI bus ICM-20602 # Internal SPI bus ICM-42688P
icm20602 -R 12 -s start icm42688p -R 12 -b 1 -s start
fi fi
# Internal SPI bus MPU-6000 # internal SPI bus ICM-20602
mpu6000 -R 12 -s start if ! icm20602 -R 12 -b 4 -s start
then
# Internal SPI bus ICM-42605
icm42605 -R 14 -b 4 -s start
fi
# Internal baro # Internal baro
dps310 -I start -a 118 dps310 -I start -a 118

View File

@@ -39,6 +39,7 @@
constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = {
initSPIBus(SPI::Bus::SPI1, { initSPIBus(SPI::Bus::SPI1, {
initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortB, GPIO::Pin2}), initSPIDevice(DRV_IMU_DEVTYPE_MPU6000, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortB, GPIO::Pin2}),
initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortC, GPIO::Pin15}, SPI::DRDY{GPIO::PortB, GPIO::Pin2}),
}), }),
initSPIBus(SPI::Bus::SPI2, { initSPIBus(SPI::Bus::SPI2, {
initSPIDevice(DRV_OSD_DEVTYPE_ATXXXX, SPI::CS{GPIO::PortB, GPIO::Pin12}), initSPIDevice(DRV_OSD_DEVTYPE_ATXXXX, SPI::CS{GPIO::PortB, GPIO::Pin12}),