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.

[参考译文] 脉宽调制器(ePWM):强制同步实现连续高电平

Guru**** 2620915 points

Other Parts Discussed in Thread: F28M36P63C2, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/699321/pulse-width-modulator-epwm-force-a-continuous-high-synchronously

主题中讨论的其他器件:F28M36P63C2C2000WARE

您好!

我正在尝试了解如何停止 ePWMx 脉冲序列输出的重复、以便最后一个脉冲不会被截断。  下图说明了这种情况。  我更喜欢使用软件命令来启动暂停、例如 EPWM1.AQCSFRC.bit.CSFA = 2、这会将输出置于持续高电平、这正是我所需要的。  但是、我希望最终的负向脉冲与之前的所有脉冲相同。  在我的例子中 、文档 sprug04a.pdf 适用、我已经研究了所有子模块、包括死区和跳闸区、但是我可以从这个文档中收集的所有内容是、如果软件强制(CSFA=2)命令恰好在负向脉冲期间发生、脉宽将相应地被截断、 也就是说、强制操作与 EPWM1信号完全异步。  我搜索了 E2E 上的社区主题、其中一些主题接近我要做的事情、但似乎没有任何结论认为这是可能的。  我刚刚开始使用 ePWM 模块、因此我可能缺少一些东西。  如果有任何建议,我将不胜感激。

谢谢、

Nick

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

    Nick、

    您使用的是哪款 C2000器件? 对于 ePWM、没有一种直接的方法可以实现您所需的功能、但我很确信可以实现。

    您的触发事件是什么样的? 是短脉冲还是长事件? 是否有预期的范围?

    您能否解释一下为什么要将其作为软件触发事件? 大多数用户更喜欢将其作为硬件、因为它通常是导致 PWM 关断的故障事件。


    此致、
    Kris

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

    感谢您的回复。 我使用的是 F28M36P63C2。 触发事件实际上可以是任何事件、因为它与任何外部进程状态、失败事件或类似事件无关。 我想在启动时特意设置它、以便"实现"与外部 ADC 的一次性同步(www.ti.com/.../ads1274.pdf、图73)。 我希望低向 ADC 同步脉冲持续时间至少在1us 左右、但同样关键的是最终 ePWM 脉冲的低到高边沿的时序、我目前正在使用加减计数器和 CAU、PRD 设置来控制该脉冲。 该边沿必须始终出现在 PRD 上、正如我在图表中所示、并且当前运行正常。

    但最终 ADC 同步脉冲(更确切地说、低边沿到高边沿)的时序需要由 C28中运行的 C 程序控制、以便与其他外设的启动序列进行协调。 将 EPWM 转换为连续高电平所需的触发事件可以尽可能短或长、这与我尝试使用 EPWM1.AQCSFRC.BIT.CSFA = 2的原因是相同的、该触发事件起作用、但与我尝试门控的脉冲异步、 问题是同步脉冲的中间可能会发生这种情况、从而使低电平到高电平的时序发生变化。

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

    Nick、

    我认为我理解其中的大部分内容、但"一次性同步"让我有点失望。 目标是让波形仅运行一个周期、还是它运行多次并在触发后终止?

    您的"触发器"是否可以只是将您的 CAU 更改为大于 PRD、从而永远不会达到该值、并且波形永远不会设置为低电平? 假设您正在使用影子模式、这将导致当前 PWM 周期正常完成、而下一个 PWM 周期保持恒定高电平、因为没有 AQ 事件可对其进行更改。

    请注意、您链接到的 ePWM 指南适用于较旧的器件。 使用以下文档供将来参考。 在这种情况下、它不会产生任何影响、但可能会在其他方面为您提供帮助。 您的 ePWM 具有比 F2833x 更多功能。

    www.ti.com/.../spruhe8d.pdf

    此致、
    Kris

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

    就 ADC 而言、我只需要在启动时生成一次单脉冲、因此从这个意义上讲、您是正确的、也就是说、波形只需要运行一个周期。 但是、由于此脉冲的出现需要与其他外设同步、因此在开始数据采集之前、具有多个此类周期(例如、1或2秒的值)可提供验证是否满足此同步条件的良好机会。

    我没有尝试更改 CAU。 我会尝试这个。 我不知道影子模式是如何工作的。 我是否执行任何特殊操作或在默认情况下是否启用了它? 文档不清楚。 我将查看更新的 ePWM 指南。 感谢您指出这一点。

    感谢您的建议!

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

    我不确定是否默认启用了影子模式、但几乎所有 TI 示例都使用了该模式。 查看适用于您的器件的 C2000Ware "器件支持"目录中的代码。

    影子模式允许在预定义的点发生寄存器更改、从而不会使当前 PWM 开关周期失真。 在您的情况下、在 TBCTR=0上加载 CMPA 应该可以正常工作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Kris、

    如上所述更新 CAU 并使用影子模式的工作方式与我所需的完全相同。 问题已解决。 非常感谢您的帮助!

    Nick