Aller au contenu

Sleep mode

Les systèmes embarqués qui fonctionnent avec des piles ou des batteries doivent être particulièrement attentifs à ne pas gaspiller l’énergie dont ils disposent. Et de manière générale, dans le contexte de développement durable, c’est très intéressant de réduire la consommation des systèmes là où c’est possible.

Les microcontrôleurs modernes disposent de plusieurs modes de veille, (low power modes) dans lesquelles ils consomment très peu d’énergie. Le STM32F412 propose 3 modes de veille :

  • Sleep mode : Dans ce mode, seul le CPU est arrêté. Tous les périphériques continuent à fonctionner et peuvent réveiller l’unité centrale lorsqu’une interruption ou un événement survient. Quelques exemples d’événements qui peuvent réveiller le CPU:
    • la pression d’un bouton;
    • l’alarme d’un timer;
    • l’arrivée d’un caractère sur un UART.
  • Stop mode : Ce mode permet d’obtenir la plus faible consommation possible tout en conservant le contenu de la SRAM et des registres. Le CPU peut être réveillé par n’importe quelle ligne EXTI (une des 16 lignes externes, ou le timer RTC).
  • Standby mode : Ce mode est utilisé pour obtenir la plus faible consommation d’énergie possible. Dans ce mode, la SRAM et le contenu des registres sont perdus! On peut réveiller le microcontrôleur avec le bouton RESET, un flanc montant sur une broche donnée (celle connectée au bouton central du joystick) ou par le timer RTC.

Joystick

Mbed OS offre plusieurs méthodes pour forcer le processeur à se mettre en veille. Étudiez la documentation pour plus de détails.

Mais avec Mbed OS, vous n’avez même pas besoin de faire des efforts particuliers pour mettre le processeur en veille. Quand vous appelez ThisThread::sleep_for(); ou que vous utilisez un Ticker, Mbed OS fait automatiquement le nécessaire pour économiser l’énergie en utilisant les modes de veille. Et si vous souhaitez aller plus loin, Mbed OS propose des classes telles que LowPowerTicker qui sont moins performantes que les simples Tickers, mais qui sont spécialement optimisées pour économiser l’énergie.

Lisez la page Power optimization pour plus de détails sur la gestion de la consommation d’énergie. Les fonctions de statistiques de Mbed OS vous permettent de mesurer le temps que le processeur passe en veille.

Exercice: Consommation d’énergie et autonomie