cancel
Showing results for 
Search instead for 
Did you mean: 

Motor fails to start 4% of the time but no error reported

BTrem.1
Senior II

I'm running a 6 pole pair low inductance BLDC motor with a STM32G431 MCU and STSPIN233 driver (5V). It starts successfully 96% of the time ramping to 1850rpm in 4-5s and running at constant speed. However, 4 time in 100 it will just slightly budge then stop. However, no error is reported.

Using MCSDK it will show the speed ramping up to 1865rpm and no faults are reported. The registers report control mode 1 and status 6. The code thinks the motor is running.

I also get the same result consistently when performing a locked rotor test.

Any ideas why no errors are reported?

My start up ramp applies a healthy current at 0 speed for 1000msec then applies a healthy current for 4500ms in PHASE2_DURATION. The observer is enabled starting at PHASE2. The code is set to look for 5 consecutive good readings (NB_CONSECUTIVE_TESTS) and the reliability limits are set to 15 and 17.

6 REPLIES 6
cedric H
ST Employee

Hello,

We have never experimented such kind of issue. It would be interesting for us to reproduce such behavior. Could you zip your stmcx project file and attach it to this thread.

Could you also give some information about your motor ?

Regards

Cedric

Hi Cedric,

I am attaching my STMX file and some info on the BLDC motor. -- thanks

motor data

stmx file

cedric H
ST Employee

Hello,

From your stmcx file, I noticed that you do not use any overcurrent protection.

It is recommended to connect EN_FAULT of STSPIN233 to a BKIN input of the PWM timer.

A schematic example can be found here :

https://www.st.com/content/st_com/en/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-move-actuate-hw/x-nucleo-ihm17m1.html#cad-resources

Without this connection, you will never see an overcurrent error reported to the monitor tool.

When you write "However, 4 time in 100 it will just slightly budge then stop."

It means that startup parameters are not able to spin the motor in open loop mode. During the revup phase, the algo start spinning your motor without any knowledge of the real position of the rotor. Once the motor reaches a certain speed, the algo closes the loop and switch to the sensor less observer. The observer needs a minimum speed to be able to track the rotor position and control your motor accordingly.

The reason why no errors are reported is under study, we are facing some difficulties to reproduce this behavior right now.

In your rev-up parameters, the values you enter is very closed to your motor nominal current, I would advise you to try to lower the current during your rev-up phase. We have already noticed that starting with a to strong current can prevent the motor to start spinning.

Regards

Cedric

Hello Cedric,

Thank you for the feedback and the observation on on my STMCX file. I wasn't aware it wasn't being enabled. It turns out I do have BKIN2 connected to EN/Fault on the SPIN233 on our circuit board but I never implemented the code to use it. I'll put that high on my to-do list now ;)