Freewheeling Mosfet PWM Appoach - Page 1
Forum section: electronics / general

author: Rerouter
author_rank: Super Contributor
timestamp: October 09, 2016, 12:10:06 pm
content: I've made up a 112A brushed motor driver, and after detonating a few freewheeling diodes, I made a matching active freewheel driver for the motor to reduce the power dissipated, however i am left with how to drive the pair without causing some fun if they both turn on at the same time,I see that most cheap micro's have a feature called "phase correct PWM" and to me it sounds like if I inverted one pin, and made the freewheel a few counts higher than the main PWM, it should always respect the dead time in hardware, Am i on the right track, or am i going to release some more smoke?QuoteAnd just to cover any kind of X / Y problems, attached is my schematic, the parts are what i had on hand, and i would think its overkill, but i could be wrong

author: nctnico
author_rank: Super Contributor
timestamp: October 09, 2016, 12:42:56 pm
content: How about using a H bridge and let the motor dump the energy back into the supply or something like that? A freewheeling diode basically shorts the motor so no wonder it explodes and causes the motor to heat up.

author: bktemp
author_rank: Super Contributor
timestamp: October 09, 2016, 12:50:27 pm
content: Quote from: nctnico on October 09, 2016, 12:42:56 pmA freewheeling diode only shorts the motor winding as long as current is flowing due to the inductance of the winding (typically a few miliseconds). When the current is zero the diode stops conducting and the voltage goes negative because of the back-EMF. When the freewheeling diode explodes, the current was too high or the diode too slow.A H-bridge is only neccessary if you want to reverse the motor. Otherwise a half bridge is fine. Its frequency must be high enough (>1kHz) otherwise the back-EMF generates a high negative current in the freewheeling mosfet.I would reduce R7/R8 quite a lot (1k) to speed up switching. Otherwise turn off will be delayed for quite some time (>1us), requiring a huge deadtime. I would also replace Q5/6/7/8 with something less powerfull for faster switching (BC547/557/337/327). R13/14 are probably not necessary, also R9/11.

author: Circlotron
author_rank: Super Contributor
timestamp: October 09, 2016, 01:33:34 pm
content: The body diode of the freewheeling mosfets is made of many thousands of cells in parallel. If just one of these cells has slow reverse recovery you will pop it and the mosfet will be short circuit. Much simpler and easier at this low voltage level to use a Schottky diode with a suitable current rating.

author: Bruce Abbott
author_rank: Frequent Contributor
timestamp: October 09, 2016, 04:32:30 pm
content: The IRF1405 is rated for 20Vabsolute maximumbetween Gate and Source. You are driving it with 20V. This is not a good idea.Rather than trying to 'roll your own' gate drivers, I would use a half-bridge driver IC such as the IR2103. This uses a bootstrap circuit to provide the correct Gate drive without needing a high voltage supply.QuoteYou are on the right track - just make sure that there is sufficient deadband to ensure that each FET is fully off before the other one turns on (andnochance of both being turned on at once at startup or during a software failure!).The upper FET has a body diode that covers the deadband gap during freewheeling, but you could also add an external Schottky diode to reduce stress on the FET and improve efficiency.QuoteIn your circuit there is only one FET switching power to the motor. But the IRF1405 is only rated for 75A max. This not a 112A motor driver. 20A would be a more realistic rating.

author: Jeroen3
author_rank: Super Contributor
timestamp: October 12, 2016, 01:34:14 pm
content: You can't do pwm 100 Amps in a to-220.Buy an IGBT or Mosfet module that you mount on a proper heatsink. SeeSemikronsemitop for example.You'll need ~3x overspec with natural convection. Maybe 2 with forced convection.

author: Bruce Abbott
author_rank: Frequent Contributor
timestamp: October 12, 2016, 07:49:22 pm
content: Quote from: Jeroen3 on October 12, 2016, 01:34:14 pmSure you can - just need to put a few of them in parallel.QuoteIGBTs have higher voltage drop, which makes them less suitable for low voltage applications. Any module that can handle over 100A is likely to be more expensive than a few paralleled FETs - and alotmore expensive when you start blowing them up!QuoteAgreed, or better yet ignore the ratings and choose devices with lower loss so they don't get hot.My 'rule of thumb' for low voltage motor controllers is to keep voltage drop below 0.1V using low RDSon devices (in parallel if necessary) in packages that can stay cool without oversized heat sinks. That way I get high efficiency, great overload capability, excellent reliability and a compact layout. I would rather put 4 FETs in parallel than one FET with a massive heatsink and forced air cooling.

author: nuno
author_rank: Frequent Contributor
timestamp: October 12, 2016, 08:06:10 pm
content: A few of those uC also have what's called a "dead band generator", that you can use to set how much time goes after one signal goes down and its complementary goes up and vice-versa. Phase correct PWM isn't related to this, it has other properties.2 end-stages with power BJTs to drive that MOS looks overkill to me. Knowing how many A are you switching, in how much time do you want to switch and at what PWM frequency may shed some light on the choices. In your circuit you're most probably missing power supply capacitance. And maybe motor current limiting.

author: Rerouter
author_rank: Super Contributor
timestamp: October 13, 2016, 08:25:54 am
content: To clarify, 112A stall current, so just needed something that would survive the stall, while running its closer to 33A,The PWM frequency is 16Khz,The 2 stage transistor stage was to limit the idle power draw, while trying to get the most out of the transistors without exceeding there base current spec (thats why the 220 Ohm resistor),I agree a dedicated driver would have done a far nicer job, but i wanted to build one then and there, and those where what i had on hand, (didnt want the project to die while waiting until next weekend)The PNP pullup suggestion helped greatly, now the heating is mostly gone, I found a 400A (peak) diode bridge that i am currently using as freewheeling diode while i tweak in the active driver, (vf is slightly less than the mosfet)I reduced the gate driver to 19.6V, and everything still seems fine, it has a small power supply for that rail located on the same PCB.Sadly the micros i have on hand make no mention of a deadband feature in the PWM, would you have some example models?The supply capacitance is 120uF, Its a 12V 180A switchmode power supply with current foldback (Solar battery bank charger that i salvaged)

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 13, 2016, 10:53:06 am
content: Ew, cascaded emitter followers... and what's up with the funky mismatched resistors?A good driver doesn't need to "fix it in software"; this might work, for instance.Tim

author: nuno
author_rank: Frequent Contributor
timestamp: October 13, 2016, 01:49:53 pm
content: Quote from: Rerouter on October 13, 2016, 08:25:54 amThat's a reason to have current limiting. How much time do you have to handle 112A, and how much time will your controller handle it? Also, when you'r PWM'ing 112A, unless the switching times are slow (say > 1us) you'll see huge transient inductive spikes at nodes in the power stage, which can destroy your FETs.Quote from: RerouterATiny25/45/85. It's actually called "dead time generator", sorry.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: October 14, 2016, 06:22:37 am
content: Quote from: nuno on October 13, 2016, 01:49:53 pmDing.If you had designed the controller, from the start, to becurrent mode controlled, such a situation would bemanifestly impossible, because there is no such thing as overcurrent, to a current mode controller: it simply delivers whatever current it is commanded to!Or if you did, but you designed it so that the input range exceeds the capability of the rest of the circuit, well, that's your own fault...Tim