Bạn có thể xác định mức tiêu thụ điện năng của thiết bị cho các 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 đồng hồ đo trong hệ thống khi không có thiết bị đo lường bên ngoài hoặc không thuận tiện để 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ì, lượng pin còn lại, dung lượng pin khi bắt đầu và kết thúc kiểm thử, 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). Để có kết quả tốt nhất, hãy đo lường công suất 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 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 biến dòng điện. Đảm bảo mức pin bắt đầu sạc giống nhau cho mỗi thiết bị để tránh hành vi khác nhau 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ả khi có môi trường thử nghiệm giống hệt nhau, các phép đo cũng không được đảm bảo có độ chính xác tuyệt đối cao. Tuy nhiên, hầu hết các lỗi 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 kiểm thử, giúp việc so sánh giữa các thiết bị giống hệt nhau trở nên hữu ích. Bạn nên chạy nhiều chương trình kiểm thử ở nhiều cấu hình để 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 mức tiêu thụ điện năng
Để đọc dữ liệu mức tiêu thụ điện năng, hãy chèn lệnh gọi đến API trong mã kiểm thử.
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ác thuộc tính có sẵn
Android hỗ trợ các thuộc tính sau đây của đồng hồ đo nhiên liệu 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 thuộc tính được đọc từ các thuộc tính hệ thống con power_supply của hạt nhân 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 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:
- Phần cứng đồng hồ đo 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 của chip đồng hồ đ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 thông tin 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 pin trong một khoảng thời gian dài, đồng hồ đo nhiên liệu Maxim (MAX17050, BC15) sẽ điều chỉnh các phép đo độ lệch của bộ đếm coulomb. Đối với các phép đo được thực hiện trong một khoảng thời gian ngắn (chẳng hạn như thử nghiệm đo mức tiêu thụ điện năng), đồng hồ đo nhiên liệu không thực hiện các biện pháp sửa lỗi, khiến độ lệch trở thành nguồn lỗi chính 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 chênh lệch).
Đối với thiết kế điện trở cảm biến 10 mOhm thông thường, dòng điện bù phải lớn hơn 1,5 mA, nghĩa là mọi phép đo đều là +/-1,5 mA (bố cục PCBoard cũng có thể ảnh hưởng đến sự biến thiên này). Ví dụ: khi đo dòng điện lớn (200 mA), bạn có thể nhận được kết quả sau:
- 2 mA (lỗi tăng 1% của 200 mA do lỗi tăng của đồng hồ đo nhiên liệu)
- +2 mA (lỗi tăng 1% của 200 mA do lỗi điện trở cảm biến)
- +1,5 mA (lỗi chênh lệch cảm biến 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 với dòng điện trung bình (50 mA) trong đó cùng một tỷ lệ phần trăm lỗi sẽ cho tổng lỗi là 7% hoặc với dòng điện nhỏ (15 mA) trong đó +/-1,5 mA sẽ cho tổng lỗi là 10%.
Để có kết quả tốt nhất, bạn nên đo dòng điện lớn hơn 20 mA. Lỗi đo lường mức tăng là có hệ thống và có thể lặp lại, cho phép bạn kiểm thử một thiết bị ở nhiều chế độ và nhận được kết quả đo lường tương đối rõ ràng (ngoại trừ độ lệch 1,5 mA).
Đối với các phép đo tương đối +/-100 uA, thời gian đo lường bắt buộc phụ thuộc vào:
- Tiếng ồn lấy mẫu ADC. MAX17050 với cấu hình ban đầu thông thường của nhà sản xuất tạo ra độ biến thiên mẫu ±1,5 mA do nhiễu, với mỗi mẫu được phân phối ở 175,8 ms. Bạn có thể dự kiến độ biến thiên mẫu ±100 uA cho khoảng thời gian kiểm thử 1 phút và độ nhiễu 3-sigma rõ ràng dưới 100 uA (hoặc độ nhiễu 1-sigma ở 33 uA) cho khoảng thời gian kiểm thử 6 phút.
- Răng cưa mẫu do biến thiên tải. Biến thể làm phóng đại lỗi, vì vậy, đối với các mẫu có biến thể vốn có trong quá trình tải, hãy cân nhắc sử dụng khoảng thời gian kiểm thử dài hơn.
Các thiết bị Nexus được hỗ trợ
Nexus 5
Mô hình | Nexus 5 |
---|---|
Đồng hồ đo 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 sạc pin với độ phân giải là %/256 (1/256 phần trăm dung lượng pin đầy). |
Nexus 6
Mô hình | Nexus 6 |
---|---|
Đồng hồ đo nhiên liệu | Đồng hồ đo nhiên liệu Maxim MAX17050 (một bộ đếm coulomb có các điều chỉnh Maxim ModelGauge) và một điện trở cảm biến dòng điện 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 là 156,25 uA, chu kỳ cập nhật là 175,8 ms.Độ phân giải CURRENT_AVERAGE là 156,25 uA, chu kỳ cập nhật có thể định cấu hình là từ 0,7 giây đến 6,4 giờ, mặc định là 11,25 giây.Độ phân giải CHARGE_COUNTER (dòng điện tích luỹ, độ chính xác không mở rộng) là 500 uAh (đọc bộ đếm coulomb thô, không được điều chỉnh theo đồng hồ đo nhiên liệu cho độ lệch bộ đếm coulomb, cộng với dữ liệu đầu vào từ thuật toán ModelGauge m3 bao gồm cả mức bù trống).CHARGE_COUNTER_EXT (độ chính xác mở rộng trong hạt nhân) độ phân giải 8 nAh.ENERGY_COUNTER là CHARGE_COUNTER_EXT ở điện áp danh định 3,7 V. |
Nexus 9
Mô hình | Nexus 9 |
---|---|
Đồng hồ đo nhiên liệu | Đồng hồ đo nhiên liệu Maxim MAX17050 (một bộ đếm coulomb có các điều chỉnh Maxim ModelGauge) và một điện trở cảm biến dòng điện 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 là 156,25 uA, chu kỳ cập nhật là 175,8 ms.Độ phân giải CURRENT_AVERAGE là 156,25 uA, chu kỳ cập nhật có thể định cấu hình là từ 0,7 giây đến 6,4 giờ, mặc định là 11,25 giây.Độ phân giải CHARGE_COUNTER (dòng điện tích luỹ, độ chính xác không mở rộng) là 500 uAh.CHARGE_COUNTER_EXT (độ chính xác mở rộng trong hạt nhân) độ phân giải 8 nAh.ENERGY_COUNTER là CHARGE_COUNTER_EXT ở điện áp định mức 3,7 V.Thời gian cập nhật dòng điện tích luỹ 175,8 ms. ADC lấy mẫu ở mức lấy mẫu 175nbsp;ms với chu kỳ lấy mẫu 4 ms. Có thể điều chỉnh chu kỳ làm việc. |
Nexus 10
Mô hình | Nexus 10 |
---|---|
Đồng hồ đo nhiên liệu | Đồng hồ đo nhiên liệu DS2784 của Dallas Semiconductor (một bộ đếm coulomb), với điện trở cảm biến dòng điện 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 đo lường hiện tại (tức thời và trung bình) là 156,3 uA.CURRENT_NOW khoảng thời gian cập nhật dòng điện tức thì 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 (dòng điện tích luỹ, độ chính xác không mở rộng) là
625 uAh.Độ phân giải CHARGE_COUNTER_EXT (độ chính xác mở rộng trong hạt nhân) là 144 nAh.ENERGY_COUNTER là CHARGE_COUNTER_EXT ở điện áp danh định 3,7 V.Thời gian cập nhật cho tất cả là 3,5 giây. |