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.

[参考译文] TMS320F280025:由于硬件故障而改变 GPIO 多路复用

Guru**** 2585275 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1022272/tms320f280025-changing-the-gpio-muxing-due-to-faulty-hardware

器件型号:TMS320F280025

大家好、

我是一名学生、正在使用 tsm320f2800从事一个项目。 我创建了一个硬件设计、需要两个 180度相位差的 PWM 信号(A/B 被反相)来切换4个 FET。 我使用的是 ePWM3和 ePWM4。
默认设置如下:


ePWM3_A -> GPIO4
ePWM3_B -> GPIO5

ePWM4_A -> GPIO6
ePWM4_B -> GPIO7

但在我的板上、GPIO 4和6是连续的、作为我的第一个 PWM 信号、GPIO 5和7是我的第二个。 是否可以更改多路复用以同时从 ePWM3获取高电平信号、并在另一侧半个周期后从 epwm4获取低电平信号?

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

    EPWM3和 EPWM4的运行频率是否相同? TBPRD 是相同的?

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

    您好!

    是的、 EPWM3和 EPWM4以相同的频率(1MHz)运行。

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

    好的、那么你有机会。 您可以在软件中以不同的方式配置 EPWM3和 EPWM4。

    例如、不要使用 PHSEN 或 TBPHS (PHSEN = 0、TBPHS = 0)。

    相反、将相移嵌入到 CMPx 事件寄存器中。

    NIMA

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

    因此、我必须查看技术参考手册、您是要将两个 ePWM 模块与 EPWMXLINK (ePWMx 链接寄存器)链接在一起?

    将其他 GPIO 配置为 ePWM 信号是否不起作用:

    空 InitEPwm3Gpio (空)

    GpioCtrlRegs.GPAMUX1.bit.GPIO4=1;
    GpioCtrlRegs.GPAMUX1.bit.GPIO7=1;

    空 InitEPwm4Gpio (空)

    GpioCtrlRegs.GPAMUX1.bit.GPIO5=1;
    GpioCtrlRegs.GPAMUX1.bit.GPIO6=1;

    还是因为它们来自不同的寄存器而不起作用? 很抱歉、我对此不了解太多。

    贝内迪基

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="493831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1022272/tms320f280025-changing-the-gpio-muxing-due-to-faulty-hardware/3778068 #3778068"]void InitEPwm3Gpio (void)

    GpioCtrlRegs.GPAMUX1.bit.GPIO4=1;
    GpioCtrlRegs.GPAMUX1.bit.GPIO7=1;

    空 InitEPwm4Gpio (空)

    GpioCtrlRegs.GPAMUX1.bit.GPIO5=1;
    GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 1;[/quot]

    这些选择 MODE1。 无论模式1是 ePWM 模式还是另一个外设、您都必须查看数据表。

    我认为您不需要 EPWMXLINK。 这是另一个功能。 您需要将 CMPx 值与相移值相移。

    NIMA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="280106" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1022272/tms320f280025-changing-the-gpio-muxing-due-to-faulty-hardware/3778316 #3778316"]您需要更改 CMPx 值[/quot]

    您好!

    所以我不知道如何实现它。  

    我现在尝试在信号 A 和 B 之间创建一个临时位置、并在两个 EPWM 之间创建一个临时位置。 由于死区、我不知道这是否有效。 我必须在开发板上对此进行检查并显示信号。 但这是否是另一种可能性?

    贝内迪基

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

    是的、这是一个示例。

    EPWM1周期= 1000 (TBPRD)

    CMPA = 300

    EPWM2周期= 1000 (TBPRD)

    CMPA = 600

    如果使用 CMPA 切换 ePWM 输出、则信号将具有300计数偏移(相移)。

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

    谢谢! 这意味着我必须使用 TB_COUNT_UP_DOWN (我始终仅向上计数)、设置一个 dutycycle = CMPA、第二个 CMPB = PRD - dutycycle 并将此 ePWM 的输出反相。 是这样吗? 但这有一个缺点、即我需要两倍的频率、但目前这是可以的。

    我还对 Xbar 进行了一些研究、是否可以构建 ePWM-Xbar 架构并重新路由输入和输出?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="493831" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1022272/tms320f280025-changing-the-gpio-muxing-due-to-faulty-hardware/3781266 #3781266"]我还对 Xbar 进行了一些研究,是否可以构建 ePWM-Xbar 架构并重新路由输入和输出?

    遗憾的是、没有 ePWM XBAR 不能用于此目的!

    -尼马

    如果使用向上计数、则必须将周期更改为双倍才能具有相同的频率。