New 60V 100A BLDC Controller

I have so many motor controller designs that I need to give them names, so I use MC + <driver type> + <Max Voltage> + <Max Current>. MC2P60V100A means 3-Phase, 60V (8-60V in this case) and 100A currents. The drawing below is an early draft.

 

I decided to use DRV8301 or DRV8302. These are dedicated 3-Phase gateways with build in current sensors, Gate drivers and a 5V DC/DC. It is rated 8V to 60V and as MOSFET’s are external we can basically create what we want. DRV8301 uses a SPI interface, while DRV8302 uses separate pin’s. I have written articles about DRV8301 before. The target is larger 12-60V motors like the ones below. I have set the target 100A continuous as I believe that is achievable, meaning I target up to 5KW motors. I do however consider making a separate controller and driver board so I can reuse the controller for different drivers.

I toy around with using STM32F303 or STM32F405, but I will also consider TI Piccolo if I can find a free, working toolchain solution. I have one of their kits with DRV8301 around, but their tool-chain is Code Composer that need (or needed) license. So I assume I will default to STM32 again, but I will see if I can get that dev-kit started.

This is an outrunner with max 60V and 85A. Capable of 5KW and support Hall Sensors.

This one comes in many variants, but it is a Large BLDC designer for drones. This is 24V and ca 40A at max, but I have seen them with higher effects.

 

MC4X15A Revision 1.1

The Half H-Bridge channels are working very well. I initially had some issues with IR2101 as I do not have pull-up’s. but moving to IR2103 this one have logic to prevent short-cut. This is however a weakness, so I need to add a pull-down resistor so I know the state of the MOSFET before the MCU starts. I will have a New batch of IRF7862 in a few days, this time from Arrow so I can continue testing.

The 0.33F Super-cap have proven it’s worth. It absorb spikes and keep the MCU alive for several seconds after a power down, giving us more than plenty time to detect power glitches.

It is a few mechanical things. I want to move on to micro JST connectors to save some space. It is also a bit tight between the screw connector and the Shunt’s, so I need an extra mm there. I am also looking into using a wired Shunt. I also need to change the drill holes to support the heat-sink I am using and I want to change how I mount capacitors.

The only remaining challenge is the high side current sensors and Hall Sensors. I might need 5V for both these as I move on. Current sensor is the main challenge. INA210 will only support 26V which is “ok” for this controller as we can limit it to 24V, but I would like a solution that is not so fiddly to put on and support higher voltages. I do however have a stack of INA210 so we can try these a bit more first.

This does however come at a trade-off as I have very little space available and INA210 is rather handy. As mentioned before I am doing high-side current sensor rather than the simpler low-side since this allows me to use each channel independently.

Returning to 5V I could actually replace the AMS1117-3.3 with SPX3819-5.0 and SPX3819-3.3. This is a SO23 package with 0.5A spec and I could use TPS54260 to increase input voltage to 60V and 2.5A for 12V. In fact I would like to change the design to become 60V or at least 48V, but MOSFET’s are limited to 30V.

IRF7862 from Arrow

Looking for a proper source for IRF7862 I realized that none of the sources on AliExpress have sold anything before. And checking Arrow I managed to get them cheaper from there at 0.59 USD each.

I also notice that Pololu makes a H-Bridge based on these they claim deliver 15A without heat-sink. I tested 7A pulsing for a few sec before it started heating up, so will be interesting testing a proper batch.

Again I need to stress that AliExpress is usually a reliable source, but I will double-check with Arrow from now on. But, lets see how this arrive and how I get slammed on P&P and MVA.

Burning MOSFET’s

I got a new batch with IRF7862 and added them to the controller. Had 2 channels with working dodgy ones and 2 channels With New MOSFET’s. Increased the Lab PSU to 24V @ 10A as I tested one of the old “good” channels, moved to one of the new ones assuming it would be safe for a few secs. It instantly maxed out current and took fire. This was testing without heat-sink on. 

I tested 4 sets that did not work, so started ohming the rest just to realize that these have a variation of 8MOhm, 10MOhm and 16MOhm – I have obviously received another factory reject.

The first clue was the packaging – the top picture is what I purchased and I picked expensive ones as well from what I assumed was a reliable seller. The second picture is what I actually received.

Actually had to use an old set with dodgy MOSFET’s that I believe is ok to verify that it was nothing wrong with the channel. This was a dissapointment and 16.- USD wasted, but well – new day tomorrow!

JK42BLS02- BLDC w/Hall Sensors

This one cost 32.- USD and is JK42BLS02 rated at 4000RPM, 24V and 10.6A in peaks. It also have Hall sensors and are perfect for testing my controller MC4X15A. This has similar dimensions to a Nema17, but mounting holes are located different. This was purchased for testing with MC4X15A as I needed a BLDC w/Hall and higher Ampere usage.

JY01 BLDC Controller

A JY01 based BLDC Controller cost < 10.- USD and can deliver 500W. They support 12-36V and 15A driving the motor using either Hall Sensors or BEMF. I bought one of these for testing and are quite impressed over what they have done. The Driver area for 3 phases is twice as large as my own with 4 phases, but they use TO220 MOSFET’s and include the Capacitors. They do not attempt Phase current sensors etc, but this design is a good, low cost alternative.

This first is a BEMF controlled one and do not support Hall Sensors.

This second have a few more connections allowing direct Hall Sensor input.

The “MCU” is JY01, a SO16 chip with datasheet only in Chinese and that cost ca 1.5 USD on AliExpress. This is a BLDC Controller on a Chip. It requires external Gate Drivers and MOSFET’s, but will take a simple interface and convert it to a Trapsoidal algorithm controlled by Hall Sensors or BEMF. These controllers are also 5V logic making them perfect for an AVR like Arduino.

The only thing you need to do with these JY01 Controllers are to mount them on a heat-sink. This is simple as the MOSFET’s lay on the back with the backside down – you just put it directly on the heat-sink with thermal isolation and use the corner screw holes to press it down. Obviously you also need to add connectors etc, but a bit of wiring and a simple Arduino Program will start spinning your motor.

I don’t have any plans using these myself, but I fancied testing and investigating their design. The size 42 x 63mm is decently small and the overall design is impressive taken into account how easy it is to use one of these boards.

MC4X3ACAN BLDC Controller – Annotated

These small, advanced controllers are a bit more work to route than you expect, but I managed to add two extra connectors as well.

  1. J1 – 4 pin 2.54 pitch connector with Power and CAN.
  2. 4x 2mm mounting holes.
  3. 60V to 3.3V DC/DC regulator TMS54060.
  4. Power Led.
  5. J6-Analogue or SPI connector.
  6. Status Led.
  7. DRV8313 with build in Gate Driver and MOSFET supporting 8-60V and 2.5A.
  8. J3-Motor and Hall Sensor connector.
  9. J4-Digital IO/UART Connector.
  10. J2-SWD Connector.
  11. STM32F303CB with 128Kb Flash, 40Kb SRAM. Full 32bit M3 Arm ticking at 72Mhz.
  12. CAN Tranceiver supporting SN65HVD233, but can also use SN65HVD230. 1Mbps and slope control as well as 3-state and programmable loopback (HVD233 only).
  13. J5 – optional 120 Ohm terminal resistor for CAN Network.
  14. Extra holes on power to add large capacitor needed for motors.

It will be around 2 months before I can work on this, but I should get a new batch of MOSFET’s for MC4X15A arriving any day allowing me to continue on this controller while I wait for this one.

MC3X3ACAN BLDC Controller

This is a 3D model of my new BLDC Controller “MC3X3ACAN”. 3X means 3 separate Half H-Bridge channels, 3A means 3 Ampere- it is actually 2.5A max with 3.5A in peaks. This design does not include current sensors, but I have Hall Sensors since this is my target and better for low speed applications. I decided to skip current sensors, supercap and serial memory to get size down. I would have needed ca 2 cm more for that. But, I am also aware that currents sensors are very difficult to use on small motors at low speed, so it’s not a big loss. The 3D model shows STM32F303CB, but I will double check that I also can use STM32F103CB/C8. I have never used F303 before as well, so this will be fun to test!

The size is 50mm x 20mm and I am happy about this knowing that this is a 60V design with hall sensors and all components on top-side. I am not fully finished as I need to squeeze in capacitor mounting holes at left + I would like a few extra IO ports on a JST Micro Connector.

I used CAN on this for a change, but the focus here is to test my DC/DC converter as well as DRV8313. The big win is that this has all components on top layer allowing me to use the bottom layer as ground plane. Yes I can do that regardless, but I try to avoid ground planes on component sides because I get short-cuts easier ase I hand-assembly these for now. Replacing CAN With RS485 will only need 2 extra resistors.

One option that will require a bit more space is to replace STM32 with ESP32 and test the Motor & Hall Interface on ESP32. That would be a cool device with full Wifi and fun to experiment with so I will find time to do it.

60V/3.3V DC/DC

This just show the routing of the TPS54060 based DC/DC. The upper picture show the actual routing, while the lower show the real PCB once I add the ground plane. I still lack a few details to connect ground to the ground-plane in cases where ground is on a blue (top) lane. In this case I actually want to order with and without ground plane to see the difference on noise. This design is for 0.5A. I would need a larger coil for 1.5A or 2.5A. The components here are 0603 mostly, so the DC/DC area is ca 15 x 15 mm only. Learning from previous mistakes I need to add a scope test point because testing the DC/DC is one of the main objectives with this design.

Two of the resistors decide what voltage I want out which can be anything from 0.8V to 57V. I used Reference values a bit adapted, but might need to experiment to find E96 values for specific voltages. I am typically interested in 3.3V, 5V and 12V designs. I will add a separate DC/DC breakout with larger coil before I order this.