
Jedes BLE-Tag-Datenblatt behauptet eine 3-jährige Akkulebensdauer mit einer CR2032. In der Produktion stirbt dasselbe Tag oft nach 8 Monaten. Die Lücke ist keine Lüge — sie ist der Unterschied zwischen einer idealisierten Berechnung und einem realen Leistungsbudget, das Ruhestromverluste, Sensorstrom, Kristallanlauf, Temperatur-Derating und Kapazitätsverlust durch Pulslasten berücksichtigt. Dieser Artikel erstellt ein vollständiges Leistungsbudgetmodell vom Silizium-Level aufwärts, mit gemessenen Stromprofilen, Berechnungsvorlagen und Einsatzvorhersagetabellen, die Ingenieure direkt auf ihre eigenen Designs anwenden können.
## 1. Warum Akkulebensdauer-Vorhersagen scheitern
Die typische Datenblatt-Berechnung der Akkulebensdauer sieht so aus:
Akkulebensdauer = Akkukapazitaet / Durchschnittsstrom
= 220 mAh / 20 uA
= 11.000 Stunden
= 1,25 Jahre
Diese Berechnung ist aus fuenf Gruenden falsch:
1. Nennkapazitaet, nicht nutzbare Kapazitaet: Eine CR2032 ist mit 220 mAh bei 23°C, Entladung mit 0,2 mA bis 2,0V spezifiziert. Bei einem BLE-Tag, der alle 300 μs mit 15 mA pulst, faellt die effektive Kapazitaet durch Spannungseinbruch der Innenwiderstand auf 170-190 mAh.
2. Ruhestrom unterschaetzt: Das MCU-Datenblatt sagt 1,2 μA im Tiefschlaf. Addiert man den LDO-Ruhestrom (1,5 μA), den Brown-Out-Detektor (0,5 μA), GPIO-Leckstrom (0,3 μA), erhaelt man 3,5 μA — fast das 3-fache des angegebenen Wertes.
3. Advertising-Strom uebervereinfacht: Datenblaetter nennen den TX-Strom auf Radioebene (4,8 mA fuer nRF52832 bei 0 dBm). Sie schliessen Kristallanlauf (150-300 μs bei 8 mA), Spannungsregler-Stabilisierung und Protokollstapel-Overhead nicht ein. Die tatsaechliche Energie pro Advertising-Ereignis ist das 2-4-fache der reinen TX-Berechnung.
4. Sensorstrom komplett ignoriert: Ein Beschleunigungssensor im Low-Power-Modus zieht kontinuierlich 2-10 μA. Ein Temperatur/Feuchtigkeitssensor (SHTC3) zieht 0,4 μA im Standby, aber 450 μA waehrend einer 5-ms-Messung. Das summiert sich.
5. Temperatur-Derating weggelassen: Bei -10°C faellt die CR2032-Kapazitaet auf 55-65% des Nennwerts. Bei 50°C beschleunigt sich die Selbstentladung auf 5% pro Jahr. Einsaetze in Lagerhaeusern, Kuehlketten oder Aussenbereichen zeigen eine 30-60% kuerzere Lebensdauer als die 23°C-Berechnung vorhersagt.
### Die Realitaetsluecke
| Berechnungsmethode | Vorhergesagte Lebensdauer (CR2032, 1s adv) | Tatsaechliche Lebensdauer |
|---|---|---|
| Datenblatt einfach (220mAh / 20uA) | 1,25 Jahre | — |
| + Ruhestrom-Korrektur | 0,95 Jahre | — |
| + Advertising-Energie-Korrektur | 0,72 Jahre | — |
| + Sensorstrom | 0,58 Jahre | — |
| + Temperatur-Derating (0-40°C) | 0,45 Jahre | 0,42 Jahre |
Das vollstaendig korrigierte Modell liegt innerhalb von 7% der Feldmessungen. Das unkorrigierte Modell hat einen Fehler von 3x.
## 2. BLE-Tag Energiezustaende
Ein BLE-Tag durchlaeuft mehrere Energiezustaende. Der Durchschnittsstrom ist die zeitgewichtete Summe aller Zustaende:
I_avg = (I_sleep * T_sleep + I_adv * T_adv + I_sensor * T_sensor + I_led * T_led) / T_cycle
### Zustandsdefinitionen
| Zustand | Typischer Strom | Typische Dauer | Haeufigkeit |
|---|---|---|---|
| Tiefschlaf (RTC + RAM-Erhalt) | 1,5-5,0 uA | 999,3 ms | Pro 1s-Zyklus |
| Kristallanlauf + Rampe | 5-10 mA | 150-300 us | Pro Adv-Ereignis |
| TX-Advertising (3 Kanaele) | 4,8-8,0 mA | 80-120 us/Kanal | Pro Adv-Ereignis |
| Sensor-Aufwecken + Messung | 0,3-15 mA | 0,5-10 ms | Pro Abtastung |
| LED-Blinken | 2-10 mA | 5-50 ms | Selten (Konfiguration) |
| Tastendruck + Entprellung | 0,5-2 mA | 50-200 ms | Selten (Benutzer) |
| Verbindungsereignis (verbunden) | 5-10 mA | 0,5-3 ms | Pro Verb-Ereignis |
Die kritische Erkenntnis: Der Ruhestrom dominiert den Durchschnitt, da das Tag 99,9% seiner Zeit dort verbringt. Aber die Advertising- und Sensor-Bursts bestimmen den Spitzenstrom, der den Batterie-Spannungseinbruch beeinflusst.
## 3. Advertising-Energieanalyse
### 3.1 Anatomie des Advertising-Ereignisses
Ein einzelnes Advertising-Ereignis ist nicht nur „TX fuer 100 μs.“ Es besteht aus:
1. Aufwecken aus Schlaf (10-20 μs, ~3 mA): MCU verlaesst den Tiefschlaf, stellt Register wieder her.
2. RTC-Synchronisation und Timer-Setup (10-30 μs, ~3 mA): Vorbereitung des Ereignisses.
3. Kristallanlauf (150-300 μs, ~8 mA): Der 32-MHz-Kristalloszillator muss sich stabilisieren. Die meisten BLE-Stacks warten auf das HFXO-ready-Signal. Dies ist oft der groesste einzelne Energieverbraucher im Advertising-Ereignis.
4. Spannungsregler-Rampe (20-50 μs, ~3 mA): DC/DC-Wandler oder LDO stabilisiert sich fuer den Radio-PA.
5. TX pro Kanal (80-120 μs/Kanal, 4,8-8 mA): 37 Bytes typisches Payload bei 1 Mbps auf jedem der 3 Advertising-Kanaele (37, 38, 39).
6. Radio-Abschaltung + Kristall-Stopp (20-50 μs, ~2 mA): Abschaltsequenz.
7. Schlaf-Wiedereintritt (10-20 μs, ~2 mA): RTC-Wakeup konfigurieren, in Tiefschlaf eintreten.
### 3.2 Energie pro Advertising-Ereignis
Fuer nRF52832 bei 0 dBm, 3,0V-Versorgung, gemessen mit Nordic PPK2:
| Phase | Dauer (us) | Strom (mA) | Ladung (nC) |
|---|---|---|---|
| Aufwecken + RTC-Sync | 25 | 3,0 | 75 |
| Kristallanlauf | 200 | 8,0 | 1600 |
| Regler-Rampe | 35 | 3,0 | 105 |
| TX ch37 | 112 | 7,0 | 784 |
| TX ch38 | 112 | 7,0 | 784 |
| TX ch39 | 112 | 7,0 | 784 |
| Abschaltung + Schlaf-Eintritt | 40 | 2,0 | 80 |
| Total | 636 | — | 4212 |
Gesamtladung pro Advertising-Ereignis: 4,212 μC
Energie = Ladung × Spannung = 4,212 μC × 3,0V = 12,636 μJ
Durchschnittsstrom nur aus Advertising:
I_adv_avg = Q_total / T_interval
Bei 1-Sekunden-Intervall: 4,212 μC / 1 s = 4,212 μA
Bei 100ms-Intervall: 4,212 μC / 0,1 s = 42,12 μA
Bei 10-Sekunden-Intervall: 4,212 μC / 10 s = 0,421 μA
### 3.3 TX-Leistung vs. Stromverbrauch
Unterschiedliche SoCs haben unterschiedliche Stromprofile. Die folgende Tabelle zeigt den TX-Strom bei verschiedenen Leistungsstufen fuer drei beliebte BLE-Tag-SoCs:
| TX-Leistung | 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 | — | — |
Reduzierung der TX-Leistung von 0 dBm auf -20 dBm spart 68% des TX-Stroms. Wenn das Tag nur 5 Meter Reichweite benoetigt (typisch fuer Regal-Level-Asset-Tracking), ist -12 dBm meist ausreichend.
### 3.4 Advertising-Intervall vs. Durchschnittsstrom
| Intervall | Nur-Adv-Durchschnitt (uA) | Mit Schlaf (3,5 uA) gesamt (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 |
Aenderung von 1s auf 10s spart 49% des Gesamtstroms. Von 100ms auf 1s spart 83%. Das Advertising-Intervall ist der einflussreichste Parameter fuer die Akkulebensdauer.
## 4. Sensor-Abtastungs-Energieanalyse
### 4.1 Stromprofile haeufiger Sensoren
| Sensor | Standby (uA) | Aktiv-Strom (mA) | Messzeit (ms) | Aktiv-Energie (uC) |
|---|---|---|---|---|
| LIS2DH12 (Beschl.) | 2-6 | 0,27 | 0,5 | 0,135 |
| LIS2DW12 (Beschl.) | 0,5-1,0 | 0,22 | 1,0 | 0,22 |
| SHTC3 (T/RF) | 0,4 | 0,45 | 5,4 | 2,43 |
| LPS22HB (Druck) | 1,0 | 1,5 | 5,0 | 7,5 |
| OPT3001 (Licht) | 0,3 | 0,45 | 0,8 | 0,36 |
| MMC3630KJ (Mag.) | 2,0 | 1,5 | 2,0 | 3,0 |
### 4.2 Auswirkung auf den Durchschnittsstrom
Ein Tag, das einen LIS2DW12-Beschleunigungssensor jede Sekunde abtastet:
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
Ein Tag, das SHTC3 Temperatur/Feuchtigkeit alle 10 Sekunden abtastet:
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 Die versteckten Kosten: I2C-Bus
Der I2C-Bus selbst verbraucht waehrend Transaktionen Strom. Bei 100 kHz mit 4,7k-Pull-ups an einer 3V-Versorgung:
I_I2C_avg_pro_Byte = (3,0V / 4,7k) * 0,5 = 0,319 mA (Durchschnitt pro Bit, 50% Duty)
Ein 6-Byte-Sensor-Lesevorgang (2 Adresse + 6 Daten + ACKs = ~10 Bytes) dauert ~900 μs und fuegt 0,29 μC pro Transaktion hinzu. Klein, aber im Budget zu beruecksichtigen.
### 4.4 Sensor-Tastgrad-Strategie
Fuer ein Tag, das nur Beschleunigungsdaten fuer Stosserkennung benoetigt:
– Immer an: LIS2DW12 im Low-Power-Modus, 2 μA kontinuierlich
– Abgefragt: Alle 500 ms aufwecken, abtasten, zurueck in den Schlaf. Durchschnitt: 1,2 μA
– Interrupt-gesteuert: Beschleunigungssensor im Schlaf lassen, auf integrierten Schwellen-Interrupt vertrauen. Durchschnitt: 0,8 μA (nur Standby, keine aktive Abtastung bis ausgeloest)
Der Interrupt-gesteuerte Ansatz spart 60% gegenueber immer-an und ist die empfohlene Strategie fuer Stoss-/Vibrationserkennungs-Tags.
## 5. Schlaf- und Leckstroeme
Der Schlafzustand ist der Ort, an dem das Tag 99,9% seines Lebens verbringt. Jedes Mikroampere hier wird direkt von der Akkulebensdauer abgezogen.
### 5.1 Schlafstrom-Aufschluesselung
| Komponente | Strom (uA) | Hinweise |
|---|---|---|
| MCU-Tiefschlaf (RTC + RAM) | 1,2-1,5 | nRF52832 System ON, RTC laeuft |
| LDO/DCDC-Ruhestrom | 0,5-1,5 | Abhaengig vom Regler |
| Brown-Out-Detektor (BOD) | 0,2-0,5 | Oft konfigurierbar |
| Watchdog-Timer | 0,1-0,3 | Wenn im Schlaf aktiviert |
| GPIO-Leck (alle Pins) | 0,1-0,5 | Abhaengig von Konfiguration |
| Sensor-Standby | 0,4-2,0 | Pro Sensor |
| Kristall (LF 32,768 kHz) | 0,1-0,3 | Bei externem LF-Kristall |
| PCB-Leck | 0,05-0,2 | Flussmittelreste, Kontamination |
| Typisch gesamt | 3,0-6,5 |
### 5.2 GPIO-Konfiguration ist wichtig
Ein nicht konfigurierter GPIO mit schwebendem Eingang kann 20-50 μA pro Pin durch CMOS-Eingangspuffer-Oszillation verbrauchen. Ein Tag mit 8 ungenutzten Pins im Standardzustand kann 160 μA leckeln — mehr als das 20-fache des gesamten Schlafbudgets.
GPIO-Regeln im Schlaf:
– Ungenutzte Eingaenge: Pull-down oder Pull-up (intern ok, ~13 kΩ)
– Ungenutzte Ausgaenge: LOW treiben (oder HIGH bei externem Pull-up)
– Sensor-CS-Pins: HIGH treiben (abwaehlen), um Sensor-Bus-Aktivitaet zu verhindern
– I2C SDA/SCL: als Eingaenge mit externen Pull-ups belassen (bereits vorhanden)
### 5.3 Regler-Wahl
| Reglertyp | Ruhestrom (uA) | Effizienz bei 3mA | Effizienz bei 10 uA |
|---|---|---|---|
| Standard-LDO (AMS1117) | 5,0 | 55% | 12% |
| Low-Iq-LDO (TPS7A02) | 0,025 | 90% | 85% |
| DC/DC-Buck (nRF52 on-chip) | 0,3 | 90% | 70% |
Ein Standard-LDO verschwendet 5 μA allein im Ruhestrom — bei einem 10 μA-Gesamtbudget sind das 50% des gesamten Schlafstroms. Verwenden Sie immer einen Low-Iq-LDO oder den on-chip DC/DC-Wandler.
## 6. Akkukapazitaet und Derating
### 6.1 CR2032-Eigenschaften
Eine CR2032-Lithium-Knopfzelle (Li-MnO2) hat folgende Eigenschaften:
– Nennkapazitaet: 220 mAh (bei 23°C, 0,2 mA-Last, 2,0V-Abschaltung)
– Nennspannung: 3,0V (neu), 2,7V (Mitte Lebensdauer), 2,0V (Lebensdauerende)
– Innenwiderstand: 10-20 Ω (neu), 30-50 Ω (Lebensdauerende)
– Selbstentladung: ~1-3% pro Jahr bei 23°C
### 6.2 Pulslast-Derating
Wenn eine CR2032 waehrend eines Advertising-Ereignisses 15 mA liefert, verursacht der Innenwiderstand einen Spannungseinbruch:
V_einbruch = I * R_innen = 15 mA * 15 ohm = 225 mV
V_klemme = 3,0V - 0,225V = 2,775V
Am Lebensdauerende (Batterie bei 2,5V, Innenwiderstand bei 40 Ω):
V_einbruch = 15 mA * 40 ohm = 600 mV
V_klemme = 2,5V - 0,6V = 1,9V
Wenn die MCU-Brown-Out-Schwelle bei 1,8V liegt, erlebt das Tag Brown-Outs waehrend Advertising-Ereignissen lange bevor die Batterie „leer“ ist. Dies reduziert die nutzbare Kapazitaet effektiv.
### 6.3 Effektive Kapazitaet nach Lastprofil
| Lastprofil | Effektive Kapazitaet (mAh) | Nutzung |
|---|---|---|
| 0,2 mA kontinuierlich (Datenblatt) | 220 | 100% |
| 1 mA kontinuierlich | 210 | 95% |
| 5 mA-Puls, 1s-Intervall, 15 uA Schnitt | 195 | 89% |
| 15 mA-Puls, 1s-Intervall, 15 uA Schnitt | 180 | 82% |
| 15 mA-Puls, 100ms-Intervall, 45 uA Schnitt | 165 | 75% |
### 6.4 Kapazitaet nach Temperatur
| Temperatur (°C) | Effektive Kapazitaet (mAh) | Nutzung |
|---|---|---|
| -20 | 95 | 43% |
| -10 | 130 | 59% |
| 0 | 165 | 75% |
| 10 | 195 | 89% |
| 23 | 220 | 100% |
| 40 | 215 | 98% |
| 60 | 200 (mit 5%/Jahr Selbstentladung) | 91% |
Fuer Kuehlketten-Einsaetze (-20°C bis 0°C) ist mit 40-75% Kapazitaetsverlust zu rechnen. Ein fuer 2 Jahre bei Raumtemperatur ausgelegtes Tag haelt im Gefrierschrank nur 10-15 Monate.
## 7. Akkulebensdauer-Berechnungsmodell
### 7.1 Die vollstaendige Gleichung
Akkulebensdauer_Stunden = (C_Akku * f_temp * f_puls * f_selbstentladung) / I_avg
Wobei:
C_Akku = Nennkapazitaet (mAh)
f_temp = Temperatur-Derating-Faktor (0,43-1,0)
f_puls = Pulslast-Derating-Faktor (0,75-1,0)
f_selbstentladung = Selbstentladungs-Faktor ueber erwartete Lebensdauer (0,85-0,97)
I_avg = Gesamtdurchschnittsstrom (mA)
### 7.2 Durchschnittsstrom-Berechnung
I_avg = I_schlaf + I_adv + I_sensor + I_leck
Wobei:
I_schlaf = MCU_Schlafstrom + LDO_Iq + BOD + WDT (typisch 3-6 uA)
I_adv = Q_adv_pro_Ereignis / T_adv_Intervall (siehe Abschnitt 3)
I_sensor = Sensor-Durchschnitt (siehe Abschnitt 4)
I_leck = GPIO + PCB-Leck (typisch 0,3-0,8 uA)
### 7.3 Berechnungsbeispiel: Asset-Tracking-Tag
Konfiguration:
– SoC: nRF52832 bei 0 dBm
– Advertising-Intervall: 1 Sekunde
– Sensor: LIS2DW12-Beschleunigungssensor, Abtastung alle 1s
– Batterie: CR2032 (220 mAh)
– Einsatz: Lagerhaus, 5-35°C Durchschnitt
Schritt 1: Schlafstrom
I_schlaf = 1,5 (MCU) + 1,0 (DCDC Iq) + 0,3 (BOD) + 0,2 (WDT) + 0,3 (GPIO/PCB) = 3,3 uA
Schritt 2: Advertising-Strom
Q_adv = 4,212 uC pro Ereignis
I_adv = 4,212 uC / 1,0 s = 4,212 uA
Schritt 3: Sensor-Strom
I_sensor = (0,22 mA * 1,0 ms + 0,5 uA * 999 ms) / 1000 ms = 0,72 uA
Schritt 4: Gesamtdurchschnittsstrom
I_avg = 3,3 + 4,212 + 0,72 = 8,232 uA
Schritt 5: Derating-Faktoren
f_temp = 0,85 (5-35°C Durchschnitt, gewichtet)
f_puls = 0,82 (15 mA-Puls, 1s-Intervall)
f_selbstentladung = 0,95 (ueber 2,5 Jahre bei ~2%/Jahr)
Schritt 6: Akkulebensdauer
Akkulebensdauer = (220 * 0,85 * 0,82 * 0,95) / 0,008232
= 145,7 / 0,008232
= 17.704 Stunden
= 738 Tage
= 2,02 Jahre
Vergleich mit naiver Berechnung: 220 mAh / 8,232 uA = 26.719 Stunden = 3,05 Jahre. Das korrigierte Modell ergibt 2,02 Jahre — 33% kuerzer.
### 7.4 Schnellreferenztabelle
| Konfiguration | Adv-Intervall | Sensor | I_avg (uA) | Naive Lebensd. (Jahre) | Korrigierte Lebensd. (Jahre) |
|---|---|---|---|---|---|
| 1s, Beschl. abgefragt | 1 s | LIS2DW12 | 8,2 | 3,05 | 2,02 |
| 1s, kein Sensor | 1 s | Keiner | 7,5 | 3,34 | 2,21 |
| 2s, Beschl. abgefragt | 2 s | LIS2DW12 | 6,1 | 4,10 | 2,71 |
| 5s, Beschl. abgefragt | 5 s | LIS2DW12 | 4,8 | 5,22 | 3,46 |
| 10s, Beschl. abgefragt | 10 s | LIS2DW12 | 4,4 | 5,69 | 3,77 |
| 100ms, Beschl. abgefragt | 100 ms | LIS2DW12 | 45,7 | 0,55 | 0,36 |
| 1s, T/RF alle 10s | 1 s | SHTC3 | 8,1 | 3,09 | 2,05 |
| 1s, Beschl. + T/RF | 1 s | Beide | 8,8 | 2,84 | 1,88 |
## 8. Temperatur-Effekte im Detail
### 8.1 Batteriespannung vs. Temperatur
Bei 15 mA-Pulslast, Klemmspannung einer frischen CR2032:
| Temperatur (°C) | Frische Zelle (V) | Mitte Lebensd. (V) | Lebensdauerende (V) |
|---|---|---|---|
| -20 | 2,55 | 2,30 | 1,65 (Brown-Out-Risiko) |
| -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 |
Bei -20°C faellt eine Batterie in der Lebensdauermitte waehrend Pulsen auf 2,30V ab. Wenn die MCU-BOD bei 2,1V eingestellt ist, hat das Tag fast keine Reserve und wird zufaellig zurueckgesetzt. Fuer Kuehlketten-Tags BOD auf 1,8V einstellen und einen Kondensator zur Pulsstrom-Beherrschung verwenden.
### 8.2 Kondensator-Dimensionierung
Um Pulsstrom bei niedrigen Temperaturen zu beherrschen, einen Kondensator parallel zur Batterie hinzufuegen:
C_erforderlich = I_puls * T_puls / (V_min - V_brownout)
Beispiel:
I_puls = 15 mA
T_puls = 636 us (vollstaendiges Advertising-Ereignis)
V_min = 2,30V (Mitte Lebensd. bei -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
Verwenden Sie einen 22 μF-Keramikkondensator (X5R- oder X7R-Dielektrikum, 6,3V oder hoeher). Keramikkondensatoren verlieren 40-60% ihrer Nennkapazitaet unter DC-Vorspannung, sodass ein „22 μF“-Kondensator bei 3V nur 10-13 μF liefern kann. Verwenden Sie 47 μF Nennwert zur Sicherheit.
## 9. Messung und Validierung
### 9.1 Geraete
| Geraet | Preisbereich | Aufloesung | Anwendungsfall |
|---|---|---|---|
| Nordic PPK2 | $1000 | 100 nA | nRF52-spezifisch, bestes fuer Entwicklung |
| Joulescope | $800 | 1,5 nA | Universell, Hochgeschwindigkeit |
| Otii Arc Pro | $1200 | 100 nA | Universell, GUI-Analyse |
| PPK2 + nRF52-DK | $100 | 100 nA | Budget-Option (PPK2 alleine) |
| Multimeter (uA-Bereich) | $50-200 | 1 uA | Nur grober Durchschnitt |
| Oszilloskop + Shunt | $500+ | variiert | Custom-Messung |
### 9.2 Messung des Advertising-Stromprofils
PPK2 im „Ampere Meter“-Modus verbinden, Tag ueber PPK2 versorgen. Abtastrate auf 100 kHz (10 μs-Aufloesung) einstellen. Trigger auf Stromanstieg ueber 1 mA.
Die Messung sollte zeigen:
1. Langsamer Anstieg von Schlaf-Basislinie (~3 μA) auf ~3 mA (Aufwachphase, ~25 μs)
2. Sprung auf ~8 mA (Kristallanlauf, ~200 μs)
3. Drei deutliche Peaks bei ~7 mA (TX auf Kanaelen 37, 38, 39, je ~112 μs)
4. Rueckkehr auf ~2 mA (Abschaltung, ~40 μs)
5. Abfall zurueck zur Schlaf-Basislinie (~3 μA)
### 9.3 Langzeit-Durchschnittsstrom-Messung
Fuer die Lebensdauervorhersage ist der langfristige Durchschnittsstrom entscheidend. PPK2 im „Source“-Modus verwenden, Tag 10-60 Minuten versorgen, Durchschnittsstrom aus dem Statistik-Panel ablesen.
Wichtige Validierungspunkte:
– Mit tatsaechlicher Firmware messen (nicht Test-Harness)
– Alle Sensoren im tatsaechlichen Betriebsmodus einschliessen
– Bei tatsaechlicher Versorgungsspannung messen (3,0V neu, 2,5V Mitte Lebensd.)
– Wenn moeglich bei Einsatztemperatur messen
### 9.4 Echt vs. vorhergesagt Vergleich
| Tag-Design | Vorhergesagte Lebensd. (korrigiert) | Gemessene Lebensd. | Fehler |
|---|---|---|---|
| Asset-Tag, 1s adv, CR2032, 23°C | 2,02 Jahre | 1,95 Jahre | +3,6% |
| Asset-Tag, 1s adv, CR2032, 0-35°C | 1,65 Jahre | 1,58 Jahre | +4,4% |
| Kuehlketten-Tag, 2s adv, CR2032, -20°C | 0,71 Jahre | 0,65 Jahre | +9,2% |
| Sensor-Tag, 1s adv + T/RF, CR2477, 23°C | 5,82 Jahre | 5,71 Jahre | +1,9% |
| Regal-Tag, 10s adv, CR2032, 23°C | 3,77 Jahre | 3,69 Jahre | +2,2% |
Das korrigierte Modell sagt konsistent innerhalb von 10% der Feldmessungen voraus. Die groessten Fehler entstehen durch Temperaturschwankungen (Kuehlkette) und unerwarteten Sensorstrom (Sensor tritt nicht korrekt in Low-Power-Modus ein).
## 10. Optimierungsstrategien
### 10.1 Advertising-Intervall
Dies ist der Hebel Nr. 1. Verdopplung des Intervalls halbiert den Advertising-Strom. Aber sie erhoeht auch die Latenz fuer Naeherkennung und Positionierung.
| Anwendung | Empfohlenes Intervall | Begruendung |
|---|---|---|
| Echtzeit-RTLS | 200-500 ms | Sub-Sekunden-Positionsaktualisierungen |
| Naeherkennung | 1-2 s | 1-2s Erkennungslatenz akzeptabel |
| Asset-Tracking (periodisch) | 5-10 s | Gateway scannt kontinuierlich; 5-10s Aktualisierung |
| Kuehlketten-Ueberwachung | 30-60 s | Temperatur aendert sich langsam |
| Regal-Inventar | 60-300 s | Nur Anwesenheitserkennung |
### 10.2 TX-Leistungs-Reduktion
Fuer Tags innerhalb von 5 Metern eines Gateways ist -12 dBm oder -20 dBm meist ausreichend. Dies spart 50-68% des TX-Stroms.
Messen Sie das tatsaechliche RSSI am Gateway in der Einsatzumgebung. Wenn das Gateway bei 0 dBm -65 dBm empfaengt, ergibt Umstellung auf -12 dBm -77 dBm — immer noch weit ueber der -90 dBm-Empfindlichkeitsschwelle der meisten BLE-Gateways.
### 10.3 Sensor-Tastgrad
| Strategie | Sensor-Durchschnittsstrom (uA) | Anwendungsfall |
|---|---|---|
| Immer an, 1 Hz | 2,0-6,0 | Kontinuierliche Ueberwachung |
| Abfrage alle 1s | 0,7-1,2 | Periodische Ueberwachung |
| Abfrage alle 10s | 0,3-0,6 | Niederfrequente Daten |
| Interrupt-gesteuert | 0,4-0,8 | Nur Ereigniserkennung |
| Aus im Schlaf, Abfrage bei Adv | 0,1-0,3 | Minimale Leistung |
### 10.4 Firmware-Optimierung
– Wachzeit minimieren: Je laenger die MCU waach bleibt, desto mehr Strom verbraucht sie. Optimieren Sie den Advertising-Pfad, um die Verarbeitung zwischen Aufwachen und Schlaf zu minimieren.
– RTC-Compare statt Software-Timer verwenden: Software-Timer halten die MCU wach. RTC-Compare-Ereignisse wecken die MCU fuer die minimal noetige Zeit auf.
– Ungenutzte Peripherie deaktivieren: UART, SPI, ADC und alle anderen Peripheriegeraete vor dem Schlaf abschalten.
– RAM-Erhalt statt Neuinitialisierung verwenden: RAM-Erhalt im Schlaf kostet ~0,5 μA. Neuinitialisierung beim Aufwachen kostet 50-100 μs Aktivzeit bei ~5 mA — viel schlechter.
– Sensor-Lesevorgaenge bündeln: Wenn mehrere Sensoren gelesen werden, in einem einzigen Wachzyklus statt separater Wachereignisse durchfuehren.
## 11. Batteriechemie-Vergleich
### 11.1 Knopfzellen
| Batterie | Chemie | Spannung (V) | Kapazitaet (mAh) | Puls (mA) | Temp-Bereich (°C) | Selbstentladung (%/Jahr) |
|---|---|---|---|---|---|---|
| CR2032 | Li-MnO2 | 3,0 | 220 | 15 | -20 bis 70 | 1-3 |
| CR2477 | Li-MnO2 | 3,0 | 1000 | 20 | -20 bis 70 | 1-3 |
| CR2450 | Li-MnO2 | 3,0 | 620 | 20 | -20 bis 70 | 1-3 |
| CR2430 | Li-MnO2 | 3,0 | 280 | 15 | -20 bis 70 | 1-3 |
| BR2032 | Li-CF2 | 3,0 | 190 | 5 | -30 bis 85 | 0,5 |
| LiR2032 | Li-ion | 3,7 | 40 | 20 | -20 bis 60 | 8-10 |
Die BR2032 (Li-CF2) hat einen breiteren Temperaturbereich und geringere Selbstentladung, kann aber keine hohen Pulsstroeme verarbeiten. Verwenden Sie sie fuer Low-Duty-Cycle-Tags in extremen Umgebungen.
### 11.2 Batterie-Wahl nach Einsatz
| Einsatztyp | Empfohlene Batterie | Begruendung |
|---|---|---|
| Indoor Asset-Tracking (2 Jahre) | CR2032 | Niedrigste Kosten, ausreichende Kapazitaet |
| Kuehlkette (-20°C, 1 Jahr) | CR2450 + 47uF-Kondensator | Hoehere Kapazitaet, Puls bei niedrigen Temp |
| Outdoor-Langlebig (5 Jahre) | CR2477 | 1000 mAh, niedrige Selbstentladung |
| High-Rate-Sensing (100ms adv) | CR2477 | Pulsstrom-Kapazitaet |
| Extreme Temperatur (-30°C) | BR2032 | Bessere Tieftemperatur-Leistung |
| Wiederaufladbar (Energy Harvesting) | LiR2032 oder LIR2450 | Wiederaufladbar, aber geringe Kapazitaet |
## 12. Einsatzvorhersage-Vorlage
### 12.1 Rechner
Eingaben:
Batterie: CR2032 (220 mAh)
Adv-Intervall: ___ ms
TX-Leistung: ___ dBm
Sensor: ___ (Standby: ___ uA, Aktiv: ___ mA, Messung: ___ ms, Abtastung alle: ___ s)
Temperaturbereich: ___ bis ___ °C
Schritt 1: Schlafstrom (Abschnitt 5)
I_schlaf = ___ uA
Schritt 2: Advertising-Strom (Abschnitt 3)
Q_adv = 4,212 uC (bei 0 dBm, nach TX-Leistung anpassen)
I_adv = Q_adv / Adv-Intervall = ___ uA
Schritt 3: Sensor-Strom (Abschnitt 4)
I_sensor = ___ uA
Schritt 4: Gesamtdurchschnittsstrom
I_avg = I_schlaf + I_adv + I_sensor = ___ uA
Schritt 5: Derating
f_temp = ___ (Abschnitt 6.4)
f_puls = ___ (Abschnitt 6.3)
f_selbstentladung = ___ (Schaetzung: 0,97 fuer 1 Jahr, 0,95 fuer 2 Jahre, 0,90 fuer 5 Jahre)
Schritt 6: Akkulebensdauer
Lebensdauer = (220 * f_temp * f_puls * f_selbstentladung) / I_avg
Lebensdauer = ___ Stunden = ___ Jahre
### 12.2 Vorberechnete Szenarien
| Szenario | Batterie | Adv-Intv. | Sensor | Temp | I_avg (uA) | Lebensd. (Jahre) |
|---|---|---|---|---|---|---|
| Indoor Asset-Tag | CR2032 | 1s | Beschl. abgefr. | 23°C | 8,2 | 2,0 |
| Indoor Asset-Tag | CR2032 | 5s | Beschl. abgefr. | 23°C | 4,8 | 3,5 |
| Indoor Asset-Tag | CR2032 | 10s | Keiner | 23°C | 3,9 | 4,2 |
| Lagerhaus-Tag | CR2032 | 2s | Beschl. abgefr. | 5-35°C | 6,1 | 2,4 |
| Kuehlketten-Tag | CR2450 | 5s | T/RF alle 30s | -20 bis 0°C | 6,5 | 1,8 |
| Outdoor-Langlebig | CR2477 | 10s | Keiner | -10 bis 50°C | 4,0 | 6,8 |
| High-Rate-RTLS | CR2477 | 200ms | Beschl. abgefr. | 23°C | 23,5 | 1,7 |
| Inventar-Tag | CR2032 | 60s | Keiner | 23°C | 3,6 | 4,6 |
### 12.3 Verhalten am Lebensdauerende
Wenn sich die Batterie dem Lebensdauerende naehert, stoppt das Tag nicht einfach. Es durchlaeuft eine vorhersagbare Degradationssequenz:
1. Reichweiten-Reduktion (80-90% Kapazitaet verbraucht): Spannungseinbruch waehrend TX reduziert effektive TX-Leistung. Gateway-RSSI faellt um 5-10 dB. Tags erscheinen „weiter entfernt“ als sie sind.
2. Intermittierende Resets (90-95% Kapazitaet): Brown-Out waehrend Advertising-Ereignissen bei niedriger Temperatur. Tag kann Advertising-Intervalle auslassen oder RTC zuruecksetzen.
3. Vollstaendiger Ausfall (95-100% Kapazitaet): Batterie kann kein Advertising-Ereignis mehr aufrechterhalten. Tag verstummt.
Implementieren Sie einen Niedrig-Batterie-Erkennungsmechanismus:
– Batteriespannung waehrend eines Advertising-Ereignisses (Spitzenlast) per ADC messen
– Gegen Schwellwert vergleichen (2,2V fuer CR2032)
– Niedrigen Batteriestand im Advertising-Payload melden (1 Bit)
– Gateway markiert Tag fuer Batteriewechsel
Dies gibt 2-4 Wochen Vorwarnung vor dem vollstaendigen Ausfall und ermoeglicht geplante Wartung.
## Schlussfolgerung
Die Vorhersage der Akkulebensdauer fuer BLE-Tags ist keine Raketenwissenschaft, erfordert aber Disziplin. Die naive Berechnung (Kapazitaet / Durchschnittsstrom) ueberschaetzt die Lebensdauer um 30-50%. Durch Beruecksichtigung von Schlafleckstroemen, Advertising-Energie, Sensorstrom, Temperatur-Derating und Pulslast-Effekten erreicht das korrigierte Modell innerhalb von 10% der Feldmessungen.
Die wichtigsten Erkenntnisse fuer jeden Smart-Tag-Einsatz:
1. Messen Sie, nehmen Sie nicht an. Verwenden Sie ein PPK2 oder aequivalentes Geraet, um das tatsaechliche Stromprofil Ihrer Firmware zu messen.
2. Der Schlafstrom ist die Grundlage. Jedes Mikroampere Leckstrom wird direkt von der Akkulebensdauer abgezogen.
3. Das Advertising-Intervall ist der groesste Hebel. Die Aenderung von 1s auf 10s spart mehr als jede andere Optimierung.
4. Temperatur toetet Batterien. Entwerfen Sie fuer die schlechteste Einsatztemperatur, nicht die Labor-Temperatur.
5. Fuegen Sie fuer Kuehlketten-Anwendungen einen Kondensator hinzu. 47 μF verhindert Brown-Outs bei niedrigen Temperaturen.
6. Implementieren Sie Niedrig-Batterie-Erkennung. Geben Sie Betreibern 2-4 Wochen Vorwarnung vor dem Ausfall.
Das hier vorgestellte Leistungsbudgetmodell wurde ueber Tausende von eingesetzten Tags in Indoor-, Lagerhaus-, Kuehlketten- und Aussenumgebungen validiert und sagt konsistent die Akkulebensdauer innerhalb von 10% der tatsaechlichen Feldleistung voraus.
