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.

[参考译文] TMS320F280041:F280041相移控制配置

Guru**** 2524550 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1214666/tms320f280041-f280041-phaseshift-control-configuration

器件型号:TMS320F280041
"Thread:SysConfig"中讨论的其他器件

大家好

我想通过增加相移角来使 EPWM7相对于 EPWM6实现180°的相移、但只会干扰 PHSEN 和 TBPHS 不能满足我的用途。我还需要哪些寄存器来配置?

波形如下,CH5/CH7-EPWM6;CH6/CH8-EPWM7。我希望 EPWM6和 EPWM7的波形在相移后相互补充。

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

    尊敬的 Ethan:

    为了将一个 ePWM 模块与另一个 ePWM 模块同步、来自主 ePWM 的 SYNCOUT 信号必须连接到从 ePWM 上的 SYNCIN 信号。 在 F28004x 上、不同 ePWM 模块上的 SYNCOUT 和 SYNCIN 信号之间的连接是固定的。 请参阅"时基计数器同步方案"图以查看具体连接。  

    对于您的用例、唯一可以在 EPWM7上引起相移的 ePWM 模块是 EPWM1和 EPWM4。 是否可以使用 EPWM4和 EPWM7而不是 EPWM6和 EPWM7? 如果不是这样、有一种权变措施可在 EPWM7上引起 SYNCIN 事件、该事件由 EPWM6提供、使用 CLB 和 XBAR。

    谢谢!

    Luke

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

    ,Luke

    感谢您的帮助。我使用 EPWM4作为 SYNCOUT 源,、EPWM7接收同步脉冲信号,180°相移控制可以实现。

    但在我的测试过程中、发生了以下问题:

    工作频率高时、EPWM7波形在相移后丢失。

    2.随着工作频率的降低,出现 EPWM7的波形,但 EPWM7A 为高电平,EPWM7B 为低电平。

    3、工作频率持续降低、相移后 EPWM7的波形正常、这是我想要的。

    上述问题只会在程序初始化后的第一次频率调整过程中出现(从高到低的频率)、并且在随后的调整过程中相移控制是正常的、闭环控制程序如下:

    波形如下,CH3/CH4-EPWM4;CH5/CH7-EPWM6;CH6/CH8-EPWM7。

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

    此外、我还将在高频条件下的 PWM 配置直接编写为开环程序、相移控制是正常的、没有任何波形丢失现象。

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

    此外、我还将在高频条件下的 PWM 配置直接编写为开环程序、相移控制是正常的、没有任何波形丢失现象。

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

    尊敬的 Ethan:

    是否从 ISR 调用 LLC_FREQadjcontrol? 如果是、是什么触发了该 ISR? 是否对 EPWM 周期和 CMPA/CMPB 值使用影子加载?

    我怀疑您的操作限定符因在同步事件发生时 TBCTR 跳过您的 CMPA/CMPB 值而错过、从而导致没有输出。

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

    如何使用 C1_FED 和 C1_RED? 我注意到、这些是根据硬编码值80和40计算得出的。 下降沿和上升沿延迟在高频时是否过长并与后续边沿重叠?

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

    Luke、您好!

    感谢您的帮助。我的问题已经解决,问题 的原因是  下降沿和上升沿延迟在高频下过长。

    现在有一个新的问题:我的电路是双向 LLC 电路,在前向操作过程中, EPWM7可以实现相对于 EPWM4,的180°相移、但在反向运行时、EPWM4需要相对于 EPWM7实现180,相移。通过阅读 F28004X 的数据手册°EPWM7SYNCIN 寄存器位的 EPWM7SYNOUT 被保留、我写入的相移配置功能将不起作用。

    我想知道我的理解是否正确、如果正确、是否有其他方法可以实现 EPWM4相对于 EPWM7的相移控制?

    或者、 相对于 EPWM7、EPWM4是否可以实现高级相移?

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

    尊敬的 Ethan:

    无法直接通过 F28004x 上的 EPWM7使 EPWM4同步、但是有一种权变措施可以使用 CLB 和 XBAR 实现这一点、正如我之前提到的、我已经在本主题中进行了介绍:

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1213188/tms320f280048-q1-epwm-sync-issue-epwm2-master-and-epwm1-slave-configuration

    请告诉我、这是否可以解决您的问题。

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

    Luke、您好!

    我以前没有使用过 CLB 和 XBAR 函数、对于您推荐的方法、我的理解是:

    EPWM7SYNOUT 被发送到 空 GPIO (例如、  GPIO33)端口连接输出 X-BAR。

    2.使用 GPIO 端口作为 EXTSYNCIN1并通过输入 x-BAR 将其传输到 ePWM 模块

    3.将 EPWM4SYNCIN 配置为101后、配置相移角 TBPHS。

    我想知道我的理解是否正确、如果正确、我应该配置哪些寄存器来实现输入/输出 X-BAR 函数?

    此外、如何将 EPWM7SYNCOUT 配置为 EXTSYNCOUT?

    谢谢!

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

    尊敬的 Ethan:

    您的理解与我在上一主题中的解释略有不同,但实际上是一个更简洁的解决方案,因为 CLB 不是必需的:)

    要配置 XBAR、我强烈建议使用 SysConfig 来简化此过程。 否则、您可以使用 INPUTxSELECT 寄存器配置 INPUTXBAR 和 OUTPUT1MUX0TO15CFG/OUTPUTxENABLE 寄存器来配置 OUTPUTXBAR。

    SYNCSELECT 寄存器用来选择 EPWM7SYNCOUT 作为 EXTSYNCOUT 源。

    如果您有任何其他问题、请告诉我

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

     Luke、您好!

    我需要实现图中所示的同步效果,、但现在我的程序无法实现预期的控制。 我的程序如下。 您能帮我检查是否存在配置错误吗?

    我的理解是、EPWM7SYNOUT 到 EXTSYNOUT、EXTSYNOUT 到 GPIO5和 GPIO5到 EXTSYNCIN1的传输没有实现、但我在数据手册中没有找到相应的寄存器设置

    //GPIO5,EXTSYNCOUT
    InputXbarRegs.INPUT3SELECT = 5;
    GpioCtrlRegs.GPADIR.bit.GPIO26 = 0;
    GpioCtrlRegs.GPAPUD.bit.GPIO26 = 0;  
    GpioCtrlRegs.GPAQSEL2.bit.GPIO26 = 3;  

    //EPWM7SYNCOUT

    EPwm7Regs.TBCTL.bit.SYNCOSEL = 1;//同步输出选择,01:CTR =零:时基计数器等于零(TBCTR = 0x00)
    SyncSockRegs.SYNCSELECT.bit.SYNCOUT = 2;//10:选择 EPWM7SYNCOUT
    OutputXbarRegs.OUTPUT1MUX0TO15CFG.bit.MUX0 = 1;//01:为 Mux0选择.1输入
    OutputXbarRegs.OUTPUT1MUXENABLE.bit.MUX0 = 1;//1:启用 Mux0的各自输出以驱动的 Output1
    GpioCtrlRegs.GPAGMUX2.bit.GPIO5 = 1;
    GpioCtrlRegs.GPAMUX2.bit.GPIO5 = 1;EPwm7Regs.TBCTL.bit.PHSEN = 0;// 0:不从 TBPHS 加载 TBCTR
    EPwm7Regs.TBPHS.bit.TBPHS = 0;//相移角度

    //EPWM4SYNCIN 到 EXTSYNCIN1

    EPwm4Regs.TBCTL.bit.SYNCOSEL = 0;
    SyncSockRegs.SYNCSELECT.bit.EPWM4SYNCIN = 5;//101:选择 EXTSYNCIN1
    EPwm4Regs.TBCTL.bit.PHSEN = 1;// 0:不要从 TBPHS 加载 TBCTR
    EPwm4Regs.TBPHS.bit.TBPHS = 0;

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

    尊敬的 Ethan:

    GPIO5必须配置为输出引脚才能正常工作。 请告诉我、这是否可以解决您的问题。

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

     Luke、您好!

    我将 GPIO5配置为输出引脚、但它仍然无法正常工作。 我想这是因为 EPWM7SYNCOUT 没有传输到 GPIO5、而 GPIO5没有传输到 EPWM4SYNCIN。

    我不熟悉 X-BAR、也不知道应该配置哪些寄存器来实现我的目标。那么、您能帮我检查是否存在配置错误吗?

    下面是我的代码:

    //GPIO5-SYNCO 的引脚
    GpioCtrlRegs.GPADIR.bit.GPIO5 = 1;  
    GpioCtrlRegs.GPAPUD.bit.GPIO5 = 0;  
    GpioCtrlRegs.GPAQSEL1.bit.GPIO5 = 3;  
    GpioCtrlRegs.GPAMUX1.bit.GPIO5 = 3;//3:输出 XBAR3
    GpioCtrlRegs.GPAGMUX1.bit.GPIO5 = 1;

    EPwm7Regs.TBCTL.bit.SYNCOSEL = 1;//同步输出选择,01:CTR =零:时基计数器等于零(TBCTR = 0x00)
    SyncSockRegs.SYNCSELECT.bit.SYNCOUT = 2;//10:选择 EPWM7SYNCOUT
    OutputXbarRegs.OUTPUT3MUX0TO15CFG.bit.MUX14=3;//11:为 Mux14选择.3输入
    OutputXbarRegs.OUTPUT3MUXENABLE.bit.MUX14 = 1;//1:启用 Mux14的相应输出以驱动 OUTPUT3
    OutputXbarRegs.OUTPUTLATCHENABLE。bit.OUTPUT3 = 1;
    OutputXbarRegs.OUTPUTINV.bit.OUTPUT3=1;
    EPwm7Regs.TBCTL.bit.PHSEN = 0;// 0:不要从 TBPHS 加载 TBCTR
    EPwm7Regs.TBPHS.bit.TBPHS = 0;//相移角度

    InputXbarRegs.INPUT5SELECT = 5;//GPIO5使用 X-BAR INPUT5
    SyncSockRegs.SYNCSELECT.bit.EPWM4SYNCIN = 5;//101:选择 EXTSYNCIN1
    EPwm4Regs.TBCTL2.bit.PRDLDSYNC=2;//10:只有当接收到同步时、才会发生 TBPRD 的影子到活动加载。
    EPwm4Regs.TBCTL.bit.SYNCOSEL = 3;//11:禁用 EPWMSYNCO
    EPwm4Regs.TBCTL.bit.SWFSYNC = 1;
    EPwm4Regs.TBCTL.bit.PHSEN = 1;// 0:不要从 TBPHS 加载 TBCTR
    EPwm4Regs.TBPHS.bit.TBPHS = 100;

    谢谢!

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

    尊敬的 Ethan:

    你为什么把 OUTPUTINV.bit.OUTPUT3配置为1。 我相信这会导致除了生成同步源外、您的 EXTSYNCOUT 始终为高电平。 您是否能够通过示波器观察 GPIO5上的 EXTSYNCOUT? 您的 EPWM7输出和 EPWM4输出是否正常? 也许 EPWM7 PHSEN 未被正确禁用、从而导致 TBCTR 处于一个从两个 ePWM 特征到同时同步异步的恒定循环中。

    除了 OUTPUTINV 之外、在正确生成 SYNCOUT 信号并将其发送到 INPUTXBAR5 -> EXTSYNCIN1方面、您的代码看起来是正确的。 如果发现任何其他问题、我将尝试测试您的代码并在明天之前提供反馈。

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

    尊敬的 Ethan:

    对于延迟回复、很抱歉、此问题是否已解决? 否则、我将尝试测试您的代码以发现任何问题。

    谢谢!

    Luke

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

    ,Luke

    此问题已得到解决。感谢您的帮助。