Browse Prior Art Database

Dead Battery Detection

IP.com Disclosure Number: IPCOM000105897D
Original Publication Date: 1993-Sep-01
Included in the Prior Art Database: 2005-Mar-20
Document File: 4 page(s) / 148K

Publishing Venue

IBM

Related People

Leontiades, K: AUTHOR

Abstract

Disclosed is a method used by a service processor to detect a dead NiCad battery. First, the absolute battery voltage is measured during an initial dead battery test interval, allowing the battery voltage to settle from an initial high value expected even with a dead battery. Second, the rate of voltage drop is measured during the last quarter of a dead battery test interval, occurring whenever power is turned on or whenever external power is removed during system operation.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 41% of the total text.

Dead Battery Detection

      Disclosed is a method used by a service processor to detect a
dead NiCad battery.  First, the absolute battery voltage is measured
during an initial dead battery test interval, allowing the battery
voltage to settle from an initial high value expected even with a
dead battery.  Second, the rate of voltage drop is measured during
the last quarter of a dead battery test interval, occurring whenever
power is turned on or whenever external power is removed during
system operation.

      The service processor uses variables and flags stored in its
on-board random-access memory (RAM).  BATT_VOLT is the battery
voltage as reported by the power subsystem microcontroller.  T_D is
the overall battery test time, as stored in non volatile RAM of the
host processor and given to the service processor at "power up."
T_DEAD keeps track of the time since the dead battery test started.
BV75 is the battery voltage when 75 per cent of the dead battery test
interval has been completed.  This value is subsequently used to
calculate the voltage drop during the remaining portion of this
interval.  If the battery drops below LO_VL during the dead battery
test, it is declared dead.  LO_V2_DELTA represents an increment above
LO_VL.  V_DROP is a constant with which the voltage drop during the
last quarter of the battery test interval is compared.  If the
battery voltage is below the sum of LO_VL and L0_V2_DELTA, and if the
voltage drop is greater than V_DROP, then the battery is declared
dead.  If the DEAD_TEST flag is set, the dead battery test is in
progress, with the timer handler incrementing the T_D variable every
250 msec.  If the DEAD_DONE flag is set, the dead battery test is
complete.

      Thus, every time the interrupt handler ticks, i.e. every 25
msec, code is executed in accordance with the flow chart of Fig. 1.
Every time the battery voltage is sampled from the power subsystem
processor with the dead battery test still in progress, code is
executed in accordance with the flow chart of Fig. 2.

      A PCU (Power Control Unit) interrupt is sent to the system from
the service processor to notify the host of a dead battery,
signalling the system that there probably is no time to save user
data.  A possible action in this case is to flash an urgent message
to the user to reconnect an external power source.  The system may
also go into its sleep state.  The service processor will beep the
speaker periodically, but, unless an external source is connected
within a few seconds, the system machine state will be lost.

      The system processor uses various commands to configure dead
battery detection parameters and to query the battery state.
POWER_STATE  is the variable in which the service processor stores
the reason for a PCU interrupt, along with a flag that tells the
system whether the battery is present.  When the service processor
receives the READ POWER STATE command from the system proces...