mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-03-23 07:23:10 +08:00
[imu] change conditions for IMU default settings
Only two different settings (low and high speed / bandwidth) depending of PERIODIC_FREQUENCY with a transition at 500 Hz
This commit is contained in:
@@ -45,27 +45,27 @@ PRINT_CONFIG_VAR(ASPIRIN_2_SPI_DEV)
|
||||
|
||||
/* MPU60x0 gyro/accel internal lowpass frequency */
|
||||
#if !defined ASPIRIN_2_LOWPASS_FILTER && !defined ASPIRIN_2_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY == 60) || (PERIODIC_FREQUENCY == 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define ASPIRIN_2_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define ASPIRIN_2_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif (PERIODIC_FREQUENCY == 500) || (PERIODIC_FREQUENCY == 512)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define ASPIRIN_2_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define ASPIRIN_2_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
#else
|
||||
#error Non-default PERIODIC_FREQUENCY: please define ASPIRIN_2_LOWPASS_FILTER and ASPIRIN_2_SMPLRT_DIV.
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(ASPIRIN_2_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(ASPIRIN_2_SMPLRT_DIV)
|
||||
|
||||
PRINT_CONFIG_VAR(ASPIRIN_2_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(ASPIRIN_2_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -43,25 +43,27 @@ PRINT_CONFIG_VAR(BEBOP_MAG_I2C_DEV)
|
||||
PRINT_CONFIG_VAR(BEBOP_MPU_I2C_DEV)
|
||||
|
||||
#if !defined BEBOP_LOWPASS_FILTER && !defined BEBOP_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY == 60) || (PERIODIC_FREQUENCY == 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define BEBOP_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define BEBOP_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif PERIODIC_FREQUENCY == 512
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define BEBOP_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define BEBOP_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(BEBOP_SMPLRT_DIV)
|
||||
PRINT_CONFIG_VAR(BEBOP_LOWPASS_FILTER)
|
||||
|
||||
PRINT_CONFIG_VAR(BEBOP_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(BEBOP_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -42,26 +42,27 @@ PRINT_CONFIG_VAR(DISCO_MPU_I2C_DEV)
|
||||
#endif
|
||||
|
||||
#if !defined DISCO_LOWPASS_FILTER && !defined DISCO_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY == 60) || (PERIODIC_FREQUENCY == 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define DISCO_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define DISCO_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif PERIODIC_FREQUENCY == 512
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define DISCO_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define DISCO_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(DISCO_SMPLRT_DIV)
|
||||
PRINT_CONFIG_VAR(DISCO_LOWPASS_FILTER)
|
||||
|
||||
PRINT_CONFIG_VAR(DISCO_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(DISCO_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -40,41 +40,36 @@ PRINT_CONFIG_VAR(IMU_MPU_SPI_DEV)
|
||||
|
||||
/* MPU60x0 gyro/accel internal lowpass frequency */
|
||||
#if !defined IMU_MPU_LOWPASS_FILTER && !defined IMU_MPU_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY >= 60) && (PERIODIC_FREQUENCY <= 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define IMU_MPU_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define IMU_MPU_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
|
||||
#ifndef IMU_MPU_ACCEL_LOWPASS_FILTER
|
||||
#define IMU_MPU_ACCEL_LOWPASS_FILTER MPU60X0_DLPF_ACC_44HZ // for ICM sensors
|
||||
#endif
|
||||
#elif (PERIODIC_FREQUENCY == 512) || (PERIODIC_FREQUENCY == 500)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define IMU_MPU_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define IMU_MPU_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
|
||||
#ifndef IMU_MPU_ACCEL_LOWPASS_FILTER
|
||||
#define IMU_MPU_ACCEL_LOWPASS_FILTER MPU60X0_DLPF_ACC_218HZ // for ICM sensors
|
||||
#endif
|
||||
#else
|
||||
/* By default, don't go too fast */
|
||||
#define IMU_MPU_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define IMU_MPU_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#ifndef IMU_MPU_ACCEL_LOWPASS_FILTER
|
||||
#define IMU_MPU_ACCEL_LOWPASS_FILTER MPU60X0_DLPF_ACC_44HZ // for ICM sensors
|
||||
#endif
|
||||
#warning "Non-default PERIODIC_FREQUENCY: please define IMU_MPU_LOWPASS_FILTER and IMU_MPU_SMPLRT_DIV."
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(IMU_MPU_ACCEL_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(IMU_MPU_SMPLRT_DIV)
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(IMU_MPU_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -40,27 +40,27 @@ PRINT_CONFIG_VAR(IMU_HMC_I2C_DEV)
|
||||
|
||||
/* MPU60x0 gyro/accel internal lowpass frequency */
|
||||
#if !defined IMU_MPU_LOWPASS_FILTER && !defined IMU_MPU_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY == 60) || (PERIODIC_FREQUENCY == 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define IMU_MPU_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define IMU_MPU_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif (PERIODIC_FREQUENCY == 500) || (PERIODIC_FREQUENCY == 512)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define IMU_MPU_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define IMU_MPU_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
#else
|
||||
#error Non-default PERIODIC_FREQUENCY: please define IMU_MPU_LOWPASS_FILTER and IMU_MPU_SMPLRT_DIV.
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(IMU_MPU_SMPLRT_DIV)
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(IMU_MPU_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -34,27 +34,27 @@
|
||||
|
||||
/* MPU60x0 gyro/accel internal lowpass frequency */
|
||||
#if !defined IMU_MPU60X0_LOWPASS_FILTER && !defined IMU_MPU60X0_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY == 60) || (PERIODIC_FREQUENCY == 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define IMU_MPU60X0_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define IMU_MPU60X0_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif (PERIODIC_FREQUENCY == 500) || (PERIODIC_FREQUENCY == 512)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define IMU_MPU60X0_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define IMU_MPU60X0_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
#else
|
||||
#error Non-default PERIODIC_FREQUENCY: please define IMU_MPU60X0_LOWPASS_FILTER and IMU_MPU60X0_SMPLRT_DIV.
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU60X0_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(IMU_MPU60X0_SMPLRT_DIV)
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU60X0_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(IMU_MPU60X0_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#include "generated/modules.h"
|
||||
|
||||
#if !defined IMU_MPU9250_GYRO_LOWPASS_FILTER && !defined IMU_MPU9250_ACCEL_LOWPASS_FILTER && !defined IMU_MPU9250_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY >= 60) && (PERIODIC_FREQUENCY <= 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 41Hz, Delay 5.9ms
|
||||
* Gyroscope: Bandwidth 41Hz, Delay 5.9ms sampling 1kHz
|
||||
* Output rate: 100Hz
|
||||
@@ -42,7 +42,8 @@
|
||||
#define IMU_MPU9250_ACCEL_LOWPASS_FILTER MPU9250_DLPF_ACCEL_41HZ
|
||||
#define IMU_MPU9250_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif (PERIODIC_FREQUENCY == 512) || (PERIODIC_FREQUENCY == 500)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 184Hz, Delay 5.8ms
|
||||
* Gyroscope: Bandwidth 250Hz, Delay 0.97ms sampling 8kHz
|
||||
* Output rate: 2kHz
|
||||
@@ -51,19 +52,13 @@ PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#define IMU_MPU9250_ACCEL_LOWPASS_FILTER MPU9250_DLPF_ACCEL_184HZ
|
||||
#define IMU_MPU9250_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
#else
|
||||
/* By default, don't go too fast */
|
||||
#define IMU_MPU9250_SMPLRT_DIV 9
|
||||
#define IMU_MPU9250_GYRO_LOWPASS_FILTER MPU9250_DLPF_GYRO_41HZ
|
||||
#define IMU_MPU9250_ACCEL_LOWPASS_FILTER MPU9250_DLPF_ACCEL_41HZ
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#warning "Non-default PERIODIC_FREQUENCY: please define IMU_MPU9250_GYRO_LOWPASS_FILTER, IMU_MPU9250_ACCEL_LOWPASS_FILTER and IMU_MPU9250_SMPLRT_DIV."
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_SMPLRT_DIV)
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_GYRO_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_ACCEL_LOWPASS_FILTER)
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ PRINT_CONFIG_VAR(IMU_MPU9250_SPI_DEV)
|
||||
|
||||
|
||||
#if !defined IMU_MPU9250_GYRO_LOWPASS_FILTER && !defined IMU_MPU9250_ACCEL_LOWPASS_FILTER && !defined IMU_MPU9250_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY >= 60) && (PERIODIC_FREQUENCY <= 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 41Hz, Delay 5.9ms
|
||||
* Gyroscope: Bandwidth 41Hz, Delay 5.9ms sampling 1kHz
|
||||
* Output rate: 100Hz
|
||||
@@ -48,7 +48,8 @@ PRINT_CONFIG_VAR(IMU_MPU9250_SPI_DEV)
|
||||
#define IMU_MPU9250_ACCEL_LOWPASS_FILTER MPU9250_DLPF_ACCEL_41HZ
|
||||
#define IMU_MPU9250_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif (PERIODIC_FREQUENCY == 512) || (PERIODIC_FREQUENCY == 500)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 184Hz, Delay 5.8ms
|
||||
* Gyroscope: Bandwidth 250Hz, Delay 0.97ms sampling 8kHz
|
||||
* Output rate: 2kHz
|
||||
@@ -57,19 +58,13 @@ PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#define IMU_MPU9250_ACCEL_LOWPASS_FILTER MPU9250_DLPF_ACCEL_184HZ
|
||||
#define IMU_MPU9250_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
#else
|
||||
/* By default, don't go too fast */
|
||||
#define IMU_MPU9250_SMPLRT_DIV 9
|
||||
#define IMU_MPU9250_GYRO_LOWPASS_FILTER MPU9250_DLPF_GYRO_41HZ
|
||||
#define IMU_MPU9250_ACCEL_LOWPASS_FILTER MPU9250_DLPF_ACCEL_41HZ
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#warning "Non-default PERIODIC_FREQUENCY: please define IMU_MPU9250_GYRO_LOWPASS_FILTER, IMU_MPU9250_ACCEL_LOWPASS_FILTER and IMU_MPU9250_SMPLRT_DIV."
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_SMPLRT_DIV)
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_GYRO_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_ACCEL_LOWPASS_FILTER)
|
||||
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(IMU_MPU9250_ACCEL_RANGE)
|
||||
|
||||
|
||||
@@ -33,27 +33,27 @@
|
||||
|
||||
/* MPU60x0 gyro/accel internal lowpass frequency */
|
||||
#if !defined PX4FMU_LOWPASS_FILTER && !defined PX4FMU_SMPLRT_DIV
|
||||
#if (PERIODIC_FREQUENCY == 60) || (PERIODIC_FREQUENCY == 120)
|
||||
#if PERIODIC_FREQUENCY < 500
|
||||
/* Accelerometer: Bandwidth 44Hz, Delay 4.9ms
|
||||
* Gyroscope: Bandwidth 42Hz, Delay 4.8ms sampling 1kHz
|
||||
*/
|
||||
#define PX4FMU_LOWPASS_FILTER MPU60X0_DLPF_42HZ
|
||||
#define PX4FMU_SMPLRT_DIV 9
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 100Hz at 1kHz internal sampling")
|
||||
#elif (PERIODIC_FREQUENCY == 500) || (PERIODIC_FREQUENCY == 512)
|
||||
|
||||
#else // PERIODIC_FREQUENCY >= 500
|
||||
/* Accelerometer: Bandwidth 260Hz, Delay 0ms
|
||||
* Gyroscope: Bandwidth 256Hz, Delay 0.98ms sampling 8kHz
|
||||
*/
|
||||
#define PX4FMU_LOWPASS_FILTER MPU60X0_DLPF_256HZ
|
||||
#define PX4FMU_SMPLRT_DIV 3
|
||||
PRINT_CONFIG_MSG("Gyro/Accel output rate is 2kHz at 8kHz internal sampling")
|
||||
#else
|
||||
#error Non-default PERIODIC_FREQUENCY: please define PX4FMU_LOWPASS_FILTER and PX4FMU_SMPLRT_DIV.
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
PRINT_CONFIG_VAR(PX4FMU_LOWPASS_FILTER)
|
||||
PRINT_CONFIG_VAR(PX4FMU_SMPLRT_DIV)
|
||||
|
||||
PRINT_CONFIG_VAR(PX4FMU_GYRO_RANGE)
|
||||
PRINT_CONFIG_VAR(PX4FMU_ACCEL_RANGE)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user