A4963 BLDC motor control

Thread Starter

<bobby>

Joined Mar 3, 2017
2
Hello community,

I'm currently constructing a non-rigid airship with an autonomous flight mode. For the propulsion I'm using EMAX CF2805 BLDC motors which are driven by the A4963 sensorless BLDC controller from Allegro Microelectronics. As for the MCU I'm using the STM32F103C8.

Supply voltage for the motors is 7.4V with a maximum current of 10A.

I've already managed to start an old harddrive motor and a Roxxy 2824-34 with my circuit but the EMAX motors are giving me a hard time.

They are just cogging at startup with any configuration of the A4963 I've used (and I tried a lot ;) ). The mode I'm using is "Closed Speed Control"

Im a noob when it comes to BLDC motors so I'm kind of stuck and would appreciate any help.

greetings bobby
 

Attachments

MaxHeadRoom

Joined Jul 18, 2013
30,654
It has been my experience using BLDC in open loop and closed (PID) loop, that in the former mode the motor will cog due to the coarse commutation steps.
When used in a closed loop with encoder feedback, with say, a transconductance type drive they run as smooth as a DC motor.
Max.
 
Last edited:

Thread Starter

<bobby>

Joined Mar 3, 2017
2
The other motors I tested do run very smoothly in closed loop speed control mode.
My problem is that those EMAX motors are stuck at startup and won't run.

Sorry my explanation was rather bad, but thanks anyway.
 
Hello community,

I'm currently constructing a non-rigid airship with an autonomous flight mode. For the propulsion I'm using EMAX CF2805 BLDC motors which are driven by the A4963 sensorless BLDC controller from Allegro Microelectronics. As for the MCU I'm using the STM32F103C8.

Supply voltage for the motors is 7.4V with a maximum current of 10A.

I've already managed to start an old harddrive motor and a Roxxy 2824-34 with my circuit but the EMAX motors are giving me a hard time.

They are just cogging at startup with any configuration of the A4963 I've used (and I tried a lot ;) ). The mode I'm using is "Closed Speed Control"

Im a noob when it comes to BLDC motors so I'm kind of stuck and would appreciate any help.

greetings bobby
hi, i have same problem. could you run your setup?
 
Here is SPI data sequence for start:

load_data_a4963(0b0001001000010100);//Config 0
Delay(100);
load_data_a4963(0b0011001111011111);//Config 1
Delay(100);
load_data_a4963(0b0101011110010011);//Config 2
Delay(100);
load_data_a4963(0b0111011101010010);//Config 3
Delay(100);
load_data_a4963(0b1001011100011111);//Config 4
Delay(100);
load_data_a4963(0b1011011101111000);//Config 5
Delay(100);
load_data_a4963(0b1111000000001011);//RUN

i do similar project on a4963 it will be great to make lib for stm32
 
Hello community,

I'm currently constructing a non-rigid airship with an autonomous flight mode. For the propulsion I'm using EMAX CF2805 BLDC motors which are driven by the A4963 sensorless BLDC controller from Allegro Microelectronics. As for the MCU I'm using the STM32F103C8.

Supply voltage for the motors is 7.4V with a maximum current of 10A.

I've already managed to start an old harddrive motor and a Roxxy 2824-34 with my circuit but the EMAX motors are giving me a hard time.

They are just cogging at startup with any configuration of the A4963 I've used (and I tried a lot ;) ). The mode I'm using is "Closed Speed Control"

Im a noob when it comes to BLDC motors so I'm kind of stuck and would appreciate any help.

greetings bobby
If you need help in a4963 I am ready to assist
 
This is about a month since the last post but here are comments:

1) I've used the A4963 and it is pretty good at starting on the motors I've tried once you get it tuned. For startup, the starting duty cycle setting can be very low with no load or just a propeller on the motor. I use 3 or about 18% and that works pretty well. If this is too high the motor will overshoot the next position in the open loop start up ramp phase of running.

2) My advice is to use Open Loop speed mode to start with. Then you won't have any issues with the PI parameters being set wrong. Just set your speed at 100% and concentrate on getting it starting and running.

3) Max out the current limit so you don't get the chip cutting off the current while the motor is trying to start up or ramp up to speed. Watch your controller temp of course.


Once you get a reliable startup then you can move to adjusting the current limit and the closed-loop speed control parameters.

Also, be aware that this driver chip has low gate drive current. It is basically made for a single small MOSFET per leg. My first controller worked awesome with one FET but when I tried to add another FET per leg it could not turn them on and off very well.
 

Ali Aydın

Joined Nov 28, 2018
1
I have STM32f103.Do I need level shifter for shift 3v3 to 5v (For spi)?

I send these
load_data_a4963(0b0001001000010100);//Config 0
Delay(100);
load_data_a4963(0b0011001111011111);//Config 1
Delay(100);
load_data_a4963(0b0101011110010011);//Config 2
Delay(100);
load_data_a4963(0b0111011101010010);//Config 3
Delay(100);
load_data_a4963(0b1001011100011111);//Config 4
Delay(100);
load_data_a4963(0b1011011101111000);//Config 5
Delay(100);
load_data_a4963(0b1111000000001011);//RUN

And i use PWM with %50 duty and 50 Hz but motor not spin.

Can i controll speed with SPI?
 
Top