# PWM brushed DC motor noise

I am driving a brushed DC motor (internal to a linear actuator) with a TI DRV8872 motor driver. I am PWMing the motor driver at 20 kHz and varying the duty cycle to control the speed.

The problem is that the motor driver output lines are very noisy on the edge transitions and this noise is getting into the rest of my board; see scope capture of the motor driver input (pink) and motor driver output (blue).

As you can see, the output is not a nice square wave but has weird behavior on the edges.

I tested other brushed DC motors with the exact same setup and did not see this at all. In fact, it was a perfect square wave as expected. So from that, I was able to conclude that my driver setup was correct and the problem was related to the brushed DC motor load (inside of the linear actuator).

I took apart the linear actuator and noticed that the specific one I was using had three 0.1 μF capacitors soldered to it (one inbetween the motor terminals and one from each terminal to ground). As I understand, this is commonly done to prevent the arcing of the brushes from causing noise. The other ones did not have these capacitors. Once I removed the capacitors, everything worked as expected, so it seems the capacitors are causing issues with the PWM drive.

However, since the capacitors are internal to the linear actuator and the company says they are necessary for CE compliance, I can't remove them. My questions are:

1. Why/how are the capacitors causing this weird behavior in the first place? Shouldn't the capacitors actually help by providing a source of energy for the current to quickly pull from?
2. Why do none of the other linear actuators have capacitors, but are somehow still CE compliant?
3. Is there any way I can work around this to PWM-drive the brushed DC motor?
• Schematic please... Aug 19, 2019 at 21:08
• This is work for my company so I prefer not to post the schematic. The motor driver is an H-bridge and the outputs go straight to the motor. I have sufficient bulk capacitance for the motor driver as well (33uF, 10uF, 2.2uF, and 100nF). Aug 19, 2019 at 22:46
• What is the normal operating current and stall current of the motor? What value sense resistor are you using? Aug 20, 2019 at 1:32
• Stall current is 1.5A and normal operating current is around 0.5A (changes depending on the duty cycle). Currently for testing purposes I am not using a sense resistor and just tying to ground. Aug 20, 2019 at 22:24
• This is an old Q&A but I thought I might add that this behavior may be during the dead time between transitions, where the motor is generating voltage into the capacitors. It might be improved by shortening dead time or increasing rise/fall time for the MOSFETs or IGBTs. But that might not be possible for this driver. Jul 22, 2022 at 21:09

1. It is normal, because $$\i_c=C\dfrac{du_c}{dt}\$$. You are doing PWM, so $$\\dfrac{du}{dt}\$$ is very high and the current spikes go to infinity.

2. Not an expert here, but I do think it has nothing to do with CE.

3. You can install additional chokes on both lines to limit $$\\dfrac{di}{dt}\$$ You can use also a common mode choke that will turn into differential mode if you connect forward and return wires. It has to provide 1% to 3% voltage drop, but you should use a function generator to check for resonance. The PWN frequency have to stay below the resonance frequency.

EDIT:

A rough calculation gives me a two very tiny inductors in range of 2 to 5 micro henries. Without a motor connected, omitting the cable capacitance, then supposing you have 2 x 2.2uH and those three caps of 0.1uF you get:

• Equivalent capacitance 0.1uF + 0.1uF/2= 0.15uF
• Equvalent inductance 2 x 2.2uH = 4.4uH

$$f_r=\dfrac{1}{2\pi\sqrt{LC}} = \dfrac{1}{2\pi\sqrt{0.15\cdot 4.4\cdot 10^{-12}}}$$ $$f_r\approx 196 kHz$$

The resonance frequency does not need to be very far away from your PWM frequency, 30kHz would be good enough.

Doing tests you can protect the motor/cable/caps/driver from overvoltage with fast diodes. This will prevent the oscillations building high voltages.

simulate this circuit – Schematic created using CircuitLab

• The capacitors do decrease the EMI, and CE does care about EMI, so it's plausible that the capacitors are required for CE Aug 19, 2019 at 23:00
• How would I size the choke? I tried using an inductor on each line, which got rid of the spikes, but created oscillation. Also sorry if this is a silly question, but what is the difference between a choke, inductor, and ferrite bead? Aug 19, 2019 at 23:08
• Ferrite bead is a small thing, inductor can be various sizes, the choke is usually related as something bigger with iron core. A choke is an inductor, if you want to call it this way. Aug 19, 2019 at 23:11
• So how would I size the choke? With 20khz as the PWM frequency, should I choose the resonant frequency to be 2MHz? And then solve for f = 1/(2*pi*sqrt(LC)) ? Aug 20, 2019 at 0:16
• @GraceMa I might be wrong saying 1 to 3% voltage drop- this relates to three phase fundamental frequency, threfore a larger inductor can be placed. Larger = better, you could start to put two 50 uH. If you have a function generator in hands, you could find a reonance of motor+caps, then you do calculate the new resonance point with inductors. It's the only way if you want to keep the capacitors in place. Also make sure the inductor does not saturate. Aug 21, 2019 at 6:41

just saw this, I'll add my comments. what you are seeing is normal for a brushed motor and is due to the brushes + inductance of the motor armature. If the motor was wire brushes, these make the most 'noise'. Carbon brushes are best and will wear in over time so the spikes will get lower as they wear in.

The caps are a "cheap" way of getting around the CE police. They are only really concerned with emi that occurs at higher frequencies, so the caps do nothing at lower frequency pwm drive.

The normal, tried and true solution is to use a motor snubber circuit which is simply a cap and resistor in series across the motor. A good starting point is .15uf and 2.2 ohms. Make sure you use a film cap rated at least 4X the motor drive voltage. You can tweak these values empirically to lower the spikes, you may never get rid of them. Resistor should be non-inductive, carbon comp is best here..old school.