cancel
Showing results for 
Search instead for 
Did you mean: 

run mode current test conditions

Posted on December 24, 2008 at 05:59

run mode current test conditions

4 REPLIES 4
Posted on May 17, 2011 at 12:57

Hi,

Can anyone tell under which conditions the run mode current was tested. It appears the part consumes consistent currents with the datasheet figures only when executing while(1).

Also the place of while(1) affects the current like indicated before in this forum. I guess this is due the behavious of prefetch buffer. Sometimes, based on the code location, it does not need to access flash.

Can ST provide us with the test conditions with respect to code used.

Normal code consumes twice as much current.

Kerem

16-32micros
Associate III
Posted on May 17, 2011 at 12:57

Dear Kerem, all,

You can refer to our Datasheets on web (

http://www.st.com/stonline/products/literature/ds/15060.pdf

) then in Section 5.3.5 ''Supply current characteristics'' we specify that :

The current consumption is a function of several parameters and factors such as the operating voltage, ambient temperature, I/O pin loading, device software configuration, operating frequencies, I/O pin switching rate, program location in memory and executed binary code.

The current consumption is measured as described in Figure 10: Current consumption measurement scheme.

All Run-mode current consumption measurements given in this section are performed with a reduced code that gives a consumption equivalent to Dhrystone 2.1 code.

So basically, This code is not a While(1) and is using ''Dhrystone 2.1 code'' reference that you can find in the public domain.

By the way, Why having a code with while(1) ? it has no sense in my opinion [ it is good only for Debugging but not for Low power release code] I would use instead :

while(1)

{

/* Mode: SLEEP + Entry with WFI*/

__WFI();

}

Hope this hint is useful for you 🙂

Cheers,

STOne-32.

gdp123a
Associate II
Posted on May 17, 2011 at 12:57

I also made the mistake of using the while (1) loop to help measure current consumption (during hardware initialisation). At certain addresses this loop seems to represent the minimum current consumption possible with a piece of assembler - at other addresses it represents the maximum possible.

If you have to use software delays loops, (sometimes it's simpler than using SLEEP or STOP), avoid small, tight loops.

A larger loop which reads an IO port many times before branching uses much less power.

Greg.

Posted on May 17, 2011 at 12:57

Ok. I understand. Thanks for the input. Appearently the Dhrystone code does not help much as it is far from reality. Because in my real application the cpu executes many unsequenced code with many interrupts enabled. Anyhow, I know see what I need to estimate my real current consumption.

In the meantime I acknowledge that the uc manufacturers has to depend on some standard code for datasheet purposes to let use compare relatively which mcu consumes what.

I experienced the exact same thing with Greg when checking the current consumption.

I just needed to know why the consumption figures are so different than what I measure here. Now I know.

Thanks for the inputs..

Kerem