Un module Bluetooth peut consommer des microampères en veille ou des dizaines de milliampères en émission, et l’écart entre ces deux nombres décide de la durée de vie de la pile. La plupart règlent la radio et oublient la machine à états de puissance, alors que c’est là que l’on gagne ou perd des mois d’autonomie. Cet article présente un modèle pratique de planification basse consommation : quels états existent, qu’est-ce qui réveille la puce, et comment calculer le courant moyen qu’un design va vraiment tirer.

La machine à états de puissance

Voyez le module Bluetooth traverser quatre états, pas deux :

État Courant typique Ce qui reste actif
Actif / TX-RX 5-20 mA Radio, CPU, flash
Sleep (CPU idle) 1-3 mA Horloge CPU gate, RAM retenue
Deep sleep 10-200 µA RTC, RAM retenue seule
Hibernation 1-5 µA Wake GPIO, RTC, rien d’autre

L’art est de passer le plus de temps possible en deep sleep ou hibernation tout en respectant la latence que l’appli exige. Un capteur de porte qui rapporte une fois par jour vit en hibernation ; un wearable qui stream le pouls doit rester en sleep.

Sources de réveil

Un module Bluetooth ne se réveille pas seul : quelque chose doit le sortir de veille :

  • Interruption GPIO : front de bouton, PIR ou reed. Le plus rapide (µs) et le moins cher.
  • RTC / minuteur : pour beacons ou polling périodiques. Prévisible, mais fixe le cycle.
  • UART RX : des octets hôtes arrivent et le front descendant réveille la puce. Le pin RX doit rester biaisé.
  • Événement BLE : fenêtre d’advertising ou événement de connexion planifié par le stack.
  • Minuteur radio : la couche lien se réveille pour le prochain intervalle.

Pour un capteur sur pile, GPIO + RTC est la combinaison qui laisse la puce dormir 99% du temps.

Mathématique du duty cycle

Le courant moyen est la somme pondérée dans le temps de chaque état :

I_avg = I_active * (t_active / T) + I_sleep * (1 – t_active / T)

Si un module Bluetooth émet 5 ms chaque 1 s à 15 mA et dort à 50 µA le reste :

I_avg = 0.015 * 0.005 + 0.00005 * 0.995 ≈ 0.000125 A = 125 µA

Une CR2032 (220 mAh) tient alors environ 220 / 0.125 ≈ 1760 heures, soit ~73 jours. Portez l’intervalle à 10 s et on dépasse deux ans. L’intervalle, pas la puissance radio, domine.

Choix du PMIC et du régulateur

Le régulateur qui alimente le module Bluetooth compte autant que le module. Un LDO linéaire est simple et silencieux mais perd en chaleur la chute de la pile à 1.8 V. Un convertisseur buck (découpé) atteint 85-95% et peut doubler l’autonomie sur une cellule Li 3.6 V. Règle : chute >200 mV et plus de quelques mA, utilisez un buck.

Surveillez aussi le courant de quiescence du PMIC : un buck qui tire 25 µA en sleep peut noyer un module Bluetooth en hibernation à 5 µA. Choisissez un PMIC dont l’Iq est bien sous votre courant de sleep cible.

Poignée de main d’endormissement

Ne coupez jamais l’énergie d’un module Bluetooth en plein écriture flash. Utilisez une poignée explicite :

1. L’hôte envoie une commande sleep (ex. AT+SLEEP) et attend OK.

2. Le module finit l’opération, vide l’UART et assert la ligne HOST_WAKE/CTS (« je dors »).

3. L’hôte peut couper l’alim radio ou laisser le PMIC idle.

Au réveil, l’hôte désassert la ligne ; le module démarre le stack en dizaines de ms et remonte HOST_WAKE pour signaler prêt.

Compromis de latence de réveil

Réveil plus rapide coûte du courant. Un module qui garde un oscillateur basse fréquence réveille en 2 ms mais brûle plus en sleep ; celui qui gate tout demande 20-50 ms et un re-init complet. Choisissez selon l’appli : un clavier veut <10 ms, un beacon température tolère des secondes.

Mesurer pour de vrai

Le modèle n’est aussi bon que ses chiffres. Utilisez un analyseur DC (pas un multimètre) pour capturer la trace de courant, puis sommez l’aire sous la courbe :

Charge_par_cycle = ∫ I(t) dt (en µA·s)

Courant_moyen = Charge_par_cycle / T

Cela capte le coût réel des écritures flash, du démarrage cristal et du ringing du régulateur que la formule simple cache.

Un module Bluetooth bien architecturé passe la plupart de sa vie en deep sleep, se réveille sur une source propre et utilise un buck dont le courant de quiescence est une fraction du plancher de sleep : c’est ainsi que l’on transforme des semaines d’autonomie en années.