简体   繁体   中英

Stm32 bldc driving

As explained here: http://www.edn.com/design/sensors/4407580/Brushless-DC-Motors-Part-II--Control-Principles

, switching the motor windings should occur when the back-emf voltage across the 1/2 VDCC value. How to effectively perform that in stm32f4 which don't has embedded comparator module?

It seems the only way is using analog watchdog with selecting next single waited channel at every moment when interrupt happens?

And how to be if I want drive 4 bldc from single stm32 chip?

There are few ways you can achieve this. The most popular way with STM32's are sensing the floating phase. The technique is little different to what your link is suggesting, nevertheless there are plenty of example codes to get this going.

Here is a nice explanation of ST's patented 3 resistor BLDLC position sensing method (and some other techniques).

A nice starting point would be this manual .

STM32 supports for two motor control timers (TIM1 and TIM8). You can use them to drive 2 BLDC motors. Nonetheless, it would not limit you to use other timers in combination in order to drive more BLDCs but would demand some additional programming complexity.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM