Olimexino STM32 standby mode power consumption

Started by lordak, May 18, 2015, 03:41:24 AM

Previous topic - Next topic

lordak

Dear colleges

I am creating battery-powered device based on OLIMEXINO-STM32 board.
I have approximately 1 mA (milliampere) power consumption while operating in STANDBY or STOP modes now. With 4.1 v Li-Ion battery connected and without any other things connected to OLIMEXINO board. While running in normal mode power consumption is about 30 mA.
Regarding to datasheet, power consumption of STM32 in STANDBY or STOP modes should be much less, microamps.
The board description claims that «ULTRA LOW POWER voltage regulators and the consumption is only few microamps, which enables hand-held and battery powered applications». Therefore, the question is if there are problems with software, or there are problems with hardware. Board include voltage regulators, CAN transceiver, etc.

Does anyone have experience with this question? Did the developers measure the power consumption?

jmyreen

Quote from: lordak on May 18, 2015, 03:41:24 AM
Dear colleges

I am creating battery-powered device based on OLIMEXINO-STM32 board.
I have approximately 1 mA (milliampere) power consumption while operating in STANDBY or STOP modes now.  Therefore, the question is if there are problems with software, or there are problems with hardware. Board include voltage regulators, CAN transceiver, etc.


Unless you have a running timer interrupting the CPU, I guess the only other explanation is the circuitry external to the STM32. For example, the CAN transceiver is specified to draw up to 365 µA in standby mode. This does not explain the whole 1000 µA, though.

http://users.ece.utexas.edu/~valvano/Datasheets/MCP2551.pdf

lordak

Thank you. I checked this datasheet also. The MCP2551 consumption is low. The second thing is it need +5v to operate, but it is switched off while powering from battery. The MCP1700T used on the board is "Low Quiescent Current LDO", with 1.6 µA typical quiescent current, so this is OK and perfect.
It seems to me that problem can be with pullup/pulldown resistors, there are a lot of them on the board.

lordak

#3
With mikroPascal/mikroC compilers, configuring all pins with no pull/down function (floating) solve the problem.
Example code:

begin
GPIO_Config(@GPIOA_BASE,_GPIO_PINMASK_ALL,_GPIO_CFG_PULL_NO);
GPIO_Config(@GPIOB_BASE,_GPIO_PINMASK_ALL,_GPIO_CFG_PULL_NO);
GPIO_Config(@GPIOC_BASE,_GPIO_PINMASK_ALL,_GPIO_CFG_PULL_NO);
WUF_bit:=0;
PDDS_bit:=0;
SLEEPDEEP_bit:=1;
asm
  WFI
end;
end;

The board power consumption is about 27 µA from battery with this setting.