Możesz określić zużycie energii na urządzeniach z Androidem, które mają wskaźnik poziomu naładowania baterii, np. Summit SMB347 lub Maxim MAX17050 (dostępne na wielu urządzeniach Nexus). Używaj wskaźnika w systemie, gdy zewnętrzny sprzęt pomiarowy jest niedostępny lub nie można go podłączyć do urządzenia (np. w przypadku urządzeń mobilnych).
Pomiary mogą obejmować bieżący prąd, pozostałą pojemność baterii, pojemność baterii na początku i na końcu testu oraz inne wartości w zależności od obsługiwanych właściwości urządzenia (patrz poniżej). Aby uzyskać najlepsze wyniki, zmierz moc urządzenia podczas długotrwałych testów A/B, które korzystają z tego samego typu urządzenia z tym samym wskaźnikiem poziomu paliwa i tym samym rezystorem czujnika prądu. Upewnij się, że początkowy poziom naładowania baterii jest taki sam dla każdego urządzenia, aby uniknąć różnych zachowań wskaźnika poziomu paliwa w różnych punktach krzywej rozładowania baterii.
Nawet w identycznych środowiskach testowych nie można mieć pewności, że pomiary będą charakteryzować się wysoką dokładnością bezwzględną. Jednak większość nieścisłości związanych z wskaźnikiem poziomu paliwa i rezystorem czujnika jest taka sama w przypadku wszystkich testów, co pozwala na porównywanie identycznych urządzeń. Zalecamy przeprowadzenie wielu testów w różnych konfiguracjach, aby zidentyfikować istotne różnice i względne zużycie energii w różnych konfiguracjach.
Odczyt zużycia energii
Aby odczytać dane o zużyciu energii, wstaw do kodu testowego wywołania interfejsu API.
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 te właściwości wskaźnika poziomu naładowania baterii:
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 jądra power_supply w ramach podsystemu o podobnych nazwach. Dokładne właściwości, rozdzielczość wartości właściwości i częstotliwość aktualizacji dostępnych dla konkretnego urządzenia zależą jednak od:
- sprzęt do pomiaru poziomu paliwa, np. Summit SMB347 lub Maxim MAX17050;
- Połączenie wskaźnika poziomu paliwa z systemem, np. wartość zewnętrznych rezystorów pomiarowych prądu.
- Konfiguracja oprogramowania układu wskaźnika poziomu paliwa, np. wartości wybrane dla interwałów obliczania średniego prądu w sterowniku jądra.
Szczegółowe informacje znajdziesz w sekcji dotyczącej właściwości dostępnych na urządzeniach Nexus.
Wskaźnik poziomu paliwa Maxim
Podczas określania stanu naładowania baterii przez długi czas wskaźnik poziomu naładowania baterii Maxim (MAX17050, BC15) koryguje pomiary offsetu licznika ładowania. W przypadku pomiarów wykonywanych w krótkim czasie (np. testów pomiaru zużycia energii) wskaźnik poziomu paliwa nie wprowadza poprawek, co powoduje, że przesunięcie jest głównym źródłem błędu, gdy bieżące pomiary są zbyt małe (chociaż żaden czas nie może całkowicie wyeliminować błędu przesunięcia).
W przypadku typowego rezystora czujnika 10 mΩ odchylenie prądu powinno być mniejsze niż 1,5 mA, co oznacza, że każde pomiary są w zakresie +/-1,5 mA (na tę zmienność może też wpływać układ płytki PC). Na przykład podczas pomiaru dużego prądu (200 mA) możesz spodziewać się:
- 2 mA (błąd wzmocnienia 1% 200 mA z powodu błędu wzmocnienia wskaźnika poziomu paliwa)
- +2 mA (błąd wzmocnienia 200 mA z powodu błędu rezystora czujnika)
- +1,5 mA (błąd przesunięcia czujnika w stosunku do wskaźnika poziomu paliwa)
Łączny błąd wynosi 5,5 mA (2,75%). Porównaj to z średnim prądem (50 mA), gdzie te same wartości procentowe dają błąd całkowity 7%, lub z małym prądem (15 mA), gdzie +/-1,5 mA daje błąd całkowity 10%.
Aby uzyskać najlepsze wyniki, zalecamy pomiar wartości powyżej 20 mA. Błędy pomiaru wzmocnienia są systematyczne i powtarzalne, co umożliwia testowanie urządzenia w różnych trybach i otrzymywanie czystych pomiarów względnych (z wyjątkiem przesunięcia o 1,5 mA).
W przypadku pomiarów względnych +/-100 µA wymagany czas pomiaru zależy od:
- Szum próbkowania ADC. MAX17050 w standardowej konfiguracji fabrycznej generuje różnicę w wartościach kolejnych próbek wynoszącą +/-1,5 mA z powodu szumu, przy czym każda próbka jest dostarczana w czasie 175,8 ms. W przypadku 1-minutowego okna testowego można się spodziewać przybliżonej wartości +/-100 µA, a w przypadku 6-minutowego okna testowego – czystego szumu 3-sigma mniejszego niż 100 µA (lub 1-sigma szumu na poziomie 33 µA).
- Aliasowanie próbki z powodu zmiennego obciążenia. Zmiana wyolbrzymia błędy, dlatego w przypadku próbek z wariantami związanymi z wczytywaniem warto użyć dłuższego okna testowego.
Obsługiwane urządzenia Nexus
Nexus 5
Model | Nexus 5 |
---|---|
Wskaźnik poziomu paliwa | Manometr paliwa Maxim MAX17048 (ModelGauge, bez licznika Coulomba) |
Właściwości | BATTERY_PROPERTY_CAPACITY |
Pomiary | Wskaźnik poziomu naładowania baterii nie obsługuje żadnych innych pomiarów niż stan naładowania baterii z dokładnością do %/256 (1/256 % pełnej pojemności baterii). |
Nexus 6
Model | Nexus 6 |
---|---|
Wskaźnik poziomu paliwa | wskaźnik poziomu paliwa Maxim MAX17050 (licznik Coulomba z regulacją Maxim ModelGauge) oraz rezystor pomiarowy 10 mΩ. |
Właściwoś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,25 µA, okres aktualizacji 175,8 ms.CURRENT_AVERAGE rozdzielczość 156,25 µA, okres aktualizacji konfigurowalny
0,7 s – 6,4 h, domyślnie 11,25 s.CHARGE_COUNTER (skumulowany prąd, precyzja nierozszerzona) rozdzielczość 500 µAh (nieprzetworzone odczyty licznika ładunku, nieskorygowane przez wskaźnik poziomu paliwa w przypadku przesunięcia licznika ładunku,
oraz dane wejściowe z algorytmu ModelGauge m3, w tym kompensacja pustego zbiornika).CHARGE_COUNTER_EXT (rozszerzona dokładność w rdzeniu) 8 nAh.ENERGY_COUNTER ma CHARGE_COUNTER_EXT przy napięciu znamionowym 3,7 V. |
Nexus 9
Model | Nexus 9 |
---|---|
Wskaźnik poziomu paliwa | wskaźnik poziomu paliwa Maxim MAX17050 (licznik Coulomba z regulacją Maxim ModelGauge) oraz rezystor pomiarowy 10 mΩ. |
Właściwoś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,25 uA, okres aktualizacji to 175,8 ms.CURRENT_AVERAGE rozdzielczość 156,25 uA, okres aktualizacji można ustawić w zakresie 0,7 s – 6,4 h, domyślnie 11,25 s.CHARGE_COUNTER (skumulowany prąd, precyzja nierozszerzona) rozdzielczość to
500 uAh.CHARGE_COUNTER_EXT (rozszerzona dokładność w rdzeniu) 8 nAh.ENERGY_COUNTER to CHARGE_COUNTER_EXT przy napięciu nominalnym 3,7 V.Nagromadzony okres aktualizacji prądu 175,8 ms. ADC próbkowany z kwantyzacją 175 ms z okresem próbkowania 4 ms. Możliwość dostosowania cyklu pracy. |
Nexus 10
Model | Nexus 10 |
---|---|
Wskaźnik poziomu paliwa | czujnik poziomu paliwa Dallas Semiconductor DS2784 (licznik ładunków), z rezystorem pomiarowym o wartości 10 mΩ. |
Właściwości | BATTERY_PROPERTY_CAPACITY BATTERY_PROPERTY_CURRENT_NOW BATTERY_PROPERTY_CURRENT_AVERAGE BATTERY_PROPERTY_CHARGE_COUNTER BATTERY_PROPERTY_ENERGY_COUNTER |
Pomiary | Bieżąca rozdzielczość pomiaru (chwilowa i średnia) wynosi 156,3 µA.CURRENT_NOW Aktualny okres bieżącej aktualizacji to 3,5 sekundy.CURRENT_AVERAGE okres aktualizacji wynosi 28 sekund (nie można go zmienić).Rozdzielczość CHARGE_COUNTER (skumulowana bieżąca rozdzielczość bez rozszerzonej precyzji) wynosi
625 uAh.Rozdzielczość CHARGE_COUNTER_EXT (rozszerzona dokładność w rdzeniu) wynosi 144 nAh.ENERGY_COUNTER to CHARGE_COUNTER_EXT przy napięciu znamionowym 3,7 V.Czas aktualizacji dla wszystkich to 3,5 sekundy. |