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.

[参考译文] DSP TMS320F28062并行处理模式

Guru**** 2533040 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1037428/dsp-tms320f28062-parallel-processing-mode

您好:

我在我的程序中列出了一些代码、如下所示:

"

EWALLOW;

EPwm1Regs.CPMA.half.CMPA = U16_TempDuty1;//---Line1.

EPwm1Regs.CPMB = U16_TempDuty2;//---Line2

EDIS;

"

其他 ISR 将在 line1和 line2之间发生。

在 该 ISR 期间、PWM 计数器碰巧达到零或周期、 PWM1_A 的比较值将被加载、PWM1_B 的值仍然保持不变。

因此,PWM_A 和 PWM_B 脉冲可能同时打开--这太危险了。

遗憾的是、我无法在程序中将 PWM1_A 和 PWM1_B 设置为 DB (死拍)模式。

我的问题是:

Line1和 Line2可以设置为并行处理模式?

因此、PWM1_A 和 PWM1_B 的比较寄存器将同时加载。 A 和 B 之间的导通同时现象不会发生。

您是否愿意给我一些建议?

感谢你的帮助。

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

    您好!

    线性1和2在什么 ISR 中? 一种可能的解决   方案是更新与 PWM 同步的 ISR 内的比较值(例如 EPWM1 TBCTR = ZRO 或 PRD 时的中断)。 您仍然可以在另一个 ISR 中计算新值、但要确保更新与 PWM 同步的 ISR 中的实际值、以避免出现您所述的情况。

    [引用 userid="474024" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1037428/dsp-tms320f28062-parallel-processing-mode "]在此 ISR 期间、PWM 计数器碰巧达到零或周期[/引用]

    您是否可以对其进行范围界定并检查它是在零事件还是周期事件期间发生。 请注意、CMPX 值可以设置为在零、周期或零和周期处进行影子加载。 例如、如果 PWM 计数器在 ISR 期间达到周期、那么您只能在 ZRO 事件期间更新比较值。 这是我上述建议的另一种选择。  

    此致、

    Marlyn