Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

MOTIX™ MCU Forum Discussions

MD
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hello,

I am using the BEMF example code to drive a brushless pump.

Without load the pump runs perfectly but with load it stucks and restarts very often, at some speeds more and at some less. I already tried various settings for the BEMF parameters but nothing helped.

I have the problem with my own board with the TLE9877 and with the EvalKit, too.

Has somebody an idea what I can check or had the same issue?

Thank you!

0 Likes
8 Replies
sk7211
Moderator
Moderator
Moderator
100 sign-ins 10 solutions authored 25 replies posted

Hi @MD ,

1) Can you please let us know which EvalKit are you using? Are you using the TLE987X EVALB_VQFN board with TLE9877QXA40 IC?

2)Kindly let us know which BEMF example code you are using.

 

Best Regards

Sahil Kumar

0 Likes
MD
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi @sk7211 ,

1) I am using my own developed board with the TLE9877QXA40 and I have the TLE9879 EvaluationKit, too. With both boards I have the same problem.

2) I am using the "TLE9879QXA_BLDC_BEMF (TLE9879 EvalKit)" Example Software. I only modified it a little bit to control the speed continuously with an external PWM-Signal.

 

Best Regards

MD

0 Likes
sk7211
Moderator
Moderator
Moderator
100 sign-ins 10 solutions authored 25 replies posted

Hi @MD ,

Sorry for the delay in response. We understand that the pump is running perfectly with no load, but with load, it is behaving abnormally. So, for desired torque operation in the open and closed loop, the motor parameters have to be well-tuned. We believe that the best way to do that is to perform some experiments and explore the parameters in ConfigWizard. Please try to make the following changes/modifications and let us know about your observation.

  1. Let the motor run at a low frequency (around 10kHz).
  2. Disable the Synchronization to the already rotating rotor option.
  3. Make the switch on speed zero.
  4. Use a lower value for the ramp rate in an open loop.
  5. Increase the dc offset duty cycle.
  6. Increase the duty cycle at the end of the start-up ramp from the default value.

 

sk7211_1-1674112542703.png

Please refer to the image above to get an idea of possible configuration changes. There may be a need for repeated tests of the motor with multiple set of configurations to find out what is best for the particular motor.

Can you please provide us with more details about your motor parameters and what are your current ConfigWizard settings? We would like you to enlighten us on your hardware setup.

 

Best regards

Sahil Kumar.

0 Likes
MD
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi @sk7211 ,

Thank you for your answer!

I tried to change those settings, but nothing helped. I have still the same problem.

Those are my settings, before I changed them:

Motor-parameter.png

Additionally I made a screenshot from the 3 phases when the error occurs (at 52ms):

SCR06.PNG

Maybe this helps...

Best regards

MD

0 Likes
sk7211
Moderator
Moderator
Moderator
100 sign-ins 10 solutions authored 25 replies posted

HI @MDMD,

Please let us know the following details: -

1) We would like to know if you tried the above-mentioned changes at a low ramp rate (says 30-50rpm/s). And the above-mentioned changes are done on the Eval board without modification in the code for the motor?

2) Please provide the motor parameters details. What are the load current and speed requirements, please enlighten us on your hardware setup.

3) Also kindly let us know the modifications implemented in the software.

 

Best Regards

Sahil Kumar

0 Likes
MD
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi @sk7211 ,

1) Yes, I tried them but it does not help, tends to get worse. I didn't changed the code for the motor, only the parameters and the main.c file.

2) The motor is driven from about 2500 rpm to 16500 rpm. The problem mainly occurs in range from about 6000 to 7500rpm. At this stage the current is about 500 to 600 mA.

3) This is the main part from the program:

for (;;)
{
/* Service watchdog */
(void)WDT1_Service();
if (duty>14 && duty<93)
{
if (duty < 22) duty = 22;
if (duty > 85) duty = 85;
Emo_setspeedreferenz((4000*duty)/22);
if (bMotorRun == 0u)
{
/* Start motor to run up to the desired speed */
Main_lStartMotor();
bMotorRun = 1u;
}
if( Emo_Status.MotorState <= 1)
{
/* Stop motor */
Main_lStopMotor();
/* Reinitialise motor control parameters */
Emo_Init();
bMotorRun = 0u;
}
}
else
{
/* Stop motor */
Main_lStopMotor();
/* Reinitialise motor control parameters */
Emo_Init();
bMotorRun = 0u;
}
CheckCurrent();
}

The variable "duty" is permanently changed with an input capture and depends from the duty cycle of the input PWM-signal.

If you need any other information, please let me know.

Thank you and best regards

MD

0 Likes
sk7211
Moderator
Moderator
Moderator
100 sign-ins 10 solutions authored 25 replies posted

Hi @MD ,

Please provide us with a datasheet of the motor you are using.

Best Regards

Sahil Kumar

0 Likes
MD
Level 1
Level 1
5 sign-ins First reply posted First question asked

Hi @sk7211 ,

The problem is that I don't have a datasheet for the motor and can't get one.

Best regards,

MD

0 Likes