Electronic – BLDC controller PCB problem

brushless-dc-motormotor controllerpcb-design

I am designing a BLDC motor controller circuit on my own.

My BLDC motor ( Chinese motor) is 1kw with a hall sensor and my own controller spec is 1kw,48v, and 30A.

My controller circuit is working fine in a breadboard and dot board using a basic running program
without load condition.

After PCB fabrication, we used that PCB it's not worked properly.

It seems my program is good, but some problems in PCB designing method for the controller.

I will list my problems below,

  1. First, I give power supply of low voltage (12v) to PCB and its works fine with low RPM

  2. After achieved MAX voltage 48v, my microcontroller is totally shutdown and restart again.

Finally, everything is working fine in the dot board but not working properly in PCB.

Anybody, suggest to me for any solution..Thanks in advance…

For dot board using dip components and PCB using SMD components ..it is the only difference between two boards..no circuit changes in both boards… I have attached PCB top and bottom layout images link

https://drive.google.com/file/d/16Uc1cxBVntGvoIVNmZq42yVkoka9LSe6/view?usp=sharing

https://drive.google.com/file/d/1_4SZBrsR8X5_vp-OHbwVBBvNUk6h6OkP/view?usp=sharing

Best Answer

I only have one question for you:

Where is your ground plane?!

Of course your microcontroller is resetting. You don't have anything that can even be identified as ground. The poor microcontroller appears to be connected through the thinnest, needlessly long traces to a maybe a single decoupling capacitor that is too far away anyway, and that capacitor isn't connected to ground or anything else any better than the microcontroller is.

Your controller is resetting because, for all intents and purposes, it isn't even really grounded. This is powering a motor that sounds like it can peak at 2 horsepower, and that is almost entirely in the form of a inductive load, one split between several phases (coils), and worse, it is switching at kHz or more with fast rise times (I would guess).

And as the current voltage increases, you lose anything that one could call ground. Ground is a reference potential for the entire circuit, but to keep different parts of a circuit at the same potential, you need a good low impedance connection. If you don't then every part of the board that you intended to be ground will be at a different potential. There are currents flowing, and in your case, a lot of current, and that causes a voltage drop between different parts of the board just from the resistance of the traces. But in your case, there is also a lot of impedance that will compound the problem even more whenever there is a current or voltage transient. Which is all the time, since you're switching a lot of power all the time to control that motor.

You need as close to a solid ground plane as you can underneath the microcontroller, without any traces breaking it up. Them be sure to isolate it such that it makes exactly one low impedance connection to where ever the ground/negative wire or connection on your board is, then route all the high current power traces and grounds so they will not need to ever pass through the ground plane underneath your microcontroller.

And give that poor thing more decoupling capacitors, put them as close as physically possible (if you have a gap between the courtyard boxes of the microcontroller and capacitor's footprints, then they're too far apart), give it some bulk capacitance in the form of a small tantalum (the higher ESR actually acts as a snubber and will clean up the power a bit more). After doing that, your board stands a good chance of working since it seems to be right on the edge of working already. But you should read up on PCB layout, especially in the context of power switching and that sort of thing. You probably have some pretty nasty ringing transients which can potentially blow your switching elements if they're MOSFETs.

Working does not necessarily mean robust, especially when it comes to inductive loads like brushless motors. If you're going to do some dynamic tests by loading the motor, you might want to wear eye protection just in case. I've seen a 555 timer go off like a fire cracker, leaving nothing but the DIP pins sticking up from the board, flapping in the breeze where the body of the chip used to be, just because there was a small inductive load involved.

1kW is more power than you think, err on the side of caution until you know nothing on your board will vent unexpectedly (it happens to the best of us).