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
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.
Half-bridge
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
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 a 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.
Conclusion
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.
Thank you a lot for your time and have a nice day !