Đo công suất thiết bị

Bạn có thể xác định mức tiêu thụ năng lượng của thiết bị cho các thiết bị Android có đồng hồ đo mức tiêu thụ pin, chẳng hạn như Summit SMB347 hoặc Maxim MAX17050 (có sẵn trên nhiều thiết bị Nexus). Sử dụng máy đo trong hệ thống khi không có thiết bị đo bên ngoài hoặc không thuận tiện khi kết nối với thiết bị (chẳng hạn như khi sử dụng thiết bị di động).

Các phép đo có thể bao gồm dòng điện tức thời, mức sạc còn lại, dung lượng pin khi bắt đầu và kết thúc thử nghiệm, v.v. tùy thuộc vào các đặc tính được hỗ trợ của thiết bị (xem bên dưới). Để có kết quả tốt nhất, hãy thực hiện các phép đo công suất của thiết bị trong các thử nghiệm A/B kéo dài sử dụng cùng một loại thiết bị với cùng một đồng hồ đo nhiên liệu và cùng một điện trở cảm nhận dòng điện. Đảm bảo mức sạc pin ban đầu của mỗi thiết bị là như nhau để tránh hoạt động khác nhau của đồng hồ đo nhiên liệu tại các điểm khác nhau trên đường cong xả pin.

Ngay cả với môi trường thử nghiệm giống hệt nhau, các phép đo không được đảm bảo có độ chính xác tuyệt đối cao. Tuy nhiên, hầu hết các điểm không chính xác cụ thể đối với đồng hồ đo nhiên liệu và điện trở cảm biến đều nhất quán giữa các lần chạy thử, khiến việc so sánh giữa các thiết bị giống hệt nhau trở nên hữu ích. Chúng tôi khuyên bạn nên chạy nhiều thử nghiệm ở các cấu hình khác nhau để xác định sự khác biệt đáng kể và mức tiêu thụ điện năng tương đối giữa các cấu hình.

Đọc điện năng tiêu thụ

Để đọc dữ liệu tiêu thụ điện năng, hãy chèn lệnh gọi API vào mã thử nghiệm của bạn.

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

Thuộc tính có sẵn

Android hỗ trợ các thuộc tính đo nhiên liệu pin sau:

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

Hầu hết các thuộc tính được đọc từ các thuộc tính hệ thống con power_supply của kernel có tên tương tự. Tuy nhiên, các thuộc tính chính xác, độ phân giải của các giá trị thuộc tính và tần suất cập nhật sẵn có cho một thiết bị cụ thể phụ thuộc vào:

  • Phần cứng đo nhiên liệu, chẳng hạn như Summit SMB347 hoặc Maxim MAX17050.
  • Kết nối máy đo nhiên liệu với hệ thống, chẳng hạn như giá trị của điện trở cảm nhận dòng điện bên ngoài.
  • Cấu hình phần mềm chip đo nhiên liệu, chẳng hạn như các giá trị được chọn cho khoảng thời gian tính toán dòng điện trung bình trong trình điều khiển hạt nhân.

Để biết chi tiết, hãy xem các thuộc tính có sẵn cho thiết bị Nexus .

Đồng hồ đo nhiên liệu tối đa

Khi xác định trạng thái sạc pin trong một thời gian dài, đồng hồ đo nhiên liệu Maxim (MAX17050, BC15) sẽ hiệu chỉnh các phép đo bù của bộ đếm Coulomb. Đối với các phép đo được thực hiện trong khoảng thời gian ngắn (chẳng hạn như kiểm tra đo mức tiêu thụ điện năng), đồng hồ đo nhiên liệu không thực hiện hiệu chỉnh, khiến độ lệch trở thành nguồn lỗi chính khi phép đo dòng điện quá nhỏ (mặc dù không có khoảng thời gian nào có thể loại bỏ được độ lệch lỗi hoàn toàn).

Đối với thiết kế điện trở cảm giác 10mOhm điển hình, dòng điện bù phải lớn hơn 1,5mA, nghĩa là bất kỳ phép đo nào cũng là +/- 1,5mA (bố trí PCBoard cũng có thể ảnh hưởng đến biến thể này). Ví dụ: khi đo dòng điện lớn (200mA), bạn có thể mong đợi những điều sau:

  • 2mA (lỗi tăng 1% của 200mA do lỗi tăng đồng hồ đo nhiên liệu)
  • +2mA (lỗi tăng 1% của 200mA do lỗi điện trở cảm nhận)
  • +1,5mA (lỗi bù cảm giác hiện tại từ đồng hồ đo nhiên liệu)

Tổng sai số là 5,5mA (2,75%). So sánh điều này với dòng điện trung bình (50mA) trong đó tỷ lệ phần trăm lỗi giống nhau cho tổng sai số là 7% hoặc với dòng điện nhỏ (15mA) trong đó +/- 1,5mA cho tổng sai số là 10%.

Để có kết quả tốt nhất, chúng tôi khuyên bạn nên đo lớn hơn 20mA. Các lỗi đo lường độ lợi có tính hệ thống và có thể lặp lại, cho phép bạn kiểm tra thiết bị ở nhiều chế độ và có được các phép đo tương đối rõ ràng (ngoại trừ độ lệch 1,5mA).

Đối với các phép đo tương đối +/- 100uA, thời gian đo cần thiết phụ thuộc vào:

  • Tiếng ồn lấy mẫu ADC MAX17050 với cấu hình thông thường tại nhà máy tạo ra sự biến đổi giữa các mẫu +/-1,5mA do nhiễu, với mỗi mẫu được phân phối ở tốc độ 175,8 mili giây. Bạn có thể mong đợi mức +/-100uA thô cho cửa sổ kiểm tra 1 phút và tiếng ồn 3 sigma rõ ràng dưới 100uA (hoặc tiếng ồn 1 sigma ở 33uA) trong cửa sổ kiểm tra 6 phút.
  • Bí danh mẫu vì sự thay đổi tải . Sự thay đổi làm tăng sai số, do đó, đối với các mẫu có sự thay đổi cố hữu khi tải, hãy cân nhắc sử dụng cửa sổ thử nghiệm dài hơn.

Các thiết bị Nexus được hỗ trợ

Nexus 5
Người mẫu Nexus 5
Đo nhiên liệu Đồng hồ đo nhiên liệu Maxim MAX17048 (ModelGauge™, không có bộ đếm Coulomb)
Của cải BATTERY_PROPERTY_CAPACITY
Đo Đồng hồ đo nhiên liệu không hỗ trợ bất kỳ phép đo nào ngoài Trạng thái sạc của pin với độ phân giải %/256 (1/256 phần trăm của dung lượng pin đầy).
Nexus 6
Người mẫu Nexus 6
Đo nhiên liệu Đồng hồ đo nhiên liệu Maxim MAX17050 (bộ đếm coulomb có điều chỉnh Maxim ModelGauge™) và điện trở cảm nhận dòng điện 10 mohm.
Của cải BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Đo CURRENT_NOW độ phân giải 156,25uA, thời gian cập nhật là 175,8ms.
Độ phân giải CURRENT_AVERAGE 156,25uA, thời gian cập nhật có thể định cấu hình 0,7 giây - 6,4 giờ, mặc định 11,25 giây.
Độ phân giải CHARGE_COUNTER (dòng tích lũy, độ chính xác không mở rộng) là 500uAh (đọc bộ đếm coulomb thô, không được điều chỉnh bằng máy đo nhiên liệu để bù bộ đếm coulomb, cộng với đầu vào từ thuật toán ModelGauge m3 bao gồm cả mức bù trống).
Độ phân giải CHARGE_COUNTER_EXT (độ chính xác mở rộng trong kernel) 8nAh.
ENERGY_COUNTER là CHARGE_COUNTER_EXT ở điện áp danh định là 3,7V.
Nexus 9
Người mẫu Nexus 9
Đo nhiên liệu Đồng hồ đo nhiên liệu Maxim MAX17050 (bộ đếm coulomb có điều chỉnh Maxim ModelGauge™) và điện trở cảm nhận dòng điện 10 mohm.
Của cải BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Đo CURRENT_NOW độ phân giải 156,25uA, thời gian cập nhật là 175,8ms.
Độ phân giải CURRENT_AVERAGE 156,25uA, thời gian cập nhật có thể định cấu hình 0,7 giây - 6,4 giờ, mặc định 11,25 giây.
Độ phân giải CHARGE_COUNTER (dòng điện tích lũy, độ chính xác không mở rộng) là 500uAh.
Độ phân giải CHARGE_COUNTER_EXT (độ chính xác mở rộng trong kernel) 8nAh.
ENERGY_COUNTER là CHARGE_COUNTER_EXT ở điện áp danh định là 3,7V.
Thời gian cập nhật hiện tại tích lũy là 175,8 mili giây.
ADC lấy mẫu ở tốc độ lượng tử hóa 175ms với chu kỳ lấy mẫu là 4ms. Có thể điều chỉnh chu kỳ nhiệm vụ.
Nexus 10
Người mẫu Nexus 10
Đo nhiên liệu Đồng hồ đo nhiên liệu DS2784 của Dallas Semiconductor (bộ đếm coulomb), với điện trở cảm nhận dòng điện 10 mohm.
Của cải BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
Đo Độ phân giải đo hiện tại (tức thời và trung bình) là 156,3uA.
CURRENT_NOW thời gian cập nhật tức thời hiện tại là 3,5 giây.
Thời gian cập nhật CURRENT_AVERAGE là 28 giây (không thể định cấu hình).
Độ phân giải CHARGE_COUNTER (dòng điện tích lũy, độ chính xác không mở rộng) là 625uAh.
Độ phân giải CHARGE_COUNTER_EXT (độ chính xác mở rộng trong kernel) là 144nAh.
ENERGY_COUNTER là CHARGE_COUNTER_EXT ở điện áp danh định là 3,7V.
Thời gian cập nhật cho tất cả là 3,5 giây.