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.

有关DSP28335 EPWM的时间基准子模块的配置问题

我是想要生成三个互差120度的三角载波,所以想到了EPWM的时间基准模块的SYNCOSEL。

1.如果以PWM1模块为基准,在PWM1的CTR=0时,产生同步信号,同时EPWM2和EPWM3加载TBPHS,这样可以么?

2.如果1是对的,那不以EPWM1的CTR=0为同步信号,而是以外部引脚的输入为同步信号,可以么?

3.外部引脚的同步信号时在个怎么样的信号,会不会出现某个PWM三角载波在最高点,这时来个外部引脚同步型号,导致三角波的值变成TBPHS,这样岂不是值就突变了?

  • TB :为输出PWM产生始终基准TBCLK,配置PWM的时钟基准计数器TBCTR,设置计数器的计数模式,配置硬件或软件同步时钟基准计数器,确定ePWM同步信号输出源;
        CC:确定PWM占空比,以及ePWM输出高低电平切换时间;
        AQ:确定计数器和比较寄存器匹配时产生动作,即ePWM 高低电平的切换;
        DB:配置输出PWM上升沿或下降沿延时时间,也可以将A、B两通道配置成互补模式,我做的逆变器就是将ePWM配置成互补模式。死区时间可以编程确定;
        PC:产生高频PWM载波信号;
        TZ:当外部有错误信号产生时,对PWM输出进行相应处理,比如全置高,或拉低,或置为高阻态,从而起到保护作用。当然该功能也可以通过软件强制产生;
        EZ:使能ePWM中断,使能ePWM触发ADC采样,确定事件产生触发的速度和清除相关事件标志位。
        ePWM模块的7个模块就像一条生产线,一级一级的经过,但DSP更高级,可以实现通过配置,使得ePWM只经过我选择的生产线,没有被选择上的就不要经过。例如,死区控制模块可以需要也可以不需要,这就看实际系统需不需要了。在实际使用ePWM时,正常的发出PWM波往往只要要配置TB、CC、AQ、DB、ET五个模块。

  • 您好,谢谢您的回答。

    不过我想问的是时间基准子模块中EPWMxSYNCI。手册上说对于ePWM1来说,EPWM1SYNCI来源于外部引脚,对于其他ePWMx外设,EPWMxSYNCI来源于其他epwm外设。

    我想问的是:1.对于ePWM1来说,EPWM1SYNCI来源于外部引脚,这个外部引脚是哪个引脚,这个引脚发出的是一个什么样的信号,有什么作用么(感觉没什么用)。

    2.ePWM2的EPWM2SYNCI只能来源于ePWM1吗?ePWM3的EPWM3SYNCI只能来源于ePWM2吗?就是ePWMx的EPWMxSYNCI只能来源于ePWMx-1?

    3.如果ePWM1模块的TBCTL的SYNCOSEL为赋值为0x11(就是禁用EPWMxSYNCO),那epwm2以及其他的epwm模块还能正常使用么?

  • 1.如果以PWM1模块为基准,在PWM1的CTR=0时,产生同步信号,同时EPWM2和EPWM3加载TBPHS,这样可以么?

    Eric: 你说得对。但是要配置PWM2的同步信号输入时PWM1SYNCOUT,PWM3的同步输入为PWM2SYNCOUT

    2.如果1是对的,那不以EPWM1的CTR=0为同步信号,而是以外部引脚的输入为同步信号,可以么?

    Eric:可以,只要将PWM1的同步信号输入配置为外部引脚即可。

    3.外部引脚的同步信号时在个怎么样的信号,会不会出现某个PWM三角载波在最高点,这时来个外部引脚同步型号,导致三角波的值变成TBPHS,这样岂不是值就突变了?

    Eric: 当同步信号来的时候,TBPHS的值会载入counter。然后同步开始计数。所以某些应用是有可能出现counter值突变的情况。

  • 手册上说对于ePWM1来说,EPWM1SYNCI来源于外部引脚,对于其他ePWMx外设,EPWMxSYNCI来源于其他epwm外设。

    我想问的是:1.对于ePWM1来说,EPWM1SYNCI来源于外部引脚,这个外部引脚是哪个引脚,这个引脚发出的是一个什么样的信号,有什么作用么(感觉没什么用)。

    Eric:这个引脚是EPWMSYNCI跟GPIO引脚复用。这个引脚的信号是有外部给的,是一个脉冲信号。一个脉冲就是一次同步事件。

    2.ePWM2的EPWM2SYNCI只能来源于ePWM1吗?ePWM3的EPWM3SYNCI只能来源于ePWM2吗?就是ePWMx的EPWMxSYNCI只能来源于ePWMx-1?

    Eric: 可以这么说。你查看ePWM的用户指南时,里面有几种同步模式。但最常用的就是ePWMx的EPWMxSYNCI来源于ePWMx-1。

    3.如果ePWM1模块的TBCTL的SYNCOSEL为赋值为0x11(就是禁用EPWMxSYNCO),那epwm2以及其他的epwm模块还能正常使用么?

    Eric: epwm2以及其他的epwm模块还能正常使用,只不过同步信号只能有Epwm2来产生给后面的模块。

  • 谢谢您的回答,已经明白很多了。

    但还有一点不太明白:EPWM1SYNCI来源于外部引脚,是一个脉冲信号。一个脉冲就是一次同步事件,那这个脉冲的频率可以控制吗?

    O(∩_∩)O谢谢!

  • 这个频率可以控制啊,由你输入的这个外部信号来控制。

    Eric

  • 谢谢你,这个明白了。还想问个别的问题可以么:.

    1.CCS3.3在菜单栏中单击GEL——Realtime Emulation Control,在这个下面有4个选项:Run_Realtime_with_Reset,Run_Realtime_with_Restart,Full_Halt,Full_Halt_with_Reset,这四个选项是什么意思,在仿真中有什么作用。

    2.点击Run_Realtime_with_Reset(或是Run_Realtime_with_Restart)也可以使得程序运行,那这和点击RUN(或是Animate)来启动程序运行有什么不一样的地方?