TI中文支持网
TI专业的中文技术问题搜集分享网站

F28035的PWM的EPWMxSYNCO同步脉冲脉宽控制

配置F28035的PWM的EPWMxSYNCO输出同步脉冲信号,我配置成功后,EPWMxSYNCO输出的同步脉冲信号脉宽是100ns,我想问下这个同步脉冲的脉宽可以控制改变吗?还是说硬件控制就是这样的?谢谢~~

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//TB_SYNC_DISABLE;
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EALLOW;
GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 1; // Disable pull-up on GPIO33 (EPWMSYNCO)
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2; //
EDIS;

Eric Ma:

这个脉宽输出的宽度是不可以控制的。

Eric

配置F28035的PWM的EPWMxSYNCO输出同步脉冲信号,我配置成功后,EPWMxSYNCO输出的同步脉冲信号脉宽是100ns,我想问下这个同步脉冲的脉宽可以控制改变吗?还是说硬件控制就是这样的?谢谢~~

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//TB_SYNC_DISABLE;
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EALLOW;
GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 1; // Disable pull-up on GPIO33 (EPWMSYNCO)
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2; //
EDIS;

wei xing:

回复 Eric Ma:

100ns的宽度太窄了,有没有什么办法增加窄脉冲的宽度?

配置F28035的PWM的EPWMxSYNCO输出同步脉冲信号,我配置成功后,EPWMxSYNCO输出的同步脉冲信号脉宽是100ns,我想问下这个同步脉冲的脉宽可以控制改变吗?还是说硬件控制就是这样的?谢谢~~

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//TB_SYNC_DISABLE;
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EALLOW;
GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 1; // Disable pull-up on GPIO33 (EPWMSYNCO)
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2; //
EDIS;

wei xing:

回复 wei xing:

我需要一个占空比50%左右的一个波形

配置F28035的PWM的EPWMxSYNCO输出同步脉冲信号,我配置成功后,EPWMxSYNCO输出的同步脉冲信号脉宽是100ns,我想问下这个同步脉冲的脉宽可以控制改变吗?还是说硬件控制就是这样的?谢谢~~

EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP; // Count up
EPwm1Regs.TBPRD = EPWM1_TIMER_TBPRD; // Set timer period
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW;
EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;//TB_SYNC_DISABLE;
EPwm1Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm1Regs.TBCTR = 0x0000; // Clear counter
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; // Clock ratio to SYSCLKOUT
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EALLOW;
GpioDataRegs.GPBCLEAR.bit.GPIO33 = 1;
GpioCtrlRegs.GPBPUD.bit.GPIO33 = 1; // Disable pull-up on GPIO33 (EPWMSYNCO)
GpioCtrlRegs.GPBMUX1.bit.GPIO33 = 2; //
EDIS;

Eric Ma:

回复 wei xing:

内部的同步信号的脉宽是不可以调的。但是你要是对同步时间要求不是非常高的话,可以收到同步信号的时候,就产生中断,在中断中通过控制IO口。

Eric

赞(0)
未经允许不得转载:TI中文支持网 » F28035的PWM的EPWMxSYNCO同步脉冲脉宽控制
分享到: 更多 (0)