I have an H-bridge I am driving with an Arduino Mega. The motors I am driving are fairly large, steady state 48 watts, maximum 300 watts. I am driving them at 16 volts and a switching frequency to the H-bridge of 30Hz (The lowest the Mega will go.) As I try to increase the switching frequency of the PWM for the H-bridge, the motors seam to lose more and more power the higher the switching frequency. I suspect this is due to the impedance of the motor increasing with the switching frequency of the bridge.


Can anyone help me to understand if I need to add capacitors to the H-bridge outputs to smooth out the current pulses to reduce the motor impedance?

Also at work we are driving the same motors at 20kHz right now and they are having no issues, so I am confused as to what I am missing.

  • 2
    \$\begingroup\$ Driving the h bridge directly from GPIO pins would result in slow switching and eventually not fully conducting transistors. Can you determine if the transistors turn fully on at 20 kHz ? \$\endgroup\$
    – tobalt
    Mar 31, 2021 at 6:31
  • \$\begingroup\$ Is it a brushless or brushed DC motor? raising PWM frequency on a brushed DC only raises heat dissipation (both in the driver and in the motor itself due to eddies), it shouldn't make it lose torque in that way. 30Hz is a little low, 20kHz is somewhat high for that size but doable. Are you using proper gate drivers? that could be the issue \$\endgroup\$ Mar 31, 2021 at 6:55
  • \$\begingroup\$ PWM is a combination of multiple frequencies. The higher frequencies should be attenuated by the motor, i.e. it should smooth out the signal, but the DC component, i.e. average voltage, should still get through. \$\endgroup\$
    – user253751
    Mar 31, 2021 at 8:42

1 Answer 1


Something is wrong with your setup. Higher PWM doesn't influence the working as you describe. Keep in mind that fundamental frequency (in case you use three phase BLDC) would have such impact, not the PWM frequency.

Certainly you don't want to install capacitors on the output of H-bridge as you would overload the transistors. The analogy with power supply, when capacitors are used to smooth the voltage ripple, with motor driver we use chokes to smooth the current ripple. As you said that you have a quite large DC motor, then it already have a large inductance.

The issue is probably related to incorrect driving signals sequence.


Compare the board with issues and the one without it. At first look, I can see that it has upper P-MOSFET and lower N-MOSFET with only two inputs, thus each one for FWD or BKW. Without a gate driver IC, it can be difficult to have a short turn on/off time, so at higher frequencies the H-bridge (specially the upper P-MOSFETs) begin to heat or cross-conduct through the lower N-MOSFET. The commercial says 0-10kHz, so I wonder if it's capable up to 100Hz for sure not 20kHz.


An isolated board capable of 20kHz PWM should have:

  • fast optocouplers or other fast digital signal isolator IC, with separate inputs for each MOSFET (and MCU does the dead time) / or a gate driver IC with the ability to set the dead time (this prevents cros-conduction upper to lower)
  • gate driver IC that drives 4 N-ch MOSFETs, with bootstrap circuit (cheaper version) to supply the upper stage of the gate driver - NOTE: you can't drive such bridge with 100% duty cycle time.

Source of the image

enter image description here

  • \$\begingroup\$ I see, after doing some research, it looks like the DC motor impedance wont change all that much with frequency as low as 20KHz, but more so the issue is in the H-bridge or the signal to the H-bridge. \$\endgroup\$
    – Will Paris
    Mar 31, 2021 at 5:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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