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/TMS320F28377S:TMS320F28377S

Guru**** 2482105 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/601460/ccs-tms320f28377s-tms320f28377s

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

工具/软件:Code Composer Studio

我需要生成两个 PWM 信号、相移180度、频率10kHz、CMPA 和三角比较。

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

    您在实现这一目标方面到底有什么问题?

    我建议您首先阅读 TRM 的 ePWM 一章(www.ti.com/.../spruhm8f.pdf)。 具体而言、请尝试了解时基部分。 您还应该下载 controlSUITE 并尝试一些 ePWM 示例。 然后、您可以开始根据目标逐步修改其中一个工作示例。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    感谢您提供相关信息。

    因为我不是第一次使用这个器件、所以对它有一些疑问。在使用中断在同步 PWM 发生器上向上执行给定的示例时、我想在没有任何中断的情况下运行程序、只需与 CMPA/B 进行比较、然后再修改它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您只需对所有中断和例程进行注释即可。 然后、您可以直接在 CMPA/B 中加载占空比值。

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

    您好、先生、

    我已经按照下面所述对其进行了修改、尽管它没有显示任何错误、但我无法通过 DSO 获取 O/p、请帮助我、或向我发送一些我可以参考的示例。

    我的程序如下所示

    #include "F28x_Project.h"//设备头文件和示例 include 文件

    void InitEPwm1Examples(void);
    _interrupt void epwm1_ISR (void);

    #define ePWM_CMP_UP 1.
    #define ePWM_CMP_DOWN 0

    void main (void)

    InitSysCtrl();
    CpuSysRegs.PCLKCR2.bit.EPWM1=1;

    InitEPwm1Gpio();

    Dint;
    InitPieCtrl();
    IER = 0x0000;
    IFR = 0x0000;

    InitPieVectTable();
    EALLOW;//这是写入 EALLOW 受保护寄存器所必需的
    PieVectTable.EPWM1_INT =&epwm1_ISR;

    EDIS;//这是禁止写入 EALLOW 受保护寄存器所必需的
    EALLOW;
    CpuSysRegs.PCLKCR0.bit.TBCLKSYNC =0;

    EDIS;

    InitEPwm1Examples();

    EALLOW;
    CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=1;

    EDIS;

    for (;;)

    ASM (" NOP");


    _interrupt void epwm1_ISR (void)


    EPwm1Regs.ETCLR.bit.INT = 1;


    空 InitEPwm1Examples()

    //设置 TBCLK
    EPwm1Regs.TBPRD = 25000;//设置计时器周期801 TBCLK
    EPwm1Regs.TBPHS.bit.TBPHS = 0x0000;//相位为0
    EPwm1Regs.TBCTR = 0x0000;//清除计数器
    //设置操作
    EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;//在事件 A 上设置 PWM1A、递增
    //计数
    EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;//在事件 A 上清除 PWM1A、
    //倒计数

    EPwm1Regs.AQCTLB.bit.CBU = AQ_SET;//在事件 B 上设置 PWM1B、向上
    //计数
    EPwm1Regs.AQCTLB.bit.CBD = AQ_CLEAR;//在事件 B 上清除 PWM1B、

    //倒计数

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Gautam 先生、您好!
    请建议我为180度相位差的 PWM 信号生成代码。我参考了该示例、但无法生成该示例。它未显示任何错误、但无法检测 PWM1A/B 的任何输出
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 D Misha:

    最好的调试策略是返回到库存 TI 示例、然后一次合并一个更改。 每次更改后、验证至少原始 ePWM 仍在引脚上可见。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢。我得到了结果