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.

[参考译文] TMS320F28377S:查询 ECAP 的 CEVT 以及链接 EPWM 的方法

Guru**** 2391165 points
Other Parts Discussed in Thread: TMS320F28377S, CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499747/tms320f28377s-inquire-about-cevt-of-ecap-and-method-to-link-epwm

器件型号:TMS320F28377S
Thread 中讨论的其他器件: controlSUITE

工具/软件:

尊敬的团队:


我们实现了一个代码、该代码使用 tms320f28377s 的 gpio25 (DSP)接收85kHz 方波作为 ecap2输入、并在每个上升沿和下降沿生成 cevt。
我们在 CCS 调试模式下检查了 cevt 标志、它不会在每个上升沿出现、但发生频率较低。 如果我尝试根据输入信号的上升沿和下降沿正确生成 cevt、如何更改代码?

此外、如果根据中断中出现的 cevt 来控制 EPWM 的 TBCTR、我们想询问它是否应该链接到 EPWM XBar。

工程

//GPIO 设置
GpioCtrlRegs.GPAMUX2.bit.GPIO25 = 3;
GpioCtrlRegs.GPADIR.bit.GPIO25 = 0;
GpioCtrlRegs.GPAQSEL2.bit.GPIO25 = 0;
GpioCtrlRegs.GPAPUD.bit.GPIO25 = 0;
GpioCtrlRegs.GPACTRL.bit.QUALPRD3 = 1;

//main.c

EALLOW;
PieVectTable.ECAP2_INT =&ECAP2_ISR;
InputXbarRegs.INPUT8SELECT = 25;
EDIS;


ECap2Regs.ECEINT.all = 0x0000;
ECap2Regs.ECCLR.ALL = 0xFFFF;
ECap2Regs.ECCTL1.all=0x0000;
ECap2Regs.ECEINT.bit.CEVT1 = 1;
ECap2Regs.ECEINT.bit.CEVT2 = 1;
ECap2Regs.ECCTL1.bit.CAP1POL = 0;
ECap2Regs.ECCTL1.bit.CAP2POL = 1;
ECap2Regs.ECCTL1.bit.CTRRST1 = 1;
ECap2Regs.ECCTL1.bit.CTRRST2 = 1;
ECap2Regs.ECCTL1.bit.CAPLDEN = 1;
ECap2Regs.ECCTL2.bit.STOP_WRAP = 1;
ECap2Regs.ECCTL2.bit.CONT_ONESHT = 0;
ECap2Regs.ECCTL2.bit.TSCTRSTOP = 1;
ECap2Regs.ECCTL2.bit.CAP_APWM = 0;
ECap2Regs.ECCTL1.bit.prescale = 0;
ECap2Regs.ECCTL2.bit.rearm = 1;


IER |= M_INT4;


EALLOW;
PieCtrlRegs.PIEIER4.bit.INTx2 = 1;
EDIS;

//中断设置
中断无效 ECAP2_ISR (void)

//
//在此处插入 ISR 代码
//

数字= ECap2Regs.CAP1;

ECap2Regs.ECCLR.bit.CEVT1 = 1;
ECap2Regs.ECCLR.bit.CEVT2 = 1;
ECap2Regs.ECCLR.bit.INT = 1;

PieCtrlRegs.PIEACK.ALL = PIEACK_group4;
}

顺祝商祺!

吴俊英

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

    嗨、Junyeong:

    Unknown 说:
    我们在 CCS 调试模式下检查了 cevt 标志、它不会在每个上升沿出现、但发生频率较低。 如果我尝试根据输入信号的上升沿和下降沿正确生成 cevt、如何更改代码?

    您是否尝试过成功运行我们的一个 eCAP 示例? 是否可以确认 ECCTL2.SYNCI_EN 是否为零?

    捕获波形的输入引脚上是否存在任何干扰或可能的噪声?

    发生 CAPEVT1或 CAPEVT2时、ISR 中是否需要捕获脉宽值?

    此致、

    Ryan Ma

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

    您好、Ryan

    1.您是否成功运行过我们的一个 eCAP 示例? 是否可以确认 ECCTL2.SYNCI_EN 是否为零?
    1) controlSUITE 中 F2837xS 上的 Cap_Capture_Pwm_示例
    当我们通过输入信号在调试模式下在电路板上运行 ECAP 时、ASM 在捕获寄存器 CAP 2、3和4处停止、并在调试模式下暂停。 经证实、在不使用这部分代码的情况下、更改中断代码中 EPWM 的 TBPRD 效果良好。

    if (ECap1Regs.CAP2 > EPwm3Regs.TBPRD*4+4 ||
    ECap1Regs.CAP2 < EPwm3Regs.TBPRD*4-4)

    asm (" ESTOP0");
    }

    if (ECap1Regs.CAP3 > EPwm3Regs.TBPRD*4+4 ||
    ECap1Regs.CAP3 < EPwm3Regs.TBPRD*4-4)

    asm (" ESTOP0");
    }

    if (ECap1Regs.CAP4 > EPwm3Regs.TBPRD*4+4 ||
    ECap1Regs.CAP4 < EPwm3Regs.TBPRD*4-4)

    asm (" ESTOP0");
    }

    2) controlSUITE 中 F2837xS 示例上的 eCAP_apwm_cpu01
    它运行良好

    将 ECCTL2.SYNCI_EN 设置为0并不会有这么大的区别。

    2.在捕获波形的输入引脚上是否有任何毛刺脉冲或可能的噪声?
    输入波形似乎没有问题、并且引脚似乎没有问题。

    3.发生 CAPEVT1或 CAPEVT2时、ISR 中是否需要捕获脉冲宽度值?
    在调试模式下很难通过图形检查脉冲宽度、但图片是这样的。

    即使我们尝试在发生 cevt 时通过将 GPIO 引脚设置为高电平来使用示波器触发器进行检查、我们也无法检查波形。

    顺祝商祺!

    吴俊英

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

    嗨、Junyeong:

    [引述 userid="609249" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1499747/tms320f28377s-inquire-about-cevt-of-ecap-and-method-to-link-epwm/5764771 #5764771"]

    当我们通过输入信号在调试模式下在电路板上运行 ECAP 时、ASM 在捕获寄存器 CAP 2、3和4处停止、并在调试模式下暂停。 经证实、在不使用这部分代码的情况下、更改中断代码中 EPWM 的 TBPRD 效果良好。

    [/报价]

    您能否确保 PWM 正确输出并且输出连接到 eCAP 输入引脚?

    我无法重现此问题、此示例工作正常。

    此致、

    Ryan Ma

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

    您好、Ryan、

    您能否确保 PWM 正确输出并且输出连接到 eCAP 输入引脚?
    我无法重现此问题、此示例工作正常。
    -当使用上面注释中的代码时,除了在调试模式下暂停外,EPWM 波形会出现。
    除了其他代码之外、我还在使用它、但它似乎并不相关。
    连接到 ECAP 输入引脚的代码为 InputXbarRegs.INPUT8SELECT = 25;我设置输入引脚、并使用示例代码在 ECAP 中断发生时控制 EPWM。 观察 TBPRD 变化、可以看出连接良好。

    顺祝商祺!

    吴俊英

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    -使用上述注释中的代码时、显示 EPWM 波形、但其在调试模式下处于暂停状态。
    [/报价]

    即使 CPU 已暂停、您也可以将 PWM 设置为 FreeRun 模式。

    此致、

    Ryan Ma