Electronic Design

A Simple DC Motor Controller Optimizes Battery Life

Many cordless tools use NiCd battery packs as a source of power. These battery packs typically consist of four to six NiCd cells. Some of the tools also have more than one speed. This is achieved by tapping a fraction of the battery pack (Fig. 1).

The problem with this scheme is that when slower speeds are used, cells B1 to B3 are discharged while cells B4 and B5 remain fully charged. Once cells B1 t o B3 are discharged, the user may try to get the tool to run a bit longer by switching to high speed. Because cells B3 and B4 still have plenty of charge, the tool will indeed run a bit longer. While this is happening, cells B1 to B3 become completely discharged and eventually the voltage across them will reverse.

When the tool has stopped operating, the user will try recharging the batteries. Cells B4 and B5 may be only partially discharged and will need less time to fully charge. Most likely, cells B4 and B5 will never be fully discharged and will develop memory effects, resulting in loss of charge capacity.

If we leave the charger on until cells B1 to B3 are fully charged, cells B4 and B5 will be overcharged and heat up. Damage to the battery pack will happen very rapidly under these conditions. Cells B1 to B3 will suffer from deep discharges, while cells B4 to B5 will be damaged by overcharging and lose capacity due to memory effect. To prevent this problem with rechargeable batteries, an electronic motor controller is needed. The motorcontroller circuit in Figure 2 solves the problem of uneven charging and discharging of batteries while keeping the component cost down and adding current-limiting. Numerous motor controllers exist that could be used in this application, but these dedicated circuits may be too complex for simple motor-control applications, such as cordless drills, vacuum cleaners, power windows in cars, or other tools.

To keep component count to a minimum, the dc motor is driven directly by a PWM controller, U1, and a MOSFET (Q1). PWM controller U1 operates at 200 kHz. At this frequency, most small dc motors will have sufficient inductance to maintain continuous current through the motor windings, so there’s no need to filter the output of Q1. The dc motor will see an average voltage at the source of Q1 that’s proportional to the duty cycle:

VM = VIN * D

where VM is the average motor voltage, VIN is the input voltage coming from the battery pack, and D is the duty cycle set by the PWM controller U1.

The average motor voltage VM is adjusted by potentiometer R2:

where VR is the reference voltage of U1, which is equal to 1.19 V. With the value of R1 equal to 1.19k, the average motor voltage can be expressed as:

VM = R2 + 1.19

where the value of R2 is in kilohms and VM is in volts. Therefore, increasing R2 by 1k will increase the output voltage by 1 V. For example, an R2 value of 3k will result in an average motor voltage of 4.19 V.

Also, using the motor controller circuit shown in Figure 2 reduces the peak currents that the battery pack, the switch, and the motor itself must handle. As an example, we can look at the 6-V dc motor HC663-LGAD-10A from Johnson Co. The normal operating current, even under peak loads, is under 5 A for this motor. To survive the stalled conditions, however, the motor must be able to handle much higher currents. The motor has a 0.13-Ω winding resistance. A typical 6-V battery pack using C-size cells has an internal impedance of 0.1 Ω. When the motor is stalled, the peak current will reach:

Or, in our case:

where IM is the motor current, VB is the open-circuit battery voltage, RM is the motor winding resistance, and RB is the battery internal resistance. To handle the stalled condition, the motor windings, the switch, and the battery pack must be able to handle 26 A, even though the normal operating current is only 5 A (a 5:1 ratio). In terms of power dissipation, that’s a 25:1 ratio. The current of 26 A will produce 67 W of power dissipation in the battery pack and 87 W of power dissipation in the motor. It’s obvious that these small components can’t withstand this kind of dissipation for very long.

If the circuit in Figure 2 is used to control the motor, the peak current can be limited to the value set by the resistor RSENSE. The peak motor current will be limited to:

For an RSENSE of 0.033 Ω, the peak motor current will be 4.85 A.

The maximum battery current will be limited as well. The battery current may reach 95% of IM-PEAK because U1 can reach duty cycles up to 95%.

The maximum battery current under stalled conditions will be lower than the IM-PEAK. This is due to the average output voltage dropping to a low value in the stalled condition. The average motor voltage in the stalled condition will be:


In the case of the HC663-LGAD-10-A motor, the average motor voltage VM-STALL will be 1.15 V, and the input current will drop to:


For this HC663-LGAD-10A motor, the input current under stalled conditions will be only 0.9 A. This property is extremely beneficial because it prevents damage to the motor and batteries by high currents under stalled conditions.

The circuit in Figure 2 also is very efficient, requiring only a small amount of heat sinking. The motor control circuit for the dc motor used in our tests did not require heat sinks. Heat sinking provided by the printed circuit board was sufficient for currents up to 5 A. If much higher currents are required, the entire circuit could be implemented on Thermal-Clad material from Bergquist Co. Also, a MOSFET in a TO-220 package with a heat sink could be used. The MOSFET needs to be a logiclevel type with the RDS(ON) specified at 4.5 V or less.

Hide comments


  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.