icm42688p: limit to 8 kHZ for now

This commit is contained in:
Daniel Agar
2021-04-16 10:49:49 -04:00
parent 59b70a881d
commit ed0fa99198
2 changed files with 29 additions and 17 deletions

View File

@@ -73,7 +73,7 @@ private:
void exit_and_cleanup() override; void exit_and_cleanup() override;
// Sensor Configuration // Sensor Configuration
static constexpr float FIFO_SAMPLE_DT{1e6f / 16000.f}; // 16000 Hz accel & gyro ODR configured static constexpr float FIFO_SAMPLE_DT{1e6f / 8000.f}; // 8000 Hz accel & gyro ODR configured
static constexpr float GYRO_RATE{1e6f / FIFO_SAMPLE_DT}; static constexpr float GYRO_RATE{1e6f / FIFO_SAMPLE_DT};
static constexpr float ACCEL_RATE{1e6f / FIFO_SAMPLE_DT}; static constexpr float ACCEL_RATE{1e6f / FIFO_SAMPLE_DT};
@@ -181,8 +181,8 @@ private:
{ Register::BANK_0::INT_CONFIG, INT_CONFIG_BIT::INT1_MODE | INT_CONFIG_BIT::INT1_DRIVE_CIRCUIT, INT_CONFIG_BIT::INT1_POLARITY }, { Register::BANK_0::INT_CONFIG, INT_CONFIG_BIT::INT1_MODE | INT_CONFIG_BIT::INT1_DRIVE_CIRCUIT, INT_CONFIG_BIT::INT1_POLARITY },
{ Register::BANK_0::FIFO_CONFIG, FIFO_CONFIG_BIT::FIFO_MODE_STOP_ON_FULL, 0 }, { Register::BANK_0::FIFO_CONFIG, FIFO_CONFIG_BIT::FIFO_MODE_STOP_ON_FULL, 0 },
{ Register::BANK_0::PWR_MGMT0, PWR_MGMT0_BIT::GYRO_MODE_LOW_NOISE | PWR_MGMT0_BIT::ACCEL_MODE_LOW_NOISE, 0 }, { Register::BANK_0::PWR_MGMT0, PWR_MGMT0_BIT::GYRO_MODE_LOW_NOISE | PWR_MGMT0_BIT::ACCEL_MODE_LOW_NOISE, 0 },
{ Register::BANK_0::GYRO_CONFIG0, GYRO_CONFIG0_BIT::GYRO_ODR_16kHz, Bit3 | Bit2 | Bit0 }, { Register::BANK_0::GYRO_CONFIG0, GYRO_CONFIG0_BIT::GYRO_ODR_8KHZ_SET, GYRO_CONFIG0_BIT::GYRO_ODR_8KHZ_CLEAR },
{ Register::BANK_0::ACCEL_CONFIG0, ACCEL_CONFIG0_BIT::ACCEL_ODR_16kHz, Bit3 | Bit2 | Bit0 }, { Register::BANK_0::ACCEL_CONFIG0, ACCEL_CONFIG0_BIT::ACCEL_ODR_8KHZ_SET, ACCEL_CONFIG0_BIT::ACCEL_ODR_8KHZ_CLEAR },
{ Register::BANK_0::GYRO_CONFIG1, 0, GYRO_CONFIG1_BIT::GYRO_UI_FILT_ORD }, { Register::BANK_0::GYRO_CONFIG1, 0, GYRO_CONFIG1_BIT::GYRO_UI_FILT_ORD },
{ Register::BANK_0::GYRO_ACCEL_CONFIG0, 0, GYRO_ACCEL_CONFIG0_BIT::ACCEL_UI_FILT_BW | GYRO_ACCEL_CONFIG0_BIT::GYRO_UI_FILT_BW }, { Register::BANK_0::GYRO_ACCEL_CONFIG0, 0, GYRO_ACCEL_CONFIG0_BIT::ACCEL_UI_FILT_BW | GYRO_ACCEL_CONFIG0_BIT::GYRO_UI_FILT_BW },
{ Register::BANK_0::ACCEL_CONFIG1, 0, ACCEL_CONFIG1_BIT::ACCEL_UI_FILT_ORD }, { Register::BANK_0::ACCEL_CONFIG1, 0, ACCEL_CONFIG1_BIT::ACCEL_UI_FILT_ORD },

View File

@@ -162,12 +162,18 @@ enum GYRO_CONFIG0_BIT : uint8_t {
GYRO_FS_SEL_2000_DPS = 0, // 0b000 = ±2000dps (default) GYRO_FS_SEL_2000_DPS = 0, // 0b000 = ±2000dps (default)
// 3:0 GYRO_ODR // 3:0 GYRO_ODR
GYRO_ODR_32kHz = Bit0, // 0001: 32kHz // 0001: 32kHz
GYRO_ODR_16kHz = Bit1, // 0010: 16kHz GYRO_ODR_32KHZ_SET = Bit0,
GYRO_ODR_8kHz = Bit1 | Bit0, // 0011: 8kHz GYRO_ODR_32KHZ_CLEAR = Bit3 | Bit2 | Bit0,
GYRO_ODR_4kHz = Bit2, // 0100: 4kHz // 0010: 16kHz
GYRO_ODR_2kHz = Bit2 | Bit0, // 0101: 2kHz GYRO_ODR_16KHZ_SET = Bit1,
GYRO_ODR_1kHz = Bit2 | Bit1, // 0110: 1kHz (default) GYRO_ODR_16KHZ_CLEAR = Bit3 | Bit2 | Bit0,
// 0011: 8kHz
GYRO_ODR_8KHZ_SET = Bit1 | Bit0,
GYRO_ODR_8KHZ_CLEAR = Bit3 | Bit2,
// 0110: 1kHz (default)
GYRO_ODR_1KHZ_SET = Bit2 | Bit1,
GYRO_ODR_1KHZ_CLEAR = Bit3 | Bit0,
}; };
// ACCEL_CONFIG0 // ACCEL_CONFIG0
@@ -176,12 +182,18 @@ enum ACCEL_CONFIG0_BIT : uint8_t {
ACCEL_FS_SEL_16G = 0, // 000: ±16g (default) ACCEL_FS_SEL_16G = 0, // 000: ±16g (default)
// 3:0 ACCEL_ODR // 3:0 ACCEL_ODR
ACCEL_ODR_32kHz = Bit0, // 0001: 32kHz // 0001: 32kHz
ACCEL_ODR_16kHz = Bit1, // 0010: 16kHz ACCEL_ODR_32KHZ_SET = Bit0,
ACCEL_ODR_8kHz = Bit1 | Bit0, // 0011: 8kHz ACCEL_ODR_32KHZ_CLEAR = Bit3 | Bit2 | Bit0,
ACCEL_ODR_4kHz = Bit2, // 0100: 4kHz // 0010: 16kHz
ACCEL_ODR_2kHz = Bit2 | Bit0, // 0101: 2kHz ACCEL_ODR_16KHZ_SET = Bit1,
ACCEL_ODR_1kHz = Bit2 | Bit1, // 0110: 1kHz (default) ACCEL_ODR_16KHZ_CLEAR = Bit3 | Bit2 | Bit0,
// 0011: 8kHz
ACCEL_ODR_8KHZ_SET = Bit1 | Bit0,
ACCEL_ODR_8KHZ_CLEAR = Bit3 | Bit2,
// 0110: 1kHz (default)
ACCEL_ODR_1KHZ_SET = Bit2 | Bit1,
ACCEL_ODR_1KHZ_CLEAR = Bit3 | Bit0,
}; };
// GYRO_CONFIG1 // GYRO_CONFIG1