This is a simplified motor control circuit and shows the switching scheme used in our 4QD series full bridge [aka H bridge] motor controllers.
So, for forward drive, Hi 1 would be permanently on, Hi2 off, Lo1 off and Lo2 on, maybe chopped in PWM mode. If PWM is used, then, when Lo2 is off, motor current will still need to keep flowing in the same direction, forced to do so by the motor’s inductance, and it will use Hi2 as a ‘flywheel’ diode as shown by the dark green arrow B. It matters not a lot whether the hiside MOSFET is turned on during the flywheel period: if it is on, then resistive losses apply rather than the diode drop that would cause more rather more loss.
Reverse drive then is similar, with Hi2 permanently on, Lo1 chopping and Hi 1 flywheeling. Red (C) and orange (D) arrows apply.
So – what about regenerative braking? Given the facts that you will probably want to PWM switch the lo-side transistors and that current monitoring is easiest done in the loside MOSFETs, consider forward regen braking. Forward drive current is the green arrow, A. So during forward braking the current is reversed with respect to this. In forward drive, the left hand end of the motor is positive (it was connected to battery + by a turned-on Hi1). In forward braking, the motor’s back emf is of the same polarity as for forward drive (as the motor is rotating in the same direction), but the current must be reversed (blue arrow). So the left end of the motor will still be positive. So we must permanently turn on Lo2, shorting the RH side of the motor to battery negative and we must chop Lo1 on and off with the PWM signal. That way Lo1 is still working with positive voltages and currents, making it easier to think about and easier to use for current sensing and current limiting. If Lo 1 is chopping then, when it is off, motor inductive energy will still cause current to flow and it will want to flywheel through Hi1 (remember, Lo2 is on full-time) back into the battery, giving the regeneration (reverse of current arrow A).
For the reverse direction, when braking we need to turn Lo1 on full-time and chop Lo2.
You may also realise from the above that, provided you don’t get the timing totally wrong, so that Hi 1 and Lo 1 (or Hi2 and Lo2 for that matter) are on at the same time, it matters not a lot what you chop and what you don’t – the flywheel current will always find somewhere safe to re-circulate.
Of course the scheme shown here does require that you sense when the motor back emf is greater than the required speed, i.e. when the motor should start regenerating, and change the state of the bridge to do that. Other schemes are possible, but they (probably) all involve active hi-side switching if you require regenerative braking. So this scheme is the method we used in our first full-bridge controller, the 4QD series. Although it is now an old design, it is still very successful and very reliable – if a little complicated. Simpler designs require a little more lateral thought, combined with chopped hi-sides and a certain amount of cunning in arranging the regenerative current limits.
There is more detail on motor control circuits on our sister site 4qdtec.com.