I feel like I'm on the verge of finally wrapping my head around half-bridge PWM DC-motor driving/regenerative braking. I will show 3 circuits and explain what I've understood about each of them relative to PWM DC-motor driving. Please feel free to correct anything that I say and give me further explanations.

The DC-motor is decomposed into V1 and L1, and the load is BAT1 (for the purpose of regenerative braking). I chose to show the body diodes of the MOSFETs. I also chose to hide the RC snubber across the motor and other dampening elements.

DC-DC boost converter

enter image description here

When M1 is off (PWM high), current will flow from the motor to the battery only if V1 + V(L1) is greater than V(BAT1). To achieve that, L1 is charged when M1 is on (PWM low) by running current through it, so that when the PWM is back to high, V1 + V(L1) > V(BAT1) and current flows to the battery (given that the PWM frequency is correctly chosen). In this configuration, BAT1 cannot drive the motor because of D1. C1 is used to make the output voltage smoother.


enter image description here

A half-bridge configuration is a boost converter configuration where the diode is replaced by a second MOSFET that is turned on when the PWM is high. This allows the battery, in addition to the regular boost converter action, to drive the motor when its voltage is higher (normal driving of the motor). In this configuration, the boost converter action is the regenerative braking. This configuration requires a floating supply or a bootstrap action driver IC to drive the gate of M2 because its source is not at ground potential.

Third circuit

enter image description here

This is a follow-up to my previous question on the same subject (MOSFET driver blows out in half-bridge DC motor PWM controller). This circuit was kindly suggested to me by user @EdinFifić. The Schottky diode D4 is optional (but pretty much mandatory) and, along with an RC snubber, is used to suppress the back-emf voltage spikes on MOSFET switching so that the MOSFET M3 doesn't get destroyed by high voltage across its drain and source.

This circuit is not capable of boost converter action (and therefore regenerative braking), because when M3 is off (PWM low), no current flows through L1 as it is blocked by D4. Therefore, the battery will only get recharged (through Schottky diode D6) if V1 > V(BAT1), which is unlikely to happen unless the battery is deeply discharged. We miss the V(L1) component that we had in the boost converter configurations.


In order to have regenerative braking while still being able to normally drive the motor using the battery, it is required to have two switching elements (MOSFETs in this case). This cannot be achieved using only one MOSFET.

Please tell me if everything I said above is correct/relevant/accurate, and feel free to correct me if I'm wrong.

  • 2
    \$\begingroup\$ That is correct. \$\endgroup\$ Commented May 6, 2023 at 15:19
  • \$\begingroup\$ (Nit: in the third circuit, current through L1 is not blocked by D4 which isn't in series to L1. On the contrary, D4 allows the current in L1 to continue to flow when M3 switches off.) \$\endgroup\$
    – greybeard
    Commented May 11, 2023 at 5:19

1 Answer 1


It is possible that you are unable to "wrap your head around" this concept because you understand it too well! As you dive deeper, you are seeing the complexity of designing an efficient and practical regenerative brake.

Consider a motor driving an inertial load that you want to stop or slow down. You are spinning away, and you apply a pulse to short the windings. Your inertial load is large enough so that it cannot be stopped on this single, short pulse, so the motor current rises quickly. During the pulse, the load is decelerated, and the high current, combined with the voltage drops of swictching elements, winding resistance, and (most importantly) your brushes, represents power that is dissipated as heat in these devices. This energy does work in stopping the inertial load, but it is lost to heat. None of it makes it to your battery.

However, a portion of the energy from the slowing motor is stored in the motor's inductive component, so when you release the short, a voltage spike occurs that can exceed your battery voltage. For the short period of this spike, some energy can indeed be returned to the power line, and the bulk capacitor and / or battery will get some charge. Using a snubber protects the FETS but defeats the purpose, as the snubber resistor reduces the peak voltage by dissipating the spike's energy as heat - the very energy that you want to capture. The high voltage and current are hard on your brushes, especially if you happen to be commutating phases when this occurs. After this inductive spike, the motor quickly reverts to its back emf value, which by definition is lower than the supply voltage. So you have a short, relatively high energy spike whose voltage and current are not ideal for charging a battery, but may damage your FETs or cause arcing in your brushes.

In theory, you could use the same approach with a brush motor as is used in regenerative brakes in permanent magnet vehicles: use a separate braking controller to commutate the generator output to achieve the desired braking current, store the energy, then boost it to a voltage appopriate for charging your battery. A "reservior" capacitor bank or ultra-capacitor is sometimes used as an intermediate storage device. The idea is to brake the motor within its normal operating current, and brake it by directly increasing energy to your reservoir by using the reservoir as your generator load rather than by shorting out the generator. This will keep you from putting strain on your motor and switching components.

Good luck!

  • \$\begingroup\$ Thanks a lot for your answer ! This is way deeper than I would've expected. So what you're suggesting is to use two parallel circuits : a "drive circuit", consisting of a regular half-bridge or even a single mosfet driven by pwm ; and a "brake circuit", consisting of a very large capacitance that can accept large energy spikes from the motor (acting as generator). So, whenever I want to brake, the motor leads are commutated from the drive to the brake circuit, effectively dumping its energy in the capacititance while braking the motor because of the large initial current of capacitor charging. \$\endgroup\$
    – Solmyr999
    Commented May 9, 2023 at 14:23
  • \$\begingroup\$ The capacitance then discharges in a boost converter that can safely charge the battery at a constant voltage/current. I have a question though : wouldn't the braking be too brutal if I were to commutate a spinning motor to an empty capacitor bank ? Or this would need to be pwm controlled as well ? So in total this would make three pwm controls : one for the driving circuit, another for the braking and one last for the boost converter between the capacitor bank and the battery. \$\endgroup\$
    – Solmyr999
    Commented May 9, 2023 at 14:28
  • \$\begingroup\$ Would you have papers/documentation that you'd recommend on this topic ? I'm really interested in the design of those circuits. Thank you again for your time ! \$\endgroup\$
    – Solmyr999
    Commented May 9, 2023 at 14:38
  • 2
    \$\begingroup\$ I've never seen one of these with a brush motor, but in brushless motors the braking is done with PWM and the duty cycle changes with shaft position, similar to an FOC-type motor controller. But if I was going to try, I would try commutation, controlling the current. The stopping torque will be proportional to current. \$\endgroup\$ Commented May 9, 2023 at 18:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.