3 phase BLDC motor controller w/ 3 input driver

Thread Starter

MCGiacobbe

Joined Aug 26, 2013
5
Hi, new to the Forum, but not new to Electronics Engineering :)

I'm working on a project that I need to do a custom BLDC controller. The drive circuitry is already done by a third party (don't ask). Output of the drive circuitry is the standard 3 half-bridge configuration. Nothing exciting there.

I'm having trouble getting it through my head as how to drive this. It would be simple if there were 6 inputs to the drive circuitry, I could follow a simple step pattern that's documented everywhere. And keep one of the phases off, while controlling the other 2.

The issue is that there are only 3 inputs to the drive circuitry. When an input is high, the high side MOSFET is on, when low, the low side is on. There is already a dead time built into the driver to prevent shoot through. There is no way to turn off one of the bridges.

It's like using a Fairchild 73833 with the output of an inverter connected to the Lin pin. The input to the inverter and the Hin pin connected to a Digital Out/PWM channel.

Anyone know of a doc or app note that would help me out? Or any words of wisdom? What would the waveforms would look like for this type of setup?

Thanks!
Mark
 

MaxHeadRoom

Joined Jul 18, 2013
28,696
There is really not enough info to go on?
When you say controller, do you mean the motor drive itself?
Or a controller OF the drive?
You normally would have either Hall effect devices or the equivalent tracks on an encoder disk in order to perform the drive commutation.
You also need to have the commutation synchronized with the pertinent poles of the motor.
As you may know, only two stator windings of the usual 3 are energized at any given time.
If this is a control to the drive itself, there are a couple of methods, either +-10vdc analogue or step/dir to name a couple.
Max.
 

Thread Starter

MCGiacobbe

Joined Aug 26, 2013
5
Let's break this down into 2 parts, the motor controller, and the motor driver. The motor driver contains: 3 inputs, 3 outputs, the MOSFET's, the MOSFET controllers (think of the FAN 73833). The 3 outputs are connected to the 3 phase BLDC. This is already done and cannot be changed.

I'm designing the motor controller. The controller will supply 3 outputs that are connected to the 3 inputs of the motor controller. The motor controller is a microcontroller.

In a "normal" motor driver, there would be 6 inputs (3 half bridges with a 2 inputs per). Each set of inputs to the motor driver would control the Hin and Lin of the individual 1/2 bridge. Hin controls the high side MOSFET, Lin controls the low side MOSFET of it's respective 1/2 bridge. Keep both Hin and Lin low and that 1/2 bridge is off.

Now, take a Digital I/O signal from the micro (the motor controller). Connect this I/O to Hin, and to the input of an inverter. The output of the inverter is connected to Lin. So when the Digital I/O is High, the high side MOSFET is on, when the Digital I/O is low, the low side MOSFET is on.

Repeat that setup for all 3 half bridges. This equals 3 inputs to the motor driver.

With this setup there is no way to "turn off" an individual 1/2 bridge.

So I am trying to figure out the step pattern for this type of setup.

At this point I'm not worried about the back emf or position sensors to sync the pulses. Just trying to get the motor to spin.
 

MaxHeadRoom

Joined Jul 18, 2013
28,696
The only limited experience I have had with BLDC design is using the Motorola 33035 and from using the Picmicro BLDC development design board, some other app notes and info is on the Picmicro site including AN857 etc.
Max.
 

strantor

Joined Oct 3, 2010
6,798
I don't think it will work. You have to be able to turn on/off the high and low side switches independently. If you energize one input, current will have two windings to flow through, and I assume they will cancel eachother out. If you energize two inputs, same thing in reverse.

Now, if this were set up for +/- operation it could work. + on a channel energizes top switch, 0V deenergizes both switches, and - energizes lower switch. Just feed it a trapezoidal waveform.

But you say it doesn't work that way, so I have to ask, about the thing I'm not supposed to ask about.


...or, could it be that these inputs instead of being bipolar, are set up with thresholds instead, to negate the need for a negative supply? For example, 0V energizes the lower switch, 5V deenergizes both switches, and 10V energizes the top switch?
 

strantor

Joined Oct 3, 2010
6,798
OK, so I think I'm starting to understand this better after reading a lot more app notes....

Space Vector Modulation I believe is the key to this mystery

http://www.atmel.com/Images/doc32094.pdf

Thoughts??
Hmm... well, there you have it. I've never heard of controlling a BLDC this way, and I don't really understand why you would want to. Seems like a pretty convoluted way of going about it, and what's to gain?
 

strantor

Joined Oct 3, 2010
6,798
Also, (this is question, not a statement) wouldn't your efficiency be lower using the SVPWM method? I get this idea from looking at figure 5-3 in the white paper; the magnitude of the vector is much smaller than the applied EMFs; I assume that the remainder is waste heat?
 

Thread Starter

MCGiacobbe

Joined Aug 26, 2013
5
I believe that it makes the motor run smoother and produces more torque. Also in high volume applications, there are 3 less wires to install.
 

Thread Starter

MCGiacobbe

Joined Aug 26, 2013
5
I'm still studying it, but that small vector is Dx and Dy of V1 and V2. And I believe that vector is the rotor position, not the actual torque.

I could be wrong though....
 

strantor

Joined Oct 3, 2010
6,798
Well, my interest is piqued. I'm glad you brought this up; I learned something new. Actually, I didn't. I don't understand it yet, but maybe if I keep reading I will eventually. Everything I'm reading says that it's more efficient and all-around better than ordinary sinusoidal PWM.
 
Top