July 4, 2018

Thermal Testing

With the various layout errors on the last set of boards fixed, the controller seems to work as expected, so I've been doing some thermal testing.

I strapped the controller to a much bigger motor:  Even with the old version of the controller, the small motors I've been using would catch on fire before the controller does. 

Here it is attached to a T-motor U12:

The test setup, with the motor and controller in view of Bayley's thermal camera

For the first tests, I put the test current on the d-axis, and 2A on the q-axis just to get the motor spinning. 

Originally, I had a 0.5mm layer of thermal pad between the board and an aluminum heatspreader and aluminum motor mount beneath.

At 15 amps, basically nothing happened.  I made the passives for the buck converter and the 3.3V linear regulator much smaller on this board, so it was good to see that they're doing fine.

At 20 A you could start to see the FETS getting warm. 

And here's 30A.  I only let this one run for around 30 seconds.  The FETs in the middle of the board are noticeably hotter than those by the edges, which I partially blame on poor contact with the thermal pad.  Since the screws are at the edges of the board, the board flexes when they are tightened, and all the clamping pressure is at the corners.  Also interesting, it looks like the trace from the source of the FET in the bottom right corner is getting pretty warm.  The hole for the mounting screw makes the phase polygon pretty narrow there.  I should be able to fix that by adding a row of vias from the source legs to the internal phase layer (which I should have added before).  These boards only have 1 oz copper on top and bottom, and 1.5 oz internal layers.  

And the plots.  With this setup, I wouldn't be comfortable running the controller at 30A continuous.

I switched out the thermal pad for a layer of kapton tape for electrical insulation, and some thermal paste.  Contact in the middle was still not great, but overall it was a lot better than the thermal pad.

Performance was greatly improved, but there's still a ~7 degree C difference between the hottest and coldest FETs.  Furthermore, in the middle of the board, the low-side FETs are several degrees hotter than the high-side FETs - traces  Sp3 and Sp2 respectively on the plot below:

It looks like with this setup, the controller can handle around 30A continuously.  I'm pretty satisfied with that, but I think the performance would be substantially improved by adding an aluminum cover over the motor controller which firmly pressed against the row of FETS, to get good contact on the bottom of the board.  The cover would also serve as a top-side heatsink, which is surprisingly effective with this FET package, as there's only ~0.3mm of plastic above the copper clip on top of the die (I sanded one down to measure).

I've been using these 3.3 mOhm fets, which I like because they're cheap and have only 50 nC gate charge, so they don't stress the DRV chip switching at 40 kHz.  I swapped out the FETs for the 1.4 mOhm flavor, since I had a bunch of them lying around.  These have ~half the resistance, but about twice the gate charge, so twice the switching loss.  It works out slighly favorably in this case (for currents above around 20A) - I expect around 10% less dissipation per-fet at 30A.

Here's 30A on the 1.4 mOhm FETs.  Check out how much hotter the DRV chip gets, doing twice the gate drive work.  ~10 C hotter than before.  There are actually lots of better transistors available now, even for similar price, so I can get power dissipation down around 15-20% further.

To make the tests a bit more stressful, I put the motor on the dyno so I could actually get some power into and out of it.  I made a new motor mounting plate which doesn't cover up the controller:

This time, I put all 30A on the Q-axis, and ramped up the speed until the achievable current just started to drop off (which is the maximum power point for this motor).  At 22V on the bus, I was able to put 500 watts in and get 400 back out.  I let everything cook for a while to get up to temperature.  The only noticeable difference was that the DC link wires were roasting.  The 16 AWG is not really meant for 23A DC + ripple current in continuous duty.  Going into this test, I was a little worried about how the ceramic DC link capacitors would handle the current ripple, since there's only 60 uF on the board, but they didn't get any hotter.

To see where all the temperature drop was coming from, I got a side-view of the heatspreader and motor mount assembly.  Point Sp3 is on the side of the motor mount, point Sp2 is on the side of the heatspreader, Sp1 is the hot FET, and Sp4 and 5 are the cooler FETs.  This is after running for several minutes continuously at 30 A

The heatspreader, motor mount, and the back of the motor were all within a couple degrees of each other, with all the temperature drop happening between the FETs and the heatspreader.

With an estimated power dissipation of 1 watt per FET at 30A, this gives a thermal resistance of 12 C/watt between the transistor and the heatspreader for the cooler FET, and 17 for the hot one.  

Here's a sketched cross section of the 3 different FET layouts on the board, and why I think the low-side FETs with shunts get so much warmer than the others (in addition to the poor clamping at the middle of the board).

First, the high-side FETs, which are the coolest.  Labeled stack-up on the left, main heat conduction path on the right.  The vias beneath the drain tab go straight into the big V+ plane on the bottom, which is copper, so super thermally conductive in the plane.  This effectively increases the area which conducts through to the heatspreader.

The low-side FET without the shunt, which was much cooler than the other two, looks like this:  It has a bunch of vias from the source pins straight into the ground plane, in addition to the vias beneath the drain tab.  The source pins are part of a monolithic copper sheet ("clip") which sandwiches the top of the die, so they can very effectively sink heat away from the die.

And finally the low-side FETs with shunts, which get kind of screwed, with no big plane beneath them, and a shunt attached to the source pins:

One way to help out those FETs might be to add some extra heat-sinking planes on the bottom of the board, like this:

But more importantly than trying to tweak the board layout to slightly improve the thermal performance, where is all the thermal resistance coming from in the first place?

According to the FET datasheet, the package to base thermal resistance is around 1.2 C/W.  

I got in touch with PCBWay, and their via plating thickness is 18-22 microns, independent of the copper plating thickness. According to the Via calculator, the resistance of the patch of drain vias should be 4.6 C/W.

There's also a layer of 1 mil Kapton tape, electrically insulating the heatspreader.   But the total thickness of the tape, including the adhesive, is 3 mil, or 75 microns.  The 5x5m mpatch under each FET has the thermal resistance of around 6.5 C/W.  

Ignoring the thermal paste, that's up to 12.3 C/W, which is right in line with the results from the thermal camera.

So the Kapton is the biggest culprit here.  I'd like to try using a hard-anodized aluminum heatspreader with no additional electrical insulation. The hard anodized coating is only 0.5-1 W/m*k, but it can be very thin. 

The next biggest resistance source is the vias.  The PCBWay via plating thickness corresponds to a little over 1/2 oz, but I could probably do better with some other PCB manufacturer.

Also worth noting, all these tests were with no airflow over the controller.  Pointing a good blower at the back dropped the temperatures by around 20C.

Next hardware steps:  wait for AMS position sensors and DRV8323RS chips to come back in stock, design a FET-clamping cover, and experiment a bit more with heatsinking.