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.

[参考译文] TMS320F280025C:PWM 模块未完全同步

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1064138/tms320f280025c-pwm-modules-not-perfectly-synced

器件型号:TMS320F280025C

您好!

我尝试将 ePWM4_A 和 ePWM7_A 同步、如下代码所示。

这两种模式都设置为递增-递减计数器模式、动作限定器控制寄存器设置为在计数器达到零时切换引脚。

我已启用 ePWM4、以便在 CTR=ZERO 条件下以及通过软件触发时发送 EPWMSYNCOUT 信号、并且 ePWM7的 EPWMSYNCINSEL 寄存器设置为0x04。 此配置在 INIT 函数的末尾附近完成。

对于我的特定应用、我需要发送有限数量的 PWM 信号。

我还有两个模块的 ePWMx_B 在运行--它们的运行频率是 ePWMx_A 引脚的两倍,这是我通过在 CTR=ZERO 和 CTR=PRD 上设置/清除来实现的。

我通过将 CLB 配置为对 ePWM4_B 的上升沿和下降沿进行计数、然后在达到该边沿数后冻结中断中的计数器、从而限制 ePWM 脉冲。 我无法对 ePWMx_A 信号的边沿进行计数的原因是我需要频率加倍的分辨率--有时我可能不得不在 ePWMx_A 的高值之间冻结信号

但是、这两个信号之间似乎存在同步问题。

示波器快照向我们显示了正在发生的确切情况--黄色是 ePWM4_A,紫色是 ePWM7_A 在主循环中、我调用 函数来触发 ePWM4_B 脉冲的(预定义)值(未显示在此快照中)。 当达到该数字时、计数器将被冻结。 经过一个小延迟后、代码再次生成 PWM 信号。 我希望这两个波形看起来完全相同、但它们并不相同。

请帮帮我。

谢谢、此致、

Vishnu

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void init(void)
{
EALLOW;
CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0;
EDIS;
EALLOW;
CpuSysRegs.PCLKCR2.bit.EPWM4 = 1;
GpioCtrlRegs.GPAGMUX1.bit.GPIO6 = 0x00;
GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0x01;
GpioCtrlRegs.GPAGMUX1.bit.GPIO7 = 0x00;
GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0x01;
GpioCtrlRegs.GPAQSEL1.bit.GPIO6=0x3;
GpioCtrlRegs.GPAQSEL1.bit.GPIO7=0x3;
EDIS;
EPwm4Regs.TBCTL.bit.CLKDIV = 0x0;
EPwm4Regs.TBCTL.bit.HSPCLKDIV = 0x1;
EPwm4Regs.TBCTL.bit.PHSEN=TB_DISABLE;
EPwm4Regs.TBPHS.bit.TBPHS=0;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

    您好!

    由于假期休息、主题专家不在办公室、因此请在1月6日前回复。 对给您带来的不便深表歉意。

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

    EPWM7的 TBPHS 是否设置为0? 您希望通过这种方式实现完美的同步?

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

    是的-我认为我没有正确理解 ePWM 同步的工作方式、我不需要强制进行软件同步。  不管怎么说、我在几个地方更改了我的固件、这似乎已经达到了这个目的、所以它与硬件无关-只是一个逻辑错误。

    感谢您的快速响应。

    此致、

    Vishnu