Establishing connection between ICM20948 and STM32 Nucleo-413ZH using I2C

I am trying to connect the ICM20948 module with the STM32 Nucleo-413ZH board using I2C. The board layout is as follows:

The connection to this is as follows:

SDA → I2C2_SDA (Pin PF_0)
SCL → I2C2_SCL (Pin PF_1)
VDD → 3V3
GND → GND
AD0 → GND

This setup gives me the device address of 0x68. Now initially after running a scan once for any I2C connection I am able to get the aforementioned address. However, immediately after if I rerun the code to try to find the address again, the address is not displayed. The power is still on, and when I switch the VDD off and then back on, I can check the address again properly.

I used the code for the I2C scan from here. https://deepbluembedded.com/stm32-i2c-s … e-example/

Can you please suggest how I can troubleshoot this issue?

It looks like that board has some additional specs for using i2c https://deepbluembedded.com/stm32-i2c-t … slave-dma/

Do you have another board to test with, or another sensor? The ICM-20948 has aux i2c pull-ups https://learn.sparkfun.com/tutorials/sp … e-overview, but they may be insufficient

I found a bunch of posts online that suggested using at least a 2.7k, 4.7 recommended…while that sensor uses 2.2k pull-ups https://cdn.sparkfun.com/assets/c/7/8/f … ematic.pdf - so it might be worth trying to use some external pull-ups and disabling the ones on the ICM-20948

Hi Russell thanks for your advice. I checked using an Arduino and found that there was something wrong with the code. I checked my code and there was some problem with the way it was initialising the icm20948 module. I worked it out thanks for your help