Cómo configurar correctamente deepsleep para STM32L0xx

Estoy tratando de configurar mi Nucleo Board con un STM32L073RZ en modo de suspensión profunda para obtener el menor consumo de energía. Para hacer eso, uso las bibliotecas mbed con la función deepsleep () (Esta función usa el modo Stop con RTC). En la nota de aplicación dada por STMicroelectronics el consumo es de alrededor de 1µA en modo Stop con RTC pero en mi placa tengo 4,2µA. este es mi guion


int main()
{
    User_Setup();

    RTCHandle.Instance = RTC;

    //Create and launch the RTC date (08:30:00 08/12/16)
    RTC_DATE_TIME(0x16, RTC_MONTH_FEBRUARY, 0x8, RTC_WEEKDAY_TUESDAY, 0x9, 0x50, 0x00, RTC_HOURFORMAT12_AM);

    RTC_AlarmConfig();

    while(1)
    {
        deepsleep();
        //Display the time after a wakeup
        RTC_TimeShow();
        wait(1);
    }
}

¿Cómo puedo configurar correctamente mi STM32 para obtener el menor consumo?

Gracias por su atención

Simón NOWAK

¿Supongo que estás mirando la corriente DESPUÉS de cualquier regulador de voltaje?
Para obtener mi valor actual, conecto mi amperímetro en los pines JP6.

Respuestas (2)

Además de la respuesta de dim, que indicaría que podría intentar apagar manualmente los periféricos antes de entrar en el modo de suspensión profunda (no sé si esto se maneja solo con el modo de suspensión profunda) para ver si esto reduce su corriente de sueño, necesita para examinar absolutamente los esquemas de la placa Nucleo para ver si puede haber pull-ups, LED, etc., que podrían estar absorbiendo corriente. No he usado el Nucleo, pero en algunas placas ST, hay puentes (soldadura y otros) con los que podrías tener que lidiar. Una placa de desarrollo puede ser muy útil, pero probablemente no sea la mejor plataforma para probar sistemas de baja corriente.

También debe configurar todas sus E/S para que estén en Z alto antes de dormir.

Gracias ! Nunca pensé en eso. Intento obtener más resultados de esta manera.
High-Z como en el modo analógico: las entradas digitales utilizan disparadores Schmitt que pueden causar corrientes transitorias visibles en el rango de microamperios.

Creo que todavía puede haber algunos periféricos que usan un poco de corriente. La hoja de datos especifica aproximadamente 1 µA en el modo de parada con RTC habilitado, pero también especifica que el periférico PVD/BOR consume ~1,2 µA y ~1,7 µA la referencia de voltaje interno (consulte la Tabla 41 de la hoja de datos: Consumo de corriente del periférico en parada y modo de espera ). Creo que esos dos periféricos están habilitados de forma predeterminada.

Si los deshabilita explícitamente, debería tener un consumo más cercano al 1 µA que espera.

Sin embargo, no puedo decirle cómo hacerlo con las bibliotecas proporcionadas por ST. Nunca los usé.

Gracias por tu respuesta, gracias a ti mi consumo ahora es de 3.8µA, necesito configurar mejor el STM32 pero es un buen comienzo :)
@SimonNOWAK hilo super viejo! Si es posible, ¿podría compartir cómo logró llegar a un consumo tan bajo? ¡Estoy realmente luchando en este momento!