Patent ID: 7777809

Claim:
A method for maintaining a maximum sustainable flash current over a whole length of a flash using a programmable current drive in a handheld portable device powered by a battery of a given type, that places other variable loads on the battery, in addition to the flash, comprising: (a) measuring a voltage across the battery (V b1 ) under normal system load; (b) determining if a high current load (I highload1 ) occurred during the measurement taken in (a); (c) initiating the flash at a given current; (d) measuring a voltage across the battery with flash (V b2 ) after a first pre-selected period after the flash is initiated; (e) determining if the high current load (I highload2 ) occurred during the measurement taken in (d); (f) calculating an equivalent series resistance (ESR) of the battery at the end of the first pre-selected period, from the voltages measured across the battery under normal system load and under normal system load plus flash using the formula—; E ⁢ ⁢ S ⁢ ⁢ R = [ V b ⁢ ⁢ 1 - V b ⁢ ⁢ 2 I flash + ∑ ⁢ I highload ⁢ ⁢ 1 - ∑ ⁢ I highload ⁢ ⁢ 2 ] ; (g) calculating a new ESR value for a second pre-selected period after calculating the ESR in (f), within the length of the flash, based on known ESR characteristics for that type of battery; (h) calculating a maximum current allowed from the battery (I Max ) and subtracting any high current loads that can occur during the flash using the formula— I Max = [ V b ⁢ ⁢ 1 - V Min E ⁢ ⁢ S ⁢ ⁢ R ⁢ ⁢ 2 ⁢ ⁢ nd ] - ∑ ⁢ I highcurrent where ESR2nd is the ESR calculated for the end of the second pre-selected period; and (i) adjusting the flash current upwards or downwards to approximate the I Max .