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/TMS320F28379D:TRIP_Zone 初始化和设置

Guru**** 2562120 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/637997/ccs-tms320f28379d-trip_zone-initialization-and-settings

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

工具/软件:Code Composer Studio

你好

我正在为 ePWM 工作。

现在、我要在该 TZ_SETTINGS 中包含该内容、

但当我使用开始初始化 TZ 时

InitGpio();

EALLOW;
InitEPwm1Gpio();InitEPwm2Gpio();InitEPwm3Gpio();InitEPwm4Gpio();InitEPwm5Gpio();InitEPwm6Gpio();
InitTzGpio();//TZ1 = GPIO12、TZ2 = GPIO13
GpioCtrlRegs.GPBDIR.bit.GPIO52=1;
EDIS;

由于发生错误、因此我欺骗了 ePWM.C 文件、此应用不包含 TZ 初始化(F2837XD_examples)  

我在程序中进行了初始化、如下所示:void InitTzGpio (void);

但它不支持...

如何在工程中修改 ePWM.C 文件  

 

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

    首先运行并了解 C2000Ware 中的 EPWM_TRIP_ZONE 示例。 请注意、此示例定义了其自身的一些函数、尤其是"void InitTzGpio (void)"和"void InitEPwmGpio_TZ (void)"。

    运行并理解代码后、您可以尝试将这些定义复制到应用程序中(与示例中定义的方式相同)、然后集成和修改跳闸区域功能以适合应用程序。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你
    我跟着那个、但我没有得到它
    然后我链接了:"epwm_trip_zone.c"文件
    即使它不支持我可以如何修改以进行初始化。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Nageswara、

    我认为、如果将 ePWM_TRIP_Zone.c 文件直接链接到工程中、则不起作用、因为这具有单独的主函数和其他冗余定义。

    您应该将跳闸区域示例作为单独的项目打开、并根据代码中记录的指令运行。 然后、您可以根据需要将各个函数/代码段复制到您的应用程序中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你

    是的、您的选择正确、但我对所有的主要和一些定义感到失望

    但现在我的配音是如何为我的应用配置 TZ 的 GPIO、因为我的缓冲电路已经选择了

    GPIO24到 TZ2_1、GPIO59到 TZ3、GPIO124到 TZ1、GPIO125到 TZ2_2

    如何更改 trip_zone.c

    #include "F28x_Project.h"

    //
    //定义
    //
    #define EXTrig//在使用外部触发器进行测试时保留未注释。
    //使用 ePWM 触发器进行测试的注释。

    //
    //全局
    //
    uint32 EPwm1TZIntCount;
    uint32 EPwm2TZIntCount;

    //
    //函数原型
    //
    void InitEPwm1Examples(void);
    void InitEPwm2Examples(void);
    void InitTzGpio (void);
    _interrupt void epwm1_tzint_ISR (void);
    _interrupt void epwm2_tzint_ISR (void);
    void InitEPwmGpio_TZ (void);

    ///
    // epwm1_tzint_ISR - EPWM1 TZ ISR
    //
    _interrupt void epwm1_tzint_ISR (void)

    EPwm1TZIntCount++;

    //
    //要重新启用 OST 中断,请执行以下操作:
    // EALLOW;
    // EPwm1Regs.TZCLR.bit.OST = 1;
    // EPwm1Regs.TZCLR.bit.INT = 1;
    // EDIS;
    //

    //
    //确认此中断以接收来自组2的更多中断
    //
    //PieCtrlRegs.PIEACX.ALL = PIEACK_group2;

    //
    // epwm2_tzint_ISR - EPWM2 TZ ISR
    //
    _interrupt void epwm2_tzint_ISR (void)

    GpioDataRegs.GPATOGGLE.bit.GPIO11=1;

    EPwm2TZIntCount++;

    //
    //清除标记-我们将继续执行
    //此中断直到 TZ 引脚变为高电平
    //
    //EALLOW;
    //EPwm2Regs.TZCLR.bit.CBC = 1;
    //EPwm2Regs.TZCLR.bit.INT = 1;
    //EDIS;

    //
    //确认此中断以接收来自组2的更多中断
    //
    //PieCtrlRegs.PIEACX.ALL = PIEACK_group2;

    空 InitTzGpio (空)

    //
    //对于外部触发器,GPIO12作为 TripZone 的触发器
    //
    GpioCtrlRegs.GPAPUD.bit.GPIO24 = 0;//启用 GPIO12上的上拉电阻(TZ1)

    // GpioCtrlRegs.GPAQSEL1.bit.GPIO24 = 3;//异步输入 GPIO12 (TZ1)

    EALLOW;
    InputXbarRegs.INPUT1SELECT = 24;
    EDIS;

    //
    //用于监视何时进入 TZ 中断
    //
    EALLOW;
    GpioCtrlRegs.GPAPUD.bit.GPIO11 = 1;//禁用 GPIO0上的上拉电阻(EPWM1A)
    GpioCtrlRegs.GPAMUX1.bit.GPIO11 = 0;//将 GPIO0配置为 EPWM1A
    GpioCtrlRegs.GPADIR.bit.GPIO11=1;
    EDIS;

    //
    // InitEPwmGpio_TZ -初始化 EPWM1A 和 EPWM2A GPIO
    //
    空 InitEPwmGpio_TZ (空)

    EALLOW;
    GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;//禁用 GPIO0上的上拉电阻(EPWM1A)
    GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;//将 GPIO0配置为 EPWM1A
    GpioCtrlRegs.GPAPUD.bit.GPIO2 = 1;//禁用 GPIO2上的上拉电阻(EPWM2A)
    GpioCtrlRegs.GPAMUX1.bit.GPIO2 = 1;//将 GPIO2配置为 EPWM2A
    EDIS;

    //
    //文件结束
    //