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. |