2019-01-01 7:49 PM
A few Qs about the 6-step library. I have a 350W, 36V motor that I'm trying to control using the STSPIN32F0A. I've got the 6-step library working ... sort of. The motor rotates for a few moments and then a fault state is triggered (USER2 LED). In the short time the motor rotates, the RPM does not match what is defined in the motor spec sheet header file. Also, I do not see any zero crossing and commutation event monitoring on PA5 and PA15 and I have enabled those in the motor header file.
As stated in the guide, I've lowered the ACC value way down to 60. I have enabled the voltage mode in the defines and I'm using hall sensors for the commutation process. I've attached the motor spec .h file here.
First Q: Not sure where to start debugging. As per the guide (pg. 32), I know that the RPM of my motor needs to be ~150. The motor has 15 pole pairs and with this value, I calculated the step-time to be 4.4ms. Based on this I calculated the LF_TIMxduration. Using the LF prescaler of 24 and a system clock of 48MHz, I get LF_TIMxduration to be 8800 counts. I'm guessing this is the LF_TIMx_ARR value in the motor spec .h file. Is this the right way to calculate this?
Second Q: How do I start tweaking the PI values?
Here are the defines:
USE_HAL_DRIVER,STM32F031x6,NO_UART_COMM,NO_PID,HALL_SENSORS,NO_ALL_WINDINGS_ENERGIZATION,NO_FIXED_HALL_DELAY,NO_PWM_ON_BEMF_SENSING,NO_MC_FAN_4PP_24V,NO_MC_RS_57BL54,NO_MC_2036_U_024_B_K312,NO_MC_BR2804_1700_KV_1,MC_360W_36V_BLDC,COMPLEMENTARY_DRIVE,VOLTAGE_MODE,POTENTIOMETER,NO_CURRENT_SENSE_ADC,NO_VBUS_SENSE_ADC,NO_TEMP_SENSE_ADC,NO_BEMF_RECORDING,NO_SPEED_SENDING,NO_SPEED_RAMP
2019-01-09 11:35 AM
Hello Hrishikesh
I've managed to run it by including some of the header files. You find the needed information in the documentation UM2310 page 14.
Regards
Amr
We’re moving the ST Community to a new platform to give you a better and more reliable community experience.