cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F103ZET6 not meeting published power specs?

burk
Associate II
Posted on January 19, 2010 at 15:22

STM32F103ZET6 not meeting published power specs?

13 REPLIES 13
burk
Associate II
Posted on May 17, 2011 at 13:34

Will give your suggestions a try after the new year, JJ.

Thanks.

cturcotte
Associate
Posted on May 17, 2011 at 13:34

Hi Burk,

Have you found any way to improve your power consumption?

I am also investigating low power operation using a STM32F103ZE (on a starter kit board); we will need to consume even less current than for your application. I have observed current consumption of less than 9 mA when running with the external crystal at 8 MHz (with most peripheral clocks disabled).

Your example uses the PLL; that must consume some current. Does your system have to use the PLL when operating stand-alone?

Regards,

Chris

burk
Associate II
Posted on May 17, 2011 at 13:34

We're still working on it. Right now, we use the external crystal at 8 Mhz, and run the PLL at its lowest setting.

Here's an excerpt from a report from a week or so ago in which we used the internal clock, and bypassed the PLL:

--

We've been able to run the proto board at ~8mA with all of the GPIOs enabled, but the peripherals disabled. The system is running at 8MHz using the internal crystal. Below is a table of the current draw based on what is enabled.

Peripherals Enabled With Analog electronics turned Off. Current Draw

GPIOs only ~ 8mA

GPIOs, Timer 1, ADC1-3, DAC, I2C ~ 12mA

GPIOs, Timer 1, ADC1-3, DAC, I2C, FSMC ~ 13mA

Peripherals Enabled With Analog electronics turned On. Current Draw

GPIOs only ~ 15mA

GPIOs, Timer 1, ADC1-3, DAC, I2C ~ 16mA

GPIOs, Timer 1, ADC1-3, DAC, I2C, FSMC ~ 17mA

---

So far, it appears that the Analog data sheets are inaccurate with regards to current consumption and peripherals.

The table with Analog ON can be ignored, since I assume that some of the amps were in saturation as we didn't have the sensors hooked in.

However, it's interesting that we start out at 8 mA with just a GPIO configuration and no peripherals. Maybe what I think of as a peripheral is different than what ST thinks of as a peripheral. Anyway, we are now trying to map each peripheral, and it's current requirements. I also want to ensure that each and every peripheral that we do not use is OFF. I want to know that if it's NOT included in the source code, that it for all intents and purposes remains inert and draws no current. Same deal with the extra clocks. I've got the IAR Embedded Workbench (and the eval license)loaded on my machine and stopped the project ($$,$$$!) until I can personally get a handle on this. I'm learning the tools now.

We've considered trying to put the processor to sleep to conserve power, but the trouble is that this is a data acquisition application, and as sample rate increases, processor sleep time decreases. Add in the overhead of DC bias drift correction algorithms, pre-trigger buffers, impulse sum calculations, resultant calculations, and suddenly the processor gets very busy, very quickly. Sleep time must be a tool of last resort--

I want to fully test all of the suggestions listed here in this thread, as I owe it to you all that have made them - before making any more trouble. However, at this point in time, I'm still stuck. I need the processor current to be about 9 mA before switching on the analog electronics and starting up the active sampling of those channels. Otherwise, I won't make the battery life spec.

fmuntz
Associate
Posted on May 17, 2011 at 13:34

This is a problem I am also able to recreate.

It seems to depend on where in code I call functions like the GPIO structure. If I use a sample project from the ST Std. Periph. Lib for say GPIO toggle it works at 4Mhz/4ma, take the GPIO structure out from where it is called and in its place call a function that calls only that structure  to setup the GPIO pins and off the MCU goes sucking up ~8ma more than it was just using, even though I have not made any actual changes to the order of startup or functions themselves other than where they were called from.

Called Keil, called ST, same runaround, everyone says it should only draw <1ma/mhz.