D'après la datasheet de l'ESP32 S3, le courant consommé en mode deep sleep (RTC) est d'environ 7µA. Cette page explique comment nous avons mesuré le courant réellement consommé par l'ESP32-S3-DevKitM-1 Une comparaison des mesures de différentes cartes ESP32 est consultable sur cette page.
Ces mesures ont été faites avec les versions suivantes :
Nous avons utilisé un multimètre Matrehit Energy qui peut mesurer des courant à partir de 10nA.
Le code source utilisé pour basculer en mode deep sleep est présenté ci-dessous. L'ESP32 reste 10 secondes en fonctionnement normal, puis bascule en mode deep sleep pendant 10 secondes avant de recommencer.
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "esp_log.h"
#include "led_strip.h"
#include "sdkconfig.h"
#include "esp_system.h"
#include "esp_sleep.h"
#define TIME_TO_SLEEP 10 // Wake up / deep sleed duration
#define uS_TO_S_FACTOR 1000000 // Factor from microseconds to seconds
void app_main(void)
{
// Display wake up message in the console
printf("Wake up\n");
// Wait TIME_TO_SLEEP seconds
vTaskDelay(TIME_TO_SLEEP * 1000 / portTICK_PERIOD_MS);
// Display a message in the consol before deep sleep
printf("Go to deep sleep\n");
// Set the deep sleep duration
esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);
// Go in deep sleep mode
esp_deep_sleep_start();
}
Voltage | Normal | Deep sleep | Voltage | Wake up | Deep sleep | |||
---|---|---|---|---|---|---|---|---|
Current | @3.3V | 31.7mA | 8µA | |||||
Power | @3.3V | 105mW | 0.026mW |
Lorsque la carte est alimentée en 3,3V, en mode normal, le courant est d'environ 31,7mA. En mode veille profonde, le courant est de 8µAA. Comme vous pouvez le constater, cette consommation est très proches des 7µA spécifiés dans la documentation de l'ESP32 :
Notez qu'il y a une résistance de zéro Ohms sur le PCB. Pour atteindre cette consommation, il faut enlever la résistance :
Voici cette résistance sur le PCB :
Si la résistance est laissée sur le circuit imprimé, voici les consommations :
Voltage | Normal | Deep sleep | |
---|---|---|---|
Courant | @3.3V | 29.8mA | 0.93mA |
Puissance | @3.3V | 98mW | 3mW |
Courant | @5V | 30.5mA | 1.01mA |
Puissance | @5V | 100mW | 3.33mW |
Voici une vidéo de la mesure du courant :
La raison principale est probablement la led d'alimentation qui est toujours allumée, car elle est connectée à l'alimentation :
Le deuxième point est l'interface USB, basée sur la puce CP2102N. La puce est alimentée par le 3.3V. Même si l'USB n'est pas connecté, l'interface est alimentée. Le courant peut atteindre 1,3mA lorsqu'elle est maintenue en position de réinitialisation. Cela augmente également la consommation globale de la carte.
Le régulateur de tension est un régulateur linéaire DC-DC SGM2212-3.3 (régulateur linéaire à faible courant de repos, à haut taux de performance et à faible perte).
En conclusion, si vous avez une application qui nécessite un mode veille avec une forte contrainte sur la consommation ou l'autonomie, c'est probablement un très bon choix. En effet, c'est l'une des meilleures carte que j'ai testé en terme de consommation. Si l'efficacité énergétique est essentiel pour votre projet, consultez cette page qui compare le courant consommé par différentes cartes ESP 32.