high power/high speed BLDC controller build

actually i think im going to stick to the analog method. if i use the ADC then im not really gonna have enough time to do much else like current limiting and throttle emasurement, i could but id only get like one current sample per commutation. the analog comparators will allow for much higher commutation speed, and its only goign to take a single quad comparator package and some resistors. ive decided to not put any power stuff on the pcb, ill just have the control circuitry with logic level outputs for the phase PWM signals. this makes the design more modular and will make changing the power stuff like fet drivers and fets easier and i wont have to redesign the main pcb. maybe ill start on the scematic tonight.
 
i just threw this together, ill probably look it over for a couple days and make sure i didnt make any mistakes, i used the 4th comparator on the LM339 to impliment a hard current limit, when it goes over the hard limit the PWM output of the MCU is pulled low turning off all FETs. if i made the soft current limit 100A, then i would make the hard limit 150A, its just incase something goes wrong it will probably save stuff from blowing up.

that resistor on the battery + is to make a low pass filter to make sure no spikes get through and mess anything up. this is gonna be a pain to route the PCB.
 

Attachments

  • bmc.jpg
    139.3 KB · Views: 1,305
PCB layout is done, ill have to tweak it a little. this took literally ALL day, i dont like this part of circuit design.
 

Attachments

  • bmc.png
    43.7 KB · Views: 1,506
Check twice, etch once.

I'm not really sure about your shunt amplifier. The voltage on the low side of the shunt is going to be at ground and some amplifiers aren't happy that close to the rail. I didn't look up the datasheet for the amp you specified. If it has an input range that goes below zero a bit, then you should be OK. In other designs, I've seen dividers to bring the input voltages up enough that cheap (not rail-to-rail) op amps will work.
 
the OPA340 can handle down to 0V and a bit negative, i also used the same exact circuit in the brushed controller and it worked great, they are really good. i dont plan on doing any regen. i just got the motor so ill take some pics and post it.
 

Attachments

  • 100_0129.jpg
    229.5 KB · Views: 1,725
oh yea the specs, its 12 tooth 14 pole. im not worried about mounting it, i have all the tools to build another mount for my bike that it will fit on. im more worried about the controller right now. ill have to rig something up out of wood to mount the motor on for testing the controller once i build it. anyone have any ideas of how i could test it without risking high price fets and drivers? fets can be gotten cheap enough but the drivers arent very cheap, especially if i ruin them in testing. are there any easy no driver solutions? it wont have to handle large currents for testing, i just need to make sure the backemf detection and crap works.
 
dirty_d said:
anyone have any ideas of how i could test it without risking high price fets and drivers? fets can be gotten cheap enough but the drivers arent very cheap, especially if i ruin them in testing. are there any easy no driver solutions? it wont have to handle large currents for testing, i just need to make sure the backemf detection and crap works.

Use a current limited power supply. Pretty hard to blow things up with the current set low enough.

If you don't have access to one, I'd recommend some kind of fast acting limiter in series with your supply.
 
ok, hmm i think this motor is Delta wound, i dont see any soldered connection on the inside for the star connection, i could be wrong though. delta or Y wound wouldnt change anything in the controller right? delta seems kinda confusing because then there is no undrven coil.

i dont quite understand how Delta even works good at all, the idea is to have current through 2 coils and none through the third, with delta you get a lot of current through 1 coil and half the current through the other two coils. i dont get how that can be good, maybe someone can enlighten me.
 
The controller doesn't care if it is Delta or Wye terminated. It only affects the KV value, and thus the back emf.
 
i guess i can test it if i rig up my other brushed motor controller to two phases, if tehre is one set of teeth with a strong field and two sets with a weak field, its delta, if there are two sets with a strong field and one with no field its Y. now that i think of it im pretty positive that a deta or y wound motor will work with any ESC because people make those cdrom motors with a bunch of different winding schemes imcluding delta and they use the same ESCs. i dont actually think it matters that the 3rd winding has current through it because of the way its arranged with the others, if the backemf in that coil is 0 then the voltage on that phase wire would still be half of the votlage across the two other phase wires, which is how you look for the zero crossing.

im still trying to figure out how all the power through the 3rd winding isnt wasted, it produces no net torque because the pole is aligned with the magent its being attracted to throughout that commutation step. in the first 30 degrees it will be producing either a small amount of CCW or CW torque, and the last 30 degrees of the same step its producing torque in the opposite direction, so no net torque from the "unpowered" phase. it must have something to do with trading torque for more rpms to keep everything even.
 
thats wierd, the application note i found that analog zc detection circuit talked about delta and wye and didnt say that the circuit doesnt work for delta, it just said that a real neutral point isnt available on delta wound motors like it sometimes is on a Y motor, but you can build a virtual nuetral point for both.

it looks like i can fit hall sensors on this motor also, there are 0.287" between stator teeth and about 0.150" of space downward until you get to copper so i think those hall sensors will fit fine, ill have to check the dimensions. im not sure exactly what kind of hall sensor i need though, digital of course, but arent there a bunch of different sensitivites and stuff?
 
I have some in my junk box that look similar to the Crystalyte ones. They are marked UGN3120U and are 4.7mm wide, 1.6mm deep. I've just hooked one up and tried waving it around inside one of my TowerPro 5330 motors and it seems to trigger fine, even when a few mm away from a magnet.

My guess is that pretty much any switch type Hall sensor might be OK, as the field strength of the magnets in these motors is pretty high.

Jeremy
 
yea im just not sure if the sensitivity has to be low enough that the field from the stator doesnt mess them up.
 
im goign to change the board so i can connect the hall sensors to it and then i can make the code do whatever i want, just use halls for startup and then EMF for normal running. or just halls all the time. im just glad i have plenty of room in this motor for halls incase the ZC detection doesnt work at all.
 
i did a little more thinking about where the hall sensors need to be be, for a 12 tooth 14 pole motor wound like AabBCcaABbcC, the hall sensors need to be spaced 120 physical degrees(840 electrical degrees) apart and spaced between teeth that are in different phases, that gives 6 valid spaces the hall sensors could go, between CA, BC, and AB, or between ca, bc, and ab. i drew this diagram to figure it all out, the center part is the rotor and spins on the nail, blue lines are stator teeth, and the spaces between the black lines are the commutation steps, 42 in total for one revolution, arrows are magnetic vectors.
 

Attachments

  • 100_0131.jpg
    212.8 KB · Views: 1,835
im trying to figure out how to find which tooth is in what phase to figure out where to put the hall sensors, this delta configuration makes this confusing as hell since every coil is on all the time just with different strengths and polarity.
 
Wow, I just found this thread this morning. It sounds like we are working on similar things — DIY brushless controller for the HXT/Turnigy 130Kv motor.

My plan was to use an 8-bit gray code absolute encoder. I planned to determine the mapping by running the motor open loop and correlating the drive phase with encoder position. Of course, running open loop is only for setting up the mapping. In actual use the encoder would be used for sensored commutation.

I'm not sure how helpful this is for the hall sensor puzzle, but maybe there is a way to experimentally determine the hall sensor locations by running the motor open loop and comparing the drive phase with the hall sensor readings (either using a bunch of sensors or manually changing sensor positions until the phase and hall readings become sensible). Seems a bit of a pain though. Hopefully, there's a more elegant way to determine their locations.
 
i could position them 120 degrees apart then try it and see if it works right, if not moving them one slot in either direction will be a valid position for them. both positions might work though the timing would just be off when they are between teeth in the same phase so i might not be able to tell. if i can run current though two of the phases then there should be 4 teeth that are twice as strong magneticaly as the rest, and those 4 are all in the same phase.

i dont think a 255 state encoder will be good enough resolution, this motor has 42 commutation steps for one mechanical revolution, so for each state there are only 6.07 steps. its not that you need real high resolution as much is it is that you need the encoder steps to divide up evenly with the number of commutations you have, like if you had a 42 state encoder that would be perfect you just need to position it so the states change at the same time the hall sensors would, but 42 doesn't divide into 255 evenly, so youre going to be commutating in the wrong place a lot of the time. the hall sensors are probably cheaper, simpler, and more reliable anyway, no moving parts.
 
Back
Top