diff --git a/conf/airframes/esden/cocto_lm2a2.xml b/conf/airframes/esden/cocto_lm2a2.xml index e0ce48b4a4..e035a7b5c7 100644 --- a/conf/airframes/esden/cocto_lm2a2.xml +++ b/conf/airframes/esden/cocto_lm2a2.xml @@ -243,9 +243,7 @@ B2L -> CW - - - + diff --git a/conf/airframes/esden/quady_lm2a2pwm.xml b/conf/airframes/esden/quady_lm2a2pwm.xml index c7caa99380..8bf1d23257 100644 --- a/conf/airframes/esden/quady_lm2a2pwm.xml +++ b/conf/airframes/esden/quady_lm2a2pwm.xml @@ -200,9 +200,7 @@ - - - + diff --git a/conf/firmwares/subsystems/shared/imu_aspirin_v2.1.makefile b/conf/firmwares/subsystems/shared/imu_aspirin_v2.1.makefile index 1f0f83f906..810271975b 100644 --- a/conf/firmwares/subsystems/shared/imu_aspirin_v2.1.makefile +++ b/conf/firmwares/subsystems/shared/imu_aspirin_v2.1.makefile @@ -42,7 +42,7 @@ ifeq ($(TARGET), ap) IMU_ASPIRIN_CFLAGS = -DUSE_IMU endif -IMU_ASPIRIN_CFLAGS += -DIMU_TYPE_H=\"imu/imu_aspirin2.h\" -DIMU_OVERRIDE_CHANNELS +IMU_ASPIRIN_CFLAGS += -DIMU_TYPE_H=\"imu/imu_aspirin2.h\" IMU_ASPIRIN_SRCS = $(SRC_SUBSYSTEMS)/imu.c \ $(SRC_SUBSYSTEMS)/imu/imu_aspirin2.c diff --git a/conf/firmwares/subsystems/shared/imu_aspirin_v2.2.makefile b/conf/firmwares/subsystems/shared/imu_aspirin_v2.2.makefile index a27b8e576b..f36ee75375 100644 --- a/conf/firmwares/subsystems/shared/imu_aspirin_v2.2.makefile +++ b/conf/firmwares/subsystems/shared/imu_aspirin_v2.2.makefile @@ -1,5 +1,73 @@ -ap.CFLAGS += -DIMU_ASPIRIN_DISABLE_BARO - -include $(CFG_SHARED)/imu_aspirin_v2.1.makefile +# Hey Emacs, this is a -*- makefile -*- +# +# Aspirin IMU v2.2 +# +# +# required xml: +#
+# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +#
+# +# +# for fixedwing firmware and ap only +ifeq ($(TARGET), ap) + IMU_ASPIRIN_CFLAGS = -DUSE_IMU +endif + +IMU_ASPIRIN_CFLAGS += -DIMU_TYPE_H=\"imu/imu_aspirin2.h\" +IMU_ASPIRIN_SRCS = $(SRC_SUBSYSTEMS)/imu.c \ + $(SRC_SUBSYSTEMS)/imu/imu_aspirin2.c + +include $(CFG_SHARED)/spi.makefile + +ifeq ($(ARCH), lpc21) +IMU_ASPIRIN_CFLAGS += -DUSE_SPI1 +IMU_ASPIRIN_CFLAGS += -DUSE_SPI_SLAVE0 +else ifeq ($(ARCH), stm32) +IMU_ASPIRIN_CFLAGS += -DUSE_SPI2 +# Slave select configuration +# SLAVE2 is on PB12 (NSS) (MPU600 CS) +IMU_ASPIRIN_CFLAGS += -DUSE_SPI_SLAVE2 +endif + +IMU_ASPIRIN_CFLAGS += -DIMU_ASPIRIN_VERSION_2_2 + +# Keep CFLAGS/Srcs for imu in separate expression so we can assign it to other targets +# see: conf/autopilot/subsystems/lisa_passthrough/imu_b2_v1.1.makefile for example + +ap.CFLAGS += $(IMU_ASPIRIN_CFLAGS) +ap.srcs += $(IMU_ASPIRIN_SRCS) + + +# +# NPS simulator +# +include $(CFG_SHARED)/imu_nps.makefile diff --git a/sw/airborne/subsystems/imu/imu_aspirin2.c b/sw/airborne/subsystems/imu/imu_aspirin2.c index cd2f412923..9a2d0896c4 100644 --- a/sw/airborne/subsystems/imu/imu_aspirin2.c +++ b/sw/airborne/subsystems/imu/imu_aspirin2.c @@ -28,10 +28,6 @@ #include "peripherals/hmc58xx_regs.h" #include "peripherals/ms5611.h" -#ifdef BARO_I2C -#define MPU6000_NO_SLAVES -#endif - #ifndef MPU6000_SLAVE_IDX #define MPU6000_SLAVE_IDX SPI_SLAVE2 #endif @@ -211,6 +207,7 @@ static void mpu_configure(void) (3 << 3) ); // Full Scale = 16g #ifndef MPU6000_NO_SLAVES +PRINT_CONFIG_MSG("Reading MPU slaves") ///////////////////////////////////// // SPI Slave Configuration Section @@ -227,16 +224,16 @@ static void mpu_configure(void) // Enable the aux i2c mpu_set( MPU60X0_REG_I2C_MST_CTRL, (0 << 7) | // no multimaster - (0 << 6) | // do not delay IRQ waiting for all external slaves - (0 << 5) | // no slave 3 FIFO - (0 << 4) | // restart or stop/start from one slave to another: read -> write is always stop/start - (8 << 0) ); // 0=348kHz 8=256kHz, 9=500kHz + (0 << 6) | // do not delay IRQ waiting for all external slaves + (0 << 5) | // no slave 3 FIFO + (0 << 4) | // restart or stop/start from one slave to another: read -> write is always stop/start + (8 << 0) ); // 0=348kHz 8=256kHz, 9=500kHz mpu_set( MPU60X0_REG_I2C_MST_DELAY, (0 << 2) | // No Delay Slave 2 (1 << 3) ); // Delay Slave 3 -#ifdef IMU_ASPIRIN_VERSION_2_1 +#if defined IMU_ASPIRIN_VERSION_2_1 && USE_IMU_ASPIRIN2_BARO_SLAVE // MS5611 Send Reset mpu_set( MPU60X0_REG_I2C_SLV4_ADDR, (MS5611_ADDR0)); @@ -251,7 +248,7 @@ static void mpu_configure(void) // Wait at least 2.8ms -#endif +#endif // read MS5611 as MPU slave // HMC5883 Magnetometer Configuration @@ -297,9 +294,8 @@ static void mpu_configure(void) // Slave 0 Control: -#if !IMU_ASPIRIN_DISABLE_BARO -#ifdef IMU_ASPIRIN_VERSION_2_1 -PRINT_CONFIG_MSG("Reading the MS5611") +#if defined IMU_ASPIRIN_VERSION_2_1 && USE_IMU_ASPIRIN2_BARO_SLAVE +PRINT_CONFIG_MSG("Reading the MS5611 as MPU slave") /* @@ -342,10 +338,7 @@ PRINT_CONFIG_MSG("Reading the MS5611") (0 << 6) | // Byte Swap (3 << 0) ); // Read 6 bytes - - -#endif -#endif +#endif // read MS5611 as MPU slave #endif