ICM-20689 strange accelerometer data with Wake on Motion enabled

By enricosansone9… , 24 June 2021

Hi,

I'm using an ICM-20689 sensor and I've beenable to set it up successfully and get data from it, but I have a problem.

I've setup the accelerometer with the following parameters: SMPLRT_DIV = 3, 10Hz filter, ±16 full scale, so I have a sample rate of 250Hz, average 4 samples; it works fine, in fact I get about 2050 as raw data from z-axis, which is correct, x and y axis are working as expected as well.

I've configured the FIFO (with accel data only), and I managed to get the accelerometer data from it without any problem.

Later I've configured the WoM feature with the interrupt and the thresholds, leaving the other parameters as before (sample rate, filter etc.); I was not interested in reading the data at this point as I was only waiting for the interrupt.
It seemed (and seems) to work as expected, even if I'm not able to measure g-forces relatively to the thresholds that I configured.
Thanks to the filtering, for example, I was able to get the WoM interrupt only when a force persists for a certain amount of time (10Hz filter) so it was not too sensitive and it was good for my application.

Then, I tried to read the data (both from FIFO and out registers) with the latter configuration (WoM) and I found out that the raw values are somewhat wrong or scaled differently: for example I'm getting about 100 for 1g while I should get 2048; is this a normal behaviour?

My real intention was to setup the interrupt from the WoM configured as above (with filters etc.), then read back a certain number of samples from the FIFO only soon after that the interrupt triggerer, so I can see what happened during the event that triggered the WoM, without the need of reading the data continuously.

Am I missing something? Is it even possible to configure the sensor in such a way? If yes, I can try any configuration you suggest as I'm still working on it.

Thanks in advance.

remyhurxnl

1 year 7 months ago

I have a similar experience with an iam20680, want to use the wom to read the accelerometer values at that incident. The raw values before enabling wom are like 500/500/16000, after enabling wom 700/700/800. The writing to the power management registry and enabling or disabling accel cycle changes these results. When i toggle accel cycle off before readout and toggle back on afterwards the raw results are better… but toggling back on initiates the interrupt. Probably because of the accel intelligence mode, have to find out.

phpbb Post ID
46334
phpbb Topic ID
39063