2018-07-03 01:15 AM
Hello,
I'm using a STM32F303RB on a project.
I need to rotate a small and low power BLDC motor. I don't need high speed rotation, I only want to controll it as a stepper and use the 6 step commutation solution in open loop, so without any back EMF. My brushless driver is a very simplethree pairs of power MOSFETs arranged in a bridge structure.
I connected the 6 gates of the MOSFETs on 6 output of the stm32 like this:
I'm using the timer 1 which is an advance timer. As I understood, it's correct to configure it as PWM Generation CHx, CHxN for BLDC driver. But I don't totally get it, because for example CH1N is not suppose to be the opposite signal of CH1. It's suppose to follow the commutation order as for example this picture:
If I'm not wrong, the purpose of the PWM is not to make the switch between the differents 6 step, but to apply a voltage on the motor proportionnal to the duty cycle. And then the PWM on each MOSFET switch between OFF and the desired duty cycle when it's on the step conresponding
Anyway, does anyone could help me about the configuration of the advanced timer 1 for this application ?
A CubeMx configuration would be amazing but a C code is great too. I can't find any example of this with a stm32 uC
Here is my clock configuration:
brushless 6-step-commutation advance-timer bldc-h-bridge bldc-driver brushless-6-step-commutation brushless-driver bldc-6-step-configuration stm32