finani / ICM42688

Arduino library for communicating with the InvenSense ICM42688 nine-axis IMUs.
MIT License
47 stars 21 forks source link

Low speed SPI not necessary on ICM-42688P #18

Open geosmall opened 2 months ago

geosmall commented 2 months ago

The ICM-42688P (datasheet here https://invensense.tdk.com/wp-content/uploads/2020/04/ds-000347_icm-42688-p-datasheet.pdf) does not need to have SPI speed reduced to 1MHz of less like the MPU-6000 needed (datasheet here https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Datasheet1.pdf) when configuring the device with register reads and writes.

ICM-42688P Maximum SPI Clock Speed: The ICM-42688P supports an SPI clock frequency up to 24 MHz for reading and writing to registers. Timing Characteristics: The datasheet (Table 5) specifies the timing requirements for SPI communication, including setup and hold times, which should be adhered to ensure reliable communication.

MPU-6000 Maximum SPI Clock Speed: The MPU-6000 supports an SPI clock frequency up to 20 MHz. Configuration Mode: For the MPU-6000, there is a note that during initial configuration (register reads and writes), the SPI speed should be reduced to 1MHz or less to ensure proper device initialization and avoid issues.

Comparison and Conclusion SPI Speed: The ICM-42688P supports higher SPI speeds (up to 24 MHz) compared to the MPU-6000 (up to 20 MHz). There is no specific mention in the ICM-42688P datasheet that requires reducing the SPI speed to 1MHz during initial configuration. Configuration: The requirement to reduce SPI speed during configuration is explicitly mentioned for the MPU-6000 but not for the ICM-42688P.

Based on the datasheet information, the ICM-42688P does not need to have the SPI speed reduced to 1MHz during register reads and writes for configuration.