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.

[参考译文] TMS320F28069M:ePWM 生成

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1176942/tms320f28069m-epwm-generation

器件型号:TMS320F28069M
主题中讨论的其他器件:C2000WARE

大家好、

我正在尝试为 SDI (软件定义的逆变器) Tapas Board 生成 PWM 信号,我无法生成 PWM 信号,

但我能够控制 GPIO 引脚。

请尽快帮助我。

谢谢!

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

    您好!

     

    我们的专家将尽快回来。

     

    谢谢、

    Saravanan

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

    您好、Ayush、

    [引用 userid="546000" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1176942/tms320f28069m-epwm-generation "]我无法生成 PWM 信号,[/quot]

    您是否正在使用我们的软件开发套件(C2000Ware SDK)中提供的软件示例之一?

    C:\ti\c2000\C2000Ware_version\device_support\f2806x\examples\c28

    如果不是、您能否尝试其中一个 ePWM 示例、看看您是否能够使用该示例生成 PWM 输出?

    此致、

    Marlyn

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

    您好、先生、

    我仅使用那里的代码、

    请参阅我的代码。

    如果我在某个地方出错、请更正我。


    #include "DSP28x_Project.h"//器件头文件和示例 include 文件

    //
    //函数原型
    //
    void InitEPwm5Examples(void);
    _interrupt void epwm5_ISR (void);
    uint32 EPwm5TimerIntCount;
    uint16 EPwm5_DB_DIRECTION;
    //
    //主函
    //
    void main (void)

    //
    //步骤1. 初始化系统控制:
    // PLL、安全装置、启用外设时钟
    //此示例函数位于 F2806x_SYSCTRL.c 文件中。
    //
    InitSysCtrl();

    //
    //步骤2. 初始化 GPIO:
    //此示例函数位于 F2806x_GPIO.c 文件和中
    //说明了如何将 GPIO 设置为其默认状态。
    IER = 0x0000;
    IFR = 0x0000;

    // InitGpio();//针对此示例跳过

    //
    //在这种情况下、只需初始化 ePWM1、ePWM2、ePWM3的 GPIO 引脚
    //这些函数位于 F2806x_ePWM.c 文件中
    //
    InitEPwm5Gpio();

    //
    //步骤3. 清除所有中断并初始化 PIE 矢量表:
    //禁用 CPU 中断
    //
    Dint;

    InitPieVectTable();

    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
    EDIS;

    InitEPwm5Examples();


    EALLOW;
    SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
    GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 0;
    GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;
    GpioCtrlRegs.GPBDIR.bit.GPIO39 = 1;
    GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;
    GpioCtrlRegs.GPAMUX2.bit.GPIO16=0;
    GpioCtrlRegs.GPADIR.bit.GPIO16=1;
    EDIS;


    GpioDataRegs.GPBDAT.bit.GPIO34 = 0;
    GpioDataRegs.GPBDAT.bit.GPIO39 = 0;
    GpioDataRegs.GPADAT.bit.GPIO16=1;
    //
    //步骤6. 空闲循环。 只需坐下来循环(可选)
    //
    for (;;)

    _asm (" NOP");

    //
    // InitEPwm5示例-
    //
    无效
    InitEPwm5Examples()

    EPwm5Regs.TBPRD = 22500;//设置定时器周期
    EPwm5Regs.TBPHS.Half.TBPHS = 0x0000;//相位为0
    EPwm5Regs.TBCTR = 0x0000;//清除计数器

    //
    //设置 TBCLK
    //
    EPwm5Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;//向上计数
    EPwm5Regs.TBCTL.bit.PHSEN = TB_DISABLE;//禁用相位加载
    EPwm5Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4;//时钟与 SYSCLKOUT 的比率
    EPwm5Regs.TBCTL.bit.CLKDIV = TB_DIV2;

    EPwm5Regs.CMPCTL.bit.SHDWAMODE = CC_SHADODE;//每0加载一次寄存器
    EPwm5Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm5Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm5Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

    //
    //设置比较
    //
    EPwm5Regs.CMPA.half.CMPA = 11250;

    //
    //设置操作
    //
    EPwm5Regs.AQCTLA.bit.CAU = AQ_SET;//在 CAU 上设置 PWM1A
    EPwm5Regs.AQCTLA.bit.CAD = AQ_CLEAR;//清除 CAD 上的 PWM1A

    EPwm5Regs.AQCTLB.bit.CAU = AQ_CLEAR;//清除 CAU 上的 PWM1B
    EPwm5Regs.AQCTLB.bit.CAD = AQ_SET;//在 CAD 上设置 PWM1B

    //
    //低电平有效 PWM -设置死区
    //
    EPwm5Regs.DBCTL.bit.OUT_MODE = DB_FUL_ENABLE;
    EPwm5Regs.DBCTL.bit.POLSEL = DB_ACTV_LO;
    EPwm5Regs.DBCTL.bit.IN_MODE = DBA_ALL;
    EPwm5Regs.DBRED = 200;
    EPwm5Regs.DBFED = 200;

    谢谢你

    //
    //文件结束
    //

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

    您好、Ayush、

    这是什么示例? 您在 launchpad 上探测哪些引脚?

    此致、

    Marlyn

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

    您好、先生、

    它是 C2000ware 的 f2806x_ePWM_死 区示例、

    我将直接探测引脚编号 餐前小吃板的54个微控制器。

    谢谢你

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

    Ayush、

    我不知道餐前小吃板、也不能为这块板提供支持。

    您是否可以访问来自 F2806x 器件的信号?  

    此致、

    Marlyn