Jeremy Harris
100 MW
I've been working for a while (very slowly, due to other distractions) on a simple, no frills, BLDC controller, using an off-the-shelf linear BLDC controller chip. Today I managed to put some more time into it, and have knocked up the first prototype circuit board lay out.
Here's the circuit, pretty much a direct copy of the datasheet one, albeit with a different FET driver arrangement:
I've made up a PCB using the 'iron on laser toner' method. I've used this in the past for one-offs, but always for small boards. This was the first time I'd tried a board of this size (6" x 3.6"). I used cheap Staples inkjet glossy photo paper in an old laser printer (had to fiddle the settings for it to print on the coated paper) with this result:
This was then ironed on to the copper side of the board, using an ordinary domestic iron set to it's highest temperature. The result is that the toner melts on to the copper and forms a nice resist coating. The next stage is to soak the paper off, which leaves the ready-to-etch circuit hoard looking like this (sorry for the crappy photo, no natural light today (freezing fog outside) so had to use flash):
Here's a view of the component layout side of the board:
The board is etching in ferric chloride solution right now, so I should get it trimmed up and ready to drill later in the afternoon.
The basic specs are:
Maximum voltage - 75V for the prototype due to the FET limitations. The FETs could be changed for IRFP4468s for 100V. The board already has 100V capacitors.
Maximum current - 120A, 'programmable' in 20amp steps from 20A to 120A by adding/removing one or more of the 6 paralleled shunt resistors (1 shunt = 20A, 6 shunts = 120A)
PWM frequency = ~22kHz, but can easily be changed by changing a couple of component values
Maximum commutation frequency - not known, but as it's not limited by any code it should be much faster than any of the motors we use would ever need.
Features:
Cycle-by-cycle current limiting, meaning that the FETs will be protected from over-current by the controller quickly reducing the PWM duty cycle on the fly.
On-the-fly reversing - no need to close throttle, switch direction and then re-open the throttle. This could be handy for anyone wanting to build a retro-direct two speed gearbox
TO247 FETs (IRFP4368s), with a low Rdson (1.85mohm max), high current capability (195A package, 350A silicon) and good thermal properties (0.53 degC/W junction to heatsink)
Single sided PCB that can be a DIY job (no narrow tracks, big pads and just a handful of wire jumpers on the top surface)
The eagle-eyed will have spotted an extra chip on the board, an MC33039. This provides optional closed-loop speed control. The controllers we normally use run open loop, which creates part of the odd throttle response we have (the situation where the throttle is opened to pull away, only for us to then find it's a bit much, so we have to close it, ending up with a bit of manual throttle jiggling to keep going at a constant speed). With this closed loop option (it can be disabled by shorting the 1M resistor across pins 10 and 11 of the MC33033) the controller will always try and run the motor at the speed commanded by the throttle setting, automatically increasing or decreasing torque to overcome changes in load. I'm hoping that this might make the throttle feel a bit better. It's not torque control, but might be as user-friendly in effect. It should allow good low speed controllability, I hope, time will tell.
What it doesn't have:
It doesn't have any battery pack low voltage cut-off, anti-theft alarms or cruise control. It doesn't have any ebrake connections either, although these could be added fairly easily using the chip 'output enable' line (currently grounded via a 4k7 resistor).
It doesn't run any code, therefore can't be re-programmed to do other things - it's pretty much as basic a BLDC controller as it's possible to build.
It doesn't have an on-board 12V supply, it uses 12V from the DC DC converter that I already have for the rest of the bikes systems.
With luck I should be able to do some basic testing in the next week or two, if the parts I'm waiting for make it in time (the weather here in the UK is pretty vile and causing all sorts of disruption).
For the cognescenti, I'm using a total of 12 off, 220uF, 100V, Rubicon ZL capacitors across the main bus, mixed with a handful of 0.1uF 100V ceramics fitted adjacent to each pair of FETs. The copper power and phase traces on the board will be beefed up by adding 18g copper sheet fitted upright, like fences, on the bottom of the board, as I've done on the small Xiechangs. The power and phase connections are going to be made from soldered in copper posts, threaded to take eye terminals - I'm fed up with struggling to solder fat cables to PCBs.
I'll update this thread as soon as I get more done on the controller. The hope is to use the basic building block to drive the big Ixys FETs I have at some stage, but I'm starting off with something more modest.
Jeremy
(edited to correct small error in circuit diagram)
Here's the circuit, pretty much a direct copy of the datasheet one, albeit with a different FET driver arrangement:
I've made up a PCB using the 'iron on laser toner' method. I've used this in the past for one-offs, but always for small boards. This was the first time I'd tried a board of this size (6" x 3.6"). I used cheap Staples inkjet glossy photo paper in an old laser printer (had to fiddle the settings for it to print on the coated paper) with this result:
This was then ironed on to the copper side of the board, using an ordinary domestic iron set to it's highest temperature. The result is that the toner melts on to the copper and forms a nice resist coating. The next stage is to soak the paper off, which leaves the ready-to-etch circuit hoard looking like this (sorry for the crappy photo, no natural light today (freezing fog outside) so had to use flash):
Here's a view of the component layout side of the board:
The board is etching in ferric chloride solution right now, so I should get it trimmed up and ready to drill later in the afternoon.
The basic specs are:
Maximum voltage - 75V for the prototype due to the FET limitations. The FETs could be changed for IRFP4468s for 100V. The board already has 100V capacitors.
Maximum current - 120A, 'programmable' in 20amp steps from 20A to 120A by adding/removing one or more of the 6 paralleled shunt resistors (1 shunt = 20A, 6 shunts = 120A)
PWM frequency = ~22kHz, but can easily be changed by changing a couple of component values
Maximum commutation frequency - not known, but as it's not limited by any code it should be much faster than any of the motors we use would ever need.
Features:
Cycle-by-cycle current limiting, meaning that the FETs will be protected from over-current by the controller quickly reducing the PWM duty cycle on the fly.
On-the-fly reversing - no need to close throttle, switch direction and then re-open the throttle. This could be handy for anyone wanting to build a retro-direct two speed gearbox
TO247 FETs (IRFP4368s), with a low Rdson (1.85mohm max), high current capability (195A package, 350A silicon) and good thermal properties (0.53 degC/W junction to heatsink)
Single sided PCB that can be a DIY job (no narrow tracks, big pads and just a handful of wire jumpers on the top surface)
The eagle-eyed will have spotted an extra chip on the board, an MC33039. This provides optional closed-loop speed control. The controllers we normally use run open loop, which creates part of the odd throttle response we have (the situation where the throttle is opened to pull away, only for us to then find it's a bit much, so we have to close it, ending up with a bit of manual throttle jiggling to keep going at a constant speed). With this closed loop option (it can be disabled by shorting the 1M resistor across pins 10 and 11 of the MC33033) the controller will always try and run the motor at the speed commanded by the throttle setting, automatically increasing or decreasing torque to overcome changes in load. I'm hoping that this might make the throttle feel a bit better. It's not torque control, but might be as user-friendly in effect. It should allow good low speed controllability, I hope, time will tell.
What it doesn't have:
It doesn't have any battery pack low voltage cut-off, anti-theft alarms or cruise control. It doesn't have any ebrake connections either, although these could be added fairly easily using the chip 'output enable' line (currently grounded via a 4k7 resistor).
It doesn't run any code, therefore can't be re-programmed to do other things - it's pretty much as basic a BLDC controller as it's possible to build.
It doesn't have an on-board 12V supply, it uses 12V from the DC DC converter that I already have for the rest of the bikes systems.
With luck I should be able to do some basic testing in the next week or two, if the parts I'm waiting for make it in time (the weather here in the UK is pretty vile and causing all sorts of disruption).
For the cognescenti, I'm using a total of 12 off, 220uF, 100V, Rubicon ZL capacitors across the main bus, mixed with a handful of 0.1uF 100V ceramics fitted adjacent to each pair of FETs. The copper power and phase traces on the board will be beefed up by adding 18g copper sheet fitted upright, like fences, on the bottom of the board, as I've done on the small Xiechangs. The power and phase connections are going to be made from soldered in copper posts, threaded to take eye terminals - I'm fed up with struggling to solder fat cables to PCBs.
I'll update this thread as soon as I get more done on the controller. The hope is to use the basic building block to drive the big Ixys FETs I have at some stage, but I'm starting off with something more modest.
Jeremy
(edited to correct small error in circuit diagram)