We have a custom board with a nrf52840 and multiple I2C devices( accel, pressure, etc).
We noticed that anytime we do an I2C transaction ( reads in particular), the current draw is abnormally high ( ~1 mA) for almost 1.2 seconds after the transaction ! After that, it drops to our system normal ( ~55uA).
In the i2c_nrf5_transfer function, the TWI is disabled around line 249. When I add a k_sleep() before this instruction, the current stays high for that much longer. when I do it after this, it doesnt change the 1.2second pulse.
twi->ENABLE = TWI_ENABLE_ENABLE_Disabled;
From this, I surmise that there is some delayed mechanism after the disable IN THE TWI PERIPHERAL I hypothesize that its not my i2c device since the same thing happens with other devices on my bus as well.
Can anyone from nordic please shed some light on this?