This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F28035 的EPWM发出脉冲命令和实际发出脉冲为什么会有延迟?

我用F28035控制电机,电机换相时,EPWM的设置发生相应改变。如霍尔发生改变,A相上桥由关打开,用示波器实际测量时,会发现有一个pwm周期的延迟。

如pwm周期为100us,延迟有150us左右;pwm周期改为50us,延迟所谓50us左右。如下图pwm周期是50us,黄色为换相信号,蓝色为PWM1A发出脉冲信号。

这其中的原因是什么?为什么会有延迟,是哪儿设置的问题吗?

//EPWM的程序

(*ePWM[ch1]).DBCTL.all = BLDCPWM_DBCTL_INIT_STATE; \
(*ePWM[ch1]).AQCSFRC.bit.CSFA = 0; /* Forcing disabledd on output A of EPWM1 */\
(*ePWM[ch1]).AQCTLA.bit.CAU = 2; /* Set high when CTR = CMPA on UP-count */\
(*ePWM[ch1]).AQCTLA.bit.CAD = 1; /* Set low when CTR = Zero */\

  •          各位专家、达人帮忙看一下。EPWM的AQ模块发出命令到动作会有延时吗?有的话,是多大?
  • Epwm模块有影子寄存器,一般的默认设置中会将算法执行到的pwm更新值先放到影子寄存器中,然后按照配置的生效事件,等待该事件发生再将数据装载到pwm实际执行的寄存器中。

    所以,如果不希望有这个延迟,可以将pwm生效模式从shadow模式改为immediate,这样就会立即执行。但这样会有一个风险,就是如果算法执行到更新pwm信息的指令算法时,让计算值立即生效,有可能此时pwm时基运行到了一个较大的数值,如果计算的新的pwm的compare值很小,那么该周期可能没有compare值和pwm时基对应上的点,有可能会丢一个pwm。

    个人认为,在霍尔传感器的电机控制中,理论上一个pwm周期的延迟对系统影响不会太大,毕竟霍尔的安装误差可能会远远大于pwm周期。但这还需要根据具体系统要求做出评估。

  • 将pwm生效模式从shadow模式改为immediate 了,但好像影响不大,没什么变化,之前发的那个图就是immediate模式。

    另外想问一下,每次换相时,CC模块的计数是从0开始,还是换相后,继续从上个断开的计数处继续计数。

  • CC模块指的是软件计数?

    你需要实现什么样的功能?为了计算霍尔脉宽时间吗?

  • 我的意思是:CC模块的软件计数是和CMPA/CMPB比较,AQ模块再发生相应 的动作。如果从PWM1A切换到了PWM2A,CC模块的计数是继续计还是从零计,再和PWM2A的CMPA比较。