cancel
Showing results for 
Search instead for 
Did you mean: 

high STOP mode current

trevor23
Associate III
Posted on August 22, 2012 at 17:29

In STANDBY mode my board current drops to 300uA which is as expected. However if I use STOP mode it is 880uA. I had expected STOP mode to be only 20 - 30 uA more than STANBY. In STOP mode I turn all pins to analog in floating (as they would be in STANDBY mode) but still the current is more than 500 uA more then expected. 

I've used stop mode on other projects without this problem so I'm a bit confused. Any ideas what to try next?

Regards

Trevor
6 REPLIES 6
ken239955
Associate II
Posted on January 01, 2013 at 01:30

This is common knowledge. You have power down all subsystems for lowest current drain.

trevor23
Associate III
Posted on January 01, 2013 at 16:16

This is the note from the low power application note AN2629 (page 11):

The ADC or DAC can also consume power during the Stop mode, unless they are disabled before entering it. To disable them, the ADON bit in the ADC_CR2 register and the ENx bit in the DAC_CR register must both be written to 0.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/APPLICATION_NOTE/CD00171691.pdf

@sprague.jj

No problem. Glad it helped.

@STOne-32

This was on a STM32F103ZEH but I presume the same would apply to at least all 103 range.

@Ken

This is specific to ADC (and DAC). This is not required for other peripherals as the peripheral clocks stop in STOP mode.

jj2
Associate II
Posted on January 01, 2013 at 16:30

Ken, ''This is common knowledge.'' 

Common to whom - mon ami?  Do not different vendors of ARM MCUs utilize their own ''methods/procedures'' to manage MCU peripherals?  Devil very often lies in detail - I am in distrust of such, unreferenced, ''common knowledge.''   (note - you provided no attribution)

Should Trevor's recent assertion re: ''clock kill'' be correct - your idea of disabling ''each/every'' is to excess - and may cause issues - as ''each/every'' sub-system must now start from cold...

trevor23
Associate III
Posted on December 31, 2012 at 18:22

Took some finding but the solution here is that you must disbale the ADC (or DAC) in STOP mode even though the peripherial clock will be stopped. A one liner on this was added to the low power application note online but was not in my older printed version (lesson learned on printing manuals). Add this before entering STOP mode.

ADC_Cmd(ADC1, DISABLE);

Hope this saves someone else from suffering this issue.

jj2
Associate II
Posted on December 31, 2012 at 19:23

How kind of you - our group was about to walk down exact same path (we also print manuals).

Thank you - very much appreciated!

Nickname12657_O
Associate III
Posted on December 31, 2012 at 21:53

Hi Trevor,

Can you please provide on which product/part number of our STM32 MCUs series, you experiment this behavior  ?

Cheers,

STOne-32.