IMC20948 DMP does not generate interrupt

By kcwayne53 , 30 October 2019

I am using code from the DK-20948 Smartmotion distribution to work the this sensor. I ported the sample app code that initializes the IMU and pulls data out of the sensor after it interrupts to a Nordic nRF5280 based product that has the IMU on the board, and since this did not work, also used a Nordic SDK board with the IMU on a breakout board just to see if the problem were something about the product board design.

I have gone through the register settings with a fine tooth comb, and have tried a multitude of things to get the DMP on the sensor to generate an interrupt when it has data. I have had a couple of test sessions where it did so for a short time, but after reset of the board, is virtually impossible to replicate.

I do get wake on motion interrupts without problem. So on all my test platforms, there is no problem with the interrupt being received in the 5280 MCU, but getting the DMP to work is virtually impossible. I validated that the DMP firmware load is successful, although this is flaky as well. After a firmware load on the MCU, the DMP firmware load fails 90+% of the time, but if I just reset, it succeeds.

What I describe happens on both the product of interest as well as the SDK/breakout boards, with the exception that I have never seen the product get interrupts from the DMP.

From the example code in the Smartmotion distribution, it seems like if the sensor registers are initialized appropriately, the DMP will generate data. This does not work, and the only difference between what I am testing is that there is no compass on the board, so the sensor is initialized to indicate this. But I do not see that a compass is required for the DMP to work.

Anyone have ideas on what could cause the DMP to not work 99.9% of the time?

phpbb Topic ID
37713