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.
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.