Tengo un proyecto en el que estoy tratando de reducir el consumo de energía lo más bajo posible (en un STM32F103RCT6).
Miré el documento de ST sobre cómo reducir el consumo de energía STM32F2 lo más bajo posible e intenté seguir sus recomendaciones:
La cuestión es que el consumo de energía sigue siendo de 4,6 mA (frente a 15 en el modo de suspensión _WFI estándar, y alrededor de 30 cuando realmente está haciendo cosas). Las hojas de datos parecen sugerir que el consumo de energía en STOP debe ser inferior a 0,5 mA.
He puesto un osciloscopio en el oscilador externo y de hecho se detiene.
¿Hay algo obvio que me estoy perdiendo? ¿Hay alguna manera de comprobar qué podría estar causando el consumo de energía adicional?
ACTUALIZACIÓN : se me ocurrió un programa de prueba muy simple, derivado del código de ejemplo de ST:
#include "stm32f10x.h"
GPIO_InitTypeDef GPIO_InitStructure;
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOE, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_Init(GPIOC, &GPIO_InitStructure);
GPIO_Init(GPIOD, &GPIO_InitStructure);
GPIO_Init(GPIOE, &GPIO_InitStructure);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD |
RCC_APB2Periph_GPIOE, DISABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
while (1) PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI);
}
El consumo de energía con esto sigue siendo de 4,3 mA. También verifiqué el circuito: es REALMENTE básico y medí el voltaje en cada resistencia (y es cero).
¿Algunas ideas? ¡Actualmente estoy pensando que en realidad es el regulador de voltaje LD1117 el que tiene la culpa!
Wilhelmsen y Chris tenían razón: era el circuito.
Sin embargo, no fueron resistencias, E/S externas, etc. Fue el regulador de voltaje LD1117 que realmente no había considerado antes.
Resulta que casi todos los reguladores de voltaje LDO de 1A y 3.3v que puedo encontrar tienen una corriente de reposo de 5mA. ¡Acabo de soldar un MIC5205 (que tiene una capacidad nominal de 150 mA) y ahora consume 0,12 mA! \o/
chris stratton
Oli Glaser
chwi
gordon williams
gordon williams
Étienne