กำลังวัดอุปกรณ์

คุณสามารถกำหนดการใช้พลังงานของอุปกรณ์สำหรับอุปกรณ์ Android ที่มีมาตรวัดระดับน้ำมันเชื้อเพลิงของแบตเตอรี่ เช่น Summit SMB347 หรือ Maxim MAX17050 (มีในอุปกรณ์ Nexus หลายรุ่น) ใช้เกจในระบบเมื่อไม่มีอุปกรณ์วัดภายนอกหรือไม่สะดวกต่อการเชื่อมต่อกับอุปกรณ์ (เช่น ในการใช้งานมือถือ)

การวัดอาจรวมถึงกระแสไฟทันที ประจุที่เหลืออยู่ ความจุของแบตเตอรี่เมื่อเริ่มต้นและสิ้นสุดการทดสอบ และอื่นๆ ขึ้นอยู่กับคุณสมบัติที่รองรับของอุปกรณ์ (ดูด้านล่าง) เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด ให้ทำการวัดกำลังของอุปกรณ์ระหว่างการทดสอบ A/B ระยะยาวซึ่งใช้อุปกรณ์ประเภทเดียวกันกับเกจเชื้อเพลิงเดียวกันและตัวต้านทานตรวจจับกระแสไฟฟ้าเดียวกัน ตรวจสอบให้แน่ใจว่าการชาร์จแบตเตอรี่เริ่มต้นเท่ากันสำหรับแต่ละอุปกรณ์ เพื่อหลีกเลี่ยงพฤติกรรมมาตรวัดน้ำมันเชื้อเพลิงที่แตกต่างกัน ณ จุดต่างๆ ในกราฟการคายประจุแบตเตอรี่

แม้จะมีสภาพแวดล้อมการทดสอบที่เหมือนกัน การวัดก็ไม่รับประกันว่าจะมีความแม่นยำสัมบูรณ์สูง อย่างไรก็ตาม ความไม่ถูกต้องส่วนใหญ่โดยเฉพาะกับมาตรวัดน้ำมันเชื้อเพลิงและตัวต้านทานการรับรู้นั้นมีความสอดคล้องกันระหว่างการทดสอบ ทำให้การเปรียบเทียบระหว่างอุปกรณ์ที่เหมือนกันมีประโยชน์ เราขอแนะนำให้ทำการทดสอบหลายครั้งในการกำหนดค่าที่แตกต่างกัน เพื่อระบุความแตกต่างที่สำคัญและการใช้พลังงานสัมพัทธ์ระหว่างการกำหนดค่าต่างๆ

การอ่านการใช้พลังงาน

หากต้องการอ่านข้อมูลการใช้พลังงาน ให้แทรกการเรียกไปยัง API ในโค้ดทดสอบของคุณ

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

คุณสมบัติที่มีอยู่

Android รองรับคุณสมบัติมาตรวัดน้ำมันเชื้อเพลิงแบตเตอรี่ดังต่อไปนี้:

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

คุณสมบัติส่วนใหญ่จะอ่านจากแอ็ตทริบิวต์ระบบย่อย kernel power_supply ที่มีชื่อคล้ายกัน อย่างไรก็ตาม คุณสมบัติที่แน่นอน ความละเอียดของค่าคุณสมบัติ และความถี่ในการอัปเดตที่มีให้สำหรับอุปกรณ์เฉพาะนั้นขึ้นอยู่กับ:

  • ฮาร์ดแวร์มาตรวัดน้ำมันเชื้อเพลิง เช่น Summit SMB347 หรือ Maxim MAX17050
  • การเชื่อมต่อเกจเชื้อเพลิงกับระบบ เช่น ค่าของตัวต้านทานการรับรู้กระแสภายนอก
  • การกำหนดค่าซอฟต์แวร์ชิปมาตรวัดน้ำมันเชื้อเพลิง เช่น ค่าที่เลือกสำหรับช่วงเวลาการคำนวณกระแสเฉลี่ยในไดรเวอร์เคอร์เนล

สำหรับรายละเอียด โปรดดูคุณสมบัติที่มีให้สำหรับ อุปกรณ์ Nexus

มาตรวัดน้ำมันเชื้อเพลิงแม็กซิม

เมื่อพิจารณาสถานะการชาร์จของแบตเตอรี่ในระยะเวลานาน เกจเชื้อเพลิง Maxim (MAX17050, BC15) จะแก้ไขการวัดออฟเซ็ตคูลอมบ์-เคาน์เตอร์ สำหรับการวัดที่ทำในช่วงเวลาสั้นๆ (เช่น การทดสอบการวัดปริมาณการใช้พลังงาน) เกจเชื้อเพลิงจะไม่ทำการแก้ไข ทำให้การชดเชยเป็นสาเหตุหลักของข้อผิดพลาดเมื่อการวัดกระแสไฟฟ้าน้อยเกินไป (แม้ว่าจะไม่มีระยะเวลาใดที่สามารถกำจัดการชดเชยได้ ผิดพลาดโดยสิ้นเชิง)

สำหรับการออกแบบตัวต้านทานความรู้สึก 10mOhm ทั่วไป กระแสออฟเซ็ตควรดีกว่า 1.5mA ซึ่งหมายความว่าการวัดใดๆ ก็ตามจะเป็น +/-1.5mA (โครงร่าง PCB Board อาจส่งผลต่อการเปลี่ยนแปลงนี้ได้) ตัวอย่างเช่น เมื่อวัดกระแสไฟฟ้าขนาดใหญ่ (200mA) คุณสามารถคาดหวังสิ่งต่อไปนี้:

  • 2mA (ข้อผิดพลาดในการรับ 1% ที่ 200mA เนื่องจากข้อผิดพลาดในการรับมาตรวัดน้ำมันเชื้อเพลิง)
  • +2mA (ข้อผิดพลาดการรับ 1% ที่ 200mA เนื่องจากข้อผิดพลาดของตัวต้านทานความรู้สึก)
  • +1.5mA (ข้อผิดพลาดออฟเซ็ตความรู้สึกปัจจุบันจากมาตรวัดน้ำมันเชื้อเพลิง)

ข้อผิดพลาดทั้งหมดคือ 5.5mA (2.75%) เปรียบเทียบสิ่งนี้กับกระแสไฟปานกลาง (50mA) โดยที่เปอร์เซ็นต์ข้อผิดพลาดเดียวกันทำให้เกิดข้อผิดพลาดทั้งหมด 7% หรือกับกระแสไฟต่ำ (15mA) โดยที่ +/-1.5mA ให้ข้อผิดพลาดทั้งหมด 10%

เพื่อผลลัพธ์ที่ดีที่สุด เราแนะนำให้วัดค่ามากกว่า 20mA ข้อผิดพลาดในการวัดเกนเป็นระบบและทำซ้ำได้ ทำให้คุณสามารถทดสอบอุปกรณ์ได้หลายโหมดและรับการวัดสัมพันธ์ที่สะอาด (โดยมีข้อยกเว้นสำหรับออฟเซ็ต 1.5mA)

สำหรับการวัดสัมพัทธ์ +/-100uA เวลาในการวัดที่ต้องการจะขึ้นอยู่กับ:

  • เสียงสุ่มตัวอย่าง ADC MAX17050 ที่มีการกำหนดค่าปกติจากโรงงานจะสร้างความแปรผันของตัวอย่างต่อตัวอย่าง +/-1.5mA เนื่องจากเสียงรบกวน โดยแต่ละตัวอย่างจะส่งที่ 175.8ms คุณสามารถคาดหวังค่าคร่าวๆ +/-100uA สำหรับกรอบเวลาทดสอบ 1 นาที และสัญญาณรบกวน 3-sigma ที่สะอาดน้อยกว่า 100uA (หรือสัญญาณรบกวน 1-sigma ที่ 33uA) สำหรับกรอบเวลาทดสอบ 6 นาที
  • ตัวอย่างนามแฝงเนื่องจากการเปลี่ยนแปลงของโหลด ความแปรผันทำให้เกิดข้อผิดพลาดเกินจริง ดังนั้นสำหรับตัวอย่างที่มีความแปรผันโดยธรรมชาติในการโหลด ให้ลองใช้กรอบเวลาทดสอบที่ยาวขึ้น

อุปกรณ์ Nexus ที่รองรับ

เน็กซัส 5
แบบอย่าง เน็กซัส 5
มาตรวัดน้ำมันเชื้อเพลิง เกจวัดน้ำมันเชื้อเพลิง Maxim MAX17048 (ModelGauge™ ไม่มีตัวนับคูลอมบ์)
คุณสมบัติ BATTERY_PROPERTY_ความจุ
การวัด มาตรวัดน้ำมันเชื้อเพลิงไม่รองรับการวัดใดๆ นอกเหนือจากสถานะการชาร์จของแบตเตอรี่ที่ความละเอียด %/256 (1/256 เปอร์เซ็นต์ของความจุแบตเตอรี่เต็ม)
เน็กซัส 6
แบบอย่าง เน็กซัส 6
มาตรวัดน้ำมันเชื้อเพลิง มาตรวัดน้ำมันเชื้อเพลิง Maxim MAX17050 (ตัวนับคูลอมบ์พร้อมการปรับ Maxim ModelGauge™) และตัวต้านทานตรวจจับกระแส 10mohm
คุณสมบัติ BATTERY_PROPERTY_ความจุ
BATTERY_PROPERTY_CURRENT_ตอนนี้
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
การวัด CURRENT_NOW ความละเอียด 156.25uA ระยะเวลาการอัปเดตคือ 175.8ms
ความละเอียด CURRENT_AVERAGE 156.25uA ระยะเวลาการอัปเดตที่กำหนดค่าได้ 0.7 วินาที - 6.4 ชั่วโมง ค่าเริ่มต้น 11.25 วินาที
ความละเอียด CHARGE_COUNTER (กระแสสะสม ความแม่นยำที่ไม่ขยาย) คือ 500uAh (การอ่านตัวนับคูลอมบ์ดิบ ไม่ได้ปรับโดยเกจเชื้อเพลิงสำหรับออฟเซ็ตตัวนับคูลอมบ์ รวมถึงอินพุตจากอัลกอริธึม ModelGauge m3 รวมถึงการชดเชยค่าว่าง)
CHARGE_COUNTER_EXT (ขยายความแม่นยำในเคอร์เนล) ความละเอียด 8nAh
ENERGY_COUNTER คือ CHARGE_COUNTER_EXT ที่แรงดันไฟฟ้าที่กำหนด 3.7V
เน็กซัส 9
แบบอย่าง เน็กซัส 9
มาตรวัดน้ำมันเชื้อเพลิง มาตรวัดน้ำมันเชื้อเพลิง Maxim MAX17050 (ตัวนับคูลอมบ์พร้อมการปรับ Maxim ModelGauge™) และตัวต้านทานตรวจจับกระแส 10mohm
คุณสมบัติ BATTERY_PROPERTY_ความจุ
BATTERY_PROPERTY_CURRENT_ตอนนี้
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
การวัด CURRENT_NOW ความละเอียด 156.25uA ระยะเวลาการอัปเดตคือ 175.8ms
ความละเอียด CURRENT_AVERAGE 156.25uA ระยะเวลาการอัปเดตที่กำหนดค่าได้ 0.7 วินาที - 6.4 ชั่วโมง ค่าเริ่มต้น 11.25 วินาที
CHARGE_COUNTER (กระแสสะสม ความแม่นยำที่ไม่ขยาย) ความละเอียดคือ 500uAh
CHARGE_COUNTER_EXT (ขยายความแม่นยำในเคอร์เนล) ความละเอียด 8nAh
ENERGY_COUNTER คือ CHARGE_COUNTER_EXT ที่แรงดันไฟฟ้าที่กำหนด 3.7V
ระยะเวลาการอัปเดตปัจจุบันสะสม 175.8ms
ADC สุ่มตัวอย่างที่การหาปริมาณ 175 มิลลิวินาที โดยมีคาบตัวอย่าง 4 มิลลิวินาที สามารถปรับรอบการทำงานได้
เน็กซัส 10
แบบอย่าง เน็กซัส 10
มาตรวัดน้ำมันเชื้อเพลิง เกจวัดเชื้อเพลิง DS2784 ของ Dallas Semiconductor (ตัวนับคูลอมบ์) พร้อมตัวต้านทานตรวจจับกระแสไฟฟ้า 10mohm
คุณสมบัติ BATTERY_PROPERTY_ความจุ
BATTERY_PROPERTY_CURRENT_ตอนนี้
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
การวัด ความละเอียดการวัดปัจจุบัน (ทันทีและเฉลี่ย) คือ 156.3uA
CURRENT_NOW ระยะเวลาการอัปเดตปัจจุบันทันทีคือ 3.5 วินาที
ระยะเวลาการอัปเดต CURRENT_AVERAGE คือ 28 วินาที (ไม่สามารถกำหนดค่าได้)
CHARGE_COUNTER (กระแสสะสม ความแม่นยำที่ไม่ขยาย) ความละเอียดคือ 625uAh
ความละเอียด CHARGE_COUNTER_EXT (ขยายความแม่นยำในเคอร์เนล) คือ 144nAh
ENERGY_COUNTER คือ CHARGE_COUNTER_EXT ที่แรงดันไฟฟ้าที่กำหนด 3.7V
ระยะเวลาอัปเดตทั้งหมดคือ 3.5 วินาที