I have created an H-bridge as shown in the schematic below. The PWM signal to the MOSFET driver is generated by a microcontroller running on 5 V. The MOSFETs are screwed to heat sinks.
To control the motor direction I set either one of the driver inputs to 0 and another driver input to PWM.
I am using a 10 kHz frequency for PWM.
For clockwise rotation, I use a 40% duty cycle PWM signal on IN1 and 0 V input on IN2. For anticlockwise rotation, I use a 20% duty cycle PWM signal on IN2 and 0 V input on IN1.
Now, in the code, I turn the motor clockwise for 1 second, Set both IN1 and IN2 0 for 50 ms for braking, and turn the motor anticlockwise for 1 second.
The circuit worked fine for 3 minutes, but later Q3 MOSFET was smoking first, and the other MOSFETS followed, and the motor was stuck at the braking condition.
MOSFETs don't get warm during normal operation. I don't understand what I am missing here. Even the frequency is not that high. The rise and fall times of the MOSFETs are at worst 150 ns according to the datasheet.
Am I missing a snubber circuit? If yes, how to properly design one?
Motor nominal current is 1.5 A and the stall current is 8 A.