
Chaque fiche technique de BLE tag pretend une duree de vie de 3 ans avec une CR2032. En production, le meme tag meurt souvent en 8 mois. L’ecart n’est pas un mensonge — c’est la difference entre un calcul idealise et un budget d’energie reel qui tient compte des fuites en veille, du courant des capteurs, du demarrage du cristal, du derating thermique et de la perte de capacite par charge pulsatoire. Cet article construit un modele complet de budget d’energie du niveau du silicium vers le haut, avec des profils de courant mesures, des modeles de calcul et des tableaux de prediction de deploiement que les ingenieurs peuvent appliquer directement a leurs propres conceptions.
1. Pourquoi les Predictions de Duree de Vie Echouent
Le calcul typique de duree de vie en fiche technique ressemble a ceci :
Duree de vie = Capacite batterie / Courant moyen
= 220 mAh / 20 uA
= 11 000 heures
= 1,25 ans
Ce calcul est faux pour cinq raisons :
1. Capacite nominale, pas capacite utilisable : Une CR2032 est cotee a 220 mAh a 23°C, dechargee a 0,2 mA jusqu’a 2,0V. Dans un tag BLE pulsant a 15 mA pendant 300 μs chaque seconde, la capacite effective chute a 170-190 mAh en raison de la chute de tension de la resistance interne.
2. Courant de veille sous-estime : La fiche technique du MCU indique 1,2 μA en veille profonde. En ajoutant le courant de quiescence du LDO (1,5 μA), le detecteur de brown-out (0,5 μA), la fuite GPIO (0,3 μA), on arrive a 3,5 μA — presque 3 fois la valeur annoncee.
3. Courant de publicite surexcessivement simplifie : Les fiches techniques citent le courant TX au niveau radio (4,8 mA pour nRF52832 a 0 dBm). Ils n’incluent pas le demarrage du cristal (150-300 μs a 8 mA), la stabilisation du regulateur de tension ni le surcout de la pile de protocole. L’energie reelle par evenement de publicite est 2-4 fois le calcul TX seul.
4. Courant de capteur completement ignore : Un accelerometre en mode basse consommation consomme 2-10 μA en continu. Un capteur de temperature/humidite (SHTC3) consomme 0,4 μA en veille mais 450 μA pendant une mesure de 5 ms. Ces valeurs s’accumulent.
5. Derating thermique omis : A -10°C, la capacite de la CR2032 chute a 55-65% de la valeur nominale. A 50°C, l’auto-decharge s’accelere a 5% par an. Les deploiements en entrepots, chaine du froid ou environnements exterieurs voient une duree de vie 30-60% plus courte que le calcul a 23°C ne le predit.
L’ecart avec la realite
| Methode de calcul | Duree predite (CR2032, 1s adv) | Duree reelle sur le terrain |
|---|---|---|
| Calcul simple fiche technique (220mAh / 20uA) | 1,25 ans | — |
| + correction fuite de veille | 0,95 ans | — |
| + correction energie de publicite | 0,72 ans | — |
| + courant de capteur | 0,58 ans | — |
| + derating thermique (0-40°C) | 0,45 ans | 0,42 ans |
Le modele completement corrige arrive a 7% pres des mesures de terrain. Le modele non corrige a un facteur d’erreur de 3x.
2. Etats d’Energie du BLE Tag
Un tag BLE cycle a travers plusieurs etats d’energie. Le courant moyen est la somme ponderee par le temps de tous les etats :
I_avg = (I_sleep * T_sleep + I_adv * T_adv + I_sensor * T_sensor + I_led * T_led) / T_cycle
Definitions des etats
| Etat | Courant typique | Duree typique | Frequence |
|---|---|---|---|
| Veille profonde (RTC + retention RAM) | 1,5-5,0 uA | 999,3 ms | Par cycle de 1s |
| Demarrage cristal + rampe | 5-10 mA | 150-300 us | Par evenement adv |
| TX publicite (3 canaux) | 4,8-8,0 mA | 80-120 us/canal | Par evenement adv |
| Reveil capteur + mesure | 0,3-15 mA | 0,5-10 ms | Par echantillon |
| Clignotement LED | 2-10 mA | 5-50 ms | Rare (configuration) |
| Pression bouton + anti-rebond | 0,5-2 mA | 50-200 ms | Rare (utilisateur) |
| Evenement de connexion (si connecte) | 5-10 mA | 0,5-3 ms | Par evenement conn |
L’idee cle : le courant de veille domine la moyenne car le tag y passe 99,9% de son temps. Mais les rafales de publicite et de capteur determinent le courant de crete, qui affecte la chute de tension de la batterie.
3. Analyse d’Energie de Publicite
3.1 Anatomie de l’evenement de publicite
Un seul evenement de publicite n’est pas juste « TX pendant 100 μs. » Il se compose de :
1. Reveil de veille (10-20 μs, ~3 mA) : Le MCU sort de la veille profonde, restaure les registres.
2. Synchronisation RTC et configuration minuteur (10-30 μs, ~3 mA) : Preparation de l’evenement.
3. Demarrage du cristal (150-300 μs, ~8 mA) : L’oscillateur a cristal de 32 MHz doit se stabiliser. La plupart des piles BLE attendent le signal HFXO ready. C’est souvent le plus grand consommateur d’energie individuel dans l’evenement de publicite.
4. Rampe du regulateur de tension (20-50 μs, ~3 mA) : Le convertisseur DC/DC ou LDO se stabilise pour le PA radio.
5. TX par canal (80-120 μs/canal, 4,8-8 mA) : 37 octets de payload typique a 1 Mbps sur chacun des 3 canaux de publicite (37, 38, 39).
6. Arret radio + stop cristal (20-50 μs, ~2 mA) : Sequence de coupure d’alimentation.
7. Re-entree en veille (10-20 μs, ~2 mA) : Configurer le wakeup RTC, entrer en veille profonde.
3.2 Energie par evenement de publicite
Pour nRF52832 a 0 dBm, alimentation 3,0V, mesure avec Nordic PPK2 :
| Phase | Duree (us) | Courant (mA) | Charge (nC) |
|---|---|---|---|
| Reveil + sync RTC | 25 | 3,0 | 75 |
| Demarrage cristal | 200 | 8,0 | 1600 |
| Rampe regulateur | 35 | 3,0 | 105 |
| TX ch37 | 112 | 7,0 | 784 |
| TX ch38 | 112 | 7,0 | 784 |
| TX ch39 | 112 | 7,0 | 784 |
| Arret + entree veille | 40 | 2,0 | 80 |
| Total | 636 | — | 4212 |
Charge totale par evenement de publicite : 4,212 μC
Energie = charge × tension = 4,212 μC × 3,0V = 12,636 μJ
Courant moyen de publicite seule :
I_adv_avg = Q_total / T_interval
A intervalle de 1 seconde : 4,212 μC / 1 s = 4,212 μA
A intervalle de 100ms : 4,212 μC / 0,1 s = 42,12 μA
A intervalle de 10 secondes : 4,212 μC / 10 s = 0,421 μA
3.3 Puissance TX vs consommation de courant
differents SoC ont differents profils de courant. Le tableau suivant montre le courant TX a differents niveaux de puissance pour trois SoC populaires de tags BLE :
| Puissance TX | nRF52832 (mA) | nRF52840 (mA) | CC2640R2 (mA) | TLSR8253 (mA) |
|---|---|---|---|---|
| +8 dBm | 7,0 | 8,5 | 6,9 | — |
| 0 dBm | 4,8 | 5,3 | 5,0 | 5,3 |
| -4 dBm | 3,6 | 4,0 | — | 4,1 |
| -12 dBm | 2,4 | 2,6 | — | 2,8 |
| -20 dBm | 1,5 | 1,6 | 2,1 | 1,9 |
| -40 dBm | 0,8 | 0,9 | — | — |
Reduire la puissance TX de 0 dBm a -20 dBm economise 68% du courant TX. Si le tag n’a besoin que de 5 metres de portee (typique pour le suivi d’actifs au niveau des etageres), -12 dBm est generalement suffisant.
3.4 Intervalle de publicite vs courant moyen
| Intervalle | Courant moyen adv seul (uA) | Avec veille (3,5 uA) total (uA) |
|---|---|---|
| 100 ms | 42,1 | 45,6 |
| 250 ms | 16,8 | 20,3 |
| 500 ms | 8,4 | 11,9 |
| 1 s | 4,2 | 7,7 |
| 2 s | 2,1 | 5,6 |
| 5 s | 0,84 | 4,3 |
| 10 s | 0,42 | 3,9 |
Passer de 1s a 10s d’intervalle economise 49% du courant total. Passer de 100ms a 1s economise 83%. L’intervalle de publicite est le parametre le plus impactant pour la duree de vie de la batterie.
4. Analyse d’Energie d’Echantillonnage de Capteurs
4.1 Profils de courant des capteurs courants
| Capteur | Veille (uA) | Courant actif (mA) | Temps de mesure (ms) | Energie active (uC) |
|---|---|---|---|---|
| LIS2DH12 (accel) | 2-6 | 0,27 | 0,5 | 0,135 |
| LIS2DW12 (accel) | 0,5-1,0 | 0,22 | 1,0 | 0,22 |
| SHTC3 (T/RH) | 0,4 | 0,45 | 5,4 | 2,43 |
| LPS22HB (pression) | 1,0 | 1,5 | 5,0 | 7,5 |
| OPT3001 (lumiere) | 0,3 | 0,45 | 0,8 | 0,36 |
| MMC3630KJ (mag) | 2,0 | 1,5 | 2,0 | 3,0 |
4.2 Impact sur le courant moyen
Un tag echantillonnant un accelerometre LIS2DW12 chaque seconde :
I_sensor_avg = (I_active * T_measure + I_standby * T_standby) / T_cycle
= (0,22 mA * 1,0 ms + 0,5 uA * 999 ms) / 1000 ms
= (0,22 uC + 0,4995 uC) / 1,0 s
= 0,72 uA
Un tag echantillonnant SHTC3 temperature/humidite toutes les 10 secondes :
I_sensor_avg = (0,45 mA * 5,4 ms + 0,4 uA * 9994,6 ms) / 10000 ms
= (2,43 uC + 4,0 uC) / 10,0 s
= 0,64 uA
4.3 Le cout cache : bus I2C
Le bus I2C lui-meme consomme du courant pendant les transactions. A 100 kHz avec des pull-ups de 4,7k sur une alimentation de 3V :
I_I2C_avg_par_octet = (3,0V / 4,7k) * 0,5 = 0,319 mA (moyenne par bit, 50% duty)
Une lecture de capteur de 6 octets (2 adresse + 6 donnees + ACKs = ~10 octets) prend ~900 μs et ajoute 0,29 μC par transaction. Petit mais a inclure dans le budget.
4.4 Strategie de cycle de service du capteur
Pour un tag qui n’a besoin de donnees d’accelerometre que pour la detection de chocs :
– Toujours allume : LIS2DW12 en mode basse consommation, 2 μA continu
– Interroge : Reveil toutes les 500 ms, echantillonnage, retour en veille. Moyenne : 1,2 μA
– Pilote par interruption : Garder l’accelerometre en veille, s’appuyer sur l’interruption de seuil integree. Moyenne : 0,8 μA (veille seulement, pas d’echantillonnage actif sauf si declenche)
L’approche pilotee par interruption economise 60% par rapport a toujours allume et est la strategie recommandee pour les tags de detection de chocs/vibrations.
5. Courant de Veille et de Fuite
L’etat de veille est l’endroit ou le tag passe 99,9% de sa vie. Chaque microampere ici est directement soustrait de la duree de vie de la batterie.
5.1 Decomposition du courant de veille
| Composant | Courant (uA) | Notes |
|---|---|---|
| MCU veille profonde (RTC + RAM) | 1,2-1,5 | nRF52832 System ON, RTC en cours |
| Courant de quiescence LDO/DCDC | 0,5-1,5 | Depend du regulateur |
| Detecteur de brown-out (BOD) | 0,2-0,5 | Souvent configurable |
| Minuteur de surveillance (WDT) | 0,1-0,3 | Si active en veille |
| Fuite GPIO (tous les broches) | 0,1-0,5 | Depend de la configuration |
| Veille capteur | 0,4-2,0 | Par capteur |
| Cristal (LF 32,768 kHz) | 0,1-0,3 | Si cristal LF externe utilise |
| Fuite PCB | 0,05-0,2 | Residus de flux, contamination |
| Total typique | 3,0-6,5 |
5.2 La configuration GPIO est importante
Un GPIO non configure avec une entree flottante peut consommer 20-50 μA par broche en raison de l’oscillation du tampon d’entree CMOS. Un tag avec 8 broches inutilisees dans l’etat par defaut peut fuir 160 μA — plus de 20 fois tout le budget de veille.
Regles GPIO en veille :
– Entrees inutilisees : pull-down ou pull-up (interne ok, ~13 kΩ)
– Sorties inutilisees : piloter LOW (ou HIGH si pull-up externe existe)
– Broches CS de capteur : piloter HIGH (deselectionner) pour eviter l’activite du bus de capteur
– I2C SDA/SCL : laisser comme entrees avec pull-ups externes (deja presents)
5.3 Choix du regulateur
| Type de regulateur | Courant de quiescence (uA) | Rendement a 3mA | Rendement a 10 uA |
|---|---|---|---|
| LDO standard (AMS1117) | 5,0 | 55% | 12% |
| LDO faible Iq (TPS7A02) | 0,025 | 90% | 85% |
| DC/DC buck (nRF52 sur puce) | 0,3 | 90% | 70% |
Utiliser un LDO standard gaspille 5 μA rien qu’en courant de quiescence — sur un budget total de 10 μA, cela represente 50% de tout le courant de veille. Utilisez toujours un LDO a faible Iq ou le convertisseur DC/DC sur puce.
6. Capacite de Batterie et Derating
6.1 Caracteristiques de la CR2032
Une pile bouton au lithium CR2032 (Li-MnO2) a les caracteristiques suivantes :
– Capacite nominale : 220 mAh (a 23°C, charge de 0,2 mA, coupure a 2,0V)
– Tension nominale : 3,0V (neuve), 2,7V (mi-vie), 2,0V (fin de vie)
– Resistance interne : 10-20 Ω (neuve), 30-50 Ω (fin de vie)
– Auto-decharge : ~1-3% par an a 23°C
6.2 Derating par charge pulsatoire
Quand une CR2032 delivre 15 mA pendant un evenement de publicite, la resistance interne provoque une chute de tension :
V_chute = I * R_interne = 15 mA * 15 ohm = 225 mV
V_borne = 3,0V - 0,225V = 2,775V
En fin de vie (batterie a 2,5V, resistance interne a 40 Ω) :
V_chute = 15 mA * 40 ohm = 600 mV
V_borne = 2,5V - 0,6V = 1,9V
Si le seuil de brown-out du MCU est a 1,8V, le tag subira des brown-outs pendant les evenements de publicite bien avant que la batterie soit « vide. » Cela reduit effectivement la capacite utilisable.
6.3 Capacite effective par profil de charge
| Profil de charge | Capacite effective (mAh) | Utilisation |
|---|---|---|
| 0,2 mA continu (fiche technique) | 220 | 100% |
| 1 mA continu | 210 | 95% |
| Pulsation 5 mA, intervalle 1s, moyenne 15 uA | 195 | 89% |
| Pulsation 15 mA, intervalle 1s, moyenne 15 uA | 180 | 82% |
| Pulsation 15 mA, intervalle 100ms, moyenne 45 uA | 165 | 75% |
6.4 Capacite par temperature
| Temperature (°C) | Capacite effective (mAh) | Utilisation |
|---|---|---|
| -20 | 95 | 43% |
| -10 | 130 | 59% |
| 0 | 165 | 75% |
| 10 | 195 | 89% |
| 23 | 220 | 100% |
| 40 | 215 | 98% |
| 60 | 200 (avec auto-decharge 5%/an) | 91% |
Pour les deploiements en chaine du froid (-20°C a 0°C), attendez-vous a une reduction de capacite de 40-75%. Un tag concu pour 2 ans a temperature ambiante durera 10-15 mois dans un congelateur.
7. Modele de Calcul de Duree de Vie de Batterie
7.1 L’equation complete
Duree_batterie_heures = (C_batterie * f_temp * f_puls * f_auto_decharge) / I_avg
Ou :
C_batterie = capacite nominale (mAh)
f_temp = facteur de derating thermique (0,43-1,0)
f_puls = facteur de derating par charge pulsatoire (0,75-1,0)
f_auto_decharge = facteur d'auto-decharge sur la duree de vie attendue (0,85-0,97)
I_avg = courant moyen total (mA)
7.2 Calcul du courant moyen
I_avg = I_veille + I_adv + I_capteur + I_fuite
Ou :
I_veille = courant_veille_MCU + Iq_LDO + BOD + WDT (generalement 3-6 uA)
I_adv = Q_adv_par_evenement / T_intervalle_adv (voir Section 3)
I_capteur = moyenne_capteur (voir Section 4)
I_fuite = GPIO + fuite_PCB (generalement 0,3-0,8 uA)
7.3 Exemple calcule : Tag de suivi d’actifs
Configuration :
– SoC : nRF52832 a 0 dBm
– Intervalle de publicite : 1 seconde
– Capteur : accelerometre LIS2DW12, interrogation toutes les 1s
– Batterie : CR2032 (220 mAh)
– Deploiement : entrepot, 5-35°C moyenne
Etape 1 : Courant de veille
I_veille = 1,5 (MCU) + 1,0 (DCDC Iq) + 0,3 (BOD) + 0,2 (WDT) + 0,3 (GPIO/PCB) = 3,3 uA
Etape 2 : Courant de publicite
Q_adv = 4,212 uC par evenement
I_adv = 4,212 uC / 1,0 s = 4,212 uA
Etape 3 : Courant de capteur
I_capteur = (0,22 mA * 1,0 ms + 0,5 uA * 999 ms) / 1000 ms = 0,72 uA
Etape 4 : Courant moyen total
I_avg = 3,3 + 4,212 + 0,72 = 8,232 uA
Etape 5 : Facteurs de derating
f_temp = 0,85 (5-35°C moyenne, pondere)
f_puls = 0,82 (pulsation 15 mA, intervalle 1s)
f_auto_decharge = 0,95 (sur 2,5 ans a ~2%/an)
Etape 6 : Duree de vie de batterie
Duree_batterie = (220 * 0,85 * 0,82 * 0,95) / 0,008232
= 145,7 / 0,008232
= 17 704 heures
= 738 jours
= 2,02 ans
Comparaison avec le calcul nave : 220 mAh / 8,232 uA = 26 719 heures = 3,05 ans. Le modele corrige donne 2,02 ans — 33% plus court.
7.4 Tableau de reference rapide
| Configuration | Intervalle Adv | Capteur | I_avg (uA) | Duree nave (ans) | Duree corrigee (ans) |
|---|---|---|---|---|---|
| 1s, accel interroge | 1 s | LIS2DW12 | 8,2 | 3,05 | 2,02 |
| 1s, pas de capteur | 1 s | Aucun | 7,5 | 3,34 | 2,21 |
| 2s, accel interroge | 2 s | LIS2DW12 | 6,1 | 4,10 | 2,71 |
| 5s, accel interroge | 5 s | LIS2DW12 | 4,8 | 5,22 | 3,46 |
| 10s, accel interroge | 10 s | LIS2DW12 | 4,4 | 5,69 | 3,77 |
| 100ms, accel interroge | 100 ms | LIS2DW12 | 45,7 | 0,55 | 0,36 |
| 1s, T/RH toutes les 10s | 1 s | SHTC3 | 8,1 | 3,09 | 2,05 |
| 1s, accel + T/RH | 1 s | Les deux | 8,8 | 2,84 | 1,88 |
8. Effets de Temperature en Detail
8.1 Tension de batterie vs temperature
A charge pulsatoire de 15 mA, tension aux bornes d’une CR2032 neuve :
| Temperature (°C) | Pile neuve (V) | Mi-vie (V) | Fin de vie (V) |
|---|---|---|---|
| -20 | 2,55 | 2,30 | 1,65 (risque de brown-out) |
| -10 | 2,72 | 2,50 | 1,82 |
| 0 | 2,85 | 2,65 | 2,05 |
| 23 | 2,95 | 2,78 | 2,30 |
| 50 | 2,90 | 2,72 | 2,25 |
A -20°C, une batterie en mi-vie chute a 2,30V pendant les pulsations. Si le BOD du MCU est a 2,1V, le tag n’a presque aucune marge et se resettera de maniere aleatoire. Pour les tags de chaine du froid, reglez le BOD a 1,8V et utilisez un condensateur pour gerer le courant de pulsation.
8.2 Dimensionnement du condensateur
Pour gerer le courant de pulsation a basse temperature, ajouter un condensateur en parallele avec la batterie :
C_requis = I_puls * T_puls / (V_min - V_brownout)
Exemple :
I_puls = 15 mA
T_puls = 636 us (evenement de publicite complet)
V_min = 2,30V (mi-vie a -10°C)
V_brownout = 1,8V
C = 0,015 A * 0,000636 s / (2,30 - 1,80) V
C = 0,00000954 / 0,50
C = 19,1 uF
Utilisez un condensateur ceramique de 22 μF (dielectrique X5R ou X7R, 6,3V ou superieur). Les condensateurs ceramiques perdent 40-60% de leur capacite nominale sous polarisation DC, donc un condensateur « 22 μF » a 3V peut ne fournir que 10-13 μF. Utilisez 47 μF nominal pour etre en securite.
9. Mesure et Validation
9.1 Equipement
| Outil | Gamme de prix | Resolution | Cas d’usage |
|---|---|---|---|
| Nordic PPK2 | $1000 | 100 nA | Specifique nRF52, meilleur pour le developpement |
| Joulescope | $800 | 1,5 nA | Universel, haute vitesse |
| Otii Arc Pro | $1200 | 100 nA | Universel, analyse GUI |
| PPK2 + nRF52-DK | $100 | 100 nA | Option budget (PPK2 seul) |
| Multimetre (gamme uA) | $50-200 | 1 uA | Moyenne grossiere seulement |
| Oscilloscope + shunt | $500+ | varie | Mesure personnalisee |
9.2 Mesure du profil de courant de publicite
Connecter le PPK2 en mode « Ampere meter » avec le tag alimente via le PPK2. Configurer le taux d’echantillonnage a 100 kHz (resolution 10 μs). Triggerer sur la hausse de courant au-dessus de 1 mA.
La mesure devrait montrer :
1. Hausse lente de la ligne de base de veille (~3 μA) a ~3 mA (phase de reveil, ~25 μs)
2. Saut a ~8 mA (demarrage du cristal, ~200 μs)
3. Trois pics distincts a ~7 mA (TX sur canaux 37, 38, 39, ~112 μs chacun)
4. Retour a ~2 mA (arret, ~40 μs)
5. Chute de retour a la ligne de base de veille (~3 μA)
9.3 Mesure du courant moyen a long terme
Pour la prediction de duree de vie, le courant moyen a long terme est ce qui compte. Utiliser le PPK2 en mode « Source », alimentant le tag pendant 10-60 minutes, et lire le courant moyen depuis le panneau de statistiques.
Points de validation cles :
– Mesurer avec le firmware reel (pas un harnais de test)
– Inclure tous les capteurs dans leur mode de fonctionnement reel
– Mesurer a la tension d’alimentation reelle (3,0V neuf, 2,5V mi-vie)
– Mesurer a la temperature de deploiement si possible
9.4 Comparaison reel vs predit
| Conception de tag | Duree predite (modele corrige) | Duree mesuree sur le terrain | Erreur |
|---|---|---|---|
| Tag d’actifs, 1s adv, CR2032, 23°C | 2,02 ans | 1,95 ans | +3,6% |
| Tag d’actifs, 1s adv, CR2032, 0-35°C | 1,65 ans | 1,58 ans | +4,4% |
| Tag chaine du froid, 2s adv, CR2032, -20°C | 0,71 ans | 0,65 ans | +9,2% |
| Tag capteur, 1s adv + T/RH, CR2477, 23°C | 5,82 ans | 5,71 ans | +1,9% |
| Tag d’etagere, 10s adv, CR2032, 23°C | 3,77 ans | 3,69 ans | +2,2% |
Le modele corrige predit de maniere constante dans les 10% des mesures de terrain. Les plus grandes erreurs proviennent de la variation de temperature (chaine du froid) et du courant de capteur inattendu (capteur qui n’entre pas correctement en mode basse consommation).
10. Strategies d’Optimisation
10.1 Intervalle de publicite
C’est le levier n°1. Doubler l’intervalle reduit le courant de publicite de 50%. Mais il augmente aussi la latence de detection de proximite et de positionnement.
| Application | Intervalle recommande | Justification |
|---|---|---|
| RTLS temps reel | 200-500 ms | Mises a jour de position sub-seconde |
| Detection de proximite | 1-2 s | Latence de detection 1-2s acceptable |
| Suivi d’actifs (periodique) | 5-10 s | Passerelle scanne en continu; actualisation 5-10s |
| Surveillance chaine du froid | 30-60 s | La temperature change lentement |
| Inventaire d’etageres | 60-300 s | Detection de presence uniquement |
10.2 Reduction de la puissance TX
Pour les tags a moins de 5 metres d’une passerelle, -12 dBm ou -20 dBm est generalement suffisant. Cela economise 50-68% du courant TX.
Mesurez le RSSI reel a la passerelle dans l’environnement de deploiement. Si la passerelle recoit -65 dBm a 0 dBm, passer a -12 dBm donne -77 dBm — toujours bien au-dessus du seuil de sensibilite de -90 dBm de la plupart des passerelles BLE.
10.3 Cycle de service du capteur
| Strategie | Courant moyen capteur (uA) | Cas d’usage |
|---|---|---|
| Toujours allume, 1 Hz | 2,0-6,0 | Surveillance continue |
| Interrogation toutes les 1s | 0,7-1,2 | Surveillance periodique |
| Interrogation toutes les 10s | 0,3-0,6 | Donnees basse frequence |
| Pilote par interruption | 0,4-0,8 | Detection d’evenements uniquement |
| Eteint en veille, interroge lors de adv | 0,1-0,3 | Puissance minimale |
10.4 Optimisation du firmware
– Minimiser le temps de veille actif : Plus le MCU reste reveille longtemps, plus il consomme de courant. Optimisez le chemin de publicite pour minimiser le traitement entre reveil et veille.
– Utiliser la comparaison RTC, pas les minuteurs logiciels : Les minuteurs logiciels gardent le MCU reveille. Les evenements de comparaison RTC reveillent le MCU pour le temps minimum necessaire.
– Desactiver les peripheriques inutilises : Eteindre UART, SPI, ADC et tout autre peripherique avant d’entrer en veille.
– Utiliser la retention RAM plutot que la reinitialisation : Retenir les variables en RAM pendant la veille coute ~0,5 μA. La reinitialisation au reveil coute 50-100 μs de temps actif a ~5 mA — beaucoup pire.
– Regrouper les lectures de capteurs : Si plusieurs capteurs sont lus, faites-le dans un seul cycle de veille actif plutot que des evenements de veille separes.
11. Comparaison des Chimies de Batterie
11.1 Piles bouton
| Batterie | Chimie | Tension (V) | Capacite (mAh) | Pulsation (mA) | Gamme temp (°C) | Auto-decharge (%/an) |
|---|---|---|---|---|---|---|
| CR2032 | Li-MnO2 | 3,0 | 220 | 15 | -20 a 70 | 1-3 |
| CR2477 | Li-MnO2 | 3,0 | 1000 | 20 | -20 a 70 | 1-3 |
| CR2450 | Li-MnO2 | 3,0 | 620 | 20 | -20 a 70 | 1-3 |
| CR2430 | Li-MnO2 | 3,0 | 280 | 15 | -20 a 70 | 1-3 |
| BR2032 | Li-CF2 | 3,0 | 190 | 5 | -30 a 85 | 0,5 |
| LiR2032 | Li-ion | 3,7 | 40 | 20 | -20 a 60 | 8-10 |
La BR2032 (Li-CF2) a une gamme de temperature plus large et une auto-decharge plus faible mais ne peut pas gerer des courants de pulsation eleves. Utilisez-la pour les tags a faible cycle de service dans des environnements extremes.
11.2 Selection de batterie par deploiement
| Type de deploiement | Batterie recommandee | Justification |
|---|---|---|
| Suivi d’actifs interieur (2 ans) | CR2032 | Cout le plus bas, capacite suffisante |
| Chaine du froid (-20°C, 1 an) | CR2450 + condensateur 47uF | Capacite superieure, gere la pulsation a basse temp |
| Exterieur longue duree (5 ans) | CR2477 | 1000 mAh, faible auto-decharge |
| Detection haut debit (100ms adv) | CR2477 | Capacite de courant de pulsation |
| Temperature extreme (-30°C) | BR2032 | Meilleure performance a basse temperature |
| Rechargeable (recuperation d’energie) | LiR2032 ou LIR2450 | Rechargeable, mais faible capacite |
12. Modele de Prediction de Deploiement
12.1 Calculateur
Entrees :
Batterie : CR2032 (220 mAh)
Intervalle Adv : ___ ms
Puissance TX : ___ dBm
Capteur : ___ (veille : ___ uA, actif : ___ mA, mesure : ___ ms, echantillon toutes les : ___ s)
Gamme de temperature : ___ a ___ °C
Etape 1 : Courant de veille (Section 5)
I_veille = ___ uA
Etape 2 : Courant de publicite (Section 3)
Q_adv = 4,212 uC (a 0 dBm, ajuster selon puissance TX)
I_adv = Q_adv / Intervalle_adv = ___ uA
Etape 3 : Courant de capteur (Section 4)
I_capteur = ___ uA
Etape 4 : Courant moyen total
I_avg = I_veille + I_adv + I_capteur = ___ uA
Etape 5 : Derating
f_temp = ___ (Section 6.4)
f_puls = ___ (Section 6.3)
f_auto_decharge = ___ (estimation : 0,97 pour 1 an, 0,95 pour 2 ans, 0,90 pour 5 ans)
Etape 6 : Duree de vie de batterie
Duree = (220 * f_temp * f_puls * f_auto_decharge) / I_avg
Duree = ___ heures = ___ ans
12.2 Scenarios pre-calcules
| Scenario | Batterie | Int. Adv | Capteur | Temp | I_avg (uA) | Duree (ans) |
|---|---|---|---|---|---|---|
| Tag actifs interieur | CR2032 | 1s | Accel interroge | 23°C | 8,2 | 2,0 |
| Tag actifs interieur | CR2032 | 5s | Accel interroge | 23°C | 4,8 | 3,5 |
| Tag actifs interieur | CR2032 | 10s | Aucun | 23°C | 3,9 | 4,2 |
| Tag entrepot | CR2032 | 2s | Accel interroge | 5-35°C | 6,1 | 2,4 |
| Tag chaine du froid | CR2450 | 5s | T/RH toutes les 30s | -20 a 0°C | 6,5 | 1,8 |
| Exterieur longue duree | CR2477 | 10s | Aucun | -10 a 50°C | 4,0 | 6,8 |
| RTLS haut debit | CR2477 | 200ms | Accel interroge | 23°C | 23,5 | 1,7 |
| Tag inventaire | CR2032 | 60s | Aucun | 23°C | 3,6 | 4,6 |
12.3 Comportement en fin de vie
Au fur et a mesure que la batterie approche de la fin de vie, le tag ne s’arrete pas simplement. Il traverse une sequence de degradation previsible :
1. Reduction de portee (80-90% de capacite consommee) : La chute de tension pendant TX reduit la puissance TX effective. Le RSSI de la passerelle chute de 5-10 dB. Les tags paraissent « plus loin » qu’ils ne le sont.
2. Resets intermittents (90-95% de capacite) : Brown-out pendant les evenements de publicite a basse temperature. Le tag peut manquer des intervalles de publicite ou resetter son RTC.
3. Panne complete (95-100% de capacite) : La batterie ne peut plus soutenir aucun evenement de publicite. Le tag se tait.
Implementez un mecanisme de detection de batterie faible :
– Mesurer la tension de batterie via ADC pendant un evenement de publicite (charge de crete)
– Comparer au seuil (2,2V pour CR2032)
– Signaler la batterie faible dans le payload de publicite (1 bit)
– La passerelle signale le tag pour remplacement de batterie
Cela donne 2-4 semaines de preavis avant la panne complete, permettant une maintenance programmee.
Conclusion
La prediction de duree de vie pour les tags BLE n’est pas de la science-fiction, mais elle exige de la discipline. Le calcul nave (capacite / courant moyen) surestime la duree de vie de 30-50%. En tenant compte des fuites de veille, de l’energie de publicite, du courant de capteur, du derating thermique et des effets de charge pulsatoire, le modele corrige atteint dans les 10% des mesures de terrain.
Les points cles pour tout deploiement de smart tag :
1. Mesurez, ne supposez pas. Utilisez un PPK2 ou un outil equivalent pour mesurer le profil de courant reel de votre firmware.
2. Le courant de veille est la fondation. Chaque microampere de fuite est directement soustrait de la duree de vie de la batterie.
3. L’intervalle de publicite est le plus grand levier. Passer de 1s a 10s economise plus que toute autre optimisation.
4. La temperature tue les batteries. Concevez pour la temperature de deploiement dans le pire des cas, pas celle du laboratoire.
5. Ajoutez un condensateur pour les applications de chaine du froid. 47 μF prevent les brown-outs a basse temperature.
6. Implementez la detection de batterie faible. Donnez aux operateurs 2-4 semaines de preavis avant la panne.
Le modele de budget d’energie presente ici a ete valide sur des milliers de tags deployes dans des environnements interieurs, d’entrepots, de chaine du froid et exterieurs, predissant de maniere constante la duree de vie de batterie dans les 10% de la performance reelle sur le terrain.
