最近在学习TMS320F28023,用EPWM模块输出三路相位差为120的互补PWM,在配置的时候最开始先使能EPWM时钟,接下来配置EPWM各个子模块,但是如果一开始除能了EPWM时钟,接下来无法配置EPWM,无论如何配置EPWM各个寄存器的值都是初始值,如果在配置EPWM之前使能EPWM的时钟,就可以配置EPWM各个寄存器,并且能后产生正确的波形,是在配置EPWM之前必须使能相应的时钟么?在程序运行过程中,我需要关闭或者开启PWM输出,关闭和开启EPWM可以通过关闭和开启EPWM对应的时钟来实现么(只要除能了EPWM的时钟,EPWM所有寄存器的配置都变成了初始值了),该如何在程序运行过程中关闭和开启PWM呢。
mao peng:
1,在配置的时候最开始先使能EPWM时钟,接下来配置EPWM各个子模块,但是如果一开始除能了EPWM时钟,接下来无法配置EPWM,无论如何配置EPWM各个寄存器的值都是初始值,如果在配置EPWM之前使能EPWM的时钟,就可以配置EPWM各个寄存器,并且能后产生正确的波形,是在配置EPWM之前必须使能相应的时钟么?
————————-
参考TI的controlsuit 例程里面关于PWM的配置。应该是先关闭时钟,再配置,再开始终
2,在程序运行过程中,我需要关闭或者开启PWM输出,关闭和开启EPWM可以通过关闭和开启EPWM对应的时钟来实现么(只要除能了EPWM的时钟,EPWM所有寄存器的配置都变成了初始值了),该如何在程序运行过程中关闭和开启PWM呢。
———————
不要通过关闭时钟老开启或者关闭PWM输出。有连续强制动作寄存器,可以强制EPWMX输出高或者低。
最近在学习TMS320F28023,用EPWM模块输出三路相位差为120的互补PWM,在配置的时候最开始先使能EPWM时钟,接下来配置EPWM各个子模块,但是如果一开始除能了EPWM时钟,接下来无法配置EPWM,无论如何配置EPWM各个寄存器的值都是初始值,如果在配置EPWM之前使能EPWM的时钟,就可以配置EPWM各个寄存器,并且能后产生正确的波形,是在配置EPWM之前必须使能相应的时钟么?在程序运行过程中,我需要关闭或者开启PWM输出,关闭和开启EPWM可以通过关闭和开启EPWM对应的时钟来实现么(只要除能了EPWM的时钟,EPWM所有寄存器的配置都变成了初始值了),该如何在程序运行过程中关闭和开启PWM呢。
Eric Ma:
回复 mao peng:
TI的例程里面也有用到通过TZ 功能,来讲PWM关断或是开通。
即使能PWM的TZ 功能,让芯片在接收到TZ信号后,就拉低所有的PWM。清除掉TZ信号后,PWM恢复。
这样通过对TZ寄存器的SW force设置,可以软件触发TZ 事件拉低PWM,即关断。而通过对TZFLG寄存器清零后,PWM又使能了。
ERIC
最近在学习TMS320F28023,用EPWM模块输出三路相位差为120的互补PWM,在配置的时候最开始先使能EPWM时钟,接下来配置EPWM各个子模块,但是如果一开始除能了EPWM时钟,接下来无法配置EPWM,无论如何配置EPWM各个寄存器的值都是初始值,如果在配置EPWM之前使能EPWM的时钟,就可以配置EPWM各个寄存器,并且能后产生正确的波形,是在配置EPWM之前必须使能相应的时钟么?在程序运行过程中,我需要关闭或者开启PWM输出,关闭和开启EPWM可以通过关闭和开启EPWM对应的时钟来实现么(只要除能了EPWM的时钟,EPWM所有寄存器的配置都变成了初始值了),该如何在程序运行过程中关闭和开启PWM呢。
jin zhou1:
回复 Eric Ma:
按照您说的我改好了,还有一个问题想请教您一下,在仿真的时候,在程序中设置断点,当程序执行到断点的时候PWM会停止输出,是什么原因呢,有什么方法解决呢。
最近在学习TMS320F28023,用EPWM模块输出三路相位差为120的互补PWM,在配置的时候最开始先使能EPWM时钟,接下来配置EPWM各个子模块,但是如果一开始除能了EPWM时钟,接下来无法配置EPWM,无论如何配置EPWM各个寄存器的值都是初始值,如果在配置EPWM之前使能EPWM的时钟,就可以配置EPWM各个寄存器,并且能后产生正确的波形,是在配置EPWM之前必须使能相应的时钟么?在程序运行过程中,我需要关闭或者开启PWM输出,关闭和开启EPWM可以通过关闭和开启EPWM对应的时钟来实现么(只要除能了EPWM的时钟,EPWM所有寄存器的配置都变成了初始值了),该如何在程序运行过程中关闭和开启PWM呢。
Eric Ma:
回复 jin zhou1:
Jin
你导入一个TI的例程:
C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\epwm_updown_aq
里面有寄存器设置当仿真器干预的时候, PWM怎么应对。
ERIC
最近在学习TMS320F28023,用EPWM模块输出三路相位差为120的互补PWM,在配置的时候最开始先使能EPWM时钟,接下来配置EPWM各个子模块,但是如果一开始除能了EPWM时钟,接下来无法配置EPWM,无论如何配置EPWM各个寄存器的值都是初始值,如果在配置EPWM之前使能EPWM的时钟,就可以配置EPWM各个寄存器,并且能后产生正确的波形,是在配置EPWM之前必须使能相应的时钟么?在程序运行过程中,我需要关闭或者开启PWM输出,关闭和开启EPWM可以通过关闭和开启EPWM对应的时钟来实现么(只要除能了EPWM的时钟,EPWM所有寄存器的配置都变成了初始值了),该如何在程序运行过程中关闭和开启PWM呢。
mao peng:
回复 jin zhou1:
这个仿真模式时,寄存器的动作有关,可以参考相关的寄存器。
断电调试PWM本身就不合理。