I am designing an H-Bridge for my arduino board to control a dc motor with PWM signals. I have a few issues with my design:

There is a spike current of 120A the first miliseconds of my simulation and then cools down as it is expected. Where does it come from and how do I fix it?

Also, how do I calculate the current I am getting through the motor based on Vcc?

Is there anything I have not taken in mind for my design?

enter image description here enter image description here enter image description here

  • \$\begingroup\$ I would guess that current spike is due to charging of that capacitor. \$\endgroup\$ – Hearth Feb 4 at 0:16
  • \$\begingroup\$ This design is not workable for a bunch of reasons, including the fact that you can never turn the PFET's off with a 5v or 3v3 MCU and the lack of shoot-through protection. You should probably use an IC bridge or a circuit designed by someone aware of these issues if you need higher current than an IC bridge can handle. \$\endgroup\$ – Chris Stratton Feb 4 at 0:30
  • \$\begingroup\$ @ChrisStratton Could you point out how I can solve these issues? I do want to design it myself because my goal is to learn something by doing it, not just get it done with an IC from the shop. \$\endgroup\$ – atkristin Feb 4 at 0:48
  • \$\begingroup\$ Speaking ONLY of the spike, if you add a realistic series resistance to your power supply, it will likely reduce the spike to an acceptable level. \$\endgroup\$ – mkeith Feb 4 at 1:49
  • \$\begingroup\$ Typical way to do this would be with a dedicated H-bridge driver or two half-bridge drivers. Depending on the voltage, and switching frequency, etc, you MIGHT be able to do it with high-voltage logic. But you need to build in some dead time to avoid shoot-through. \$\endgroup\$ – mkeith Feb 4 at 1:51

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.