I'm designing a motor controller for a 3-phase BLDC motor. I'm using following components:

  • Gate driver - IR2184
  • MOSFET - IRF540N

The complete circuitry and output waveforms are available here.

I have developed circuitry on a PCB as you can see in figure 1 in the link given.

With a resistive load I have perfect BLDC commutation waveforms that I can observe, and that are clear from figure 3 in the link.

But when I use same circuitry for the BLDC hub motor with following specs:

  • Power 250 W
  • Rated voltage 36 V
  • Max current limit 10 A
  • Motor load - No load, motor is running free on a mounting

From figure 4 it is clear that circuit is not behaving as expected with an inductive load as the motor coils do not have any other path to release magnetic energy than the body diodes of the MOSFETs. A snubber seems a solution to this problem. I have googled for 3-phase inverter snubber design but I could not find material specifically targeting 3-phase inverter snubber design.

Could I get some direction in the design of a snubber for a 3-phase inverter?

  • 1
    \$\begingroup\$ "motor coils do not have a path to release magnetic energy" - not true. The FET body diodes should provide a path. Your motor waveforms are a mess. Would it be possible expand the time scale and synchronize to the PWM so we can see the nature of the spikes? \$\endgroup\$ Mar 27, 2017 at 7:51
  • \$\begingroup\$ Hi @BruceAbbott, thanks for correcting me, I've updated question. Nice idea, I'll capture waveforms and I'll report the results here for further ideas. \$\endgroup\$ Mar 27, 2017 at 15:47
  • \$\begingroup\$ Hi @BruceAbbott, I have updated images as per your suggestion in the last comment. You can find it here imgur.com/a/fmLn5 .Figures 5,6 are for resistive load (Phase, HO, LO, PWM singls) and figures 7,8,9 are with motor itself w/o any snubber circuitry. I did not see any improvement with RC snubber as well as in I observed same magnitude of spikes. Please provide your insight on this one. \$\endgroup\$ Mar 28, 2017 at 13:04
  • \$\begingroup\$ There is an enormous amount of high frequency hash in your waveforms - even on the 5V PWM signal - which is not motor back-emf. What does the PWM signal look like at the Arduino - it is clean? What do you see across the power supply? What do you get with the motor connected but not running? Show us a photo of your setup. \$\endgroup\$ Mar 28, 2017 at 15:36
  • \$\begingroup\$ Hi @BruceAbbott, I have updated PWM signal at Arduino without external circuitry and it has small ringing at the PWM switching instants but that is not a problem as at no load and resistive load we see clear commutation waveforms. Power supply is clean without inductive load and it also has smaller ringing with inductive load. I can drive inductive for long otherwise it will burn my MOSFETs or even driver IC. With motor connected but not running, I do not observe any ringing or fluctuations. Setup photo and pure Arduino PWM is updated here imgur.com/a/fmLn5 . (1/2) \$\endgroup\$ Mar 29, 2017 at 10:04

2 Answers 2


Firstly, try to mount RC snubber in parallel with transistors. You can choose values experimentally (f.e. 1k resistor, 1nF capacitor). It's difficult to calculate correct values (probably you don't have data about circuit inductance). Please note to apply resistor with correct power (depend on frequency, capacitor value and switching current) and capacitor with appropriate withstand voltage (including spikes).

http://www.cde.com/resources/catalogs/igbtAPPguide.pdf http://www.illinoiscapacitor.com/pdf/Papers/RC_snubber.pdf

  • \$\begingroup\$ thank you for your answer, I'll try RC snubber in parallel with both high-side and low-side mosfets at each phase. Also, how would you recommend RCD should be connected for such circuitry? \$\endgroup\$ Mar 27, 2017 at 6:29
  • \$\begingroup\$ I think RC will be better here to reduce voltage supression. Also you can use RCD if better efficiency is needed. \$\endgroup\$
    – Fasset
    Mar 27, 2017 at 9:17
  • \$\begingroup\$ (there will be no dissipation energy /resistance/ of voltage spike when turn-off so there will be less effect for reducing spike). \$\endgroup\$
    – Fasset
    Mar 27, 2017 at 9:24
  • \$\begingroup\$ Thanks again @Fasset, I'll try out this with my circuit and report the results here. \$\endgroup\$ Mar 27, 2017 at 15:48
  • \$\begingroup\$ Hi @Fasset, I have connected snubber according to the quick step design in the cde document and I did not observe any improvement in the output with inductive load. I connected RC of 270Ohm 2W, 1nF and then 0.1uF across all six switches in the 3 phase inverter. But the magnitude of spikes remained same for both the caps values. What could possibly wrong. Resistor was carbon film resistor and capacitor is ceramic capacitor. I'll again try mica caps of higher values but please suggest your views. More updated results are here imgur.com/a/fmLn5 . \$\endgroup\$ Mar 28, 2017 at 13:09

Be aware of magnetic field from the motor itself! If the motor is placed as in mentioned picture, then it could create some induction on traces of the PCB or in probes.

Also connect the ground clamps from all Oscilloscope probes nearby the MOSFET driver. And prevent any other grounding loops arround the probes - i.e. dont connect the ground from other probe to the power source ground on site of the power source itself :-).

Make stronger decoupling on the output stage power lines.

Start te measurement with small amount of PWM - like 1%. Windings without the rotor can take more currnet and therefore stronger spikes. It's like runnig the motor on braked axle. Windigs therefore acts like mechanical short circuited motor - so it's like pumping the electric power into short circuited load.

Unconnect the probes from the motor and check if power source is not overloaded - if all power lines are free from spikes.

Also take a special care of propper grounding - on PCB and even on wires going out from the board

  • all grounds should meet at one point / arrea - best place is under the mosfet drivers where low voltage signals from controller are converted to high curent, high voltage signal to the output stage - best is grounding plane.
  • all wires between the MOSFET drivers and the FETs should be as short as possible!
  • All decoupling cappacitors - especially for the output stage should be placed as close as possible nearby the FETs. And traces between them should be thick and not create any loops - especially on the ground wires - also as mentioned - ground plane is best way to elliminate any spikes on the ground wires, which could create unwanted behavior (like oscillation in worst case) arround gate and source pin.

Check if your controller board maintain propper dead time for the output stage.


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.