mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-31 18:47:21 +08:00
px4_fmu-v6x:Add Rev 4 Sensors
This commit is contained in:
committed by
Daniel Agar
parent
9d0e57230a
commit
2bdeb36ea3
@@ -25,17 +25,23 @@ then
|
|||||||
ina238 -X -b 2 -t 2 -k start
|
ina238 -X -b 2 -t 2 -k start
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ver hwtypecmp V6X04 V6X14
|
||||||
|
then
|
||||||
|
# Internal SPI bus ICM20649
|
||||||
|
icm20649 -s -R 6 start
|
||||||
|
else
|
||||||
# Internal SPI BMI088
|
# Internal SPI BMI088
|
||||||
bmi088 -A -R 4 -s start
|
bmi088 -A -R 4 -s start
|
||||||
bmi088 -G -R 4 -s start
|
bmi088 -G -R 4 -s start
|
||||||
|
fi
|
||||||
|
|
||||||
# Internal SPI bus ICM42688p
|
# Internal SPI bus ICM42688p
|
||||||
icm42688p -R 6 -s start
|
icm42688p -R 6 -s start
|
||||||
|
|
||||||
if ver hwtypecmp V6X03 V6X13
|
if ver hwtypecmp V6X03 V6X13 V6X04 V6X14
|
||||||
then
|
then
|
||||||
# Internal SPI bus ICM-42670-P (hard-mounted)
|
# Internal SPI bus ICM-42670-P (hard-mounted)
|
||||||
icm42670p -R 14 -s start
|
icm42670p -R 10 -s start
|
||||||
else
|
else
|
||||||
# Internal SPI bus ICM-20649 (hard-mounted)
|
# Internal SPI bus ICM-20649 (hard-mounted)
|
||||||
icm20649 -R 14 -s start
|
icm20649 -R 14 -s start
|
||||||
|
|||||||
@@ -215,13 +215,15 @@
|
|||||||
#define HW_INFO_INIT_VER 3 /* Offset in above string of the VER */
|
#define HW_INFO_INIT_VER 3 /* Offset in above string of the VER */
|
||||||
#define HW_INFO_INIT_REV 4 /* Offset in above string of the REV */
|
#define HW_INFO_INIT_REV 4 /* Offset in above string of the REV */
|
||||||
|
|
||||||
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 2 // Rev 0 and Rev 3 Sensor sets
|
#define BOARD_NUM_SPI_CFG_HW_VERSIONS 3 // Rev 0 and Rev 3,4 Sensor sets
|
||||||
// Base/FMUM
|
// Base/FMUM
|
||||||
#define V6X00 HW_VER_REV(0x0,0x0) // FMUV6X, Rev 0
|
#define V6X00 HW_VER_REV(0x0,0x0) // FMUV6X, Rev 0
|
||||||
#define V6X01 HW_VER_REV(0x0,0x1) // FMUV6X, BMI388 I2C2 Rev 1
|
#define V6X01 HW_VER_REV(0x0,0x1) // FMUV6X, BMI388 I2C2 Rev 1
|
||||||
#define V6X03 HW_VER_REV(0x0,0x3) // FMUV6X, Sensor Set Rev 3
|
#define V6X03 HW_VER_REV(0x0,0x3) // FMUV6X, Sensor Set Rev 3
|
||||||
|
#define V6X04 HW_VER_REV(0x0,0x4) // FMUV6X, Sensor Set Rev 4
|
||||||
#define V6X10 HW_VER_REV(0x1,0x0) // NO PX4IO, Rev 0
|
#define V6X10 HW_VER_REV(0x1,0x0) // NO PX4IO, Rev 0
|
||||||
#define V6X13 HW_VER_REV(0x1,0x3) // NO PX4IO, Sensor Set Rev 3
|
#define V6X13 HW_VER_REV(0x1,0x3) // NO PX4IO, Sensor Set Rev 3
|
||||||
|
#define V6X14 HW_VER_REV(0x1,0x4) // NO PX4IO, Sensor Set Rev 4
|
||||||
|
|
||||||
|
|
||||||
/* HEATER
|
/* HEATER
|
||||||
|
|||||||
@@ -102,6 +102,8 @@ static px4_hw_mft_list_entry_t mft_lists[] = {
|
|||||||
{V6X01, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2
|
{V6X01, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2
|
||||||
{V6X03, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2, Sensor Set 3
|
{V6X03, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2, Sensor Set 3
|
||||||
{V6X13, hw_mft_list_v0610, arraySize(hw_mft_list_v0610)}, // No PX4IO BMP388 moved to I2C2, Sensor Set 3
|
{V6X13, hw_mft_list_v0610, arraySize(hw_mft_list_v0610)}, // No PX4IO BMP388 moved to I2C2, Sensor Set 3
|
||||||
|
{V6X04, hw_mft_list_v0600, arraySize(hw_mft_list_v0600)}, // BMP388 moved to I2C2, Sensor Set 4
|
||||||
|
{V6X14, hw_mft_list_v0610, arraySize(hw_mft_list_v0610)}, // No PX4IO BMP388 moved to I2C2, Sensor Set 4
|
||||||
};
|
};
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
|
|||||||
@@ -83,6 +83,29 @@ constexpr px4_spi_bus_all_hw_t px4_spi_buses_all_hw[BOARD_NUM_SPI_CFG_HW_VERSION
|
|||||||
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
initSPIHWVersion(HW_VER_REV(0, 4), {
|
||||||
|
initSPIBus(SPI::Bus::SPI1, {
|
||||||
|
initSPIDevice(DRV_IMU_DEVTYPE_ICM42670P, SPI::CS{GPIO::PortI, GPIO::Pin9}, SPI::DRDY{GPIO::PortF, GPIO::Pin2}),
|
||||||
|
}, {GPIO::PortI, GPIO::Pin11}),
|
||||||
|
initSPIBus(SPI::Bus::SPI2, {
|
||||||
|
initSPIDevice(DRV_IMU_DEVTYPE_ICM42688P, SPI::CS{GPIO::PortH, GPIO::Pin5}, SPI::DRDY{GPIO::PortA, GPIO::Pin10}),
|
||||||
|
}, {GPIO::PortF, GPIO::Pin4}),
|
||||||
|
initSPIBus(SPI::Bus::SPI3, {
|
||||||
|
initSPIDevice(DRV_IMU_DEVTYPE_ICM20649, SPI::CS{GPIO::PortI, GPIO::Pin4}, SPI::DRDY{GPIO::PortI, GPIO::Pin7}),
|
||||||
|
}, {GPIO::PortE, GPIO::Pin7}),
|
||||||
|
// initSPIBus(SPI::Bus::SPI4, {
|
||||||
|
// // no devices
|
||||||
|
// TODO: if enabled, remove GPIO_VDD_3V3_SENSORS4_EN from board_config.h
|
||||||
|
// }, {GPIO::PortG, GPIO::Pin8}),
|
||||||
|
initSPIBus(SPI::Bus::SPI5, {
|
||||||
|
initSPIDevice(SPIDEV_FLASH(0), SPI::CS{GPIO::PortG, GPIO::Pin7})
|
||||||
|
}),
|
||||||
|
initSPIBusExternal(SPI::Bus::SPI6, {
|
||||||
|
initSPIConfigExternal(SPI::CS{GPIO::PortI, GPIO::Pin10}, SPI::DRDY{GPIO::PortD, GPIO::Pin11}),
|
||||||
|
initSPIConfigExternal(SPI::CS{GPIO::PortA, GPIO::Pin15}, SPI::DRDY{GPIO::PortD, GPIO::Pin12}),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr bool unused = validateSPIConfig(px4_spi_buses_all_hw);
|
static constexpr bool unused = validateSPIConfig(px4_spi_buses_all_hw);
|
||||||
|
|||||||
Reference in New Issue
Block a user