Mengukur Daya Perangkat

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

Pengukuran dapat mencakup arus sesaat, sisa daya, kapasitas baterai pada awal dan akhir pengujian, dan banyak lagi bergantung pada properti perangkat yang didukung (lihat di bawah). Untuk hasil terbaik, lakukan pengukuran daya perangkat selama pengujian A/B jangka panjang yang menggunakan jenis perangkat yang sama dengan pengukur bahan bakar yang sama dan resistor indra arus yang sama. Pastikan pengisian daya baterai awal sama untuk setiap perangkat untuk menghindari perbedaan perilaku pengukur bahan bakar di berbagai titik dalam kurva pengosongan baterai.

Bahkan dengan lingkungan pengujian yang identik, pengukuran tidak dijamin memiliki akurasi absolut yang tinggi. Namun, sebagian besar ketidakakuratan khusus pada pengukur bahan bakar dan resistor indera terjadi secara konsisten di antara pengujian yang dijalankan, sehingga perbandingan antara perangkat yang identik menjadi berguna. Kami merekomendasikan menjalankan beberapa pengujian dalam konfigurasi berbeda untuk mengidentifikasi perbedaan 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 bahan bakar 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 kernel power_supply dengan nama yang mirip. Namun, properti persisnya, resolusi nilai properti, dan frekuensi pembaruan yang tersedia untuk perangkat tertentu bergantung pada:

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

Untuk detailnya, lihat properti yang tersedia untuk perangkat Nexus .

Pengukur bahan bakar Maxim

Saat menentukan status pengisian daya baterai dalam jangka waktu lama, pengukur bahan bakar Maxim (MAX17050, BC15) mengoreksi pengukuran offset penghitung coulomb. Untuk pengukuran yang dilakukan dalam jangka waktu singkat (seperti uji pengukuran konsumsi daya), pengukur bahan bakar tidak melakukan koreksi, menjadikan offset sebagai sumber kesalahan utama ketika pengukuran arus terlalu kecil (walaupun tidak ada waktu yang dapat menghilangkan offset tersebut. kesalahan sepenuhnya).

Untuk desain resistor sense 10mOhm pada umumnya, arus offset harus lebih baik dari 1,5mA, artinya pengukuran apa pun adalah +/- 1,5mA (tata letak PCB juga dapat memengaruhi variasi ini). Misalnya, saat mengukur arus besar (200mA), hal berikut dapat diharapkan:

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

Kesalahan totalnya adalah 5,5mA (2,75%). Bandingkan dengan arus sedang (50mA) dimana persentase kesalahan yang sama menghasilkan kesalahan total sebesar 7% atau dengan arus kecil (15mA) dengan +/- 1,5mA memberikan kesalahan total sebesar 10%.

Untuk hasil terbaik, kami merekomendasikan pengukuran lebih besar dari 20mA. Kesalahan pengukuran penguatan bersifat sistematis dan dapat diulang, memungkinkan Anda menguji perangkat dalam berbagai mode dan mendapatkan pengukuran relatif bersih (dengan pengecualian untuk offset 1,5mA).

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

  • Kebisingan pengambilan sampel ADC . MAX17050 dengan konfigurasi pabrik normal menghasilkan variasi sampel-ke-sampel +/- 1,5mA karena kebisingan, dengan setiap sampel dikirimkan pada 175,8ms. Anda dapat mengharapkan +/-100uA kasar untuk jendela pengujian 1 menit dan kebisingan 3-sigma bersih kurang dari 100uA (atau kebisingan 1-sigma pada 33uA) untuk jendela pengujian 6 menit.
  • Sampel Aliasing karena variasi beban . Variasi memperbesar kesalahan, jadi untuk sampel dengan variasi yang melekat pada pemuatan, pertimbangkan untuk menggunakan periode pengujian yang lebih panjang.

Perangkat Nexus yang didukung

Nexus 5
Model Nexus 5
Pengukur Bahan Bakar Pengukur bahan bakar Maxim MAX17048 (ModelGauge™, tanpa penghitung coulomb)
Properti BATERAI_PROPERTY_KAPASITAS
Pengukuran Pengukur bahan bakar tidak mendukung pengukuran apa pun selain Status Pengisian Daya baterai hingga resolusi %/256 (1/256 persen kapasitas baterai penuh).
Perhubungan 6
Model Perhubungan 6
Pengukur Bahan Bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge™), dan resistor penginderaan arus 10mohm.
Properti BATERAI_PROPERTY_KAPASITAS
BATERAI_PROPERTY_CURRENT_NOW
BATERAI_PROPERTY_CURRENT_AVERAGE
BATERAI_PROPERTY_CHARGE_COUNTER
BATERAI_PROPERTY_ENERGY_COUNTER
Pengukuran CURRENT_NOW resolusi 156.25uA, periode pembaruan 175.8ms.
Resolusi CURRENT_AVERAGE 156,25uA, periode pembaruan dapat dikonfigurasi 0,7 detik - 6,4 jam, default 11,25 detik.
Resolusi CHARGE_COUNTER (akumulasi arus, presisi non-perpanjangan) adalah 500uAh (bacaan penghitung coulomb mentah, tidak disesuaikan dengan pengukur bahan bakar untuk offset penghitung coulomb, ditambah input dari algoritma ModelGauge m3 termasuk kompensasi kosong).
CHARGE_COUNTER_EXT (presisi yang diperluas dalam kernel) resolusi 8nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada volume nominaltage 3.7V.
Perhubungan 9
Model Perhubungan 9
Pengukur Bahan Bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge™), dan resistor penginderaan arus 10mohm.
Properti BATERAI_PROPERTY_KAPASITAS
BATERAI_PROPERTY_CURRENT_NOW
BATERAI_PROPERTY_CURRENT_AVERAGE
BATERAI_PROPERTY_CHARGE_COUNTER
BATERAI_PROPERTY_ENERGY_COUNTER
Pengukuran CURRENT_NOW resolusi 156.25uA, periode pembaruan 175.8ms.
Resolusi CURRENT_AVERAGE 156,25uA, periode pembaruan dapat dikonfigurasi 0,7 detik - 6,4 jam, default 11,25 detik.
Resolusi CHARGE_COUNTER (akumulasi arus, presisi non-perpanjangan) adalah 500uAh.
CHARGE_COUNTER_EXT (presisi yang diperluas dalam kernel) resolusi 8nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada volume nominaltage 3.7V.
Akumulasi periode pembaruan saat ini 175,8 ms.
ADC mengambil sampel pada kuantisasi 175 md dengan periode sampel 4 md. Dapat menyesuaikan siklus kerja.
Perhubungan 10
Model Perhubungan 10
Pengukur Bahan Bakar Pengukur bahan bakar Dallas Semiconductor DS2784 (penghitung coulomb), dengan resistor penginderaan arus 10mohm.
Properti BATERAI_PROPERTY_KAPASITAS
BATERAI_PROPERTY_CURRENT_NOW
BATERAI_PROPERTY_CURRENT_AVERAGE
BATERAI_PROPERTY_CHARGE_COUNTER
BATERAI_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi pengukuran saat ini (sesaat dan rata-rata) adalah 156,3uA.
CURRENT_NOW periode pembaruan instan saat ini adalah 3,5 detik.
Periode pembaruan CURRENT_AVERAGE adalah 28 detik (tidak dapat dikonfigurasi).
Resolusi CHARGE_COUNTER (akumulasi arus, presisi non-perpanjangan) adalah 625uAh.
Resolusi CHARGE_COUNTER_EXT (presisi yang diperluas dalam kernel) adalah 144nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada volume nominaltage 3.7V.
Periode pembaruan untuk semua adalah 3,5 detik.