ICM42605 calibration questions

By tdjastrzebskiwppl , 5 January 2025

I try to properly calibrate ICM42605 chip using USER0-USER8 registers.
1. Are stored calibration values internally added to original readings or subtracted from them?
In another words, after reading bias values when device is not in motion do I need to store them in USER0-USER8 registers with the same or with opposite sign?
I was unable to find this info in the datasheet.
2. Does configured calibration data endianness needs to match endianness configured in INTF_CONFIG0 reg?

tdjastrzebskiwppl

1 year 2 months ago

Update: to be more specific; I mean OFFSET_USER0 - OFFSET_USER8 registers.
I am showing that setting those registers to 0xff does not make any difference. What am I missing?
Using user offset does not seem to be part of the official demo code (smartmotion-dk42605_examples-atmel-cm4-fpu-2.0.9.zip).

Moreover, section 5.4 USER PROGRAMMABLE OFFSET datasheet states:
Gyroscope and accelerometer offsets can be programmed by the user by using registers OFFSET_USER0, through OFFSET_USER8, in bank 0, registers 0x77h through 0x7Fh (bank 4) as shown below. It is puzzling. Why bank 0 is mentioned? OFFSET_USER0 - OFFSET_USER8 registers belong to bank 4.

And one more potential issue: my device, when stationary, reads X gyro data about 32 dps. Is such high bias within limits? What those limits are?
Section 4.9 SELF-TEST does not mention any specific values. I read this section several times, but I was unable to grasp the self-test concept.

phpbb Post ID
48700

mustafayildiri…

1 year 2 months ago

Hello,

I understand that mentioning bank 0 there is confusing, I will bring that to the attention of the team. You mentioned "when stationary, reads X gyro data about 32 dps." Are you sure about the units of the data?

phpbb Post ID
48877

abidhussainrad…

1 year 1 month ago

Hello,
i am using ICM42688P with nRF52840.
I am working on calibrating an accelerometer because I am observing values that exceed the expected range of -9.806 to +9.806 m/s%^2.For instance, I am sometimes getting readings around 9.9 or even 10.

Could you help me understand the possible reasons for these discrepancies? Additionally, is there any other way to address or resolve this issue besides calibration?
And can you help me the clear logic for calibration on accelerometer?

Thank you!

phpbb Post ID
48912
phpbb Topic ID
48686