Le véritable courant consommé par l'ESP32 FireBeetle DFR0654 en mode deep sleep

Si la vidéo ne s'affiche pas, cliquez ici.

D'après la datasheet de l'ESP32, le courant consommé en mode deep sleep (RTC) est d'environ 10µA. Cette page explique comment nous avons mesuré le courant réellement consommé par l'ESP32 FireBeetle DFR0654 en mode deep sleep. 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.

Phot de l'ESP32 FireBeetle DFR0654

Code source

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.

// Convert from microseconds to seconds
#define uS_TO_S_FACTOR 1000000ULL
// Duration of each cycle (deep sleep and wakeup)
#define TIME_TO_SLEEP  10      

// Setup() is call on startup and wakeup from deep sleep mode
void setup() {

  // Display a message in the console
  Serial.begin(9600);
  Serial.println("Wake up");

  // Turn the built-in LED on during wake up
  pinMode(LED_BUILTIN, OUTPUT); 
  digitalWrite(LED_BUILTIN, HIGH); 

  // TIME_TO_SLEEP seconds delais
  delay(TIME_TO_SLEEP*1000); 

  // Display a message before deep sleep
  Serial.println("Go to deep sleep");

  // Turn off and keep off the built-in led during deep sleep
  digitalWrite(LED_BUILTIN, LOW);   
  gpio_hold_en(GPIO_NUM_2); 

  // Set deep sleep duration
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR); 

  // Switch to deep sleep mode
  esp_deep_sleep_start();  
}

void loop() {}

Notez que la FireBeetle a une led intégrée. Nous utilisons cette led pour vérifier si l'ESP32 est en mode "deep-sleep" ou non. La led est allumée au début de la configuration et éteinte avant de de passer en veille profonde. Nous devons appeler la ligne cidessous pour maintenir l'état état du GPIO (la led reste éteinte pendant le sommeil profond) :

gpio_hold_en(GPIO_NUM_2); 

Low Power Pad

La documentation de la carte stipule :

Low Power Pad: Ce bloc est spécialement conçu pour une faible consommation d'énergie. Il est connecté par défaut. Vous pouvez couper le fil fin au milieu avec une lame pour le déconnecter. Après la déconnexion, la consommation électrique statique peut être réduite de 500 μA. La consommation électrique peut être réduite à 13 μA après avoir contrôlé le contrôleur principal entrer en mode veille par le programme. Remarque : lorsque le pad est déconnecté, vous pouvez uniquement piloter la lumière LED RVB via l'alimentation USB.

Cette carte a une connection nommée low power pad:

Connection basse consommation de l'ESP32 DFR0654 (Low Power Pad)

Si vous coupez le fil, la carte passe en basse consommation (elle déconnecte la puissance des led RGB) :

La connection Low Power Pad coupée sur l'ESP32 Firebeetle DFR0654

Dans ce qui suit, le courant est mesuré dans les deux modes : mode normal et mode basse consommation.

Résultats

Normal Deep sleep Deep sleep [Low Power]
Courant 40 mA 520 µA 11,6 µA
Puissance 212 mW 2,7 mW 58 µW

En mode normal, le courant est d'environ 40mA. En mode veille profonde, le courant est de 520 µA. Comme vous pouvez le constater cette consommation est loin des 10µA spécifiés dans la documentation de l'ESP32:

Datasheet de l'ESP32 | Courant en veille profonde

Explications

Analysons le schéma afin de comprendre d'où provient cette consommation de 520 µA.

Tout d'abord, il n'y a pas de led d'alimentation. Il y a une led intégrée mais cette led peut être éteinte en passant en mode veille profonde comme nous l'avons fait précédemment.

Convertisseur USB / série

Schéma du convertisseur USB / série de la FireBeetle DFR0654

Le CH340C est un convertisseur USB vers UART. Il est alimenté par la broche VCC qui est alimenté par VUSB qui provient du connecteur USB U1. Cela signifie que le driver USB n'est pas alimenté si l'USB n'est pas connecté. En d'autres termes, la consommation d'énergie du CH340C est nulle lorsque l'USB est débranché.

Chargeur de batterie

Schéma du chargeur de batterie TP4056 sur la FireBeetle DFR0654

Il en va de même pour le TP4056 (chargeur de batterie Li-Ion). Le chargeur est alimenté par VUSB fourni par le connecteur USB. La consommation d'énergie de U3 est nulle lorsque l'USB n'est pas alimenté.

Régulateur de tension

Schéma du régulateur de tension de la FireBeetle DFR0654

Le point suivant est le régulateur U2. Le régulateur de tension est un RT9080-33GJ5. Selon la documentation, ce régulateur de tension low drop out (LDO) ne nécessite que 2μA de ground current à vide. Il est clair que ce régulateur a un excellent rendement.

Mesure de la tension batterie

Schéma de la mesure de tension batterie sur la FireBeetle DFR0654

Ce diviseur de tension est utilisé pour mesurer la tension de la batterie. La sortie est connectée au convertisseur analogique/numérique A0. Les deux résistances sont connectées en permanence à la batterie. Il est facile de calculer le courant dissipé dans ce diviseur de tension :

$$ i = \dfrac{U}{R} = \dfrac{5}{1000000+1000000} = 2.5~µA $$

Led RGB intégrée

Schéma de la led RGB intégrée sur la carte FireBeetle DFR0654

La FireBeetle est équipé d'une led RGB intégrée qui est constamment alimentée par la batterie ou par l'USB. La led RGB est une WS2812. Elle possède un circuit intégré de contrôle qui pilote les leds en fonction des commandes envoyées sur la broche DATA IN. Mais comme la led est toujours prête à recevoir une commande, c'est cette partie du circuit qui nécessite les 500 µA comme le confirme la documentation :

Courant minimum consommé par la led RGB WS2812 de l'ESP32 DFR0654

Sur le schéma, R11 est une résistance de 0Ω. Ce composant est en réalité le low power pad. Cela explique pourquoi la consommation peut être réduite de 500 μA lors de la déconnexion de l'alimentation de la led.

Conclusion

En conclusion, si vous avez une application qui nécessite un mode veille avec une forte contrainte sur la consommation ou l'autonomie, ce n'est pas forcement le meilleur choix de carte de développement. Si l'efficacité énergétique est essentiel pour votre projet, regardez plutôt la carte FireBeetle DFR078.

Download

Voir aussi


Dernière mise à jour : 08/12/2022