WO1992016990A1 - Circuit et procede de charge de batterie - Google Patents

Circuit et procede de charge de batterie Download PDF

Info

Publication number
WO1992016990A1
WO1992016990A1 PCT/US1992/002071 US9202071W WO9216990A1 WO 1992016990 A1 WO1992016990 A1 WO 1992016990A1 US 9202071 W US9202071 W US 9202071W WO 9216990 A1 WO9216990 A1 WO 9216990A1
Authority
WO
WIPO (PCT)
Prior art keywords
power source
voltage
charging current
peak voltage
higher charging
Prior art date
Application number
PCT/US1992/002071
Other languages
English (en)
Inventor
Randall Jeffrey Krohn
Denis Y. Yerlikaya
Original Assignee
Sherwood Medical Company
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sherwood Medical Company filed Critical Sherwood Medical Company
Publication of WO1992016990A1 publication Critical patent/WO1992016990A1/fr

Links

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M5/00Devices for bringing media into the body in a subcutaneous, intra-vascular or intramuscular way; Accessories therefor, e.g. filling or cleaning devices, arm-rests
    • A61M5/14Infusion devices, e.g. infusing by gravity; Blood infusion; Accessories therefor
    • A61M5/1413Modular systems comprising interconnecting elements
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/0029Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries with safety or protection devices or circuits
    • H02J7/0036Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries with safety or protection devices or circuits using connection detecting circuits
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/0042Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries characterised by the mechanical construction
    • H02J7/0045Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries characterised by the mechanical construction concerning the insertion or the connection of the batteries
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/0068Battery or charger load switching, e.g. concurrent charging and load supply
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/007Regulation of charging or discharging current or voltage
    • H02J7/00712Regulation of charging or discharging current or voltage the cycle being controlled or terminated in response to electric parameters
    • H02J7/007182Regulation of charging or discharging current or voltage the cycle being controlled or terminated in response to electric parameters in response to battery voltage
    • H02J7/007184Regulation of charging or discharging current or voltage the cycle being controlled or terminated in response to electric parameters in response to battery voltage in response to battery voltage gradient
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61MDEVICES FOR INTRODUCING MEDIA INTO, OR ONTO, THE BODY; DEVICES FOR TRANSDUCING BODY MEDIA OR FOR TAKING MEDIA FROM THE BODY; DEVICES FOR PRODUCING OR ENDING SLEEP OR STUPOR
    • A61M2209/00Ancillary equipment
    • A61M2209/08Supports for equipment
    • A61M2209/084Supporting bases, stands for equipment
    • A61M2209/086Docking stations
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J2310/00The network for supplying or distributing electric power characterised by its spatial reach or by the load
    • H02J2310/10The network having a local or delimited stationary reach
    • H02J2310/20The network being internal to a load
    • H02J2310/23The load being a medical device, a medical implant, or a life supporting device

Definitions

  • the invention relates to a circuit and method for charging batteries in a portable electrical or electromechanical device, such as an ambulatory medical device, where rapid charging is necessary, while protecting the integrity and reliability of the batteries.
  • the invention specifically relates to a medical device, such as an ambulatory infusion pump, that requires reliable service from rechargeable batteries.
  • BACKGROUND ART Devices are known containing rechargeable batteries having service times, i.e. the time between charging periods, of one hour to many hours. Most of these devices are equipped with a low battery alarm signal that may be audible or visual or both that indicates to the user that the batteries are nearly depleted and must be recharged promptly. The user may then attach the unit to a charger
  • the infusion pump may be administering life-sustaining fluids to the user, it is preferable to have the battery recharge time be as low as possible.
  • rechargeable batteries may be recharged quickly by applying a "fast” charging current, i.e. a current approximating the maximum output current "C" of the battery.
  • a “fast” charging current i.e. a current approximating the maximum output current "C” of the battery.
  • Battery life can be significantly shortened and excessive heat is often generated by overcharging the batteries.
  • the known devices use a "trickle' 1 charging current that is significantly less than C, perhaps C/10, such that the danger and possible damage are minimized, while tolerating the increased recharging time.
  • "Quick" charging current levels are also known that are higher than a trickle charging current, but are still significantly less than C. The charging time is decreased with the quick charging current as compared to the trickle charge, and the danger and potential battery damage are reduced as compared to recharging the batteries at a current near C, but are not completely eliminated.
  • One known method is to apply a quick charging current followed by a trickle charging current.
  • the quick charging current can be applied until, for example, a time limit has run out, or a certain battery voltage has been reached, after which time the trickle charging current is applied.
  • One device is known that makes use of a quick charging current for recharging the batteries in an ambulatory medical device.
  • This device the FRESENIUS Frenta System has a eature described as "Rapid Charge.” This feature allows the user to select a quicker charging current whenever desired. The higher charging current is then applied for a predetermined period of time, after which a trickle charge is applied.
  • the user can select the quick charge and allow the batteries to be fully charged.
  • the user removes the unit from its charging base, turns it on for ten minutes (a small fraction of the battery service time and power) and then reconnects the unit to its base and recharges the unit with another quick charge.
  • the charging base will apply a quick charging current, rapidly bringing the batteries to their full charge level, while several hours of quick charge time remain.
  • the danger is not excessive, the batteries will be damaged over time, greatly reducing their reliability, and eventually leading to battery failure. It is thus an object of the invention to provide an improved battery charging device and method that decrease overall charging time, while protecting the batteries from damage.
  • the invention comprises a device having a rechargeable power source with an associated battery charger base having a quick charge current output and a trickle charge current output.
  • a control circuit within the device is also provided that monitors if and for how long the device is attached to the base and determines the present capacity of the power source. Based on these signals, the control circuit selects, an appropriate charge current output.
  • FIG. 1 is a perspective view of an infusion device and battery charger base according to the invention
  • FIG. 2 is a schematic diagram of a portion of a battery charging circuit according to the invention.
  • FIG. 3 is a schematic diagram of another portion of a battery charging circuit according to the invention
  • FIGS. 4a-4g are a flow chart indicating the operating sequence of a charging method according to the invention, FIG. 4fA being an alternate embodiment of the method shown in FIG. 4f;
  • FIG. 5 is a perspective view of an infusion device partially mounted on a battery charger base
  • FIG. 6 is a flow chart of a part of the software shown in FIGS. 4a-4g.
  • FIG. 7 is a graph of battery voltage versus time for one embodiment of the invention.
  • a medical infusion pump is generally designated by the reference numeral 10.
  • a complementary charging base 12 is also provided. Within the base 12 is a circuit for supplying charging current to the pump 10, such as the circuit shown in FIG. 2.
  • the charging base 12 includes a housing 14 for containing the circuit in FIG. 2, and a side wall 16 and bottom floor 18 integral with the housing 14, forming a pocket 19 into which the infusion pump is mounted.
  • the bottom floor 18 has a lip 20 that extends upward from the distal end of the bottom floor 18.
  • the lip 20 is integral with the floor 18 and follows the distal edge of the floor 18 until it reaches and becomes integral with the side wall 16.
  • the lip 20 does not extend to the side edge of the floor opposite the side wall 16, which thus forms an entrance 22 for the bottom infusion pump 10.
  • a guide bar 24 Integral with the face of the housing 14 facing the pocket 19 is a guide bar 24 parallel to the bottom floor 18 and extending out of the housing 14.
  • a corresponding guide groove 26 can be seen on the rear of the infusion pump which slidably receives the guide bar 24 when the infusion pump 10 is mounted on the base 12, as in FIG. 5.
  • the size of the pocket 19 is dimensioned to closely fit the bottom of the infusion pump 10.
  • the guide bar serves three functions: it aids in the proper alignment of the pump 10 with the base 12, prevents the pump 10 from being removed from any direction other than the entrance 22, and causes a slight compressive fit to frictionally retain the pump 10 against accidental detachment.
  • the male and female parts 28,30 of a four-pin connector assembly are mounted on the base 12 and pump 10, respectively.
  • the male connector 28 is preferably mounted on the base 12 to decrease the likelihood of damage as compared to mounting on the ambulatory device.
  • the male connector 28 is mounted on the interior of the side wall 16 of the pocket 19, as shown in FIG. 1.
  • the female connector 30 is mounted slightly recessed on the side of the housing 32 of the infusion pump 10, in a position complementary to the male connector 28 when the pump 10 is fully engaged to the base 12.
  • the back of the housing 14 of the base 12 may include any attachment means, such as an IV pole clamp 34, for attachment to any desired surface.
  • the housing 14 is also weighted sufficiently for use as a desk top base.
  • the complete battery charging process through both circuits shown in FIGS. 2 and 3, is only active when the pump 10 and base 12 are attached. However, the control portion of the charging circuit, within the pump 10, performs several of the operations necessary for proper charging even with the base 12 detached, as will be explained further below.
  • the base 12 includes a charging current source circuit, such as that shown in FIG. 2.
  • the circuit is preferably connected thorough the housing 14 to an external conventional AC outlet (not shown) , although other power sources will work similarly.
  • a transformer 36 is electrically connected to the AC outlet at 37.
  • connection lines 38, 40, 42, 44 At the opposite end of the circuit in FIG. 2 are four connection lines 38, 40, 42, 44 for detachably connecting the circuit portion in the base to that in the infusion pump 10. These connections are a ground line 44, a regulated DC voltage line 40, a charging current line 38 and a charge control line 42. Each of these lines is electrically connected to one of the male pins 28 of the four-pin connector.
  • the transformer 36 and the four connection lines 38, 40, 42, 44 are circuit components designed to provide more than one charging current to the charging current line 38.
  • there are two different charging currents one for quick charging, the other for "trickle" charging. These two currents are preselected, based on known safe charging currents of the rechargeable batteries 46, which are housed inside the infusion pump 10.
  • the quick charge current is preferably C/5, where C is the maximum output current of the batteries, while the trickle charge current is C/20.
  • the trickle charge can be applied to the batteries for an indefinite period of time, without significantly damaging the batteries 46.
  • the trickle charge maintains the batteries at their maximum charged condition despite the batteries inherent tendency to self-discharge when not being charged.
  • the quick charge can cause long-term damage to the batteries if applied for an excessive period of time.
  • the regulated voltage at line 40 is supplied by voltage regulator 60.
  • the control portion of the charging circuit which selects which of the two charging currents is applied to the charging current line 38,. and the batteries 46 are housed within the infusion pump 10.
  • the control circuit is integrated with other circuit components 47 for controlling the workings of the infusion pump 10, as some of the parameters for selecting the charging current are based on the functioning of the pump 10.
  • the main controller of the pump circuit is a 44 lead microprocessor U4, shown in FIG. 3, whose responsibilities include, among other things, controlling the motor (not shown), display 80, input terminals 82, and flow detectors 84, detecting connection of the base to the four-pin connector 30, and controlling the charging circuit in the base 12.
  • the four female pin connections are shown: the charging current line 48; the regulated voltage line 50, which is used by the microprocessor U4 to detect the presence of the base 12; the ground line 54; and the charging current control line 52, which is a direct output from the microprocessor U4.
  • the batteries 46 which are preferably three NiCad cells, are connected to both the charging current line 48 and the ground line 54 of the four pin connector. The batteries also power the circuitry and motor for the pump.
  • the control circuit monitors the present voltage level V B of the batteries 46, which gives an indication of their stored electrical energy capacity.
  • the batteries are connected to an analog to digital (A/D) converter (U3 in FIG. 3) , which converts the analog voltage into a stream of serial pulses in an 8-bit binary format and then transmits the stream to the microprocessor U4.
  • A/D analog to digital
  • the microprocessor uses this information to select an appropriate charging current, as is described below.
  • the microprocessor can also sense whether the pump is connected to the base. It simply detects the voltage at the regulated voltage line 50. Since the charging circuit in the base always maintains 5v at line 40,.5v is present at 50 if the base is connected. Of course, if the base is not attached to an AC outlet, there will be Ov at 40, and the control circuit will consider the base to be absent whether it is connected or not. However, in the alternative, if the microprocessor U4 cannot use the regulating voltage line 50 for reasons including the lack of an available input/output port on the microprocessor U4, the presence of the base can also be detected through the analog to digital converter U3.
  • the microprocessor U4 selects the appropriate charging current from the base by selectively applying 5v to the charging current control line 52. When 5v voltage is present at this line 42 of the charging circuit, the transistor Q3 is switched off. This causes the field effect transistor (FET) Ql to turn off. Hence, only constant current source 62 is activated and a C/20 charging current is applied to the charging current line 38 and the batteries 46.
  • the microprocessor U4 applies ground voltage to the charging current control line 52, which switches on transistor Q3 of FIG. 2, which in turn switches on FET Ql and constant current source 64, quadrupling the charging current to C/5.
  • a quick charge is applied.
  • a full length quick charge (a maximum of 6 hours at C/5 in the preferred embodiment) can overcharge the batteries and cause long-term battery damage.
  • the batteries are at 30% capacity when their combined voltage equals 3.56v. If the batteries are allowed to drain significantly after dropping below 30% capacity (for example, by continued pump use without recharging) , they will reach the dead battery level of approximately 3.20v, at which point the control circuit preferably shuts itself and the pump completely off.
  • the control circuit within the pump ensures that after a complete quick charge, the base will not supply another C/5 quick charge for at least two hours, regardless of the battery capacity level, whether or not the unit is connected to the base, or the actions of the user. This two hour timer will be discussed in greater detail below.
  • the pump By having the ability to detect the presence of the charging base, the pump has greater flexibility and control over the charging current. This maximizes the quick charging times, but ensures safe charging of the batteries. After a full quick charge, the next quick charge cannot be initiated for two hours. If the six-hour quick charge is interrupted by removing the pump from the base, it can be restarted and also extended if power was drained during the unconnected interval.
  • multiple devices can be effectively charged with a single charger base. While one device is operated, a second device can remain on the base, charging according to the internal timers and circuit of the second device. When the first device is then attached to the base, it will be charged according to its own internal timers, regardless of what charging current were applied to the second device. More than two devices may also be used. In this manner, each device is charged most effectively for maximum service time of each device.
  • FIGS. 4a-4g the following operating steps, much of which occur within the microprocessor, will describe the preferable mode of the operation.
  • the steps of the flow chart have been given reference numerals for identification purposes.
  • Appendix I lists the bits and registers used in the software described in Figs. 4a-4g. The use of these bits and registers is also described in Appendix I to aid in an understanding of the operation of the software.
  • steps 110-236 and steps 300- 332 are run at the same time. While the program is running through steps 110 to 236, the program is simultaneously running through a loop comprising steps 300 to 332 which handles any error indicators that may be generated by the operation of the program and displays the appropriate error messages.
  • the control routine is initiated within the microprocessor U4 every 500 milliseconds. During the 500 millisecond interval, the program passes from step 110 to step 236 which restarts the program at step 110 after the 500 millisecond interval is completed. From step 110, the program passes to step 112.
  • the first operation at step 112 is to write the value of register v_batt to register v La ⁇ t.
  • step 112 the battery voltage V B is read through the A/D converter U3 and written to register v_batt. Since the value of register v batt is placed in register v_last before it is updated to the currently measured value of V B , upon exiting step 112, register v__last will contain the value of the battery voltage measured on the immediately previous pass through the software while register v_batt will contain the current measured battery voltage V B . From step 112, the program passes to step 114.
  • bit bad_batt_ lag it is determined whether the bit bad_batt_ lag has been set, thereby indicating whether a bad battery has already been detected on a previous pass through the software.
  • a reference to a bit being “set” means that the bit contains the value "1".
  • "latched” as used in this description means that the register is set to contain the value "1" or other specified non-zero number depending on the type of register.
  • a bit or register may be “set” or “latched” as well as “un-set” or “un-latched” as needed as the program operates.
  • bit bad_batt_flag indicates that the program has previously determined on a previous pass through the software that the battery voltage V B is outside the acceptable limits. If bit bad_batt_flag has not been set, the program passes to steps 116, 118 and 120 to determine whether to set bit bad_batt_flag. At step 116, if the battery voltage V B is greater than 4.9v, indicating that the battery voltage is excessive, the program passes to step 120 where the bad_batt_flag bit is set.
  • step 116 the battery voltage V B is not greater than 4.9v
  • the program passes to step 118 where the battery voltage V B is compared to the low threshold value of 2,6v. If V B is less than 2.6v, this indicates a bad battery is present so the program passes to step 120 where the bad_batt_flag bit is set.
  • step 118 If, at step 118, V B is not less than 2.6v, this indicates that the battery voltage V B is greater than or equal to 2.6v and less than or equal to 4.9v, which means that the battery voltage V B is in an acceptable operating range. Consequently, there is no need to set the bad__batt_flag bit. Therefore, if, at step 118, the battery voltage V B is not less than 2.6v, the program passes to step 122.
  • step 120 in addition to latching the bad_batt_ lag bit, the quiclc__charge_req and low_batt_flag registers are both latched to later trigger the appropriate response to the bad battery condition. Also at step 120, the value 14 minutes and 50 seconds is placed in register battl5_timer.
  • step 120 occurs only once after detection of battery voltage V B outside the range of 2.6-4.9V described above. Thereafter, the bad_batt_ lag bit s set so the program will bypass steps 116 through 120 by passing from step 114 directly to step 122. From step 120, the program passes to step 122.
  • Steps 122 through 128 determine whether a dead battery condition exists.
  • dead battery condition it is meant that the battery voltage V B is less than 3.20v.
  • bit d*ad_batt_flag is evaluated to determine whether it has already been determined on a previous pass through the software that a dead battery exists. If it has already been determined that a dead battery exists, bit dead_batt_flag will already be set so that the program passes from step 122 directly to step 130. If bit dead_batt_flag has not already been set, the program passes from step 122 to step 124 to begin a loop which determines whether to set bit dead_batt_flag. At step 124, bit ok_to_charge is evaluated to see whether it is set, thereby indicating that the pump is connected to the operating charge base.
  • step 124 If bit ol_to_cl ⁇ arge has been set, the program passes from step 124 directly to step 130 so that charging of the batteries may take place. If ok_to_charge has not been set, the program passes to step 126 where the battery voltage, V B , is compared to the dead battery threshold of 3.20v. If at step 126, the battery voltage, V B , is greater than or equal to 3.20v, the program passes to step 130. If the battery voltage, V B , is below the threshold of 3.20v, the program passes to step 128 where the dead_batt_flag bit is set. Execution of step 128 occurs only once after detection of a battery voltage V B below the dead battery level of 3.20 volts. Also at step 128, the quick_charge_req and low_batt_flag bits are set and the register battl5_tim ⁇ r has the value 14 minutes and 50 seconds placed in it.
  • Steps 120 and 128 contain common code that enables subsequent software to determine whether an error condition exists and to display an appropriate error message indicating the status of the batteries.
  • the low_batt_flag and quick_charg*_req bits are set to enable generation of error messages and battl5_tim ⁇ r is latched to contain a preset time of 14 minutes and 50 seconds.
  • the register battl5_t.U_.er performs three functions.
  • the second use of the battl5_ti»er is to time when the final error messages are displayed prior to shutting off the pump.
  • steps 120 or 128 put the value 14 minutes and 50 seconds placed in battl5_ti-__er due to a bad or dead battery error detection
  • the program will direct a 10 second bad battery error message to be displayed before the microprocessor shuts itself and the pump down as the value in battl5_tim ⁇ r reaches 15 minutes. Used in this way, register battl5_timer shortcuts the operation of steps 152 and 154 as will be explained hereafter.
  • battl5_timer if the value of battl5_timer is less than 14 minutes and 40 seconds and the low battery condition has been detected so that the low_batt_ lag bit is set, the program will give a low battery warning message until acknowledged by the pump user.
  • the battl5_timer has the value of 14 minutes and 40 seconds, a final 20 second warning message is given before the pump is shut off.
  • Steps 120 and 128 differ in that step 120 sets the bad_batt_flag bit, indicating the presence of a bad battery, while step 128 sets the dead_batt_flag bit indicating the presence of a dead battery. From step 128, the program passes to step 130.
  • the microprocessor checks for previous acknowledgement of a low battery condition and for previous use of the charging base.
  • the battery voltage, V B is compared to a low battery threshold, 3.35v. If the battery voltage V B is greater than or equal to 3.35 volts, indicating that the battery voltage V B is not low, the program passes from step 130 to step 140. If at step 130 V B is less than 3.35v, indicating that the battery voltage V B is low and that a quick charge may be desirable, the program passes to step 132.
  • step 132 it is determined whether the pump is attached to the charge base. If bit ok_to_charg ⁇ is set, indicating the pump is connected to the charge base, the program passes to step 139 where the low_batt_flag bit is set so that charging of the batteries may be initiated. From step 139, the program passes to step 140. If, at step 132, the pump is not in the charge base so that the ok_to_charge bit is not set, there is no need to try to charge the battery so the program passes to step 134.
  • step 134 it is determined whether the pump is turned on as indicated by the turned_on bit being set.
  • the pump being turned on means that the pump's display is on. Whether the display is on or not, the microprocessor continues to run the timers and pass through the program. If the pump is turned on, the turned_on bit will be set and the program passes to step 136. If, at step 134 the pump is not turned on, as indicated by the turned_on bit not being set, there is no way to indicate an error condition, so the program passes to step 139.
  • step 136 it is determined whether a quick charge request has previous been acknowledged. If a quick charge request has been previously acknowledged, the charge_r ⁇ q_ack bit will be set. If the charg ⁇ _req_ack bit has been set, this indicates that the microprocessor is requesting a quick charge to the batteries. In this case, the program passes to step 139. If the charge_reg_ack bit is not set, the program passes to step 137.
  • step 137 it is determined whether a previous low battery condition has been detected. If it has, bit low_batt_flag will be set. In this case, the program passes to step 139 and will not execute step 138 which would cause another display of the LOW BATT error message. If bit low_batt_flag is not set, the program passes to step 138. It should be noted that in order to get to step 138, the pump must not be in the charge base, it must be turned on, it must not have had a quick charge request previously acknowledged and it must not have already detected the low battery condition. At step 138, bit abort_op is set to indicate that the error condition "the pump is not connected to the charger" exists. From step 138, the program passes to step 139. As can be seen, despite the variety of ways of getting to step 139 as described above, step 139 sets bit low_batt__flag as a result of the detection at step 130 that the batteries have a low battery voltage V B .
  • Steps 140 through 174 generate the triggers for the various error conditions.
  • the microprocessor checks the low_battery_flag bit to see if it is set, thereby indicating that the batteries are low. If this flag has not been set by previous tests of the battery voltage V B , the program passes directly to step 176. Otherwise, the program has determined that the batteries are low and the program passes to step 142 to determine if error conditions exist.
  • step 142 if a quick charge has not previously been requested so that the quick_charge__req bit is not set, the program passes to step 144 where step 144 is executed. However, if the quick_charge_ req bit has already been set, the program by-passes step 144 and passes directly to step 146.
  • Step 144 resets register battl5_ti*er to zero minutes, which allows the pump to run for 15 minutes after the detection of a low battery state before the microprocessor turns the pump off.
  • register charg ⁇ _ti «er which is used to time the 6 hour quick charge cycle, and the charge_r ⁇ q_ack bit are reset to zero.
  • Register charg*_ti»er can be thought of as a gas tank for charge to power the pump. By resetting this register, the full amount of charge time may be requested because the charge "gas tank" is empty.
  • register quick_charg*_req is set to latch these newly set parameters and to indicate to subsequent software that a quick charge is needed. The program then passes to step 146.
  • microprocessor U4 tests for the presence of the charge base by looking at the value of bit ok_to_charge. If this bit is set, indicating the presence of the charge base, the program passes to step 148. At step 148, the program determines whether the -batteries are bad by looking at the value of the bad_batt_flag bit. If the bit is set, indicating the batteries are bad, the program passes to step 152. Otherwise, the program passes to step 160. Note that in order to get to step 160 the batteries must be low, but not bad and the charge base must be connected to the pump.
  • step 146 If the charge base is not connected to the pump so that the ok_to_charge bit is not set, as indicated at step 146, because the batteries are low, as indicated at step 140, it may be desirable to have a quick charge, but an error condition exists.
  • the error condition is that the pump is not connected to the charge base. Therefore, at step 146, if the ok_to_charge bit is not set, that is, the pump is not connected to the charger base, the program passes to step 152. If the pump is connected to the charger base but the batteries are bad, an error condition exists so the program also passes to step 152 from step 148. If the pump is connected to the charge base and the batteries are not bad, the program passes from step 148 to step 160.
  • step 160 the microprocessor resets bits low_batt_ lag, dead_batt_ lag, and charge_req_ack and register battl5_tim ⁇ r to zero. This action ensures that a bad battery or dead battery error message will not be accidentally generated since the pump is connected to the charger base. This also allows the microprocessor to issue subsequent low battery errors when the pump is removed from the charger base. Battery charging at the C/5 rate will then be enabled and will eventually be executed at step 232. From step 160, the program passes to step 176.
  • Step 152 increments the value in the register battl5_timer so that battl5_timer acts like a clock. Note that in order to get to step 152, a low battery condition must have first been detected at step 140. One possible set of conditions that would get to step 152. is to have a low battery as detected by step 140 and to have the pump not connected to the charger as detected by step 146. In this case, as mentioned above, the program allows 15 minutes for the pump to operate before it must be connected to the charger unit in order to avoid damage to the batteries before the microprocessor shuts down the pump.
  • step 152 The other way to get to step 152 is for the batteries to be low as detected at step 140 and the pump is connected to the charger as determined by step 146, but the batteries are bad as determined by step 148. In this way of entering step 152, incrementing step 152 also allows the pump to be used for up to 15 minutes after the detection of the bad battery condition. However, subsequent programming causes an error message to be displayed indicating the presence of a bad battery. From step 152 the program passes to step 154.
  • the value of register battl5_tim ⁇ r is evaluated. If the value in the battl5_timer is less than or equal to 14 minutes and 40 seconds, the program is still well within the 15 minute grace period given for operation of the pump after the detection of a low or dead battery condition before the microprocessor shuts off the pump. If the value of the battl5_timer is greater than 14 minutes and 40 seconds, the 15 minute grace period is about to expire. Therefore, the pump is in the process of displaying the final 20 second or less error message indicating that the pump is about to be turned off because the 15 minute grace period is about to expire.
  • step 154 if the value in the battl5_timer is less than or equal to 14 minutes and 40 seconds, the program passes from step 154 to step 172 to allow charging to take place if necessary. However, if the value in the battl5_tim ⁇ r is greater than 14 minutes and 40 seconds, the program passes to step 155.
  • Step 155 examines the value in the err_status register.
  • the ⁇ rr_status register is a countdown counter which controls when the audible beeper comes on. Detection of an error of any kind causes the err_status to be set to 2. If the value is less than three, that is 2, the program passes to step 158 where register err_status is set to a value of 255. Setting the err_status register to 255 causes an audible alarm to sound at full volume. Further, setting register ⁇ rr_status to 255 ensures that on subsequent passes through the software, at step 155 the value in register err_status will be greater than 3.
  • step 158 the program will by-pass step 158, since the error message generated by step 158 is already being generated, and pass to step 156.
  • step 158 cancels all non-battery error flags to prevent interruption of imminent shut down of the pump. From step 158 the program passes to step 162.
  • step 155 If, at step 155, the err_status register has a value greater than 2, which will occur as a result of already having passed through step 158 in a previous pass through the software, the program passes to step 156 where the bad_batt_flag bit is tested.
  • the only way to get to step 156 is by being in the last 20 seconds of the 15 minute grace period after the detection of a low battery condition or in the last 10 seconds of a dead battery or bad battery error condition.
  • the purpose of step 156 is to differentiate between the low battery and the bad battery error conditions and the dead battery error condition.
  • the error message for the low battery and the dead battery condition is the same as will be explained hereafter. However, the error message for the bad battery is different.
  • step 170 If the bad_batt_flag bit is not set, indicating that the batteries are either low or dead, the program passes directly to step 170. If the bad_batt_flag bit is set, indicating the error condition of bad batteries, the program passes to step 157 where the in_bad_batt bit is tested.
  • the purpose of the in_bad_batt bit is to determine whether the loop of the program which displays the bad battery message has already been started. Once this loop has been started, the in_bad_batt bit will be set. If this register is not set, indicating that bad battery message is not being displayed because this is the first pass through the software after detecting the bad battery condition, the program passes to step 158 where the err_status register is set to 255, an audible alarm is sounded at full volume and all non-battery error flags are cancelled. If the in__bad_batt bit is set, indicating that the bad battery message is already being displayed, there is no need to initiate the error message so the program passes from step 157 to step 170.
  • steps 156 and 157 allow the generation of the higher priority BAD BATT message even if LOW BATT is already being displayed.
  • the tests of steps 155, 156, and 157 also latch the variable in register ⁇ rr_status set in step 158 to a value much greater than 3, thereby allowing this variable to be set only one time on the first pass through the program after the detection of this error condition. This in turn only enables battery-related error messages to be displayed by the error handler part of the program.
  • step 162 the program must have just passed through step 158. Because of the action of step 155 described above, the program will pass through step 158 on the first pass through the program after the first detection of an error message. Step 158 will initiate an error message indicating that the batteries are low, bad or dead. Because the program continuously loops, as described above, after the low or dead battery message or bad battery message has been started, the program will continue to loop every half second while displaying the 20 second low battery message or the 10 second bad battery or dead battery message. Consequently, the program passes to step 158 only as the 20 second low battery message or the 10 second bad battery or dead battery message is initially started. Thereafter, because the register err_status is given the value of 255 in step 158, as the program subsequently loops, at step 155, the program will pass from step 155 to step 156 and thereby avoid step 158.
  • Step 162 tests whether or not the microprocessor is already in the loop of the program that displays the LOW BATT message. Step 162 does this by looking at the contents of the in_low_bat_loop bit. If this bit is not set, this indicates that the microprocessor is not in the loop that displays the LOW BATT message. This means that the program is about to display the low battery error message. Therefore, the program passes to step 168. If the flag is set, the program is already displaying the low battery error message and the program passes to step 164.
  • Step 164 tests whether the microprocessor is displaying the higher priority BAD BATT message. This is done by looking at the value of the in_bad_batt_loop bit. If the bit is set, the BAD BATT message is displayed through the action of step 308, as will be described hereafter, and the program passes to step 170. If the register is not set, the BAD BATT message is not displayed and the program passes to step 166. Step 166 determines if the bad_batt_flag bit has been set in response to a determination that the batteries are bad. If the bad_batt_ lag bit is set, the program passes to step 170. If the bad_batt-flag bit is not set, the program passes to step 168 where the abort_op bit is set. The abort_op bit being set is a signal to the rest of the program to orderly shut down the current operation and proceed to the error handler shown in the flow chart of figure 4g. From step 168, the program passes to step 170.
  • Step 170 resets bit charge_req_ack to zero and sets the err_status counter to 255. Setting the register err_status to 255 disables acknowledgement of LOW BATT, DEAD BATT, and BAD BATT with the keypad. Resetting the charge__r ⁇ g_ack allows the program to acknowledge a low or dead battery condition when the pump is connected to the charger base. The program then passes to step 172.
  • step 172 the value of battl5_timer is evaluated.
  • the program passes to step 174 where the bit shutdown is set, causing the microprocessor to stop all program execution to save the batteries from damage by being overdrained.
  • the program passes directly from step 172 to step 176.
  • Figure 4e shows a flow chart for compensation of the register charg ⁇ _tim ⁇ r to account for pump usage and comprises steps 176 through 198. The microprocessor determines how much power is being drained from the battery by assessing the conditions of operation of the pump as will be described hereafter.
  • the microprocessor will subtract an appropriate amount of time from the register charg «_timer to increase the duration of the subsequent C/5 charging, up to a maximum of 6 hours.
  • This part of the program begins at step 176 by the microprocessor checking for the presence of the charger base by looking at the value of bit ok_to_charge. If the charger base is connected, the ok_to_charg ⁇ bit will be set and the program passes to step 178 to begin the part of the program which directs which type of charging to do.
  • register charge tia_er is tested to see if it has a value less than 6 hours; Having a value greater than or equal to 6 hours is called a "timeout". If this "timeout" has occurred, this indicates that the batteries have already been quick charged for their full 6 hours. Consequently, only trickle charging is allowed and the program passes to step 200 (shown in Figure 4f) where the default setting of zero of bit charge_ctl allows the trickle charging to occur. If the "timeout" has not occurred, register charge_ti-__er will have a value less than 6 hours. Consequently, the program passes from step 178 to step 180.
  • step 180 because there is some amount of time remaining that the batteries will quick charge when enabled, the charge_wait register is tested to see if it is set. If it is set, 2 hours have not elapsed since the previous quick charge. Consequently, only trickle charging will be allowed so the program passes from step 180 to step 184.
  • step 184 the register charg ⁇ _timer is incremented every other pass through the program, that is, every second, to account for the time passed since the last quick charge. From step 184, the program passes to step 200.
  • bit charge_wait is not set at step 180, it has been more than 2 hours since the last quick charge so it is permissible to quick charge the battery. Consequently, the program passes from step 180 to step 182 where the bit quick_charge_req is tested. If bit quick_charge_r ⁇ q bit is set, indicating that a quick charge request has been made, because the program at this step qualifies for quick charging, the program passes to step 186 for quick charging. While at step 186, the register charge_timer is incremented every pass through the program, that is, every 1/2 second to keep track of the quick charge time. If at step 182, a quick charge request has not been made, the program passes to step 184 for trickle charge timing as described above. From both steps 184 and 186, the program passes to step 200.
  • step 176 If, at step 176, the pump is not connected to the charger base so that bit ok_to_charge is not set, the program passes to step 188 where register charge_timer is tested. If this timer is equal to zero, this indicates that the batteries are depleted so it cannot be decremented further. As a result, the program passes from step 188 directly to step 200. If register charge_timer contains a value greater than zero, this indicates that some charge remains in the batteries. As a result, the program passes from step 188 to steps 190 through 198 where register charge_timer is decremented in a manner proportional to the pump activity. Step 190 tests bit turned_on to determine if the pump is turned on.
  • step 194 recognizes that because the pump is turned off, the drain on the batteries will be reduced. As a result, step 194 decrements register charge_timer only once every 11 seconds, so that this low- level drain on the batteries charge will be appropriately compensated for in register charge_timer. From step 194, the program passes to step 200.
  • bit turned_on will be set and the program passes to step 192.
  • the microprocessor tests bit motor_ctl to determine if the motor is rotating at that time. When the motor is rotating, bit motor_ctl will be set. If the motor is not rotating, the drain on the batteries will be less than if it were rotating. Consequently, if bit motor_ctl is not set, the program passes to step 198 where register charge_ti___er is decremented every 2 seconds to appropriately compensate for the charge drain from the batteries. From step 198, the program passes to step 200.
  • step 192 If the motor is rotating so that bit »otor_ctl is set, the pump is drawing charge from the batteries for the operation of the microprocessor, the display and the motor. This condition produces the biggest drain on the batteries of all the conditions of steps 190 through 198. As a result, the program passes from step 192 to step 196 where register charge_timer is decremented every 1 second. From step 196, the program passes to step 200.
  • Step 200 begins the software that actually controls the charge output of the charger base through a microprocessor I/O line. Step 200 tests the bit charge_wait to determine whether the required 2 hour time interval has elapsed between quick charges. If the required time has elapsed, quick charging is possible and register charg ⁇ _wait will not be set so the program passes to step 222.
  • bit quick_charg ⁇ _r ⁇ q is checked to see if a quick charge has been requested as indicated by bit quick_charg ⁇ _r ⁇ q being set. If no quick charge has been requested, bit quick_charge_req will not be set so the program passes from step 222 to step 228 where bit charg ⁇ _ctl is cleared. This bit is cleared because in order to get to step 228, quick charge must not have been requested. Therefore, clearing bit charge_ctl ensures that quick charge will not be sent to the batteries. Thereafter, the program passes to step 236 to implement the timing sequence that causes the program to pause before reentering the program at step 100 so that the program operation begins every 1/2 second.
  • bit quick_charge_req If, at step 222, a quick charge has been requested so that bit quick_charge_req is set, the program passes to step 224 where bit ok_to_charge is tested for the presence of the charger base so that quick charging can begin. If the base is not connected to the pump, bit ok_to_charge will not be set so the program passes to step 226 where bit charge_ctl is cleared, and bit slope_2 is cleared which indicates that the battery voltage V B is increasing. Resetting bit charge_ctl at step 226 acts as a safety valve because a quick charge request has been requested but the pump is not connected to the charger base.
  • bit charge_ctl is cleared.
  • the bit slope_2 is simply reset for the next time that it is used in steps 246-250 and 252 as will be described hereafter.
  • step 240 If, at step 224, bit ok_to_charg ⁇ is set indicating that the pump is connected to the charger base, the program passes to step 240.
  • Steps 240-246 monitor the voltage of the batteries. NiCad batteries exhibit a rise in cell voltage while charging. Once they have reached full capacity, the voltage stabilizes. Continuing charging above a minimum charge to offset the batteries' inherent self- discharge results in a decreasing cell voltage. This decreasing cell voltage is sensed here by detecting the voltage peak of V B and a subsequent decreasing voltage. When the software detects that the voltage of V B has decreased after a voltage peak determined by byte v_peak by a magnitude of 60 mV, quick charging will be terminated.
  • register charge__timer is tested to determine if sufficient time has elapsed while measuring the battery voltage V B for the voltage to have stabilized. If register charge_timer has recorded less than or equal to two minutes of quick charge, the program passes to step 230. If register charge_timer has recorded more than two minutes of quick charge, the software assumes that the battery voltage has stabilized or started a positive trend after being connected to the charge base and receiving quick charge. Consequently, the program passes to step 242. Steps 242-250 finds the peak and the slope of the battery voltage V B when receiving a quick charge. This information is used to determine when a battery has been charged to full capacity. There are two preferred ways of finding the peak and slope of the battery voltage V B when receiving a quick charge. The most preferred method is illustrated in Figure 4f.
  • Figure 4fA An alternate method for finding the peak and slope of the battery voltage V B when receiving a quick charge is illustrated in Figure 4fA.
  • Figure 4fA is identical to
  • steps 242A, 244A and 254A differ from the corresponding steps 242, 244 and 254 in the preferred method described below and shown in Fig. 4f. The differences in these steps will be described in detail hereafter.
  • step 242 compares the sum of the values stored in bytes v_peak and v_diff to the battery voltage V B stored in byte v batt. If the sum of the values in bytes vjpeak and v_diff is less than the value of v_batt, the battery voltage is rising. In this case, the program passes to step 244 where v_peak is set equal to the battery voltage V B stored in v_batt minus the offset value stored in v__diff. The value preferably used for the offset voltage v_diff is 60 millivolts. From step 244 the program passes to step 246.
  • step 242 If at step 242, the sum of the values in bytes v_peak and v_diff is greater than or equal to the battery value V B in v_batt, the program passes directly to step 246 without changing the value in byte v_peak.
  • the peak voltage of the battery voltage V B is found and stored. Then, when the battery voltage V B drops by more than a predetermined amount below this stored peak voltage, called an offset voltage, quick charging is terminated. Again, the value preferred for the offset voltage is 60 millivolts.
  • step 242A compares the voltage stored in byte v_p ⁇ ak to V B . If the voltage in byte vjpeak is less than V B , then the battery voltage is rising. In this case, the program passes to step 244A, where v_peak is set equal to V B . If v_peak is greater than or equal to V B , the program passes directly to step 246 without changing the value in byte v_peak. In both methods, step 246 tests for a decreasing V B with respect to time. This is done by comparing the current battery voltage to prior measured battery voltages to see if the battery voltages are increasing or decreasing in time. The software workings of this step are shown in more detail in Fig. 6. Step 246 is entered via step 410.
  • step 410 the value stored in register v Last, which is the value of the battery voltage measured on the immediately prior pass through the software, is compared to the current measured battery voltage stored in register v__batt. If the value of register vJLast is smaller than the value stored in register v_batt, the battery voltage is increasing. In this case, the program passes to step 420. At step 420, bits slope_l and slope_2 are cleared which indicates a "positive" slope for the measured battery voltage V B . From step 420, the program passes directly to step 230.
  • Step 430 determines whether the value of register v_last is equal to the value of register v_batt. In order to get to step 430, the value of register v_last has already been found to be greater than or equal to the value of register v_batt at step 410. Step 430 then evaluates whether the value of register v Last is larger than the value in register v_batt. If it is, this indicates that the slope of the measured battery voltages is decreasing so the program passes to step 440.
  • Step 440 determines whether bit slop ⁇ _l has already been set on a previous pass through the software. If bit slope_l has already been set, this indicates that the software has already determined on a previous pass through the software that the measured battery voltages have been decreasing. As a result, the program passes from step 440 to step 450 where bit slope_2 is set. Both bits slope_l and slope_2 being set indicates to the subsequent software that the measured battery voltages are decreasing.
  • bit slope_l is not set at step 440, the software has not already determined on a previous pass through the software that the measured battery voltages have been decreasing. As a result, the program passes from step 440 to step 460. At step 460, because the software has already determined in steps 410 and 430 that the measured battery voltages are just starting to decrease, bit slop ⁇ _l is set. Bit slope_l being set without also having bit slope_2 being set indicates that the measured battery voltages have just started to decrease. From both steps 450 and 460, the program passes to step 230. Step 230 tests register charge_timer for a 6 hour timeout for quick charging.
  • step 234 the quick charge cycle is terminated by clearing bit quick_charge_ req regardless of the value stored in byte v_peak and whether V B is still increasing. Bit quick_charg ⁇ _req is cleared because the batteries are fully charged and no further quick charging is needed. This prevents severe overcharging in the event that the batteries did not exhibit the typical voltage peak during charging.
  • Step 234 also clears bit charge_ctl so that quick charging is stopped and trickle charge will be sent to the batteries.
  • the wait_timer register is reset to zero to begin timing the 2 hours until another quick charge.
  • Bit charge_wait is set since the pump is now in the 2 hour period before the next quick charge can be initiated.
  • step 234 sets register charg ⁇ _tiaer to 6 hours in case step 234 was reached through steps 252 and 254.
  • the program passes to step 236. If at step 230, register charge_ti*er has not reached its 6 hour timeout so that its value will be less than or equal to 6 hours, the program passes to step 231.
  • Step 231 compares the current value of V B to the value of 4.88v.
  • step 234 If V B is greater than 4.88v, indicating that the batteries may be bad or that the batteries are not exhibiting their typical peak charged voltage because they are being charged at cold ambient temperatures, the program passes to step 234 where the operations of step 234 as described above are carried out. If at step 231, V B is less than or equal to 4.88v, the program passes to step 252.
  • Step 252 looks at the value of bit slope_2 to see if it is set thereby indicating that the slope of the measured battery voltages is negative. If bit slope_2 is not set, the program passes to step 232 where bit charge_ctl is set thereby enabling quick charge. If at step 252, bit slope_2 is set, thereby indicating that the slope of the measured battery voltages is negative, the program passes to step 254. In the most preferred embodiment shown in Figure 4f, at step 254, the value of byte vjp ⁇ ak is compared to the value of byte v_batt. If the value of byte v_peak is not greater than the value of v__batt, the current measured battery voltage V B is less than the peak voltage of the batteries by more than the predetermined amount.
  • step 254A the difference between the peak voltage stored in byte v_j>eak and the current battery voltage V B is compared to a preset value, v_diff, which in the preferred embodiment is 60 mv. If the difference between v_peak and V B is greater than v__diff, the slope of the measured voltages is negative and the voltage difference between the peak voltage measured and the current voltage exceeds the preset limit. This indicates that the NiCad batteries have been charged to their maximum capacity so the program passes to step 234 where the quick charge is terminated as described above.
  • step 232 If the difference between v__peak and V B does not exceed the threshold value set by v_diff, the program passes to step 232 to initiate quick charging by setting bit charge_ctl. Steps 232 and 234 both pass to step 236. To summarize, quick charge is terminated either by quick charging for six hours or by the battery voltage rising to a peak and then falling by a preset voltage below the peak voltage.
  • bit charge_wait is set in step 200, the microprocessor is still waiting for 2 hours to elapse since the end of the previous quick charge and the program passes to step 202.
  • the microprocessor again assures that no quick charge will be delivered by clearing bit charge_ctl.
  • the program then passes to step 204 where register wait_timer is examined to see if its value is greater than or equal to 2 hours. If it is, the program passes to step 208 where the value of register charg ⁇ _timer is evaluated to see if it contains a value less than 6 hours, indicating that the batteries can receive additional charge. If the batteries are already fully charged, as indicated by register charge_timer having a value of 6 hours, there is no need for additional quick charging.
  • step 208 register charge_timer has a value less than 6 hours, additional quick charging can be done to the batteries so the program passes from step 208 to step 210.
  • step 210 the bit quick_charg ⁇ _req is set so that quick charging will be enabled.
  • bit charge_wait is reset to zero so that quick charging can be initiated.
  • the register wait_timer is reset to zero since quick charge is being requested so there can not yet be a completed full 6 hour quick charging cycle. Byte charge_timer is cleared to re-enable a quick charge for a maximum 6 hours in length.
  • Register v_p ⁇ ak and bits slope_l and slope_2 are reset to begin the detection of a drop in battery voltage when the battery cells reach full capacity during quick charging. From step 210, the program passes to step 236.
  • the program passes to step 206 where the register wait_timer will be incremented. In passing through step 206, incrementing register wait_timer causes wait_timer to act like a timer. From step 206, the program passes to step 236.
  • Figure 4g briefly describes the operation of the error handling software as related to battery conditions. This software runs concurrently with the software described in steps 110 to 236.
  • This error handling software begins at step 299 which is initiated when the program runs for the first time.
  • bit ⁇ rr_bits is set equal to zero. From step 299 the program passes to step 302 where, because bit ⁇ rr_bit ⁇ is equal to zero, the program passes through 334 and then to step 300.
  • bit abort_op is continuously monitored to detect any error conditions. Bit abort-op is set when an error condition is found. If no error is detected, the program cycles from step 300 through step 334, which handles non-battery related errors, back to step 300. Setting bit abort_op immediately results in cancellation of the current operation of the pump and begins execution of the error handler. If bit abort_op is set, this indicates that an error condition is present and the program passes to step 302.
  • the register err_bits is examined for an error condition indicating that the abort_op bit has been set by a low battery, dead battery, or bad battery condition.
  • the register err_bits is a bit array storing error-indicating bits for operating errors. The bits are set by the bit registers mentioned above. If no bits are set, this indicates that step 302 was entered from step 299 as a result of starting the program. In this case, normal execution continues by passing the program back to step 300 through step 334 so that a monitoring loop is made.
  • step 304 If an error bit is set in register errjbits, the program passes to step 304 where bit abort_op is cleared so that any new error conditions will be detected while this part of the program is running. The program then passes from step 304 to step 306 where the bit bad_batt_ lag is tested for a bad battery condition. If this bit is set, indicating that the batteries are bad, the program passes to step 308 where the highest priority bad battery error message is displayed. In the preferred embodiment, this error message is all segments of the LED display flashing for 10 seconds as an error indicator. Thereafter, step 308 directs the microprocessor to shut off all power to the pump circuits thereby turning off the pump.
  • step 306 If, at step 306, there is no bad battery condition so that bit bad_batt_ lag is not set, the program passes to steps 310 and 312 where the dead_batt_flag and low_batt_flag bits are tested respectively. If, at step 310, bit dead_batt_flag is set, indicating a dead battery, the program passes to step 314 for initiation of an alarm. If the dead_batt_flag bit is not set, thereby indicating that there is not a dead battery condition, the program passes to step 312 where the low_batt_flag bit is tested. If this bit is set, thereby indicating a low battery condition, the program passes from step 312 to step 314.
  • step 334 the program then passes from step 312 through step 334 back to step 300.
  • the purpose of steps 306, 310 and 312 is to determine whether the source of the error that set. register abort_op is battery related. If none of the bad_batt_ lag, dead_batt_ lag or low_batt_flag bits are set, some other non-battery related error has caused register abort_op to be set. Consequently, the program passes back to step 300 through step 334 so that these other error conditions can be appropriately dealt with.
  • the LOW BATT error display loop is entered at step 314.
  • bits charge_req_ack and in_lb_loop are set to prevent generation of further LOW BATT messages.
  • the program then passes to step 316 where the microprocessor tests register ⁇ rr_status. If register err_status has a value less than or equal to 2, this indicates that the error condition is a low battery condition as opposed to a dead battery condition as previously determined in steps 155-170. As a result, the program passes to step 318 where register err_status is set with the value N 2 n , which will cause the "LOW BATT" display to be displayed at step 326, and the audible alarm is turned on at low volume.
  • a value in register ⁇ rr_status of three or greater results in a full-volume audible alarm initiated by step 158 by calling the alarm generator with a "full volume” argument and negates the ability to acknowledge the alarm with the START/HOLD key by the ⁇ rr_status_byte being read by the keyboard driver; acknowledgement is only allowed with the charger base.
  • the program passes to step 320. From step 318, the program passes to step 320.
  • step 316 If, at step 316, the value of register err_status is not less than 3, this indicates that the program is in the midst of a bad battery condition as initiated by step 158. Therefore, since the bad battery status is a priority message, there is no need to pass to step 318 for initiating a lower priority dead battery or low battery message. Consequently, if the program is currently in a bad battery error message display loop, the program.passes from step 316 directly to step 320.
  • bit abort_op is tested to see if another error has occurred in the time between when register abort_op was cleared at step 304 and the execution of step 320. If another error has occurred, bit abort_op will now be set. In this case, the program passes from step 320 to step 328.
  • step 328 the status of bit abort_op is again tested. If it is set, indicating that step 328 was entered from step 320 thereby indicating a new error condition has been detected, the program passes to step 330 where bit charge_req_ack is cleared so that the error handler will return to the LOW BATT display after the higher priority error is acknowledged by the pump user. From step 330, the program passes to step 332.
  • step 320 If at step 320, bit abort_op is not set, thereby indicating that no new error condition has occurred in the current operation of the progreun, the program passes to step 322.
  • the microprocessor tests for the presence of the charger base via the value of bit ok_to_charge. If the pump is connected to the charger, this bit will be set so step 322 is exited to step 328 so that the LOW BATT message will not be ultimately displayed. Instead, because the batteries are low and no new error condition exists and because the charger is connected to the pump, the batteries will be charged.
  • bit abort_op upon entering step 328, bit abort_op will not be set so that the program exits step 328 and passes directly to step 332.
  • bit in_lb_loop is reset to zero so that upon detection of a new low battery error message, the loop may be initiated by passing from step 300 to steps 302 through 332. If, at step 322, the pump is not connected to the charger so that bit ok_to_charg ⁇ is not set, the program passes from step 322 to step 324.
  • step 324 the value of register err_status is tested. If the value of err_status is equal to zero, the error condition is fully acknowledged, so the program passes from step 324 through steps 328 to 332.
  • step 326 the low battery display is displayed on the display of the pump. From step 326, the program passes back to step 320 where a loop is formed. In order to get out of this loop, either a new error condition must be found so that bit abort_op will be set or the pump must be connected to the charger or the value of ⁇ rr_status must be reset to zero by pressing the START/HOLD key twice.
  • the LOW BATT alarm may also be acknowledged with two presses of the START/HOLD key if the LOW BATT display is caused simply by a LOW BATT condition. Pressing the START/HOLD key in this condition will cause register ⁇ rr_status to be cleared which will in turn be recognized as the program passes through steps 300 through 332.
  • the keypad driver recognizes the START/HOLD key in an error state, and will appropriately decrement the register err_status by additional software.
  • battl5_timer counter used to time the 15 minute LO BATT timeout, and to time the DEAD BATT and BAD BATT messages.
  • charge_ctl bit set to control the charger base. When set, the charge base delivers quick charge (C/5) . When clear, the charger base delivers trickle charge.
  • charg ⁇ _req_ack bit set when a LOW BATT is acknowledged by either placing the pump into the charger base or by pressing the START/HOLD key twice.
  • charge_timer word counter that tracks the amount of quick charge time that has been delivered to the batteries. Range of 0 to 6 hours.
  • charge_wait bit set when the microprocessor determines that it is in the 5 hour period between quick charge cycles.
  • d ⁇ ad_batt_flag bit set when battery voltage is less than 3.20 volts.
  • err__bits bit array storing error-indicating bits for operating errors.
  • err status byte that keeps track of the status of an error display. Normally set to 2 when an error is first generated. Decremented by pressing the START/HOLD key. Error messages are exited when err_status equals 0 (an alarm has been fully acknowledged) .
  • in_bad_batt bit set when the microprocessor is displaying the BAD BATT message.
  • in_bad_batt_loop bit set when the microprocessor is displaying the BAD batt message.
  • in_low_batt bit set when the microprocessor is displaying the DEAD BATT or LOW BATT messages.
  • low_batt__flag bit set when battery voltage is less than 3.56 volts.
  • motor_ctl bit set when motor is to be turned on and rotating.
  • ok_to__charg ⁇ bit set when the pump is connected to an operating charge base.
  • quick_charge__r ⁇ q bit set when the microprocessor requests C/5 charging for the battery.
  • v_last byte storing the value of the battery voltage measured on the previous pass through the software.
  • v_peak in the most preferred embodiment shown in FIG. 4f, byte storing the peak voltage read by the A/D converter during the quick charge cycle minus the value of byte v_dif .
  • byte storing the peak voltage read by the A/D converter during the quick charge cycle - In both cases, byte is reset only at the beginning of a quick charge cycle.
  • wait_timer word counter that tracks the amount of time elapsed after completion of a 6 hour quick charge cycle. Range of 0 to 5 hours.

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Vascular Medicine (AREA)
  • Anesthesiology (AREA)
  • Biomedical Technology (AREA)
  • Heart & Thoracic Surgery (AREA)
  • Hematology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Veterinary Medicine (AREA)
  • Charge And Discharge Circuits For Batteries Or The Like (AREA)

Abstract

Dispositif possédant une source d'énergie rechargeable à laquellee est accouplé un chargeur de batterie comportant une sortie de courant de charge rapide et une sortie de courant de charge de maintien. Un circuit de commande se trouvant à l'intérieur du dispositif sert à contrôler si, et le temps pendant lequel, ledit dispositif est branché sur le chargeur, et à déterminer la capacité actuelle de la source d'énergie. En se basant sur ces signaux, le circuit de commande sélectionne une sortie de courant de charge appropriée. Le circuit de commande comprend également des circuits de mesure de durée, ainsi que de mesure de la tension de la batterie pendant la charge, afin de permettre une charge rapide maximum mais sûre, dans le but de protéger la source d'énergie d'une avarie à long terme.
PCT/US1992/002071 1991-03-20 1992-03-19 Circuit et procede de charge de batterie WO1992016990A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67253191A 1991-03-20 1991-03-20
US672,531 1991-03-20

Publications (1)

Publication Number Publication Date
WO1992016990A1 true WO1992016990A1 (fr) 1992-10-01

Family

ID=24698950

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1992/002071 WO1992016990A1 (fr) 1991-03-20 1992-03-19 Circuit et procede de charge de batterie

Country Status (2)

Country Link
AU (1) AU1578992A (fr)
WO (1) WO1992016990A1 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998012791A1 (fr) * 1996-09-23 1998-03-26 Ericsson Inc. Systeme et procede permettant la charge automatique et rapide d'une batterie de telephone portatif
NL1010711C2 (nl) * 1998-11-26 2000-06-06 Hung Ming Shih Inrichting van een microbiele telefoonbatterijoplader.
EP1961436A1 (fr) * 2007-02-24 2008-08-27 Roche Diagnostics GmbH Système d'infusion
EP4280015A3 (fr) * 2015-08-28 2024-01-17 Crisi Medical Systems, Inc. Système de capteur de débit comprenant des contacts à ressort

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3603862A (en) * 1969-12-22 1971-09-07 Gen Electric Improved battery-charging circuit with locking and resetting means
US4354148A (en) * 1979-04-18 1982-10-12 Sanyo Electric Co., Ltd. Apparatus for charging rechargeable battery
WO1984000614A1 (fr) * 1982-07-23 1984-02-16 Stubbe Paul K Electronic Procede et dispositif pour le controle de la capacite a chaque fois chargee d'accumulateurs
US4468605A (en) * 1982-04-12 1984-08-28 Motorola, Inc. Timed voltage clamp for battery charger
EP0124739A1 (fr) * 1983-04-08 1984-11-14 CEAG Licht- und Stromversorgungstechnik GmbH Circuit pour recharger un accumulateur en fonction de sa capacité
US4806840A (en) * 1983-12-30 1989-02-21 Alexander Manufacturing Company Method and apparatus for charging a nickel-cadmium battery
US4888544A (en) * 1988-01-04 1989-12-19 Motorola, Inc. Battery charger

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3603862A (en) * 1969-12-22 1971-09-07 Gen Electric Improved battery-charging circuit with locking and resetting means
US4354148A (en) * 1979-04-18 1982-10-12 Sanyo Electric Co., Ltd. Apparatus for charging rechargeable battery
US4468605A (en) * 1982-04-12 1984-08-28 Motorola, Inc. Timed voltage clamp for battery charger
WO1984000614A1 (fr) * 1982-07-23 1984-02-16 Stubbe Paul K Electronic Procede et dispositif pour le controle de la capacite a chaque fois chargee d'accumulateurs
EP0124739A1 (fr) * 1983-04-08 1984-11-14 CEAG Licht- und Stromversorgungstechnik GmbH Circuit pour recharger un accumulateur en fonction de sa capacité
US4806840A (en) * 1983-12-30 1989-02-21 Alexander Manufacturing Company Method and apparatus for charging a nickel-cadmium battery
US4888544A (en) * 1988-01-04 1989-12-19 Motorola, Inc. Battery charger

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998012791A1 (fr) * 1996-09-23 1998-03-26 Ericsson Inc. Systeme et procede permettant la charge automatique et rapide d'une batterie de telephone portatif
NL1010711C2 (nl) * 1998-11-26 2000-06-06 Hung Ming Shih Inrichting van een microbiele telefoonbatterijoplader.
EP1961436A1 (fr) * 2007-02-24 2008-08-27 Roche Diagnostics GmbH Système d'infusion
WO2008101589A2 (fr) * 2007-02-24 2008-08-28 Roche Diagnostics Gmbh Système de perfusion
WO2008101589A3 (fr) * 2007-02-24 2008-11-13 Roche Diagnostics Gmbh Système de perfusion
US8821442B2 (en) 2007-02-24 2014-09-02 Roche Diagnostics Operations, Inc. Infusion system
EP4280015A3 (fr) * 2015-08-28 2024-01-17 Crisi Medical Systems, Inc. Système de capteur de débit comprenant des contacts à ressort

Also Published As

Publication number Publication date
AU1578992A (en) 1992-10-21

Similar Documents

Publication Publication Date Title
US5225763A (en) Battery charging circuit and method for an ambulatory feeding pump
US10320212B2 (en) Rapid charging and power management of a battery-powered fluid analyte meter
TWI277268B (en) Battery pack, battery protection processing apparatus, and startup control method of the battery protection processing apparatus
US5523671A (en) Charging system for battery powered devices
US5117324A (en) Ups-computer system and method for initiating computer shutdown based on remaining battery time as determined from sensed battery voltage and discharge curves
US7579811B2 (en) Battery pack, battery protection processing apparatus and control method thereof
US6236226B1 (en) Test method and system for uninterruptible power supply
JPH07213605A (ja) バッテリーバックアップ付き注入ポンプ
JPH07130397A (ja) 二次電池の保護方法及び保護装置
EP0484803A2 (fr) Méthode et dispositif de contrôle d'alimentation électrique
JP3496311B2 (ja) 充電式電気機器
WO1992016990A1 (fr) Circuit et procede de charge de batterie
JP2780699B2 (ja) パーソナルコンピュータのバッテリ制御方法と電源制御回路
JPH08103032A (ja) 二次電池の充電方法
JP4047195B2 (ja) 充電装置
JP3029664B2 (ja) バッテリー駆動パーソナルコンピュータ
JPH07147166A (ja) 2次電池のメモリ効果防止方法
JP3421404B2 (ja) 二次電池の充電方法
JP3416854B2 (ja) 充電式電気機器
JP2001143766A (ja) 充電装置、充放電制御方法及び記憶媒体
JP2581718B2 (ja) 充電器
JPH1066278A (ja) 充電装置
JPH08298138A (ja) 過充電防止充電制御方法
JPH03282916A (ja) 電源制御装置および方法
JPH06163083A (ja) 電子機器における二次電池充電状態監視システム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU BB BG BR CA FI HU JP KP KR LK MG MW NO RO RU SD US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BF BJ CF CG CH CI CM DE DK ES FR GA GB GN GR IT LU MC ML MR NL SE SN TD TG

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
EX32 Extension under rule 32 effected after completion of technical preparation for international publication

Ref country code: UA

LE32 Later election for international application filed prior to expiration of 19th month from priority date or according to rule 32.2 (b)

Ref country code: UA

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA