I seem to have fixed excessive current draw of some SPI devices when they are in low power modes, but want to validate the reason why.
The SPI devices are controlled by an STM32 which sends power down commands to put the devices into low power mode.
The STM32 also goes into low power mode (standby or shutdown), which means the SPI lines are high impedance.
I managed to fix the excessive current draw of the SPI devices by enabling the STM32 internal pull down resistor on the SPI clock line.
The only thing I can think of is that whilst in a low power mode, any noise on the clock line will cause the device to internally clock and draw additional current.
When the STM32 is in low power mode the clock line is high impedance, so any noise could cause this internal clocking. By pulling the clock line to ground with a resistor, the clock line is no longer floating and prevents internal clocking.
Does this sound like the correct cause and rectification ? Has anyone else experienced this ?
The SPI devices are shown below...
W25Q flash
The W25Q25 flash was drawing about 200 to 300uA after requesting low power mode, but the datasheet states a maximum of 20uA. When I enabled the STM32 internal pull down resistor the W25Q25 current dropped significantly to 4uA.

BME280 pressure sensor
The BME280 pressure sensor was drawing about 150to 200uA after requesting low power mode, but the datasheet states a maximum of 0.3uA. When I enabled the STM32 internal pull down resistor the BME20 current dropped significantly to nearly zero.

The SPI devices are controlled by an STM32 which sends power down commands to put the devices into low power mode.
The STM32 also goes into low power mode (standby or shutdown), which means the SPI lines are high impedance.
I managed to fix the excessive current draw of the SPI devices by enabling the STM32 internal pull down resistor on the SPI clock line.
The only thing I can think of is that whilst in a low power mode, any noise on the clock line will cause the device to internally clock and draw additional current.
When the STM32 is in low power mode the clock line is high impedance, so any noise could cause this internal clocking. By pulling the clock line to ground with a resistor, the clock line is no longer floating and prevents internal clocking.
Does this sound like the correct cause and rectification ? Has anyone else experienced this ?
The SPI devices are shown below...
W25Q flash
The W25Q25 flash was drawing about 200 to 300uA after requesting low power mode, but the datasheet states a maximum of 20uA. When I enabled the STM32 internal pull down resistor the W25Q25 current dropped significantly to 4uA.

BME280 pressure sensor
The BME280 pressure sensor was drawing about 150to 200uA after requesting low power mode, but the datasheet states a maximum of 0.3uA. When I enabled the STM32 internal pull down resistor the BME20 current dropped significantly to nearly zero.

Last edited: