Does anyone know how to set up BLDC motor control?

I have a number of phase/step tables, one for a different motor to the
one I am trying to drive, one for the driver chip on the driver board
I have, and one from the board manufacturer.

Firstly, the generic BLDC motor data sheet defines a set of Hall
patterns and phase high/low setups, For example:
Step 1, H1 = 1, H2 = 0, H3 = 0, A = +, B = -, C = X

I am not entirely sure what this means in the context of a motor.
Certainly applying +V to A and -V to B moves the motor, but not to a
position where the Hall sensors are 100, in fact they are 001,
corresponding to the step3 pattern.

Perhaps the table shows how to energise the motor for maximum forwards
torque at that Hall code?

To complicate the matters, the drive board (which I am only trying to
use to spin the motor, and to test a few things out at low cost) is a
Bodine, and that seems to have a very odd pattern, The PCB swaps two
Hall signals between the PCB connector H1 H2 H3 connections and the
Driver IC H1 H2 H3 and inverts one of them with a transistor. I
suspect an attempt to make their motor/drive combinations proprietary,
as all Hall signals high is a valid code in their table.
I have previously rewired the board to remove the inversion, and wire
up to the connector with signals swapped when playing with the little
motor above. That motor runs nicely and quietly, makes good torque,
but runs more slowly than I would expect.

To further complicate matters, the servo motor I am  experimenting
with has no Hall signals at all. I am creating them in software from
the Resolver position feedback. This means I have total freedom of
Hall code pattern, but little idea where to start.

If I, for example, apply +V to A and -V to B, the motor goes to a
certain position (well, one of three, as it is a multi-pole motor).
Presumably the Hall code at that point needs to be one that will cause
the driver IC to activate high-side and low-side drivers in such a way
as to move the motor to some other location?
If so, how far round should I go?
If this is the table of motor positions:

1 = A+ B- CX
2 = A+ BX C-
3 = AX B+ C-
4 = A- B+ CX
5 = A- BX C+
6 = AX B- C+

Would I set up the Hall code for motor-position-1 to set the driver IC
in such a way to drive it to position 2 or 3? (4 presumably would be
wrong, and 5 and 6 reverse?)

As a supplementary question for the distant future: If you are driving
such a motor with three-phase PWM at a software-calculated phase angle
then am I right to assume that you wouldn't use the current encoder
angle as the PWM phase angle, as then all you do it hold the motor in
its current position, but would instead add or subtract a "lead
angle"? I can imagine trying to do that in HAL and having the encoder
angle wrap correctly being fun in HAL.

I see that there are Clarke transform components in HAL, but I am
unclear how you would use them for this so assume they are for
something else?

-- 
atp

------------------------------------------------------------------------------
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to