如果使用外部信号高电平来同步EPWM模块,这个外部信号高电平时间长度有没有什么要求,如果一直高电平,怎么同步?
user4224619:EPWM计数器是一直重载还是正常计数?
如果使用外部信号高电平来同步EPWM模块,这个外部信号高电平时间长度有没有什么要求,如果一直高电平,怎么同步?
user4224619:
回复 Eric Ma:
谢谢!
如果使用外部信号高电平来同步EPWM模块,这个外部信号高电平时间长度有没有什么要求,如果一直高电平,怎么同步?
user4224619:
回复 Eric Ma:
我现在使用EPWM3A产生占空比为50%频率为10K的PWM波形来充当同步信号同步EPWM2模块。结果发现同步信号上升沿的时候,EPWM2模块的确被同步,频率和EPWM3模块的频率相同。但是EPWM2A在同步信号高电平期间一直保持低电平,不受寄存器AQCTLA的控制。但是B通道没有问题。请问同步信号高电平期间为什么会影响EPWM2A的动作?我使用的芯片是TMS320F0F28022.
如果使用外部信号高电平来同步EPWM模块,这个外部信号高电平时间长度有没有什么要求,如果一直高电平,怎么同步?
Eric Ma:
回复 user4224619:
“我现在使用EPWM3A产生占空比为50%频率为10K的PWM波形来充当同步信号同步EPWM2模块。结果发现同步信号上升沿的时候,EPWM2模块的确被同步,频率和EPWM3模块的频率相同。但是EPWM2A在同步信号高电平期间一直保持低电平,不受寄存器AQCTLA的控制。但是B通道没有问题。请问同步信号高电平期间为什么会影响EPWM2A的动作?我使用的芯片是TMS320F0F28022.”
Eric:
你自己去对比一下同步之后的计数值和比较寄存器的值,是否是哪里不一致导致被拉低。
同步信号只有上升沿起作用而已,高电平没啥关系。
如果使用外部信号高电平来同步EPWM模块,这个外部信号高电平时间长度有没有什么要求,如果一直高电平,怎么同步?
user4224619:
回复 Eric Ma:
对比过的。没发现什么问题。程序中现在只有初始化PWM,其他的全部屏蔽掉了。
使用EPWM3A作为同步信号,外部连接到GPIO16上。通过调整EPwm3Regs.CMPB的值来调节同步信号的宽度。麻烦你做实验试一下。我这边找了好多工程师测试也都是这个结果。
配置如下:EALLOW;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;GpioCtrlRegs.GPAPUD.bit.GPIO16 = 0;// Enable pull-up on GPIO16 (TZ2)GpioCtrlRegs.GPAQSEL2.bit.GPIO16 = 3;// Asynch input GPIO16 (TZ2)GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 3;// Configure GPIO16 as TZ2EPwm3Regs.TBPRD = 5000;//周期10KEPwm3Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm3Regs.TBCTL.bit.PHSEN = TB_DISABLE;EPwm3Regs.TBPHS.half.TBPHS = 0; EPwm3Regs.TBCTL.bit.PRDLD = TB_SHADOW;EPwm3Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;EPwm3Regs.TBCTL.bit.PHSDIR = 1;EPwm3Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;EPwm3Regs.TBCTL.bit.CLKDIV = TB_DIV1;EPwm3Regs.TBCTR = 0; EPwm3Regs.CMPA.half.CMPA = 1250;EPwm3Regs.CMPB = 1251;EPwm3Regs.AQCTLA.bit.CBU = AQ_CLEAR;EPwm3Regs.AQCTLA.bit.CAU = AQ_SET;//EPWM2配置EPwm2Regs.TBPRD = 10000;EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE;EPwm2Regs.TBPHS.half.TBPHS = 0; EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW;EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_DISABLE;EPwm2Regs.TBCTL.bit.PHSDIR = 1;EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV1;EPwm2Regs.TBCTR = 0; EPwm2Regs.CMPA.half.CMPA = 3750;EPwm2Regs.AQCTLA.bit.CAU = AQ_CLEAR;EPwm2Regs.AQCTLA.bit.ZRO = AQ_SET;EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR;EPwm2Regs.AQCTLB.bit.ZRO = AQ_SET;EPwm2Regs.AQSFRC.bit.RLDCSF = 0x03;EPwm2Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_TZ2;EPwm2Regs.TZDCSEL.bit.DCAEVT1 = TZ_DCAH_HI;EPwm2Regs.DCACTL.bit.EVT1SYNCE = 1;EPwm2Regs.DCACTL.bit.EVT1SRCSEL = DC_EVT1;InitEPwmGpio();EPwm2Regs.AQCSFRC.all = 0x00;SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;EDIS;
如果使用外部信号高电平来同步EPWM模块,这个外部信号高电平时间长度有没有什么要求,如果一直高电平,怎么同步?
user4224619:
回复 Eric Ma:
理论上来说是这样的,同步信号只在上升沿起作用,但是按照下面的配置做实验,的确是在同步信号高电平期间EPWMA引脚不起作用。麻烦帮忙看一下,谢谢。