zwc58 发表于 2013-10-22 22:37:38

求助,用STM32做有感无刷电机控制,为何自举电压上不来?

如题.用STM32做有感无刷电机控制,IRS2101驱动Vmos管IRFS4310,在调试时发现,自举电压上不来,高端的Vmos管的GS端电压只有2-3V,导致电机会转,但速度很慢,且抖动.自举二极管用的是RS1M,自举电容从0.1uF-47uF都试了,都无效.IR2101能输出高端的PWM脉冲,频率从5K-20K,都试了,也无效.搞懵了。看了IR2101自举电压功能的原理,是要先导通低端Vmos管使自举电容充电,然后关闭低端Vmos,打开高端的Vmos管,这时自举电容已充满电,能使高端的Vmos管的GS端有10V以上的电压,使之充分导通.看到这里又迷糊了,我现在的做法是用T3定时器检测3个霍尔状态,当有变化时,即触发COM事件,在COM中断中换相,由于换相是6个管子一起动作的,即按霍尔的位置向TIM1_CCER写入相应的数据,如0x3081;0x3801;等6种数据,这样没法做到先导通低端Vmos,关闭后再导通高端的Vmos。看到其他做成功的大侠的程序,也是如此换相的,为啥能充分导通高端的Vmos?请大侠解惑,谢谢!

zqbing 发表于 2013-10-22 22:47:53

上图看,论坛好多大侠会帮你解决的

zwc58 发表于 2013-10-23 08:37:30

谢谢,上图,请大侠指正.

zwc58 发表于 2013-10-23 08:39:56

javascript:;

zwc58 发表于 2013-10-23 09:12:20

换相的程序如下:
void TIM1_TRG_COM_IRQHandler(void)
{
           /* Clear TIM1 COM pending bit */
        TIM1->SR &= 0<<5;
       
        holl_value = (u8)((GPIOA->IDR&0x000000C0)>>6) | (u8)((GPIOB->IDR&0x00000001)<<2);
       
        switch(holl_value)
        {
                case 5:        /*Channel1 configuration */       // 1号管PWM,4号管导通。
                        TIM1->CCER = 0x3081;        // A+B-
                        break;

                case 4:        /*Channel1 configuration */          // 1号管PWM,6号管导通。
                        TIM1->CCER = 0x3801;        // A+C-
                        break;

                case 6:        /*Channel1 configuration */        // 3号管PWM,6号管导通。
                        TIM1->CCER = 0x3810;        // B+C-
                        break;

                case 2:        /*Channel1 configuration */          // 3号管PWM,2号管导通。
                        TIM1->CCER = 0x3018;        // B+A-
                        break;

                case 3:    /*Channel1 configuration */        // 5号管PWM,2号管导通。
                         TIM1->CCER = 0x3108;                // C+A-
                              break;

                case 1:    /*Channel1 configuration */       // 5号管PWM,4号管导通。
                        TIM1->CCER = 0x3180;        // C+B-
                        break;

                default:       
                        break;
        }
}

zwc58 发表于 2013-10-23 11:12:53

自己顶一下,等大侠解惑.

liaojihua2020 发表于 2020-7-30 12:49:07

从原理看,没有什么问题,建议关注充电二极管,必须是快速的那种,还有就是为了防止充电电流过大,加一个10欧左右的限流电阻。
页: [1]
查看完整版本: 求助,用STM32做有感无刷电机控制,为何自举电压上不来?