sudden increase in /sys/class/power_supply/battery/capacity?

Timo Juhani Lindfors timo.lindfors at iki.fi
Mon Feb 1 11:39:19 CET 2010


Hi,

the "energy" field in

Jan 31 22:35:18 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 26.1) (consumption 15750) (energy 39)
Jan 31 23:35:19 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 26.1) (consumption 15750) (energy 39)
Feb  1 00:35:22 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 24.8) (consumption 11437) (energy 38)
Feb  1 01:35:22 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.3) (consumption 14625) (energy 36)
Feb  1 02:35:25 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.3) (consumption 12187) (energy 34)
Feb  1 03:35:26 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.1) (consumption 12000) (energy 33)
Feb  1 04:35:27 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.1) (consumption 27750) (energy 30)
Feb  1 05:35:29 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.1) (consumption 11625) (energy 30)
Feb  1 06:35:30 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.1) (consumption 12562) (energy 27)
Feb  1 07:35:32 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.1) (consumption 12187) (energy 25)
Feb  1 08:35:34 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 24.8) (consumption 19312) (energy 24)
Feb  1 09:35:35 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 24.8) (consumption 23625) (energy 24)
Feb  1 10:35:36 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 24.8) (consumption 12000) (energy 21)
Feb  1 11:24:10 ginger logger: susp.real: resuming (reason EINT09_PMU:button) (temperature 24.8) (consumption 12000) (energy 21)
Feb  1 11:24:28 ginger logger: susp.real: resuming (reason EINT09_PMU:usb_connect) (temperature 25.3) (consumption 105750) (energy 19)
Feb  1 12:24:25 ginger logger: susp.real: resuming (reason EINT09_PMU:rtc_alarm) (temperature 25.3) (consumption 105750) (energy 19)
Feb  1 12:24:41 ginger logger: susp.real: resuming (reason EINT09_PMU:button) (temperature 30.1) (consumption -374437) (energy 65)

is the contents of /sys/class/power_supply/battery/capacity.

How can it jump from 19% to 65% in just 16 seconds?

As you can see, usb was connected an hour ago but did not seem to
charge the battery even though kernel did say

Feb  1 11:24:30 ginger kernel: [176138.515000] pcf50633 0-0073: usb curlim to 500 mA

bq27k-detail says

                                      RAM Registers
   0x00:         0  CTRL Device Control Register                                     R/W
   0x01:        64  MODE Device Mode Register                                        R/W
0x03 - 0x02:     0    AR At-Rate High - Low Byte                       3.57 µV (1)   R/W
0x05 - 0x04: 65535 ARTTE At-Rate Time-to-Empty High - Low Byte           Minutes      R
0x07 - 0x06:  1215  TEMP Reported Temperature High - Low Byte            0.25 °K      R
0x09 - 0x08:  4011  VOLT Reported Voltage High - Low Byte                  mV         R
   0x0A:       144 FLAGS Status Flags                                                 R
   0x0B:        66  RSOC Relative State-of-Charge                           %         R
0x0D - 0x0C:  3556   NAC Nominal Available Capacity High - Low Byte   3.57 µVh (1)    R
0x0F - 0x0E:  3556  CACD Discharge Compensated NAC High - Low Byte    3.57 µVh (1)    R
0x11 - 0x10:  3556  CACT Temperature Compensated CACD High - Low Byte 3.57 µVh (1)    R
0x13 - 0x12:  5350   LMD Last Measured Discharge High - Low Byte      3.57 µVh (1)    R
0x15 - 0x14:  1456    AI Average Current High - Low Byte               3.57 µV (1)    R
             *3.57 / 20 =  260 mA 
0x17 - 0x16: 65535   TTE Time-to-Empty High - Low Byte                   Minutes      R
0x19 - 0x18:   109   TTF Time-to-Full High - Low Byte                    Minutes      R
0x1B - 0x1A:    68    SI Standby Current High - Low Byte               3.57 µV (1)    R
             *3.57 / 20 =  12 mA 
0x1D - 0x1C:  3137  STTE Standby Time-to-Empty High - Low Byte           Minutes      R
0x1F - 0x1E: 11136   MLI Max Load Current High - Low Byte              3.57 µV (1)    R
             *3.57 / 20 =  1993 mA 
0x21 - 0x20:    16 MLTTE Max Load Time-to-Empty High - Low Byte          Minutes      R
0x23 - 0x22:  1488   SAE Available Energy High - Low Byte             29.2  µV2h (2)  R
             *29.2 / 20 =  2172 mWh 
0x25 - 0x24:     0    AP Average Power High - Low Byte                29.2 µV2 (2)    R
             *29.2 / 20 =  2172 mW 
0x27 - 0x26: 65535 TTECP Time-to-Empty At Constant Power High-Low Byte   Minutes      R
0x29 - 0x28:    35  CYCL Cycle Count Since Learning Cycle High-Low Byte  Cycles       R
0x2B - 0x2A:   257  CYCT Cycle Count Total High - Low Byte               Cycles       R
   0x2C:        66  CSOC Compensated State-of-Charge                        %         R

EEPROM Registers
0x2D - 0x6D     - RESERVED                                                                R
   0x6E:         0 EE_EN EEPROM Program Enable                                       R/W
0x6F - 0x75     - RESERVED                                                         R
   0x76:        27  ILMD Initial Last Measured Discharge High Byte     914  µVh (1)  R/W
   0x77:     *0x100 * 3.57 / 20 =  1237 mAh fabcoded cell capacity
0x21 - 0x      194 SEDVF Scaled EDVF Threshold                                       R/W
             +0x100)*8 =  3600 mV (@ 0%)
   0x78:       199 SEDV1 Scaled EDV1 Threshold                                       R/W
             +0x100)*8 =  3640 mV (@ 6.25%)
0x2D - 0x6D     - RESERVED                                                         R
   0x79:        25  ISLC Initial Standby Load Current                  7.14 µV (1)   R/W
             *7.14 / 20 =  8 mA 
   0x7A:        56 DMFSD Digital Magnitude Filter and Self-Discharge Rate Constants  R/W
   0x7B:       137 TAPER Aging Estimate Enable, Charge Termin. Taper I  228 µV (1)   R/W
   0x7C:        99 PKCFG Pack Configuration Values                                   R/W
   0x7D:        87  IMLC Initial Max Load Current, OR, ID#3             457  µV (1)  R/W
   0x7E:        66 DCOMP Discharge Rate Compensation Constants, OR, ID#2             R/W
   0x7F:       124 TCOMP Temperature Compensation Constants, OR, ID#1                R/W

(1) Divide by Rs in milliohms to convert µV to mA or µVh to mAh.  
(2) Divide by Rs in milliohms to convert µV2 to mW or µV2h to mWh.


As you can see the consumption reading is exactly the same at 11:24:28
and 12:24:25 -- is something caching the values? Where? How many times
do I need to read the value to get the real value?




More information about the openmoko-kernel mailing list