Pomiar mocy urządzenia

Możesz określić zużycie energii w przypadku urządzeń z systemem Android wyposażonych w wskaźnik poziomu naładowania baterii, takich jak Summit SMB347 lub Maxim MAX17050 (dostępne na wielu urządzeniach Nexus). Użyj miernika wbudowanego w system, gdy zewnętrzny sprzęt pomiarowy nie jest dostępny lub podłączenie do urządzenia jest niewygodne (np. w przypadku korzystania mobilnego).

Pomiary mogą obejmować prąd chwilowy, pozostały poziom naładowania, pojemność akumulatora na początku i na końcu testu oraz inne parametry, w zależności od obsługiwanych właściwości urządzenia (patrz poniżej). Aby uzyskać najlepsze wyniki, należy wykonywać pomiary mocy urządzenia podczas długotrwałych testów A/B, w których wykorzystuje się urządzenie tego samego typu, ten sam wskaźnik poziomu paliwa i ten sam rezystor wykrywający prąd. Upewnij się, że początkowy poziom naładowania akumulatora jest taki sam dla każdego urządzenia, aby uniknąć odmiennego zachowania się wskaźnika poziomu paliwa w różnych punktach krzywej rozładowania akumulatora.

Nawet w identycznych środowiskach testowych nie ma gwarancji, że pomiary będą miały wysoką dokładność bezwzględną. Jednakże większość niedokładności charakterystycznych dla wskaźnika poziomu paliwa i rezystora pomiarowego jest jednakowa w poszczególnych przebiegach testowych, co sprawia, że ​​porównania między identycznymi urządzeniami są przydatne. Zalecamy przeprowadzenie wielu testów w różnych konfiguracjach, aby zidentyfikować znaczące różnice i względne zużycie energii pomiędzy konfiguracjami.

Odczyt zużycia energii

Aby odczytać dane dotyczące zużycia energii, wstaw wywołania API w kodzie testowym.

import android.os.BatteryManager;
import android.content.Context;
BatteryManager mBatteryManager =
(BatteryManager)Context.getSystemService(Context.BATTERY_SERVICE);
Long energy =
mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
Slog.i(TAG, "Remaining energy = " + energy + "nWh");

Dostępne właściwości

Android obsługuje następujące właściwości wskaźnika poziomu naładowania akumulatora:

BATTERY_PROPERTY_CHARGE_COUNTER   Remaining battery capacity in microampere-hours
BATTERY_PROPERTY_CURRENT_NOW      Instantaneous battery current in microamperes
BATTERY_PROPERTY_CURRENT_AVERAGE  Average battery current in microamperes
BATTERY_PROPERTY_CAPACITY         Remaining battery capacity as an integer percentage
BATTERY_PROPERTY_ENERGY_COUNTER   Remaining energy in nanowatt-hours

Większość właściwości jest odczytywana z atrybutów podsystemu zasilania jądra o podobnych nazwach. Jednak dokładne właściwości, rozdzielczość wartości właściwości i częstotliwość aktualizacji dostępna dla konkretnego urządzenia zależą od:

  • Sprzęt do pomiaru poziomu paliwa, taki jak Summit SMB347 lub Maxim MAX17050.
  • Połączenie wskaźnika poziomu paliwa z układem, np. wartość zewnętrznych rezystorów wykrywających prąd.
  • Konfiguracja oprogramowania chipa wskaźnika poziomu paliwa, np. wartości wybrane dla interwałów obliczeń średniego prądu w sterowniku jądra.

Szczegóły znajdziesz we właściwościach dostępnych dla urządzeń Nexus .

Maksymalny wskaźnik poziomu paliwa

Podczas określania stanu naładowania akumulatora w długim okresie czasu wskaźnik poziomu paliwa Maxim (MAX17050, BC15) koryguje pomiary przesunięcia licznika kulombów. W przypadku pomiarów dokonywanych w krótkim okresie czasu (takich jak testy pomiaru zużycia energii) wskaźnik poziomu paliwa nie dokonuje korekcji, co sprawia, że ​​przesunięcie jest głównym źródłem błędu, gdy pomiary prądu są zbyt małe (chociaż żadna ilość czasu nie może wyeliminować przesunięcia całkowicie błąd).

W przypadku typowej konstrukcji rezystora 10 mOhm prąd offsetowy powinien być lepszy niż 1,5 mA, co oznacza, że ​​dowolny pomiar wynosi +/-1,5 mA (układ płytki PCB może również wpływać na tę zmianę). Na przykład podczas pomiaru dużego prądu (200 mA) można spodziewać się, co następuje:

  • 2 mA (błąd wzmocnienia 1% wynoszący 200 mA z powodu błędu wzmocnienia wskaźnika poziomu paliwa)
  • +2 mA (błąd wzmocnienia 1% wynoszący 200 mA z powodu błędu rezystora wykrywającego)
  • +1,5 mA (błąd przesunięcia pomiaru prądu na wskaźniku poziomu paliwa)

Całkowity błąd wynosi 5,5 mA (2,75%). Porównaj to ze średnim prądem (50 mA), gdzie te same wartości procentowe błędu dają całkowity błąd 7% lub z małym prądem (15 mA), gdzie +/-1,5 mA daje całkowity błąd 10%.

Aby uzyskać najlepsze wyniki, zalecamy pomiar prądu większego niż 20 mA. Błędy pomiaru wzmocnienia są systematyczne i powtarzalne, co pozwala przetestować urządzenie w wielu trybach i uzyskać czyste pomiary względne (z wyjątkami dla przesunięcia 1,5 mA).

Dla pomiarów względnych +/-100uA wymagany czas pomiaru zależy od:

  • Szum próbkowania ADC . MAX17050 w normalnej konfiguracji fabrycznej wytwarza +/-1,5 mA różnica między próbkami z powodu szumu, przy czym każda próbka jest dostarczana z czasem 175,8 ms. Możesz spodziewać się przybliżonego +/-100uA w 1-minutowym oknie testowym i czystego szumu 3-sigma mniejszego niż 100uA (lub szumu 1-sigma przy 33uA) w 6-minutowym oknie testowym.
  • Próbka aliasingu z powodu zmian obciążenia . Zmienność powoduje wyolbrzymianie błędów, zatem w przypadku próbek wykazujących zmienność wynikającą z obciążenia należy rozważyć zastosowanie dłuższego okna testowego.

Obsługiwane urządzenia Nexus

Nexus 5
Model Nexus 5
Wskaźnik poziomu paliwa Wskaźnik poziomu paliwa Maxim MAX17048 (ModelGauge™, bez licznika kulombów)
Nieruchomości BATTERY_PROPERTY_CAPACITY
Pomiary Wskaźnik poziomu paliwa nie obsługuje żadnych innych pomiarów niż stan naładowania akumulatora z rozdzielczością %/256 (1/256 procent pełnej pojemności akumulatora).
Nexusa 6
Model Nexusa 6
Wskaźnik poziomu paliwa Wskaźnik paliwa Maxim MAX17050 (licznik kulombowski z regulacją Maxim ModelGauge™) i rezystor wykrywający prąd 10 mohm.
Nieruchomości BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pomiary CURRENT_NOW rozdzielczość 156,25uA, okres aktualizacji wynosi 175,8 ms.
CURRENT_AVERAGE rozdzielczość 156,25uA, konfigurowalny okres aktualizacji 0,7 s - 6,4 h, domyślnie 11,25 s.
CHARGE_COUNTER (prąd skumulowany, bez rozszerzonej precyzji) wynosi 500uAh (odczyt surowego licznika kulombów, nieskorygowany przez wskaźnik poziomu paliwa pod kątem przesunięcia licznika kulombów, plus dane wejściowe z algorytmu ModelGauge m3, w tym kompensacja pustego miejsca).
CHARGE_COUNTER_EXT (rozszerzona precyzja w jądrze) rozdzielczość 8nAh.
ENERGY_COUNTER to CHARGE_COUNTER_EXT przy napięciu nominalnym 3,7 V.
Nexusa 9
Model Nexusa 9
Wskaźnik poziomu paliwa Wskaźnik paliwa Maxim MAX17050 (licznik kulombowski z regulacją Maxim ModelGauge™) i rezystor wykrywający prąd 10 mohm.
Nieruchomości BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pomiary CURRENT_NOW rozdzielczość 156,25uA, okres aktualizacji wynosi 175,8 ms.
CURRENT_AVERAGE rozdzielczość 156,25uA, konfigurowalny okres aktualizacji 0,7 s - 6,4 h, domyślnie 11,25 s.
CHARGE_COUNTER (prąd skumulowany, nierozszerzona precyzja) rozdzielczość wynosi 500uAh.
CHARGE_COUNTER_EXT (rozszerzona precyzja w jądrze) rozdzielczość 8nAh.
ENERGY_COUNTER to CHARGE_COUNTER_EXT przy napięciu nominalnym 3,7 V.
Skumulowany okres aktualizacji prądu 175,8 ms.
Próbkowanie ADC przy kwantyzacji 175 ms i okresie próbkowania 4 ms. Można dostosować cykl pracy.
Nexusa 10
Model Nexusa 10
Wskaźnik poziomu paliwa Wskaźnik poziomu paliwa Dallas Semiconductor DS2784 (licznik kulombowski) z rezystorem wykrywającym prąd 10 mohm.
Nieruchomości BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pomiary Rozdzielczość pomiaru prądu (chwilowego i średniego) wynosi 156,3uA.
CURRENT_NOW chwilowy okres aktualizacji prądu wynosi 3,5 sekundy.
Okres aktualizacji CURRENT_AVERAGE wynosi 28 sekund (nie można go skonfigurować).
CHARGE_COUNTER (prąd skumulowany, nierozszerzona precyzja) wynosi 625uAh.
Rozdzielczość CHARGE_COUNTER_EXT (rozszerzona precyzja w jądrze) wynosi 144nAh.
ENERGY_COUNTER to CHARGE_COUNTER_EXT przy napięciu nominalnym 3,7 V.
Okres aktualizacji dla wszystkich wynosi 3,5 sekundy.