...well I did anyway.
Honestly, if I had two Victor 883's lying around, I would use those. But I don't, and I'm not spending $300 on something I can make from scratch for less than that. I am done being a slave to IFI/Vex absurd pricing because they have no competition in their power-to-volume ratio. I can stuff MOSFETs into a small space too. In fact, it's what I do in my spare time anyway. The challenge:
- Using the same footprint as a Victor 883, make a MOSFET H-bridge controller that can handle 48V and 75A continuous.
- Run either on standard RC input or 0-5V analog throttle. Retain isolation between logic and power ground. (The Victors are optically isolated at the signal input.)
- Be less than $140, including board printing and components.
I took my inspiration from this:
The last time I wanted to directly rip off the footprint of an existing MOSFET and make my own cheaper, more easily serviced version was on the Cap Kart. The kart had just finished a week of blowing up giant MOSFET bricks from IXYS and I decided that if it were going to blow things up, they might as well be cheap and user-serviceable. It never blew this one up.
Here is the smaller H-bridge version, which I call the Victor 883107-7:
What's that blue thing?
The name comes from the monster IRFS3107-7 MOSFETs. In the world of MOSFETs, the IRFS3107-7 reigns supreme. If the IRF1405 is a high-end sports car, the IRFS3107-7 is the supercar that shouldn't rightfully exist. It has such massive current handling capability that the D2Pak surface mount package sprouted four extra legs to handle the source current. Let me put this another way: 0-gauge copper wire, which is the same diameter as this MOSFET, isn't rated for as much current.
Of course the 260A current rating is if you put the drain tab on an infinite heatsink held at a constant 25ºC blah blah blah. It can switch 75A no problem. With two FETs conducting in the H-bridge at any given time, the power dissipation from FET conduction at 75A is: 2*(75A)²*(2.1mΩ)=24W. There are also switching losses, but if I do the gate drive right, the power loss should be dominated by the conduction.
That's still a considerable amount of heat to get off the board. With only one square inch of on-board copper plane for sinking and natural convection, AN-994 suggests a thermal resistance of about 20ºC/W for a D2Pak. Since I'd have two sharing the load and have almost two square inches of copper, this gets split in half. But, my FETs would still be toast at anything above about 50A. (Still, 50A with no external heat sink...)
This is why I opted for bare boards with no soldermask. The heat transfer path is from the MOSFET drain tab to the board top copper layer, through a crapload of vias to the bottom copper layer, through thin silicone padding for isolation, and into an aluminum heat sink.
Heat transfer zone.
Normally, I would then need to worry about keeping the aluminum heat sink cool with some kind of fan. But for the most part my heat sinks are semi-infinite blocks of scooter/go-kart/robot chassis. And, as an added bonus, this one will employ direct 0ºC phase-change cooling (by virtue of being totally covered in snow). Hell, if the road's been salted, I might even try out eutectic cooling...
So I'm confident the 3107-7 won't fail under load, but unlike the Cap Kart's controller, this one has to have on-board logic. And the finally-resolved electrical noise issues of the 3ph 3.1 brushless controller are still fresh in my nightmares. I decided to take the safe way out, importing the completely isolated gate drive solution from the Cap Kart onto this board.
I do still love the IRS21844 gate drivers, but I just don't trust them quite as much as the optically-coupled HCPL-3120 when very high currents are required. It just gives me peace-of-mind to know that my microcontroller and logic are driving the equivalent of four LEDs, and are not in any way electrically connnected to the power circuit.
The original modular, isolated half-bridge from the Cap Kart went a step further by using floating 15V supplies everywhere. The benefit here was that both the gate drive supply and the logic supply were isolated from the power circuit, and from each other. Also, by providing a floating 15V supply for the high side drive, it could be held on at 100% throttle. But, the floating supplies are really freaking expensive. In this newer version, I've opted to use just one floating supply (DCR021205) to isolate the logic's 5V, a trick a stole from the latest 3ph 3.1 upgrade. As for the gate drive, for the first time, I'm trying out bootstrapping with the optocoupled gate drivers:
Diode D4 charges the high side's bootstrap capacitor C6 while the low side is on. Then, when the high side needs to turn on, C6 charges the MOSFET gate while D4 blocks the reverse voltage. This is a pretty common trick for gate drive, and I'm really not sure why I never considered it for the optocoupled gate drivers. The only downside is that you can't get 100% throttle. The low side must be switched on in order for the bootstrap capacitor to recharge. But 95% throttle should be possible.
There's also a bit of a game to play to make sure that the high side gate driver does not go into under voltage lock-out (UVLO). The HCPL's will shut down at 11V. There's a bit of a voltage drop between the high side supply and the bootstrap capacitor because of the Schottky diode. There's also a bit of a drop on the other side because of the voltage drop across the low-side FET. Then, the capacitor loses some voltage as it charges up the MOSFET gate. And finally, it loses some more as it slowly drains through the gate's pull-down resistor. So, forget about using a 12V gate drive supply. 15V is a much better bet. Unfortunately, this means the controller won't run on a 12V battery...oh well.
My favorite thing about the optocoupled gate drive solution is how PWM dead-time is generated. Dead-time is required between turning off one FET and turning on the other. This ensures that two adjacent FETs are not on at the same time, which would short the power supply and cause instant destruction. Here, the optocoupler LEDs are wired in anti-parallel, so that they can't physically be on at the same time. Additionally, an RC filter on the input ensures that it takes some time to switch from 1.5V to -1.5V, turning one LED off and then the other on. The details of how to size the passives for a given dead-time are in the original write-up. Here's what the dead-time looks like in action:
Because these are such massive FETs, they take a good microsecond to turn on and off with 30-ohm gate resistors. I could push harder, since the gate drivers themselves can source/sink as much as 2A peak. But, as I found out in one of my many other controller troubleshooting sessions, slowing down the gate drive a little can sometimes help clean up noise. I chose a capacitor (C10 above) to set the dead-time to 1.5μs, which is what you see above.
Aside from the fact that I soldered four out of six diodes in backwards the first time, the controller so far seems to work. I've only tested on the bench supply, but it was able to drive about 25A before alligator clips started melting. Once I get it hooked up properly to a battery, I'll be able to really load test it.
Here's what it looks like side-by-side with a Victor 883:
"But, you said you made yet another controller because you didn't have any Victor 883s."
This one's not mine, okay? I borrowed it for the photo. Hopefully, it will just work and I can plop two of them into the snow scooter to run at 18V-ish. But in general, I'd be glad to have a Victor alternative for other projects as well. If it survives some more abuse testing, I'll post the design files so you can try it out yourself. For now, here's the full schematic:
(Click for full resolution image.)
Oh, and it runs on an Arduino. Did I forget to mention that? My bad.