suspend i2c does NOT reduce current?

Hi,

The custom board is 52832 with st lsm6dsr sensor.

I tried to suspend i2c by this code: 

#define I2C_INST DT_NODELABEL(i2c0)
const struct device *const i2c = DEVICE_DT_GET(I2C_INST);
int rc = pm_device_action_run(i2c, PM_DEVICE_ACTION_SUSPEND);
	if (rc < 0) {
		LOG_ERR("Could not suspend i2c (%d)\n", rc);
	}

It worked with no errors. 

But when I measure the current, its the same whether the i2c is suspended or resumed. There is NO power saving at all. I checked the config, it has following:
CONFIG_I2C_NRFX=y
CONFIG_I2C_NRFX_TRANSFER_TIMEOUT=500
CONFIG_I2C_0_NRF_TWI=y
CONFIG_I2C_INIT_PRIORITY=50 

Questions:
1. How to reduce current by suspend i2c/twi? Is there any configuration I should do?  When with SDK, disable twi can reduce significant current. 

2. For 52832, how to make it into low power mode?

Thanks,

Parents Reply
  • As I have stated early on, the issue is the current NOT getting lower after i2c suspended.

    It has nothing to do with the errata as that errata is about higher current than normal when using twim. When not using twim, the current is low. But my case is the current stayed once i2c used.

    And you should know that errata only happened when using twim, not twi.

    So please stop this kind of useless response and provided some useful suggestions.  

Children
Related