# Voltage spikes when driving DC motor with N-channel MOSFET

I'm trying to drive a DC motor (12V, 100W) with MOSFET IRFP054N. PWM frequency is 25 kHz. Here's the schematic:

I know DSEI120-12A is not the best diode for this but I don't have any better right now. 3A Schottky diodes, which I also tried, get hot very fast.

Here are scope waveforms (A = MOSFET drain (blue), B = gate drive (red)):

Smaller duty cycle:

I'm getting a voltage spike at MOSFET turn-off which lasts about 150 ns and has an amplitude of max. 60 V. The amplitude stays whether I increase duty cycle, voltage, or load on the motor. The width of the spike depends on the load on motor (probably depends on current).

I've tried:

• Increasing gate resistor to 57Ω for slower MOSFET turn-off.
• Adding Schkottky diodes (SR3100, 3A) across motor and MOSFET.
• Putting various capacitors across DC link and motor. This sometimes helps when operating with low duty cycle and low voltage, but when power is increased spike is present again.

None of this things helps to completely eliminate the spike. Interesting thing: the spike doesn't destroy the MOSFET (since it's rated for 55 V), but I would like to do this driver correctly.

I'm looking for suggestions of what else to try, and why this spike is limited to 60 V.

Update: I think 1 mF electrolytic cap couldn't absorb the energy spike from the motor. Now I've added a 2.2 uF film capacitor on 12V line, 200 nF ceramic cap on the motor, and 100 nF ceramic cap across MOSFET.

This helped to lower the spike although now I get ringing at turn off - probably need to improve snubber on MOSFET. But the voltage amplitude is much lower (30 - 40 V at load).

• how are you measuring the data? That's not really the problem though. Have you heard of a Snubber circuit? It can reduce this inductive "ringing", but in general this behaviour looks very strange, the clamping diodes should be stopping the 60V spike. Dec 13, 2014 at 13:28
• Try putting a diode in the same way as your other diodes, parallel across the FET. In theory it's only going to act as a Ground/negative clamp, but it might help.. Dec 13, 2014 at 13:39
• Take a look at the 12V rail while this is happening. You may need better high frequency decoupling on it. Dec 13, 2014 at 14:13
• "Fully Avalanche Rated" Well that's why your MOSFET doesn't just instantly die. Dec 13, 2014 at 14:29
• "I think 1 mF electrolytic cap couldn't absorb the energy spike from the motor" The cap never see's the energy spike from the motor. You have a freewheel diode to commutate the current & the cap doesn't play a part in it. It does at turn-on in providing initial charge. Your additional caps have "mitigated" the issue
– user16222
Dec 15, 2014 at 21:11

It seems to me that what you need is a voltage snubber across the MOSFET. An easy way to do that is to simply connect a series capacitor + resistor across the MOSFET. I'd guesstimate that a value of about 2.7 nF (about 3x capacitance of the MOSFET) and resistor of 100 $$\\Omega\$$ would be about right.

This ancient application note describes the various kinds of snubber circuits, including when and how to use them. You might find some inspiration there.

Try putting one Schottky diode right at the motor, then another one right across the leads to the motor where they leave the PCB.

It also helps to make sure your supply is well bypassed at high frequencies. Put a ceramic cap across the supply close to where the feed to the motor is. At your voltage, that could be 10 µF or so.

Don't put a cap across the FET, and keep the cap across the motor small and put it physically close to the motor. I wouldn't use more than 1 nF or so.

This appears to be a classic case of stray inductance & device matching .

# Stray Inductance

Let me re-draw your circuit to help explain the point.

simulate this circuit – Schematic created using CircuitLab

I am going to make a reasonable assumption that the AC comes from the mains via an isolated transformer & thus you can safely ground the DC- (at the cap). If this isn't the case you have some other concerns to deal with as well.

Accepting this reasonable assuption Stray1 & Stray2 can be ignored.

This leaves Stray3, Stray4 and Stray5

Each one of these will contribute to the initial overshoot you are seeing. Such an overshoot is to be expected as you are force-commutating an inductive load. and while some is to be expected, it MUST be managed to keep the peak below the voltage rating of the device (voltage rating at the die).

Now some of it will be an artifact during measurement. Take Stray4,5 If you clip your scope probe onto the EARTH that is at the capacitor, this stray inductance will contribute to the voltage you are seeing as you start to commutate the load inductance.

You start to cut off the current flow through the FET and thus V = Ldi/dt will produce some voltage. Immediately what you are measuring is no longer the true device voltage.

Now you may state you had clipped the GND of the scope onto the leg of the FET, well even then there will be some strays so what you are seeing may not be the true voltage of the device.

On the topic of Stray4,5 it is these stray inductances, usually due to poor layout, that are the main cause of voltage overshoots at turn-off. You are attempting to interrupt the current flow through them by turning the FET off, yet they do not have a path to commutate via. As such they will attempt to keep the current flowing through the FET.

Stray6 along with a slow (relative to the FET switching) will equally impede the commutation of the load current and as such again result in increase Drain-Source potential.

Stray3 will appear as a oscillation on the voltage going into the power circuit.

# Seconary Ringing

in both of your plots you can see some secondary ringing. There are a number of causes for this

1. Inadequate gate drive. If the drive capability is quite weak (or alot of inductance in the gate leads) it will not be able to hold the device off that well and the charge that will flow due to the millar capacitance will attempt to turn the device on -> osc
2. Stray5 and Stray6 will oscilate as energy exchanges between the commutation paths
3. If the FET is alot faster & snappier compared to the diode then you can cause switching oscillations that are aggravated by Stray5 and Stray6

Solutions?

1. Check you layout! short, thick tracks, maybe even lamina to minimise inductance. Keep the distance between the DIODE and the FET to a minimum!
2. IF your GateDrive is weak, improve it
3. IF your GateDrive is strong, consider increasing your gate resistor to slow the switching down
4. IF that still fails, consider a snubber across the FET to mitigate the problem.