AnsweredAssumed Answered

STM32 BLDC sinusoidal commutation

Question asked by reichert.sebastian on May 11, 2012
Latest reply on Aug 28, 2012 by fleming.david.002
Hello,

has anyone tried out to implement a sinusoidal commutation for STM32 controllers? I'm already working with a block commutation quite similar to that:
http://www.mikrocontroller.net/articles/STM32_BLDC_Control_with_HALL_Sensor
(also mentioned in some other post here).
It works well but to improve efficiency, I'm working on sinusoidal commutation now, that means, I want to change the PWM duty cycle of one PWM block sinusoidal. At the moment it's constant over the whole commutation step.
Whats the best way to do that? I tried to start another timer which changes the PWM duty cycle (CCR val of PWM timer) e.g. 20 times corresponding to a sinus-half-wave with 20 sampling points. These points I stored in a pre-calculated LUT. However when changing the PWM value in the IRQ Handler of the timer, the motor is jerking and vibrating more and the speed isn't constant anymore. I use a simple PI speed-controller.
Does someone have a few tips for me?

thanks in advance!

regards,
sebastian

Outcomes