Đo lường nguồn điện của 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 những thiết bị Android có đồng hồ đo nhiên liệu pin chẳng hạn như Summit SMB347 hoặc Maxim MAX17050 (có trên nhiều thiết bị Nexus). Sử dụng trong hệ thống đo lường khi không có thiết bị đo lường bên ngoài hoặc không tiện kết nối với một thiết bị (chẳng hạn như sử dụng trên thiết bị di động).

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

Ngay cả với các môi trường thử nghiệm giống nhau, các phép đo vẫn không được đảm bảo có kết quả tuyệt đối cao sự chính xác. Tuy nhiên, hầu hết các giá trị không chính xác của đồ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 kiểm thử, việc so sánh giữa các thiết bị giống nhau sẽ trở nên hữu ích. 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à công suất tương đối mức tiêu thụ giữa các cấu hình.

Đọc dữ liệu về mức tiêu thụ điện năng

Để đọc dữ liệu về mức tiêu thụ năng lượng, hãy chèn lệnh gọi đến API này vào mã kiểm thử 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");

Cơ sở lưu trú hiện có

Android hỗ trợ các thuộc tính sau đây cho đồng hồ đo nhiên liệu của pin:

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 tài sản đều được đọc từ các thuộc tính hệ thống con kernel power_supply có tên tương tự nhau. 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 có sẵn cho một thiết bị cụ thể, phụ thuộc vào:

  • Linh kiện đồng hồ nhiên liệu, chẳng hạn như Summit SMB347 hoặc Maxim MAX17050.
  • Kết nối đồng hồ đo nhiên liệu với hệ thống, chẳng hạn như giá trị của điện trở cảm biến dòng điện bên ngoài.
  • Cấu hình phần mềm chip cho đồng hồ đo nhiên liệu, chẳng hạn như các giá trị được chọn để tính toán hiện tại trung bình trong trình điều khiển 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 Maxim

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

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

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

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

Để có kết quả tốt nhất, bạn nên đo điện áp lớn hơn 20 mA. Lỗi đo lường mức tăng là có tính hệ thống và có thể lặp lại, cho phép bạn thử nghiệm thiết bị ở nhiều chế độ và làm sạch kết quả thử nghiệm phép đo (trừ trường hợp chênh lệch 1,5 mA).

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

  • Độ nhiễu lấy mẫu ADC. MAX17050 với cấu hình nhà máy bình thường sản xuất +/-1,5 mA biến đổi mẫu với mẫu 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ể đạt được mức +/-100 uA trong khoảng thời gian kiểm tra 1 phút và giảm bớt độ nhiễu 3 sigma hơn 100 uA (hoặc nhiễu 1-sigma ở 33 uA) trong thời gian thử nghiệm 6 phút.
  • Mẫu bị chồng phổ do biến thể tải. Biến thể sẽ phóng đại lỗi, vì vậy, đối với mẫu với sự biến đổi vốn có trong quá trình tải, hãy xem xét sử dụng cửa sổ thử nghiệm dài hơn.

Thiết bị Nexus được hỗ trợ

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