A method for charging a battery is disclosed, wherein a constant current
charging current is periodically adjusted as needed such that the change
in battery voltage increases approximately linearly during the charging
period. In some embodiments the charging is in three phases. An optional
first phase charges with a low current until the battery voltages rises
to a certain minimum. During a second phase a constant current is
provided while the battery voltage is monitored. The second phase
constant current is periodically increased if the rate of change of
battery voltage is less than a predetermined value and is decreased if
the rate of change of battery voltage is more than the predetermined
value. When the battery voltage attains a predetermined value, a third
phase begins wherein a constant voltage is applied to the battery while
the battery current draw is periodically monitored. Charging is stopped
when the battery current draw falls to a predetermined value or, in some
embodiments, when the charging current drops to a value that is a certain
percentage of the charging current at the termination of phase two.In one
embodiment the battery voltage is monitored to determine a possible
battery failure, for example in the case of the battery voltage
decreasing during the constant current charging of phase two. In some
embodiments the battery is shorted out in response to detection of a
possible failure.