你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm8s 电机控制H桥载波控制问题

[复制链接]
swg1991 提问时间:2016-4-20 17:26 /
   用stm8  的tim1   6通道互补带死区控制直流无刷电机 程序如下

     TIM1_PSCRH = 0x00;  // 16M系统时钟经预分频f=fck/(PSCR+1)    分频
      TIM1_PSCRL = 0x00;  //  系统时钟分频时间                   分频
      TIM1_ARRH = 0x03;  //                  
      TIM1_ARRL = 0x20;  // 记800次系统时钟分频时间后翻转 。  设置是20kHZ  中央对其后输出是10k载波
      
      TIM1_CCMR1=0x68;  // PWM1模式,TIM1_CNT<TIM1_CCR1时有效,否则无效
      TIM1_CCMR2=0X68;
      TIM1_CCMR3=0X68;
  
      TIM1_DTR=0X31;    // 死区时间,3us
      TIM1_CR1=0x60;   // 计数器使能,开始计     中央对其  
      TIM1_BKR=0X80;   // 设置刹车寄存器
      TIM1_CR1_CEN=1; //开定时器

下面是通道记性设置
void pwm_h_l(void)             //复位PWM电平
  {
      TIM1_CCER1_CC1P=1;        //可以输出1  Q1
      TIM1_CCER1_CC1NP=1;        //可以输出1 Q4
      TIM1_CCER1_CC2P=1;        //可以输出1  Q2
      TIM1_CCER1_CC2NP=1;        //可以输出1 Q5
      TIM1_CCER2_CC3P=1;        //可以输出1  Q3
      TIM1_CCER2_CC3NP=1;        //可以输出1  Q6
      TIM1_EGR_COMG=1;         //允许事件更新   
}
void DisAllPwmOut(void)       // 使能输出
{
      TIM1_CCER1_CC1E=1;       // Q1
      TIM1_CCER1_CC1NE=1;      //Q4
      TIM1_CCER1_CC2E=1;       //Q2
      TIM1_CCER1_CC2NE=1;     //Q5
      TIM1_CCER2_CC3E=1;     //Q3
      TIM1_CCER2_CC3NE=1;    //Q6
      TIM1_EGR_COMG=1;        //允许事件更新
}
  中断程序

void IN_PUANDUAN(void)       //电机控制IGBT流程
{
if(QD.motro_EN!=1)
  {
          if(IN_MA==IN_010)     // 假设 0度  
            {      
              TIM1_CCER1_CC1E=0;           //q1
              TIM1_CCER2_CC3E=0;          //q3
              TIM1_CCER1_CC1NE=0;      //Q4
              TIM1_CCER1_CC2NE=0;     //Q5   
     /**********************************/
              TIM1_CCER2_CC3NE=1;    //Q6
              TIM1_CCER1_CC2E=1;  //Q2
            }else
              
          if( IN_MA==IN_110)              //30 度
            {
              TIM1_CCER2_CC3NE=1;    //Q6
              TIM1_CCER1_CC2E=0;    //Q2
              TIM1_CCER1_CC1E=1;    //Q1
            }else
              
         if(IN_MA==IN_100)                // 60度
              {   
              
               TIM1_CCER1_CC2E=0;         // Q2
               TIM1_CCER2_CC3E=0;        //  Q3
               TIM1_CCER2_CC3NE=0;    //Q6
               TIM1_CCER1_CC1NE=0;      //Q4
       /**************************************/
               TIM1_CCER1_CC2NE=1;     //Q5
               TIM1_CCER1_CC1E=1; //q1  
  
            }else
        
           if(IN_MA==IN_101)         //90 度
            {
               TIM1_CCER1_CC2NE=1;     //Q5
               TIM1_CCER1_CC1E=0; //q1
               TIM1_CCER2_CC3E=1; //q3         
            }else
            
           if(IN_MA==IN_001)            //120度
             {
            
                TIM1_CCER1_CC2E=0;
                TIM1_CCER1_CC1E=0;         //Q1
                TIM1_CCER1_CC2NE=0;     //Q5
                TIM1_CCER2_CC3NE=0;    //Q6
          /********************************/
                TIM1_CCER1_CC1NE=1;      //Q4
                TIM1_CCER2_CC3E=1;        //Q3

            }else
            
              if(IN_MA==IN_011)             //150度
                {
                 TIM1_CCER1_CC1NE=1;      //Q4
                 TIM1_CCER2_CC3E=0;           //Q3
                 TIM1_CCER1_CC2E=1;           //Q2
                }else
                  
                 if(IN_MA==IN_000)
                  {
                  motor_stop();
             }   
       }
}
现在的问题是上管pwm控制正常,但是下管因为要给自举电容充电,所以下管pwm载波控制后出现充电不全现象
如果改为下管用io口恒通方式控制那么就不能用tim1中的互补死区功能,这样没有死区可能发生烧管现象!!
如果下管可以在一个霍尔信号中有io恒通————pwm——————io恒通  这样就解决了电容充电问题   ,但是请问怎么设置呢?



收藏 1 评论5 发布时间:2016-4-20 17:26

举报

5个回答
zcl201207 回答时间:2016-4-20 23:46:39
gujiamao 回答时间:2017-8-17 09:00:51
bangding!!!
ts2000 回答时间:2017-8-17 09:33:17
一般用 上管PWM 下管H导通好控制一些。用专业的驱动芯片也不会说同时上下管导致,如 IRxxxx系列,自动产生死区时间。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

无薪税绵 回答时间:2017-8-17 15:31:33
按楼主的设想,就不是PWM效果了。
个人感觉应该是改变下管的自举电容的充电时间,
使其充电速度加快,就可以避免烧管了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

sssdd 回答时间:2017-8-18 14:48:07
你应该要在控制里加入对下管最小导通时间的限制。
让每周期下管都能通那么一点时间。
不就解了?

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版