durandal rev 1 has bmi088->icm20602

This commit is contained in:
David Sidrane
2021-11-11 10:03:32 -08:00
committed by Daniel Agar
parent 38e7f814d5
commit 76585409fa
5 changed files with 67 additions and 23 deletions
@@ -18,6 +18,7 @@ CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_HEATER=y CONFIG_DRIVERS_HEATER=y
CONFIG_DRIVERS_IMU_ANALOG_DEVICES_ADIS16448=y CONFIG_DRIVERS_IMU_ANALOG_DEVICES_ADIS16448=y
CONFIG_DRIVERS_IMU_BOSCH_BMI088=y CONFIG_DRIVERS_IMU_BOSCH_BMI088=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20602=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20689=y CONFIG_DRIVERS_IMU_INVENSENSE_ICM20689=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948=y CONFIG_DRIVERS_IMU_INVENSENSE_ICM20948=y
CONFIG_COMMON_LIGHT=y CONFIG_COMMON_LIGHT=y
@@ -11,6 +11,18 @@ icm20689 -R 2 -s start
bmi088 -A -R 2 -s start bmi088 -A -R 2 -s start
bmi088 -G -R 2 -s start bmi088 -G -R 2 -s start
if ver hwtypecmp VD00
then
# Internal SPI BMI088
bmi088 -A -R 2 -s start
bmi088 -G -R 2 -s start
fi
if ver hwtypecmp VD01
then
# Internal SPI ICM-20602
icm20602 -R 2 -s start
fi
# internal compass # internal compass
ist8310 -I -R 10 start ist8310 -I -R 10 start
@@ -162,6 +162,11 @@
#define HW_INFO_INIT_VER 2 #define HW_INFO_INIT_VER 2
#define HW_INFO_INIT_REV 3 #define HW_INFO_INIT_REV 3
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 2
#define VD00 HW_VER_REV(0x0,0x0) // Durandal, Ver 0 Rev 0
#define VD01 HW_VER_REV(0x0,0x1) // Durandal, Ver 0 Rev 1
/* CAN Silence /* CAN Silence
* *
* Silent mode control \ ESC Mux select * Silent mode control \ ESC Mux select
+3 -1
View File
@@ -82,7 +82,9 @@ static const px4_hw_mft_item_t hw_mft_list_durandal[] = {
}; };
static px4_hw_mft_list_entry_t mft_lists[] = { static px4_hw_mft_list_entry_t mft_lists[] = {
{0x0000, hw_mft_list_durandal, arraySize(hw_mft_list_durandal)}, // ver_rev
{VD00, hw_mft_list_durandal, arraySize(hw_mft_list_durandal)},
{VD01, hw_mft_list_durandal, arraySize(hw_mft_list_durandal)},
}; };
/************************************************************************************ /************************************************************************************
+46 -22
View File
@@ -1,6 +1,6 @@
/**************************************************************************** /****************************************************************************
* *
* Copyright (C) 2020 PX4 Development Team. All rights reserved. * Copyright (C) 2020, 2021 PX4 Development Team. All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions * modification, are permitted provided that the following conditions
@@ -35,28 +35,52 @@
#include <drivers/drv_sensor.h> #include <drivers/drv_sensor.h>
#include <nuttx/spi/spi.h> #include <nuttx/spi/spi.h>
constexpr px4_spi_bus_t px4_spi_buses[SPI_BUS_MAX_BUS_ITEMS] = { constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSIONS] = {
initSPIBus(SPI::Bus::SPI1, { initSPIHWVersion(HW_VER_REV(0, 0), {
initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::PortF, GPIO::Pin2}, SPI::DRDY{GPIO::PortB, GPIO::Pin4}), initSPIBus(SPI::Bus::SPI1, {
initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortF, GPIO::Pin4}, SPI::DRDY{GPIO::PortB, GPIO::Pin14}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::PortF, GPIO::Pin2}, SPI::DRDY{GPIO::PortB, GPIO::Pin4}),
initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortG, GPIO::Pin10}, SPI::DRDY{GPIO::PortB, GPIO::Pin15}), initSPIDevice(DRV_GYR_DEVTYPE_BMI088, SPI::CS{GPIO::PortF, GPIO::Pin4}, SPI::DRDY{GPIO::PortB, GPIO::Pin14}),
initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortH, GPIO::Pin5}), initSPIDevice(DRV_ACC_DEVTYPE_BMI088, SPI::CS{GPIO::PortG, GPIO::Pin10}, SPI::DRDY{GPIO::PortB, GPIO::Pin15}),
}, {GPIO::PortE, GPIO::Pin3}), initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortH, GPIO::Pin5}),
initSPIBus(SPI::Bus::SPI2, { }, {GPIO::PortE, GPIO::Pin3}),
initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortF, GPIO::Pin5}) initSPIBus(SPI::Bus::SPI2, {
initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortF, GPIO::Pin5})
}),
initSPIBus(SPI::Bus::SPI4, {
initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortF, GPIO::Pin10}),
}),
initSPIBusExternal(SPI::Bus::SPI5, {
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin4}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}),
}),
initSPIBusExternal(SPI::Bus::SPI6, {
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin6}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin7}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin8})
}),
}), }),
initSPIBus(SPI::Bus::SPI4, { initSPIHWVersion(HW_VER_REV(0, 1), {
initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortF, GPIO::Pin10}), initSPIBus(SPI::Bus::SPI1, {
}), initSPIDevice(DRV_IMU_DEVTYPE_ICM20689, SPI::CS{GPIO::PortF, GPIO::Pin2}, SPI::DRDY{GPIO::PortB, GPIO::Pin4}),
initSPIBusExternal(SPI::Bus::SPI5, { initSPIDevice(DRV_IMU_DEVTYPE_ICM20602, SPI::CS{GPIO::PortF, GPIO::Pin4}, SPI::DRDY{GPIO::PortB, GPIO::Pin14}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin4}), initSPIDevice(DRV_DEVTYPE_UNUSED, SPI::CS{GPIO::PortH, GPIO::Pin5}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}), }, {GPIO::PortE, GPIO::Pin3}),
}), initSPIBus(SPI::Bus::SPI2, {
initSPIBusExternal(SPI::Bus::SPI6, { initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortF, GPIO::Pin5})
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin6}), }),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin7}), initSPIBus(SPI::Bus::SPI4, {
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin8}) initSPIDevice(DRV_BARO_DEVTYPE_MS5611, SPI::CS{GPIO::PortF, GPIO::Pin10}),
}),
initSPIBusExternal(SPI::Bus::SPI5, {
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin4}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}),
}),
initSPIBusExternal(SPI::Bus::SPI6, {
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin6}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin7}),
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin8})
}),
}), }),
}; };
static constexpr bool unused = validateSPIConfig(px4_spi_buses); static constexpr bool unused = validateSPIConfig(px4_spi_buses_all_hw);