I am working on a circuit that include a H-bridge for a DC brushed motor. I am having problem when the system might run for a short period of time (5s) before the Micro-controller stop responding. I am suspecting that the noise from the motor is causing the corruption on I2C line or brownout due to voltage swing. Further inspection, I can see that the swing in the 12V rail is shown in all 3V and 5V rails. I don't know why and how would I isolate this swing to just the 12V rail or reduce the swing peak-peak?

System description:

  • Single GND, all power from a 12V battery that can handle 10A peak
  • 12V ->5V buck regulator (47uF output cap) to step down voltage for micro-controller board Vin
  • 5V-> 3.3V (unsure value of output cap) linear regulator for uC IC
  • 470uF bulk cap + 0.1uF ceramic cap next to H-bridge driver, there is 3 more 470uF caps at further distance
  • Low power DC motor (1A at normal operation, ~3.6A starting)
  • H-bridge control is just on/off, no PWM Motor set up

GND of Oscilloscope is at common GND point (where the battery is plugged in)

When measuring the voltage at the leg of the H-bridge capacitor, motor turn on give make the 12V voltage swing above and below 12V. Voltage across the 12V cap Voltage across the 12V cap

Voltage at 3.3V linear output Voltage at 3.3V linear output

Voltage at 5V buck output Voltage at 5V buck output

  • \$\begingroup\$ You have a very bad buck converters. First you have to eliminate the cap on the motor, or add additional series chokes on connection wires. \$\endgroup\$ Commented Dec 17, 2020 at 10:34
  • \$\begingroup\$ That possibly suggests poor earthing practice. Use the 12V battery -ve (or a short fat cable from the H bridge to it) as a star earth point. \$\endgroup\$
    – user16324
    Commented Dec 17, 2020 at 12:21
  • \$\begingroup\$ I have tried to change the GND to star config, as well as T-config like Andy, has suggested. Both don't work. So I tried to add diode at 5V input, doesn't work noise went through 5V and 3.3V. So I search around and add x2 0.1uF caps between motor terminals to the case, noise on the 12V drop from 10% pk-pk, to 1%pk-pk. This makes the noise fall below my scope trigger for 5V and 3.3V. All sensor and uC work as expected now! \$\endgroup\$
    – Bao Ng
    Commented Dec 20, 2020 at 21:26
  • \$\begingroup\$ Running the motor for 3 hours to reshape the brushes also help a lot with the noise. \$\endgroup\$
    – Bao Ng
    Commented Dec 20, 2020 at 21:27

1 Answer 1


Try "holding up" the voltage input to your buck regulator using this method and see if it improves things: -

enter image description here

Also try putting 1 kohm resistors in series with the control lines feeding the H bridge.

You should also ensure that the only connection to your battery negative terminal goes directly to the H-bridge 0 volt connection. The rest of your control circuit and regulators tee-off their ground from the H-bridge 0 volt connection that the battery feeds. This avoids ground bounce.

  • \$\begingroup\$ I have tried but only the diode changes the peak-peak a bit. Turn out adding a 0.1uF cap between the motor case and motor terminal works the best. Thank you \$\endgroup\$
    – Bao Ng
    Commented Dec 20, 2020 at 21:28

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.