מדידת צריכת החשמל של המכשיר

אפשר לקבוע את צריכת החשמל של מכשירי 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

רוב המאפיינים נקרא ממאפייני מערכת המשנה power_supply של הליבה עם שמות דומים. עם זאת, המאפיינים המדויקים, רזולוציית ערכי המאפיינים ותדירות העדכונים שזמינים למכשיר ספציפי תלויים בגורמים הבאים:

  • חומרה של מד דלק, כמו Summit SMB347 או Maxim MAX17050.
  • חיבור מד הדלק למערכת, כמו הערך של נגדי חישה חיצוניים של זרם.
  • הגדרות התוכנה של צ'יפ מד הדלק, כמו ערכים שנבחרו למרווחי החישוב של הממוצע הנוכחי במנהל הליבה.

פרטים נוספים זמינים במאמר בנושא המאפיינים שזמינים למכשירי Nexus.

מד הדלק של Maxim

כשקובעים את מצב הטעינה של הסוללה לאורך תקופה ארוכה, מד רמת הטעינה של Maxim‏ (MAX17050, ‏ BC15) מתקן את המדידות של מפסיק הזרם (coulomb-counter) שמשוייכות לסטייה. במדידות שנערכות לאורך פרק זמן קצר (למשל, בדיקות של מדידת צריכת חשמל), מד הדלק לא מבצע תיקונים, ולכן ההיסט הוא המקור העיקרי לשגיאה כשהמדידות הנוכחיות קטנות מדי (אף פרק זמן לא יכול למנוע לחלוטין את שגיאת ההיסט).

בתכנון טיפוסי של נגד חישה של 10 mOhm, זרם ההיסט צריך להיות טוב יותר מ-1.5 mA, כלומר כל מדידה היא +/-1.5 mA (פריסה של לוח PC יכולה להשפיע גם על השינוי הזה). לדוגמה, כשמודדים זרם גדול (200 mA), אפשר לצפות לנתונים הבאים:

  • 2 mA (שגיאת הגברה של 1% מ-200 mA עקב שגיאת הגברה במד הדלק)
  • +2 mA (שגיאת הגברה של 1% מ-200 mA עקב שגיאה בערכי ההתנגדות של החיישן)
  • +1.5 mA (שגיאת סטייה של חישת זרם ממדידת הדלק)

השגיאה הכוללת היא 5.5 mA (2.75%). אפשר להשוות את זה לזרם בינוני (50 mA), שבו אותם אחוזי שגיאה נותנים שגיאה כוללת של 7%, או לזרם קטן (15 mA), שבו +/-1.5 mA נותנים שגיאה כוללת של 10%.

לקבלת התוצאות הטובות ביותר, מומלץ למדוד זרם של יותר מ-20 mA. השגיאות במדידת ההשגה הן שיטתיות וניתן לחזור עליהן, כך שאפשר לבדוק מכשיר במספר מצבים ולקבל מדידות יחסיות נקיות (למעט ההיסט של 1.5 mA).

למדידות יחסיות של +/-100 uA, משך המדידה הנדרש תלוי בגורמים הבאים:

  • רעשי דגימה של ADC. ב-MAX17050 עם הגדרות המפעל הרגילות, יש תנודות של +/-1.5 mA מדגימה לדגימה בגלל רעש, וכל דגימה מועברת תוך 175.8 ms. אפשר לצפות לתנודות של +/-100 uA בחלון בדיקה של דקה אחת, ולרעש נקי של 3-sigma פחות מ-100 uA (או רעש של 1-sigma ב-33 uA) בחלון בדיקה של 6 דקות.
  • חלוקת שמות לדגימות בגלל תנודות בעומס. וריאציה מגבירה את השגיאות, ולכן כדאי להשתמש בחלון בדיקה ארוך יותר עבור דגימות עם וריאציה מובנית בעומס.

מכשירי Nexus נתמכים

Nexus 5
דגם Nexus 5
מד הדלק מד דלק Maxim MAX17048‏ (ModelGauge, ללא מונה קולומב)
מאפיינים BATTERY_PROPERTY_CAPACITY
מדידות מד רמת הטעינה לא תומך במדדים אחרים מלבד מצב הטעינה של הסוללה ברזולוציה של ‎ %/256 (1/256 של אחוז מקיבולת הסוללה המלאה).
Nexus 6
דגם Nexus 6
מד הדלק מד דלק Maxim MAX17050 (מספר קולומבים עם התאמות של Maxim ModelGauge) והתנגדות למדידת זרם של 10 mohm.
מאפיינים BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
מדידות רזולוציה של CURRENT_NOW: 156.25 uA, תקופת העדכון היא 175.8 ms.
רזולוציה של CURRENT_AVERAGE: 156.25 uA, תקופת העדכון ניתנת להתאמה בטווח 0.7 שניות עד 6.4 שעות, ברירת המחדל היא 11.25 שניות.
רזולוציה של CHARGE_COUNTER (זרם מצטבר, דיוק לא מורחב): 500 uAh (קריאה גולמית של ספירת קולומב, לא מותאמת על ידי מד הדלק לשינוי ספירת הקולומב, פלוס תשומות מאלגוריתם ModelGauge m3 כולל פיצוי על ריק).
CHARGE_COUNTER_EXT (רזולוציה מורחבת בליבה) רזולוציה 8 nAh.
ENERGY_COUNTER הוא CHARGE_COUNTER_EXT במתח נומינלי של 3.7 V.
Nexus 9
דגם Nexus 9
מד הדלק מד דלק Maxim MAX17050 (מספר קולומבים עם התאמות של Maxim ModelGauge) והתנגדות למדידת זרם של 10 mohm.
מאפיינים BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
מדידות רזולוציה של CURRENT_NOW היא 156.25 uA, ותקופת העדכון היא 175.8 ms.
רזולוציה של CURRENT_AVERAGE היא 156.25 uA, ותקופת העדכון ניתנת להתאמה אישית בטווח 0.7 שניות עד 6.4 שעות, ברירת המחדל היא 11.25 שניות.
רזולוציה של CHARGE_COUNTER (זרם מצטבר, דיוק לא מורחב) היא 500 uAh.
CHARGE_COUNTER_EXT (רזולוציה מורחבת בליבה) רזולוציה 8 nAh.
ENERGY_COUNTER הוא CHARGE_COUNTER_EXT במתח נומינלי של 3.7 V.
תקופת העדכון המצטברת של הזרם היא 175.8 ms.
מדגם ADC עם 175nbsp;ms של קצוב עם תקופת דגימה של 4 ms. אפשר לשנות את מחזור העבודה.
Nexus 10
דגם Nexus 10
מד הדלק מד דלק מסוג DS2784 של Dallas Semiconductor (מספר קולומבים), עם נגד חישה של זרם של 10 mohm.
מאפיינים BATTERY_PROPERTY_CAPACITY
BATTERY_PROPERTY_CURRENT_NOW
BATTERY_PROPERTY_CURRENT_AVERAGE
BATTERY_PROPERTY_CHARGE_COUNTER
BATTERY_PROPERTY_ENERGY_COUNTER
מדידות רזולוציית המדידה הנוכחית (מיידית וממוצעת) היא 156.3 uA.
CURRENT_NOW תקופת העדכון המיידית הנוכחית היא 3.5 שניות.תקופת העדכון של
CURRENT_AVERAGE היא 28 שניות (לא ניתן להגדיר אותה).הרזולוציה של
CHARGE_COUNTER (זרם מצטבר, דיוק לא מורחב) היא 625 uAh.הרזולוציה של
CHARGE_COUNTER_EXT (רמת דיוק מורחבת בליבה) היא 144 nAh.
ENERGY_COUNTER הוא CHARGE_COUNTER_EXT במתח נומינלי של 3.7 V.
תקופת העדכון של כולם היא 3.5 שניות.