Mengukur daya perangkat

Anda dapat menentukan konsumsi daya perangkat untuk perangkat Android yang menyertakan pengukur daya baterai seperti Summit SMB347 atau Maxim MAX17050 (tersedia di banyak perangkat Nexus). Gunakan pengukur dalam sistem saat peralatan pengukuran eksternal tidak tersedia atau tidak nyaman untuk terhubung ke perangkat (seperti dalam penggunaan seluler).

Pengukuran dapat mencakup arus sesaat, sisa daya, kapasitas baterai saat pengujian dimulai dan berakhir, dan lainnya, bergantung pada properti perangkat yang didukung (lihat di bawah). Untuk hasil terbaik, lakukan pengukuran daya perangkat selama pengujian A/B yang berjalan lama yang menggunakan jenis perangkat yang sama dengan pengukur bahan bakar yang sama dan resistor sensor arus yang sama. Pastikan pengisian daya baterai awal sama untuk setiap perangkat guna menghindari perilaku pengukur bahan bakar yang berbeda pada titik yang berbeda dalam kurva pengosongan baterai.

Meskipun dengan lingkungan pengujian yang identik, pengukuran tidak dijamin memiliki akurasi absolut yang tinggi. Namun, sebagian besar ketidakakuratan khusus untuk pengukur bahan bakar dan resistor sensor konsisten di antara pengujian yang dijalankan, sehingga perbandingan antara perangkat yang identik menjadi berguna. Sebaiknya jalankan beberapa pengujian dalam konfigurasi yang berbeda untuk mengidentifikasi perbedaan yang signifikan dan konsumsi daya relatif antar-konfigurasi.

Membaca konsumsi daya

Untuk membaca data konsumsi daya, masukkan panggilan ke API dalam kode pengujian Anda.

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");

Properti yang tersedia

Android mendukung properti pengukur daya baterai berikut:

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

Sebagian besar properti dibaca dari atribut subsistem power_supply kernel dengan nama yang mirip. Namun, properti yang tepat, resolusi nilai properti, dan frekuensi update yang tersedia untuk perangkat tertentu bergantung pada:

  • Hardware pengukur bahan bakar, seperti Summit SMB347 atau Maxim MAX17050.
  • Koneksi pengukur bahan bakar ke sistem, seperti nilai resistor sensor arus eksternal.
  • Konfigurasi software chip pengukur bahan bakar, seperti nilai yang dipilih untuk interval komputasi saat ini rata-rata di driver kernel.

Untuk mengetahui detailnya, lihat properti yang tersedia untuk perangkat Nexus.

Indikator bahan bakar Maxim

Saat menentukan status pengisian daya baterai dalam jangka waktu yang lama, pengukur bahan bakar Maxim (MAX17050, BC15) akan mengoreksi pengukuran offset penghitung coulomb. Untuk pengukuran yang dilakukan selama jangka waktu yang singkat (seperti pengujian pengukuran konsumsi daya), pengukur bahan bakar tidak melakukan koreksi, sehingga offset menjadi sumber utama error saat pengukuran saat ini terlalu kecil (meskipun tidak ada jumlah waktu yang dapat sepenuhnya menghilangkan error offset).

Untuk desain resistor deteksi 10 mOhm standar, arus offset harus lebih baik dari 1,5 mA, yang berarti pengukuran apa pun adalah +/-1,5 mA (tata letak PCBoard juga dapat memengaruhi variasi ini). Misalnya, saat mengukur arus besar (200 mA), Anda dapat mengharapkan hal berikut:

  • 2 mA (error penguatan 1% dari 200 mA karena error penguatan pengukur bahan bakar)
  • +2 mA (error penguatan 1% dari 200 mA karena error resistor sensor)
  • +1,5 mA (error offset deteksi arus dari pengukur bahan bakar)

Total error adalah 5,5 mA (2,75%). Bandingkan dengan arus sedang (50 mA) dengan persentase error yang sama yang memberikan error total 7% atau dengan arus kecil (15 mA) dengan +/-1,5 mA yang memberikan error total 10%.

Untuk hasil terbaik, sebaiknya ukur lebih dari 20 mA. Error pengukuran gain sistematis dan dapat diulang, sehingga Anda dapat menguji perangkat dalam beberapa mode dan mendapatkan pengukuran relatif yang bersih (dengan pengecualian untuk offset 1,5 mA).

Untuk pengukuran relatif +/-100 uA, waktu pengukuran yang diperlukan bergantung pada:

  • Derau sampling ADC. MAX17050 dengan konfigurasi pabrik normalnya menghasilkan variasi sampel ke sampel sebesar +/-1,5 mA karena derau, dengan setiap sampel dikirimkan pada 175,8 ms. Anda dapat mengharapkan +/-100 uA kasar untuk periode pengujian 1 menit dan derau 3 sigma bersih kurang dari 100 uA (atau derau 1 sigma pada 33 uA) untuk periode pengujian 6 menit.
  • Contoh alias karena variasi beban. Variasi akan memperburuk error, jadi untuk sampel dengan variasi yang melekat dalam pemuatan, pertimbangkan untuk menggunakan periode pengujian yang lebih lama.

Perangkat Nexus yang didukung

Nexus 5
Model Nexus 5
Indikator bahan bakar Pengukur bahan bakar Maxim MAX17048 (ModelGauge, tanpa penghitung coulomb)
Properti BATTERY_PROPERTY_CAPACITY
Pengukuran Indikator bahan bakar tidak mendukung pengukuran apa pun selain status pengisian daya baterai dengan resolusi %/256 (1/256 persen dari kapasitas baterai penuh).
Nexus 6
Model Nexus 6
Indikator bahan bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge), dan resistor deteksi arus 10 mohm.
Properti BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi CURRENT_NOW 156,25 uA, periode pembaruan 175,8 ms.
Resolusi CURRENT_AVERAGE 156,25 uA, periode pembaruan yang dapat dikonfigurasi 0,7 dtk - 6,4 jam, default 11,25 detik.
Resolusi CHARGE_COUNTER (arus akumulasi, presisi non-diperluas) adalah 500 uAh (pembacaan penghitung coulomb mentah, tidak disesuaikan oleh pengukur bahan bakar untuk offset penghitung coulomb, ditambah input dari algoritma ModelGauge m3 termasuk kompensasi kosong).
Resolusi CHARGE_COUNTER_EXT (presisi yang diperluas dalam kernel) 8 nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada voltase nominal 3,7 V.
Nexus 9
Model Nexus 9
Indikator bahan bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge), dan resistor deteksi arus 10 mohm.
Properti BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi CURRENT_NOW 156,25 uA, periode pembaruan adalah 175,8 ms.
Resolusi CURRENT_AVERAGE 156,25 uA, periode pembaruan dapat dikonfigurasi 0,7 dtk - 6,4 jam, default 11,25 dtk.
Resolusi CHARGE_COUNTER (arus akumulasi, presisi non-diperluas) adalah 500 uAh.
Resolusi CHARGE_COUNTER_EXT (presisi yang diperluas dalam kernel) 8 nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada voltase nominal 3,7 V.
Periode pembaruan arus akumulasi 175,8 ms.
ADC diambil sampelnya pada kuantisasi 175nbsp;ms dengan periode sampel 4 ms. Dapat menyesuaikan siklus tugas.
Nexus 10
Model Nexus 10
Indikator bahan bakar Pengukur bahan bakar DS2784 Dallas Semiconductor (penghitung coulomb), dengan resistor deteksi arus 10 mohm.
Properti BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi pengukuran arus (sesaat dan rata-rata) adalah 156,3 uA.
CURRENT_NOW Periode pembaruan arus sesaat adalah 3,5 detik.
Periode update CURRENT_AVERAGE adalah 28 detik (tidak dapat dikonfigurasi).
Resolusi CHARGE_COUNTER (arus akumulasi, presisi non-diperluas) adalah 625 uAh.
Resolusi CHARGE_COUNTER_EXT (presisi yang diperluas dalam kernel) adalah 144 nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada voltase nominal 3,7 V.
Periode pembaruan untuk semua adalah 3,5 detik.