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.

[参考译文] CCS/LAUNCHXL-F28069M:EPWM1A 与 DC 异常

Guru**** 2548020 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/627006/ccs-launchxl-f28069m-epwm1a-is-abnormal-with-dc

器件型号:LAUNCHXL-F28069M

工具/软件:Code Composer Studio

这是我的代码:

#include "math.h"
#include "DSP28x_Project.h"//器件头文件和示例 include 文件
易失性 UINT16 Ton = 360;//定义导通时间,稳定工作时Ton = 950
uint16还要减小= 180;//μ s
void InitEPwm1Example (void);//配置 ePWM 模块
int main (void){
InitSysCtrl();//初始化系统控制
InitGpio();//初始化 GPIO
InitEPwm1Gpio ();//PWM1_L
InitTzGpio();
//配置 ePWM 模块
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
InitEPwm1Examples();
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;
//等待 timer0中断
for (;;);

void InitEPwm1Examples(){
//设置 TBCLK
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//向上计数
EPwm1Regs.TBPRD = 9000;//设置定时器周期
EPwm1Regs.TBCTL.bit.PHSEN = TB_ENABLE;//启用相位加载
EPwm1Regs.TBPHS.Half.TBPHS = 0;//相位为0
EPwm1Regs.TBCTR = 0x0000;//清除计数器
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;//时钟与 SYSCLKOUT 的比率
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
//将影子寄存器加载设置为零
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
//设置比较值
EPwm1Regs.CMPA.half.CMPA = Ton+Tdelay;//设置比较 A 值
EPwm1Regs.CMPB = Tdelay;//设置比较 B 值
//设置操作
EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;//将 PWM1A 设置为零
EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;//在事件 A 上清除 PWM1A、递增计数
// EPwm1Regs.AQCTLA.bit.CBU = AQ_CLEAR;//将 PWM1B 设置为零
// EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;//在事件 B 上清除 PWM1B,递增计数
EPwm1Regs.DCTRIPSEL.bit.DCAHCOMPSEL = 0x1;// DCAH = TZ2
EPwm1Regs.TZDCSEL.bit.DCAEVT1 = 0x2;// DCAEVT1 = DCAH 高电平、DCAL 无关;
EPwm1Regs.DCACTL.bit.EVT1SRCSEL = 0x0;// 0源为 DCAEVT1信号;1源为 DCEVTFILT 信号;
EPwm1Regs.DCACTL.bit.EVT1SYNCE = 0x1;//采用同步路径

TZ2(绿色),EPWM1A(深蓝色),EPWM1B(浅蓝色),为什么 EPWM1A 异常?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    所有 C2000器件的 PWM 只能驱动0V 或 VDDIO。

    ePWM1a 和 ePWM1b 是否应该是相同的波形?  

    如果否:这种影响是 EPWM1B 的耦合(可能是由于布局原因)

    如果是:ePWM1A 可能没有足够的驱动强度、无法将连接到的任何器件拉至3.3V。

    此致、
    Cody  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢!
    有这个问题的答案。
    e2e.ti.com/.../2313252