Triode
Well-Known Member
I was going to ask this as a question but I found the answer, so I thought instead I'd share what I learned in case other people didn't realize this.
If you are driving a half bridge, or push-pull output with a PWM signal you need to insert a dead time. I've just been making a brushless motor driver and my first attempt exploded. What I'd built was very basic, based on this type of design.
I used IRF840 mosfets rated for 500V, 8A, 125W. My test unit was a 12V brushless RC airplane motor, and my power supply was an 11.1V battery. I won't get into the code in detail, but I had it running PWM to the three phases with a trapezoidal pattern. I figured a really basic start would be good. I had checked the resistance and the switching time to make sure the frequency wouldn't have it spending too much time non-saturated. I hit run and my board went *pop* *pop* sqeeeeeeeeee *fizz* The picture below shows what I failed to account for. (still not sure what that "squeeee" came from)
I had the PWM running in a complimentary mode, simultaneously switching the bridges for each phase. So when the high side turns off the low side switches on instantly. I had realized that switching time meant that I couldn't use too high of a PWM frequency, but I forgot that it meant if I switched high off and low on and the same instant that while the high side transistor is ramping down, and the low side is ramping up, the two will overlap, connecting your positive supply partially to your ground.
So in my case, after a lot of searching, I happened to find this concern in a tutorial on building a digital audio amplifier. I updated my code to have a gap between the high and low side PWM signal slightly greater than the (rise time)+(fall time) of my transistor, and the motor turned without even heating up the transistors.
*feel free to correct my explanation of this (or my whole solution if I'm wrong), I'm still not an expert in this stuff
If you are driving a half bridge, or push-pull output with a PWM signal you need to insert a dead time. I've just been making a brushless motor driver and my first attempt exploded. What I'd built was very basic, based on this type of design.

I used IRF840 mosfets rated for 500V, 8A, 125W. My test unit was a 12V brushless RC airplane motor, and my power supply was an 11.1V battery. I won't get into the code in detail, but I had it running PWM to the three phases with a trapezoidal pattern. I figured a really basic start would be good. I had checked the resistance and the switching time to make sure the frequency wouldn't have it spending too much time non-saturated. I hit run and my board went *pop* *pop* sqeeeeeeeeee *fizz* The picture below shows what I failed to account for. (still not sure what that "squeeee" came from)
I had the PWM running in a complimentary mode, simultaneously switching the bridges for each phase. So when the high side turns off the low side switches on instantly. I had realized that switching time meant that I couldn't use too high of a PWM frequency, but I forgot that it meant if I switched high off and low on and the same instant that while the high side transistor is ramping down, and the low side is ramping up, the two will overlap, connecting your positive supply partially to your ground.
So in my case, after a lot of searching, I happened to find this concern in a tutorial on building a digital audio amplifier. I updated my code to have a gap between the high and low side PWM signal slightly greater than the (rise time)+(fall time) of my transistor, and the motor turned without even heating up the transistors.
*feel free to correct my explanation of this (or my whole solution if I'm wrong), I'm still not an expert in this stuff
Last edited: