An economical Hi Amp DIY BLDC controller

oldswamm said:
Alan B said:
It seems to me we are applying megawatt design technique to a kilowatt design. All three converters outputs will be tied to the same wideband low impedance +V rail that we're building. It would make sense if there was more inductance between the FETs, such as there might be with large pucks and longer distances between parts, but with six TO247 FETs nearly touching it is not clear that triple converters is necessary or likely to make any discernible difference in performance that we can measure.

Am I missing something here?
But the high side driver power supply is tied to the phase output, and is switching from B+ to B-. What creates the problem in the first place, and makes the bootstrap work, but makes it hard to build a power supply that isn't dependent on the caps.

Yes. Good point. Must be bootstrap or triple converters. Didn't look closely enough at that. Onward.
 
Reedited the first post again. Mostly I changed the driver board drawing/description. Now includes optional independent isolated DC-DC power supplies and optoisolators for the high side. Should make it compatible with hundreds of dip8 drivers from dozens of companies and ranging from 1to15A (that I've seen). Shortened the boards, now the controller would be 1-7/8" X 2-1/4"(+/-) X 5-1/2" (without heat sinks).

Sigh, I still feel that I'm wasting my time here if no body is interested in building one of these. :(
I'm almost going to have to stay away from ES, since I can't seem to help myself, and keep wasting my time redesigning/redrawing it (I have other things I could/should be doing).
Isn't there someone who would like to corroborate on this (an easy to build DIY controller, doesn't have to be THIS design), and maybe try and take it all the way to a kit/board set, or maybe just a group board purchase? I openly admit that I can't do it. I haven't the money, business acumen, or programing ability/experience.

Alan B said:
Yes. Good point. Must be bootstrap or triple converters. Didn't look closely enough at that. Onward.
Or, as Texaspyro pointed out, a more complicated arrangement, which would likely be justified to save $5+ on a production unit.
If this ever went to kit, probably only a small percentage of builders would spent the extra $20 or more (qty 1), for the isolated supply, but it probably doesn't cost anything to include it, for those who want/need it, at least not with my design.

I'm still thinking about shoot through prevention.
I think my problem might be 'time domain' in nature. In my design I've got up to 5000uF @ <4mOhm on the FET side of the shunt. By the time the current through the shunt is up to say only 125% of normal peak, and if I have a circuit that drops a crowbar across all the gates in only 20ns, we still have a long time (100 to 500ns?) with up to 100v across 10mOhm or so, and very little inductance. Can the FETs take thousands of amps for a fraction of a microsecond???

Thanks all,
Bob
 
If you have shoot-through on the FETs, you have a fundamental design problem. PERIOD! You need to do something to fix that. Depending upon the shunts/over-current protection system to get around it is totally unacceptable. They will not react fast enough to prevent FET damage. You will eventually (shortly) encounter the electrons to FET plasma conversion phenomenon :twisted:
 
texaspyro said:
If you have shoot-through on the FETs, you have a fundamental design problem. PERIOD! You need to do something to fix that. Depending upon the shunts/over-current protection system to get around it is totally unacceptable. They will not react fast enough to prevent FET damage. You will eventually (shortly) encounter the electrons to FET plasma conversion phenomenon :twisted:
Just about my take on the subject. Once the shoot through starts, it's all over, period.
 
The primary cause for this is asymmetry in the drivers and the turn on/turnoff of the FETs. The power stage controller in the micro has a delay for this, it just needs to be adjusted.

I would think that a test with a series resistor say in the FET power line, no caps mounted, power the 12V from some other source and without a motor load to start with, and then adjust the delay. When "shoot through" happens it will cause the current to jump up, but this current will be limited by the resistor. Then this can be safely explored. Once the right values plus some safety factor are known this can be locked down in the software.
 
I like the belts-and-suspenders approach. Adjust the dead times so that you cannot possibly get shoot-through. But then, when you do get it, have some hardware like in Shane's controller that makes it so that you can't get it. Get it? :twisted:
 
A lot of half-bridge driver chips include shoot-thru protection. Of course, for most of them it's just a fixed or programmable dead-time, nothing more than you could implement in software. But I've seen at least one chip (LTC4444) which senses the gate voltages to provide what they call "adaptive" protection. This should be possible, since you can tell by the gate voltage what the FET state is. I don't know how well their feature works - it seems like it would be difficult to accurately sense the gate voltage from the far side of the gate resistor, but you could get some useful info.

I don't see any reason why you couldn't build an improved version of this using 4-wire sensing to detect the gate voltage directly. You could use that to build a smart driver circuit that should, in theory, operate the drive with the minimum necessary dead time. It wouldn't be a trivial task but could be fun.
 
texaspyro said:
I like the belts-and-suspenders approach. Adjust the dead times so that you cannot possibly get shoot-through. But then, when you do get it, have some hardware like in Shane's controller that makes it so that you can't get it. Get it? :twisted:

I don't see anything I would call 'hardware shoot through protection' in shane's design. Even though I have a hard time visualizing his circuits with his schematic style, I will admit. (probably easier for you EE types) I think, he's only using 3 PWM outlets to operate his 6 drivers, so has built dead time into his hardware. But, it seems to me that it's far better to use a motor control module with 6 outputs and programable dead time.
(Even though, as I think you pointed out, it just gives us tinkers another way to let the smoke out.) :D
I don't see a reasonable way to have it both ways.

Bob
 
rhitee05 said:
A lot of half-bridge driver chips include shoot-thru protection. Of course, for most of them it's just a fixed or programmable dead-time, nothing more than you could implement in software. But I've seen at least one chip (LTC4444) which senses the gate voltages to provide what they call "adaptive" protection. This should be possible, since you can tell by the gate voltage what the FET state is. I don't know how well their feature works - it seems like it would be difficult to accurately sense the gate voltage from the far side of the gate resistor, but you could get some useful info.

I don't see any reason why you couldn't build an improved version of this using 4-wire sensing to detect the gate voltage directly. You could use that to build a smart driver circuit that should, in theory, operate the drive with the minimum necessary dead time. It wouldn't be a trivial task but could be fun.

I like the LTC4444 chip. It is a bit difficult to hand solder, but it looks like a great chip.

How important is it to totally minimize the dead time? Is leaving a reasonable safety margin in the programmed deadtime going to have any important effect on performance or ??? Is it going to change often???
 
I don't think minimizing dead time is that important, but it does reduce the maximum time the FETs can be on, so slightly reducing the maximum duty cycle. Definitely better to sacrifice a tiny bit of performance for a "safe" amount of dead time.

Shane's design only uses on output to drive each half-bridge. High -> high-side on, Low -> low-side on, high-Z -> both off It's impossible to drive both high-side and low-side on at the same time, and he has a slight delay built into hardware for dead-time. It's very conservative but indeed pretty much shoot-thru proof. The key to his setup is using opto-couplers in anti-parallel, so only one is driven at a time.
 
Well, I've finished the hardware portion of the design (at least till I find more mistakes or decide it needs revised), and have edited the first post of this thread. I would appreciate it if those of you in the know would look and comment.
Bob
 
Try the shareware version of CAM350. Very nice program. Full up version costs like $2500+. At one time the free version handled 8000 gerber elements. Not sure what the current version does. Should be able to handle your boards.
 
Posted new drawings this morning. MUCH clearer, as well as fixing many mistakes and other improvements. Hopefully they will make my ideas clearer for those interested. (I hope someone is.) :D

Thanks for the suggestion Pyro. I gave up 2 hrs into the download of CAM350. A large file for my slow connection. Found GerbMagic, which seems to do what I want quite well. When I get to where I can look at a drawing for more than 5 min without finding mistakes, I might make some boards. With no plated through holes will be a joke for any power, but can use to test the program and driver sections. And show up the mistakes that are so obvious they get overlooked, such as flipped opamp ICs (I thought about putting them on the bottom of the board........ :) )

Bob
 
Hi Alan,
First time I've looked at this thread in a year or so.
I've basically abandoned this design in favor of my own version of Lebowski's design.
https://endless-sphere.com/forums/viewtopic.php?f=30&t=72728
Simpler, cheaper, and, I'm quite sure, a far better motor controller program than I could ever write. I haven't been hanging out on ES, so the first thing I would have to do is read what's new, especially on Lebowski's threads, before I could continue.

Actually, I've been redesigning fused filament 3d printers for the last year (obsessively, like I do most things). Fully parametric variations of both the Kossel, and my own cartesian design, both designed to be much more precise, accurate, and versatile than anything else I've seen, either commercial or opensource, all features and variations optional by changing a switch or value in the parameters file (for example: precision = single/double/triple). When finished, I hope to have a set of openscad files which allow (almost) anyone to design their own printer, without having to actually know anything about programing in Openscad.
I almost have my printer designs ready to publish (probably thingiverse, though they will never be 'finished'....), and will then get back to the bike project, but I don't have the money for pc boards now anyway. I intended to order boards out of this years permanent fund dividend (including a couple custom 3d printer boards), but the governor confiscated the half that I hadn't already spent....

Thanks to injuries, and non injury related surgeries, I haven't even been riding much (I've decided not to bother studding up for what's left of winter).
Bob
 
rhitee05 said:
I think you should be fine using a copper section as a shunt, with an appropriate amplifier circuit. You'd need to be careful with the op-amp design since it's a noisy environment. You'd also probably need to make it possible to calibrate the shunt. I don't think it'd be very accurate with the shunt tolerance, tolerance on the amp gains, offsets, etc, but calibration isn't a big deal for a one-off custom design. You could potentially even integrate the shunt into the circuit board copper layer.

I have some experience using board trace as a current sensing resistor (shunt). This was for DC-DC converters in the early days of sub 5V CPUs when there were no off-the-shelf solutions. The main issue I had is that the resistivity of the copper varies all over the place. The circuit board manufacturers virtually never etch more than 1/2 or 1oz oz copper, because it takes more time, creates more waste, undercutting, etc. So when you order a board with 2 or 3oz copper, they etch the traces at 1/2 oz thickness, then plate them up to spec. But apparantly (never did get a satisfactory answer) the plated copper isn't all that pure, and it doesn't take much contamination to significantly raise the resistivity. I went to the trouble of sectioning some of the problem boards, and the copper thickness was at spec, and looked right under a microscope, but I had no way to test the purity. In the worst case, the trace resistance was almost double the calculated value. This was from well respected board suppliers too....not cut rate places. In no case did I ever have a board where the resistor came out below, or even at calculated value...do not rely on published values for copper trace resistivity...it will always be a little or a lot higher.

Though I never got clear on the root-cause, I learned how to live with the boards I could get made. My trick was to place a low resistance trim pot in parallel with all or part of the shunt, and use the pot wiper as an adjustable tap. The voltage across the pot mirrors the shunt voltage, but the pot handles minimal power, as it has only millivolts across it. A 10 or 100 ohm pot is not an input impedance problem for most current sensing amplifiers, and being orders of magnitude higher resistance, doesn't materially change the net shunt value. Of course the shunt trace then has to be a bit higher than optimal resistance, but we are talking milliohms and not too hard to live with. I would typically scale the resistor trace to exact desired resistance per book resistivity for copper, and let the process problems provide the extra to make the trim pot work. This was for production. Soldering braid across parts of the shunt trace is workable for one-offs or prototypes. The trim-pot would probably be handy for an experimenter though, as you could easily adjust it for different setups.

To minimize inductance and inductive coupling, the shunt trace should be serpentine. I found it was better to make a long U, then serpentine both legs of the U in parallel. This minimizes the field at the corners, and the two connections end up right next to each other, and you can fit it into L or other shaped spaces and still have low inductance. It takes up the same board area either way. Worst is to have one long straight, trace, or god forbid a big loop. if you have two layers, you can overlay the two legs of the U, but you'll need to solder in several through wires where they join rather than counting on plated holes or vias to handle the current. I never did this, because I wasn't hurting for board area, and it isn't the best from a heat dissipation standpoint. Speaking of...If you can place the current sense trace over a big ground or power plane, that will not only offer some shielding, but help spread the heat as well. And of course you want to run some small sensing traces as kelvin taps, and keep them clear of any solder connections.

So, there are some issues using board trace as a shunt, but many advantages: It is free if you have the board space anyway. Shunt resistors can be hard to source....high prices, long lead times, and usually dependent on one source. Shunt resistors have heavy leads that may cause solder joint reliability problems. If your shunt resistor doesn't have kelvin taps, then those iffy solder joints can contribute errors. Even if you don't do the pot trick, it is easier to lower the resistance of a trace than to source a different shunt resistor.
 
Back
Top