Issue Summary:
The BMI456 accelerometer is in normal operating mode (adv_power_save=0, acc_en=1).
In this state, the MCU (NRF52840 using TWIM1, see attached code for details) sends a soft reset command to the BMI456, and the reset is successful.
After the accelerometer is successfully reset, the I2C bus becomes non-functional, and the MCU can no longer communicate with any I2C slave devices.
To recover the I2C bus, reinitializing the MCU’s I2C module is required.
When an additional step is introduced between steps 1 and 2—resetting pwr_conf and pwr_ctrl to their default values (requires enabling the macro definition PWR_REG_RESET in the attached code)—the I2C bus remains functional after the reset.
This issue occurs consistently, but the root cause is unclear.
I suspect that if the accelerometer is in an active working state, performing a soft reset might cause the MCU’s I2C bus to fail. It seems more reasonable to place the sensor in the default suspend state before performing a soft reset, but I am uncertain if this approach is correct.
To facilitate your analysis of this issue, I have included the relevant code in the attachment.