Hi everyone, I am working on a custom DroneCAN peripheral board using an STM32G491 MCU with an ICM-42688-P IMU. The IMU is not being detected/initialized, and I would appreciate help identifying the issue. The board uses a 24 MHz TCXO as the external clock, configured in HSE bypass mode.
MCU and Clock Configuration
MCU STM32G4xx STM32G491xx
External TCXO frequency
OSCILLATOR_HZ 24000000
HSE bypass mode for external TCXO
define STM32_HSE_BYPASS
IMU SPI Configuration
SPI2 - ICM-42688-P
PF1 SPI2_SCK SPI2 PA10 SPI2_MISO SPI2 PA11 SPI2_MOSI SPI2 PA0 IMU_CS CS
ICM-42688-P interrupt/data-ready pin
PA1 IMU_DRDY INPUT
IMU configuration
define HAL_DEFAULT_INS_FAST_SAMPLE 1 SPIDEV icm42688 SPI2 DEVID1 IMU_CS MODE3 1MHZ 16MHZ define AP_PERIPH_IMU_ENABLED 1 The device is intended to run as a DroneCAN peripheral with the IMU enabled, but the ICM-42688-P is currently not working/detected. Could someone please check whether there is any issue with the SPI pin configuration, SPIDEV definition, IMU interrupt configuration, or the STM32G491/24 MHz TCXO HSE bypass configuration? Any suggestions on how to debug this would be appreciated.