Question
STM32 BLDC sinusoidal commutation
Posted on May 11, 2012 at 15:45
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