mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-13 19:40:31 +03:00
Further work on gyro SPI selection
This commit is contained in:
parent
3545775fdf
commit
9a3cad9ca3
12 changed files with 120 additions and 54 deletions
42
Makefile
42
Makefile
|
@ -113,31 +113,33 @@ VALID_TARGETS := $(sort $(VALID_TARGETS))
|
||||||
GROUP_1_TARGETS := \
|
GROUP_1_TARGETS := \
|
||||||
AFROMINI \
|
AFROMINI \
|
||||||
AIORACERF3 \
|
AIORACERF3 \
|
||||||
AIR32 \
|
AIR32 \
|
||||||
AIRBOTF4 \
|
AIRBOTF4 \
|
||||||
AIRHEROF3 \
|
AIRBOTF4SD \
|
||||||
ALIENFLIGHTF1 \
|
AIRHEROF3 \
|
||||||
|
ALIENFLIGHTF1 \
|
||||||
ALIENFLIGHTF3 \
|
ALIENFLIGHTF3 \
|
||||||
ALIENFLIGHTF4 \
|
ALIENFLIGHTF4 \
|
||||||
ALIENFLIGHTNGF7 \
|
ALIENFLIGHTNGF7 \
|
||||||
ANYFCF7 \
|
ANYFCF7 \
|
||||||
BEEBRAIN \
|
BEEBRAIN \
|
||||||
BEEROTORF4 \
|
BEEROTORF4 \
|
||||||
BETAFLIGHTF3 \
|
BETAFLIGHTF3 \
|
||||||
|
BLUEJAYF4 \
|
||||||
CC3D \
|
CC3D \
|
||||||
CC3D_OPBL \
|
CC3D_OPBL \
|
||||||
|
|
||||||
|
GROUP_2_TARGETS := \
|
||||||
CHEBUZZF3 \
|
CHEBUZZF3 \
|
||||||
CJMCU \
|
CJMCU \
|
||||||
CL_RACINGF4 \
|
CL_RACINGF4 \
|
||||||
COLIBRI \
|
COLIBRI \
|
||||||
|
|
||||||
GROUP_2_TARGETS := \
|
|
||||||
COLIBRI_OPBL \
|
COLIBRI_OPBL \
|
||||||
COLIBRI_RACE \
|
COLIBRI_RACE \
|
||||||
DOGE \
|
DOGE \
|
||||||
ELLE0 \
|
ELLE0 \
|
||||||
F4BY \
|
F4BY \
|
||||||
FISHDRONEF4 \
|
FISHDRONEF4 \
|
||||||
FLIP32F3OSD \
|
FLIP32F3OSD \
|
||||||
FURYF3 \
|
FURYF3 \
|
||||||
FURYF4 \
|
FURYF4 \
|
||||||
|
@ -145,35 +147,35 @@ GROUP_2_TARGETS := \
|
||||||
IMPULSERCF3 \
|
IMPULSERCF3 \
|
||||||
IRCFUSIONF3 \
|
IRCFUSIONF3 \
|
||||||
ISHAPEDF3 \
|
ISHAPEDF3 \
|
||||||
BLUEJAYF4 \
|
|
||||||
KAKUTEF4 \
|
|
||||||
KISSCC \
|
|
||||||
|
|
||||||
GROUP_3_TARGETS := \
|
GROUP_3_TARGETS := \
|
||||||
|
KAKUTEF4 \
|
||||||
|
KISSCC \
|
||||||
KIWIF4 \
|
KIWIF4 \
|
||||||
LUX_RACE \
|
LUX_RACE \
|
||||||
LUXV2_RACE \
|
LUXV2_RACE \
|
||||||
MICROSCISKY \
|
MICROSCISKY \
|
||||||
MOTOLAB \
|
MOTOLAB \
|
||||||
MULTIFLITEPICO \
|
MULTIFLITEPICO \
|
||||||
NAZE \
|
NAZE \
|
||||||
NERO \
|
NERO \
|
||||||
|
NUCLEOF7 \
|
||||||
OMNIBUS \
|
OMNIBUS \
|
||||||
|
OMNIBUSF4 \
|
||||||
OMNIBUSF4SD \
|
OMNIBUSF4SD \
|
||||||
PIKOBLX \
|
PIKOBLX \
|
||||||
PLUMF4 \
|
PLUMF4 \
|
||||||
PODIUMF4 \
|
PODIUMF4 \
|
||||||
RACEBASE \
|
|
||||||
|
GROUP_4_TARGETS := \
|
||||||
RCEXPLORERF3 \
|
RCEXPLORERF3 \
|
||||||
REVO \
|
REVO \
|
||||||
REVO_OPBL \
|
REVO_OPBL \
|
||||||
REVOLT \
|
REVOLT \
|
||||||
REVONANO \
|
REVONANO \
|
||||||
|
|
||||||
GROUP_4_TARGETS := \
|
|
||||||
RMDO \
|
RMDO \
|
||||||
SINGULARITY \
|
SINGULARITY \
|
||||||
SIRINFPV \
|
SIRINFPV \
|
||||||
SOULF4 \
|
SOULF4 \
|
||||||
SPARKY \
|
SPARKY \
|
||||||
SPARKY2 \
|
SPARKY2 \
|
||||||
|
@ -181,10 +183,8 @@ GROUP_4_TARGETS := \
|
||||||
SPRACINGF3EVO \
|
SPRACINGF3EVO \
|
||||||
SPRACINGF3MINI \
|
SPRACINGF3MINI \
|
||||||
SPRACINGF3NEO \
|
SPRACINGF3NEO \
|
||||||
KROOZX \
|
|
||||||
NUCLEOF7 \
|
|
||||||
OMNIBUSF4 \
|
|
||||||
STM32F3DISCOVERY \
|
STM32F3DISCOVERY \
|
||||||
|
TINYBEEF3 \
|
||||||
|
|
||||||
GROUP_OTHER_TARGETS := $(filter-out $(GROUP_1_TARGETS) $(GROUP_2_TARGETS) $(GROUP_3_TARGETS) $(GROUP_4_TARGETS), $(VALID_TARGETS))
|
GROUP_OTHER_TARGETS := $(filter-out $(GROUP_1_TARGETS) $(GROUP_2_TARGETS) $(GROUP_3_TARGETS) $(GROUP_4_TARGETS), $(VALID_TARGETS))
|
||||||
|
|
||||||
|
|
|
@ -175,9 +175,10 @@ typedef enum {
|
||||||
MPU_65xx_I2C,
|
MPU_65xx_I2C,
|
||||||
MPU_65xx_SPI,
|
MPU_65xx_SPI,
|
||||||
MPU_9250_SPI,
|
MPU_9250_SPI,
|
||||||
ICM_20689_SPI,
|
ICM_20601_SPI,
|
||||||
ICM_20608_SPI,
|
|
||||||
ICM_20602_SPI,
|
ICM_20602_SPI,
|
||||||
|
ICM_20608_SPI,
|
||||||
|
ICM_20689_SPI,
|
||||||
BMI_160_SPI,
|
BMI_160_SPI,
|
||||||
} mpuSensor_e;
|
} mpuSensor_e;
|
||||||
|
|
||||||
|
|
|
@ -20,8 +20,9 @@
|
||||||
#define MPU6500_WHO_AM_I_CONST (0x70)
|
#define MPU6500_WHO_AM_I_CONST (0x70)
|
||||||
#define MPU9250_WHO_AM_I_CONST (0x71)
|
#define MPU9250_WHO_AM_I_CONST (0x71)
|
||||||
#define MPU9255_WHO_AM_I_CONST (0x73)
|
#define MPU9255_WHO_AM_I_CONST (0x73)
|
||||||
#define ICM20608G_WHO_AM_I_CONST (0xAF)
|
#define ICM20601_WHO_AM_I_CONST (0xAC)
|
||||||
#define ICM20602_WHO_AM_I_CONST (0x12)
|
#define ICM20602_WHO_AM_I_CONST (0x12)
|
||||||
|
#define ICM20608G_WHO_AM_I_CONST (0xAF)
|
||||||
|
|
||||||
#define MPU6500_BIT_RESET (0x80)
|
#define MPU6500_BIT_RESET (0x80)
|
||||||
|
|
||||||
|
|
|
@ -91,12 +91,15 @@ uint8_t mpu6500SpiDetect(const busDevice_t *bus)
|
||||||
case MPU9255_WHO_AM_I_CONST:
|
case MPU9255_WHO_AM_I_CONST:
|
||||||
mpuDetected = MPU_9250_SPI;
|
mpuDetected = MPU_9250_SPI;
|
||||||
break;
|
break;
|
||||||
case ICM20608G_WHO_AM_I_CONST:
|
case ICM20601_WHO_AM_I_CONST:
|
||||||
mpuDetected = ICM_20608_SPI;
|
mpuDetected = ICM_20601_SPI;
|
||||||
break;
|
break;
|
||||||
case ICM20602_WHO_AM_I_CONST:
|
case ICM20602_WHO_AM_I_CONST:
|
||||||
mpuDetected = ICM_20602_SPI;
|
mpuDetected = ICM_20602_SPI;
|
||||||
break;
|
break;
|
||||||
|
case ICM20608G_WHO_AM_I_CONST:
|
||||||
|
mpuDetected = ICM_20608_SPI;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
mpuDetected = MPU_NONE;
|
mpuDetected = MPU_NONE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,9 +170,11 @@ static const char * const lookupTableAccHardware[] = {
|
||||||
"MPU6000",
|
"MPU6000",
|
||||||
"MPU6500",
|
"MPU6500",
|
||||||
"MPU9250",
|
"MPU9250",
|
||||||
"ICM20689",
|
"ICM20601",
|
||||||
"ICM20602",
|
"ICM20602",
|
||||||
"BMI160",
|
"ICM20608",
|
||||||
|
"ICM20689",
|
||||||
|
"BMI160",
|
||||||
"FAKE"
|
"FAKE"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -207,8 +209,8 @@ static const char * const sensorTypeNames[] = {
|
||||||
#define SENSOR_NAMES_MASK (SENSOR_GYRO | SENSOR_ACC | SENSOR_BARO | SENSOR_MAG)
|
#define SENSOR_NAMES_MASK (SENSOR_GYRO | SENSOR_ACC | SENSOR_BARO | SENSOR_MAG)
|
||||||
|
|
||||||
static const char * const sensorHardwareNames[4][16] = {
|
static const char * const sensorHardwareNames[4][16] = {
|
||||||
{ "", "None", "MPU6050", "L3G4200D", "MPU3050", "L3GD20", "MPU6000", "MPU6500", "MPU9250", "ICM20689", "ICM20608G", "ICM20602", "BMI160", "FAKE", NULL },
|
{ "", "None", "MPU6050", "L3G4200D", "MPU3050", "L3GD20", "MPU6000", "MPU6500", "MPU9250", "ICM20601", "ICM20602", "ICM20608G", "ICM20689", "BMI160", "FAKE", NULL },
|
||||||
{ "", "None", "ADXL345", "MPU6050", "MMA845x", "BMA280", "LSM303DLHC", "MPU6000", "MPU6500", "ICM20689", "MPU9250", "ICM20608G", "ICM20602", "BMI160", "FAKE", NULL },
|
{ "", "None", "ADXL345", "MPU6050", "MMA845x", "BMA280", "LSM303DLHC", "MPU6000", "MPU6500", "MPU9250", "ICM20601", "ICM20602", "ICM20608G", "ICM20689", "BMI160", "FAKE", NULL },
|
||||||
{ "", "None", "BMP085", "MS5611", "BMP280", NULL },
|
{ "", "None", "BMP085", "MS5611", "BMP280", NULL },
|
||||||
{ "", "None", "HMC5883", "AK8975", "AK8963", NULL }
|
{ "", "None", "HMC5883", "AK8975", "AK8963", NULL }
|
||||||
};
|
};
|
||||||
|
|
|
@ -214,8 +214,9 @@ retry:
|
||||||
#endif
|
#endif
|
||||||
; // fallthrough
|
; // fallthrough
|
||||||
case ACC_MPU6500:
|
case ACC_MPU6500:
|
||||||
case ACC_ICM20608G:
|
case ACC_ICM20601:
|
||||||
case ACC_ICM20602:
|
case ACC_ICM20602:
|
||||||
|
case ACC_ICM20608G:
|
||||||
#if defined(USE_ACC_MPU6500) || defined(USE_ACC_SPI_MPU6500)
|
#if defined(USE_ACC_MPU6500) || defined(USE_ACC_SPI_MPU6500)
|
||||||
#ifdef USE_ACC_SPI_MPU6500
|
#ifdef USE_ACC_SPI_MPU6500
|
||||||
if (mpu6500AccDetect(dev) || mpu6500SpiAccDetect(dev))
|
if (mpu6500AccDetect(dev) || mpu6500SpiAccDetect(dev))
|
||||||
|
@ -230,12 +231,15 @@ retry:
|
||||||
case MPU_9250_SPI:
|
case MPU_9250_SPI:
|
||||||
accHardware = ACC_MPU9250;
|
accHardware = ACC_MPU9250;
|
||||||
break;
|
break;
|
||||||
case ICM_20608_SPI:
|
case ICM_20601_SPI:
|
||||||
accHardware = ACC_ICM20608G;
|
accHardware = ACC_ICM20601;
|
||||||
break;
|
break;
|
||||||
case ICM_20602_SPI:
|
case ICM_20602_SPI:
|
||||||
accHardware = ACC_ICM20602;
|
accHardware = ACC_ICM20602;
|
||||||
break;
|
break;
|
||||||
|
case ICM_20608_SPI:
|
||||||
|
accHardware = ACC_ICM20608G;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
accHardware = ACC_MPU6500;
|
accHardware = ACC_MPU6500;
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,10 +32,11 @@ typedef enum {
|
||||||
ACC_LSM303DLHC,
|
ACC_LSM303DLHC,
|
||||||
ACC_MPU6000,
|
ACC_MPU6000,
|
||||||
ACC_MPU6500,
|
ACC_MPU6500,
|
||||||
ACC_ICM20689,
|
|
||||||
ACC_MPU9250,
|
ACC_MPU9250,
|
||||||
ACC_ICM20608G,
|
ACC_ICM20601,
|
||||||
ACC_ICM20602,
|
ACC_ICM20602,
|
||||||
|
ACC_ICM20608G,
|
||||||
|
ACC_ICM20689,
|
||||||
ACC_BMI160,
|
ACC_BMI160,
|
||||||
ACC_FAKE
|
ACC_FAKE
|
||||||
} accelerationSensor_e;
|
} accelerationSensor_e;
|
||||||
|
|
|
@ -87,7 +87,7 @@ static void *notchFilter2[3];
|
||||||
|
|
||||||
#ifdef STM32F10X
|
#ifdef STM32F10X
|
||||||
#define GYRO_SYNC_DENOM_DEFAULT 8
|
#define GYRO_SYNC_DENOM_DEFAULT 8
|
||||||
#elif defined(USE_GYRO_SPI_MPU6000) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_ICM20689)
|
#elif defined(USE_GYRO_SPI_MPU6000) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_ICM20601) || defined(USE_GYRO_SPI_ICM20689)
|
||||||
#define GYRO_SYNC_DENOM_DEFAULT 1
|
#define GYRO_SYNC_DENOM_DEFAULT 1
|
||||||
#else
|
#else
|
||||||
#define GYRO_SYNC_DENOM_DEFAULT 4
|
#define GYRO_SYNC_DENOM_DEFAULT 4
|
||||||
|
@ -111,7 +111,7 @@ PG_RESET_TEMPLATE(gyroConfig_t, gyroConfig,
|
||||||
.gyro_soft_notch_cutoff_2 = 100
|
.gyro_soft_notch_cutoff_2 = 100
|
||||||
);
|
);
|
||||||
|
|
||||||
#if defined(USE_GYRO_MPU6050) || defined(USE_GYRO_MPU3050) || defined(USE_GYRO_MPU6500) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU6000) || defined(USE_ACC_MPU6050) || defined(USE_GYRO_SPI_MPU9250) || defined(USE_GYRO_SPI_ICM20689)
|
#if defined(USE_GYRO_MPU6050) || defined(USE_GYRO_MPU3050) || defined(USE_GYRO_MPU6500) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU6000) || defined(USE_ACC_MPU6050) || defined(USE_GYRO_SPI_MPU9250) || defined(USE_GYRO_SPI_ICM20601) || defined(USE_GYRO_SPI_ICM20689)
|
||||||
static const extiConfig_t *selectMPUIntExtiConfig(void)
|
static const extiConfig_t *selectMPUIntExtiConfig(void)
|
||||||
{
|
{
|
||||||
#if defined(MPU_INT_EXTI)
|
#if defined(MPU_INT_EXTI)
|
||||||
|
@ -204,8 +204,9 @@ STATIC_UNIT_TESTED gyroSensor_e gyroDetect(gyroDev_t *dev)
|
||||||
|
|
||||||
#if defined(USE_GYRO_MPU6500) || defined(USE_GYRO_SPI_MPU6500)
|
#if defined(USE_GYRO_MPU6500) || defined(USE_GYRO_SPI_MPU6500)
|
||||||
case GYRO_MPU6500:
|
case GYRO_MPU6500:
|
||||||
case GYRO_ICM20608G:
|
case GYRO_ICM20601:
|
||||||
case GYRO_ICM20602:
|
case GYRO_ICM20602:
|
||||||
|
case GYRO_ICM20608G:
|
||||||
#ifdef USE_GYRO_SPI_MPU6500
|
#ifdef USE_GYRO_SPI_MPU6500
|
||||||
if (mpu6500GyroDetect(dev) || mpu6500SpiGyroDetect(dev)) {
|
if (mpu6500GyroDetect(dev) || mpu6500SpiGyroDetect(dev)) {
|
||||||
#else
|
#else
|
||||||
|
@ -215,12 +216,15 @@ STATIC_UNIT_TESTED gyroSensor_e gyroDetect(gyroDev_t *dev)
|
||||||
case MPU_9250_SPI:
|
case MPU_9250_SPI:
|
||||||
gyroHardware = GYRO_MPU9250;
|
gyroHardware = GYRO_MPU9250;
|
||||||
break;
|
break;
|
||||||
case ICM_20608_SPI:
|
case ICM_20601_SPI:
|
||||||
gyroHardware = GYRO_ICM20608G;
|
gyroHardware = GYRO_ICM20601;
|
||||||
break;
|
break;
|
||||||
case ICM_20602_SPI:
|
case ICM_20602_SPI:
|
||||||
gyroHardware = GYRO_ICM20602;
|
gyroHardware = GYRO_ICM20602;
|
||||||
break;
|
break;
|
||||||
|
case ICM_20608_SPI:
|
||||||
|
gyroHardware = GYRO_ICM20608G;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
gyroHardware = GYRO_MPU6500;
|
gyroHardware = GYRO_MPU6500;
|
||||||
}
|
}
|
||||||
|
@ -289,7 +293,7 @@ STATIC_UNIT_TESTED gyroSensor_e gyroDetect(gyroDev_t *dev)
|
||||||
bool gyroInit(void)
|
bool gyroInit(void)
|
||||||
{
|
{
|
||||||
memset(&gyro, 0, sizeof(gyro));
|
memset(&gyro, 0, sizeof(gyro));
|
||||||
#if defined(USE_GYRO_MPU6050) || defined(USE_GYRO_MPU3050) || defined(USE_GYRO_MPU6500) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU6000) || defined(USE_ACC_MPU6050) || defined(USE_GYRO_SPI_MPU9250) || defined(USE_GYRO_SPI_ICM20689)
|
#if defined(USE_GYRO_MPU6050) || defined(USE_GYRO_MPU3050) || defined(USE_GYRO_MPU6500) || defined(USE_GYRO_SPI_MPU6500) || defined(USE_GYRO_SPI_MPU6000) || defined(USE_ACC_MPU6050) || defined(USE_GYRO_SPI_MPU9250) || defined(USE_GYRO_SPI_ICM20601) || defined(USE_GYRO_SPI_ICM20689)
|
||||||
gyroDev0.mpuIntExtiConfig = selectMPUIntExtiConfig();
|
gyroDev0.mpuIntExtiConfig = selectMPUIntExtiConfig();
|
||||||
#ifdef USE_DUAL_GYRO
|
#ifdef USE_DUAL_GYRO
|
||||||
// set cnsPin using GYRO_n_CS_PIN defined in target.h
|
// set cnsPin using GYRO_n_CS_PIN defined in target.h
|
||||||
|
@ -308,9 +312,10 @@ bool gyroInit(void)
|
||||||
switch (gyroHardware) {
|
switch (gyroHardware) {
|
||||||
case GYRO_MPU6500:
|
case GYRO_MPU6500:
|
||||||
case GYRO_MPU9250:
|
case GYRO_MPU9250:
|
||||||
case GYRO_ICM20689:
|
case GYRO_ICM20601:
|
||||||
case GYRO_ICM20608G:
|
|
||||||
case GYRO_ICM20602:
|
case GYRO_ICM20602:
|
||||||
|
case GYRO_ICM20608G:
|
||||||
|
case GYRO_ICM20689:
|
||||||
// do nothing, as gyro supports 32kHz
|
// do nothing, as gyro supports 32kHz
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -32,9 +32,10 @@ typedef enum {
|
||||||
GYRO_MPU6000,
|
GYRO_MPU6000,
|
||||||
GYRO_MPU6500,
|
GYRO_MPU6500,
|
||||||
GYRO_MPU9250,
|
GYRO_MPU9250,
|
||||||
GYRO_ICM20689,
|
GYRO_ICM20601,
|
||||||
GYRO_ICM20608G,
|
|
||||||
GYRO_ICM20602,
|
GYRO_ICM20602,
|
||||||
|
GYRO_ICM20608G,
|
||||||
|
GYRO_ICM20689,
|
||||||
GYRO_BMI160,
|
GYRO_BMI160,
|
||||||
GYRO_FAKE
|
GYRO_FAKE
|
||||||
} gyroSensor_e;
|
} gyroSensor_e;
|
||||||
|
|
0
src/main/target/REVO/AIRBOTF4SD.mk
Normal file
0
src/main/target/REVO/AIRBOTF4SD.mk
Normal file
|
@ -21,6 +21,10 @@
|
||||||
#define TARGET_BOARD_IDENTIFIER "AIR4"
|
#define TARGET_BOARD_IDENTIFIER "AIR4"
|
||||||
#define USBD_PRODUCT_STRING "AirbotF4"
|
#define USBD_PRODUCT_STRING "AirbotF4"
|
||||||
|
|
||||||
|
#elif defined(AIRBOTF4SD)
|
||||||
|
#define TARGET_BOARD_IDENTIFIER "A4SD"
|
||||||
|
#define USBD_PRODUCT_STRING "AirbotF4SD"
|
||||||
|
|
||||||
#elif defined(REVOLT)
|
#elif defined(REVOLT)
|
||||||
#define TARGET_BOARD_IDENTIFIER "RVLT"
|
#define TARGET_BOARD_IDENTIFIER "RVLT"
|
||||||
#define USBD_PRODUCT_STRING "Revolt"
|
#define USBD_PRODUCT_STRING "Revolt"
|
||||||
|
@ -53,7 +57,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Disable LED1, conflicts with AirbotF4/Flip32F4/Revolt beeper
|
// Disable LED1, conflicts with AirbotF4/Flip32F4/Revolt beeper
|
||||||
#if defined(AIRBOTF4)
|
#if defined(AIRBOTF4) || defined(AIRBOTF4SD)
|
||||||
#define BEEPER PB4
|
#define BEEPER PB4
|
||||||
#define BEEPER_INVERTED
|
#define BEEPER_INVERTED
|
||||||
#elif defined(REVOLT)
|
#elif defined(REVOLT)
|
||||||
|
@ -68,7 +72,11 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// PC0 used as inverter select GPIO
|
// PC0 used as inverter select GPIO
|
||||||
|
#ifdef AIRBOTF4SD
|
||||||
|
#define INVERTER_PIN_UART6 PD2
|
||||||
|
#else
|
||||||
#define INVERTER_PIN_UART1 PC0
|
#define INVERTER_PIN_UART1 PC0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MPU6000_CS_PIN PA4
|
#define MPU6000_CS_PIN PA4
|
||||||
#define MPU6000_SPI_INSTANCE SPI1
|
#define MPU6000_SPI_INSTANCE SPI1
|
||||||
|
@ -79,6 +87,15 @@
|
||||||
#define GYRO
|
#define GYRO
|
||||||
#define ACC
|
#define ACC
|
||||||
|
|
||||||
|
#ifdef AIRBOTF4SD
|
||||||
|
#define USE_GYRO_SPI_ICM20601
|
||||||
|
#define ICM20601_CS_PIN PB13 // served through MPU6500 code
|
||||||
|
#define ICM20601_SPI_INSTANCE SPI1
|
||||||
|
#define USE_DUAL_GYRO
|
||||||
|
#define GYRO_0_CS_PIN MPU6000_CS_PIN
|
||||||
|
#define GYRO_1_CS_PIN ICM20601_CS_PIN
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(SOULF4)
|
#if defined(SOULF4)
|
||||||
#define USE_GYRO_SPI_MPU6000
|
#define USE_GYRO_SPI_MPU6000
|
||||||
#define GYRO_MPU6000_ALIGN CW180_DEG
|
#define GYRO_MPU6000_ALIGN CW180_DEG
|
||||||
|
@ -126,15 +143,39 @@
|
||||||
|
|
||||||
#define BARO
|
#define BARO
|
||||||
#define USE_BARO_MS5611
|
#define USE_BARO_MS5611
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(AIRBOTF4SD)
|
||||||
|
// SDCARD support for AIRBOTF4SD
|
||||||
|
#define ENABLE_BLACKBOX_LOGGING_ON_SDCARD_BY_DEFAULT
|
||||||
|
#define USE_SDCARD
|
||||||
|
#define USE_SDCARD_SPI3
|
||||||
|
|
||||||
|
#define SDCARD_DETECT_INVERTED
|
||||||
|
#define SDCARD_DETECT_PIN PC0
|
||||||
|
#define SDCARD_SPI_INSTANCE SPI3
|
||||||
|
#define SDCARD_SPI_CS_PIN SPI3_NSS_PIN
|
||||||
|
|
||||||
|
// SPI2 is on the APB1 bus whose clock runs at 84MHz. Divide to under 400kHz for init:
|
||||||
|
#define SDCARD_SPI_INITIALIZATION_CLOCK_DIVIDER 256 // 328kHz
|
||||||
|
// Divide to under 25MHz for normal operation:
|
||||||
|
#define SDCARD_SPI_FULL_SPEED_CLOCK_DIVIDER 4 // 21MHz
|
||||||
|
|
||||||
|
#define SDCARD_DMA_CHANNEL_TX DMA1_Stream5
|
||||||
|
#define SDCARD_DMA_CHANNEL_TX_COMPLETE_FLAG DMA_FLAG_TCIF5
|
||||||
|
#define SDCARD_DMA_CLK RCC_AHB1Periph_DMA1
|
||||||
|
#define SDCARD_DMA_CHANNEL DMA_Channel_0
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#define M25P16_CS_PIN PB3
|
#define M25P16_CS_PIN PB3
|
||||||
#define M25P16_SPI_INSTANCE SPI3
|
#define M25P16_SPI_INSTANCE SPI3
|
||||||
|
|
||||||
#define USE_FLASHFS
|
#define USE_FLASHFS
|
||||||
#define USE_FLASH_M25P16
|
#define USE_FLASH_M25P16
|
||||||
|
|
||||||
|
#endif // AIRBOTF4SD
|
||||||
|
|
||||||
|
|
||||||
#define USE_VCP
|
#define USE_VCP
|
||||||
#if defined(PODIUMF4)
|
#if defined(PODIUMF4)
|
||||||
#define VBUS_SENSING_PIN PA8
|
#define VBUS_SENSING_PIN PA8
|
||||||
|
@ -186,6 +227,10 @@
|
||||||
#define VBAT_ADC_CHANNEL ADC_Channel_13
|
#define VBAT_ADC_CHANNEL ADC_Channel_13
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(AIRBOTF4SD)
|
||||||
|
#define RSSI_ADC_PIN PA0
|
||||||
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
|
#define DEFAULT_RX_FEATURE FEATURE_RX_SERIAL
|
||||||
#if defined(PODIUMF4)
|
#if defined(PODIUMF4)
|
||||||
#define SERIALRX_PROVIDER SERIALRX_SBUS
|
#define SERIALRX_PROVIDER SERIALRX_SBUS
|
||||||
|
@ -207,12 +252,11 @@
|
||||||
#ifdef REVOLT
|
#ifdef REVOLT
|
||||||
#define USABLE_TIMER_CHANNEL_COUNT 11
|
#define USABLE_TIMER_CHANNEL_COUNT 11
|
||||||
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(8) | TIM_N(12) )
|
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(4) | TIM_N(8) | TIM_N(12) )
|
||||||
#else
|
#elif defined(AIRBOTF4) || defined(AIRBOTF4SD)
|
||||||
#define USABLE_TIMER_CHANNEL_COUNT 12
|
#define USABLE_TIMER_CHANNEL_COUNT 13
|
||||||
#ifdef AIRBOTF4
|
|
||||||
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(5) | TIM_N(8) | TIM_N(12) )
|
#define USED_TIMERS ( TIM_N(1) | TIM_N(2) | TIM_N(3) | TIM_N(5) | TIM_N(8) | TIM_N(12) )
|
||||||
#else
|
#else
|
||||||
|
#define USABLE_TIMER_CHANNEL_COUNT 12
|
||||||
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(5) | TIM_N(8) | TIM_N(12) )
|
#define USED_TIMERS ( TIM_N(2) | TIM_N(3) | TIM_N(5) | TIM_N(8) | TIM_N(12) )
|
||||||
#endif // AIRBOTF4
|
#endif
|
||||||
#endif // REVOLT
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
F405_TARGETS += $(TARGET)
|
F405_TARGETS += $(TARGET)
|
||||||
FEATURES += VCP ONBOARDFLASH
|
ifeq ($(TARGET), AIRBOTF4SD)
|
||||||
|
FEATURES = VCP SDCARD
|
||||||
|
else
|
||||||
|
FEATURES = VCP ONBOARDFLASH
|
||||||
|
endif
|
||||||
|
|
||||||
TARGET_SRC = \
|
TARGET_SRC = \
|
||||||
drivers/accgyro_spi_mpu6000.c \
|
drivers/accgyro_spi_mpu6000.c \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue