Question is with regards to a DC motor controller built around an Allegro A4940 and four discrete FETs.

There are at least four possible strategies for driving the FETs, and I'm struggling to understand if any one of them is the accepted "right" way or if the best choice depends on circumstances. The options I can see are:

  1. Turn on the low-side FET to select direction, and PWM the corresponding high-side FET to set speed. Opposite pair are off.
  2. Similar to #1, but PWMing both, instead of the low-side just being held on.
  3. Similar to #2, but with the low-side and high-side FETs taking turns switching off, instead of both doing so (so, PWM out of phase).
  4. PWM back and forth between opposite pairs, varying the ratio depending on the commanded speed (so, like a class-D amplifier).

Option #1 seems like the simplest. Are there efficiency or heat dissipation reasons to go with #2 or #3.

Option #4 seems wasteful and unnecessary if you don't need the precise control for audio.

Thoughts, or pointers to resources on this?


1 Answer 1


I did some more reading. It looks like the optimal is #1, but with a complementary PWM output used to switch on the high side's low FET during the OFF time. This is synchronous rectification, and it is more efficient because the windings are connected to a lower resistance during the off period.

Details can be found in the user manual for TI's Black Jaguar motor controller.


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.