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 saat peralatan pengukuran eksternal tidak tersedia atau tidak nyaman untuk disambungkan ke perangkat (seperti dalam penggunaan seluler).

Pengukuran dapat mencakup arus sesaat, sisa daya, kapasitas baterai pada awal dan akhir pengujian, dan banyak lagi tergantung 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 sensor arus yang sama. Pastikan pengisian daya baterai awal sama untuk setiap perangkat untuk menghindari perilaku pengukur bahan bakar yang berbeda pada titik yang berbeda dalam kurva pengosongan baterai.

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

Konsumsi daya baca

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 power_supply kernel dengan nama yang mirip. Namun, properti yang tepat, resolusi nilai properti, dan frekuensi pembaruan yang tersedia untuk perangkat tertentu bergantung pada:

  • Perangkat keras pengukur bahan bakar, seperti Summit SMB347 atau Maxim MAX17050.
  • Sambungan pengukur bahan bakar ke sistem, seperti nilai resistor sensor 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 max

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

Untuk desain resistor sense 10mOhm yang khas, arus offset harus lebih baik dari 1,5mA, artinya setiap pengukuran adalah +/-1.5mA (tata letak PCB juga dapat memengaruhi variasi ini). Misalnya, saat mengukur arus besar (200mA), Anda dapat mengharapkan hal berikut:

  • 2mA (kesalahan gain 1% dari 200mA karena kesalahan gain pengukur bahan bakar)
  • +2mA (kesalahan gain 1% dari 200mA karena kesalahan resistor sense)
  • +1.5mA (kesalahan offset rasa saat ini dari pengukur bahan bakar)

Total kesalahannya adalah 5,5mA (2,75%). Bandingkan ini dengan arus menengah (50mA) di mana persentase kesalahan yang sama memberikan kesalahan total 7% atau dengan arus kecil (15mA) di mana +/-1.5mA memberikan kesalahan total 10%.

Untuk hasil terbaik, sebaiknya ukur lebih besar dari 20mA. Kesalahan pengukuran gain bersifat sistematis dan berulang, 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 normalnya menghasilkan variasi sampel-ke-sampel +/-1.5mA karena noise, dengan masing-masing sampel dikirimkan pada 175,8 ms. Anda dapat mengharapkan +/-100uA kasar untuk jendela pengujian 1 menit dan noise 3-sigma bersih kurang dari 100uA (atau noise 1-sigma pada 33uA) untuk jendela pengujian 6 menit.
  • Contoh Aliasing karena variasi beban . Variasi melebih-lebihkan kesalahan, jadi untuk sampel dengan variasi yang melekat pada pemuatan, pertimbangkan untuk menggunakan jendela 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_CAPACITY
Pengukuran Pengukur bahan bakar tidak mendukung pengukuran apa pun selain Status Pengisian Daya baterai hingga resolusi %/256 (1/256 persen dari kapasitas baterai penuh).
Nexus 6
Model Nexus 6
Pengukur Bahan Bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge™), dan resistor sensor arus 10mohm.
Properti BATERAI_PROPERTY_CAPACITY
BATERAI_PROPERTY_CURRENT_NOW
BATERAI_PROPERTY_CURRENT_AVERAGE
BATERAI_PROPERTY_CHARGE_COUNTER
BATERAI_PROPERTY_ENERGY_COUNTER
Pengukuran CURRENT_NOW resolusi 156.25uA, periode pembaruan adalah 175.8ms.
Resolusi CURRENT_AVERAGE 156.25uA, periode pembaruan yang dapat dikonfigurasi 0,7 detik - 6,4 jam, default 11,25 detik.
CHARGE_COUNTER (akumulasi arus, presisi non-diperpanjang) adalah 500uAh (pembacaan penghitung coulomb mentah, tidak disesuaikan dengan pengukur bahan bakar untuk offset penghitung coulomb, ditambah input dari algoritme ModelGauge m3 termasuk kompensasi kosong).
CHARGE_COUNTER_EXT (perpanjangan presisi dalam kernel) resolusi 8nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada tegangan nominal 3,7V.
Nexus 9
Model Nexus 9
Pengukur Bahan Bakar Pengukur bahan bakar Maxim MAX17050 (penghitung coulomb dengan penyesuaian Maxim ModelGauge™), dan resistor sensor arus 10mohm.
Properti BATERAI_PROPERTY_CAPACITY
BATERAI_PROPERTY_CURRENT_NOW
BATERAI_PROPERTY_CURRENT_AVERAGE
BATERAI_PROPERTY_CHARGE_COUNTER
BATERAI_PROPERTY_ENERGY_COUNTER
Pengukuran CURRENT_NOW resolusi 156.25uA, periode pembaruan adalah 175.8ms.
Resolusi CURRENT_AVERAGE 156.25uA, periode pembaruan yang dapat dikonfigurasi 0,7 detik - 6,4 jam, default 11,25 detik.
CHARGE_COUNTER (akumulasi arus, presisi non-diperpanjang) adalah 500uAh.
CHARGE_COUNTER_EXT (perpanjangan presisi dalam kernel) resolusi 8nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada tegangan nominal 3,7V.
Akumulasi periode pembaruan saat ini 175,8 ms.
ADC mengambil sampel pada kuantisasi 175ms dengan periode sampel 4ms. Dapat menyesuaikan siklus tugas.
Nexus 10
Model Nexus 10
Pengukur Bahan Bakar Dallas Semiconductor DS2784 pengukur bahan bakar (penghitung coulomb), dengan resistor sensor arus 10mohm.
Properti BATERAI_PROPERTY_CAPACITY
BATERAI_PROPERTY_CURRENT_NOW
BATERAI_PROPERTY_CURRENT_AVERAGE
BATERAI_PROPERTY_CHARGE_COUNTER
BATERAI_PROPERTY_ENERGY_COUNTER
Pengukuran Resolusi pengukuran saat ini (seketika dan rata-rata) adalah 156.3uA.
CURRENT_NOW periode pembaruan saat ini adalah 3,5 detik.
Periode pembaruan CURRENT_AVERAGE adalah 28 detik (tidak dapat dikonfigurasi).
CHARGE_COUNTER (akumulasi arus, presisi non-diperpanjang) adalah 625uAh.
Resolusi CHARGE_COUNTER_EXT (extended precision in kernel) adalah 144nAh.
ENERGY_COUNTER adalah CHARGE_COUNTER_EXT pada tegangan nominal 3,7V.
Periode pembaruan untuk semua adalah 3,5 detik.