2010-01-19 06:22 AM
STM32F103ZET6 not meeting published power specs?
2011-05-17 04:34 AM
Will give your suggestions a try after the new year, JJ.
Thanks.2011-05-17 04:34 AM
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, Chris2011-05-17 04:34 AM
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.2011-05-17 04:34 AM
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.