cnhzjwq 发表于 2010-1-24 12:08:29

关于直流电机调速问题

我在做直流电机PWM波的调速例程,可是我改变比较器的值后,为什么电机的转速没有改变的啊?我把EV的函数发上来,请大家指教
void InitEv(void)
{
      EALLOW;
      GpioMuxRegs.GPAMUX.all=0x00FF;
      EDIS;

      EvaRegs.EVAIFRA.all = 0xFFFF;                //清除中断标志

      EvaRegs.T1PR= 2500;                        //定时器1周期值,定时0.4us*2500=1ms
      EvaRegs.T1CMPR =50;                        //比较值
      EvaRegs.T1CNT = 0;                        /* timer1 count is zero */

      EvaRegs.T1CON.all = 0xF54A;               //增模式, TPS系数80M/32=2.5M,T1使能,
      EvaRegs.ACTR.all = 0x0006;                  //PWM1,2低有效
      EvaRegs.DBTCONA.all = 0x0534;                        //使能死区定时器1,分频80M/32=2.5M,死区时间5*0.4us=2us
      EvaRegs.COMCONA.all = 0xA600;                        //比较控制寄存器
      EvaRegs.EVAIMRA.all = 0x0080;
}
用示波器测量也没有波形!!!
原理图如下:
http://cache.amobbs.com/bbs_upload782111/files_25/ourdev_528015.png
电机控制电路 (原文件名:截图21.png)

cnhzjwq 发表于 2010-1-24 12:08:49

请大家指教谢谢了

cnhzjwq 发表于 2010-1-24 12:17:44

主函数如下:
#include "DSP28_Device.h"
Uint16       XPWM=0;

void main(void)
{
        /*初始化系统*/
        InitSysCtrl();

        /*关中断*/
        DINT;
        IER = 0x0000;
        IFR = 0x0000;
       
        /*初始化PIE控制寄存器*/
        InitPieCtrl();
       
        /*初始化PIE矢量表*/
        InitPieVectTable();       
        XPWM=1400;               //最大值2500        
        /*初始化EV*/
        InitEv();
       
        EINT;
        ERTM;

        for(;;)
        {                                                                                                                                                                                                                                              }

}

ww880127 发表于 2010-7-16 16:43:15

回复【2楼】cnhzjwq
-----------------------------------------------------------------------

你这个原理图有点问题吧,上面的四个三极管的上两个应该用p沟道的,四个一样的肯定是不行的。而且你的两个pwm如果同时为高那就危险啦。我个人认为这张原理图有点问题。

qionggui 发表于 2010-7-19 19:24:38

三极管导通条件不满足,你打个电路仿真下~
页: [1]
查看完整版本: 关于直流电机调速问题