Hello.
I have an ICM-20948 Evaluation Board (https://store.invensense.com/Products/Detail/EVICM20948-TDK-InvenSense/597422/) connected through a level shifter (https://www.adafruit.com/product/757) to a nRF52-DK. I have ported the Discovery Board driver to the nRF52 (https://www.invensense.com/developers/software-downloads/#sla_content_35656)
Now I have a problem during the initialisation. In the file inv_mems_load_firmware.c, function inv_mems_firmware_load(), the firmware is being uploaded, and then being verified. This verify always fails on the first packet on 16 bytes. The data read back always differs from the expected data.
See the attached file i2c.c for my code to support the nrf52. Is there anything I am overlooking here? Or could it be my level shifter is distorting the signal?
C source code cannot be uploaded for security reasons it seems? Then this is the code as text
Hi,
I just was working through the same problem. I used information found in this post: https://www.invensense.com/developers/forums/topic/icm-20948-dmp-flash-error-2/ Particularly I used a different write sequence (and ic library) which Dingari had modified in the following github location: https://github.com/jrowberg/i2cdevlib/pull/360
The code I used was the following (note that this is for a nRF based device).