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.

[参考译文] TMS320F28075:ePWM 4类-一般问题 INT

Guru**** 2546940 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/627001/tms320f28075-epwm-type-4---general-questions-int

器件型号:TMS320F28075
主题中讨论的其他器件:C2000WARE

你好

由于具有高级同步功能、我希望将 ePWM 模块用作计时器。 一般而言、有几个问题:

-让 ePWM 模块开始计数似乎可以与 CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=1一起工作、但停止计数不能与 CpuSysRegs.PCLKCR0.bit.TBCLKSYNC=0一起工作。 启动和停止任何 ePWM 模块的最佳方法是什么?

-只要我手动清除标志 :EPwm4Regs.ETCLR.bit.INT = 1、多个连续中断(时基计数器等于零)就起作用;我真的必须手动执行此操作还是错误配置了 ePWM 模块?

谢谢您的参与
Benjo

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

    您好、Benjo、

    1) 1)如何以最佳方式启动和停止 ePWM:  
    我建议使用 AQCSFRC 机制。  对于该器件、您可以在向其写入该寄存器时利用活动或影子加载、以帮助您创建要生成的波形。  另一种选择是使用行程事件。  请注意、这两种方法都不会真正停止 ePWM 计数器、而是侧重于控制输出。

    2)是的、要获取新的 ePWM 中断、您需要清除 ePWM 外设内的 ePWM 中断标志(ETCLR)并通过 PIE (PIEACK)确认中断。


    查看 C2000Ware 中的一些 ePWM 示例可能会有所帮助:
    \C2000Ware_X_XX_XX_XX\device_support\f2807x\examples\CPU1\


    谢谢、
    Brett

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

    关于1)、没有实际的"输出"、因为我使用的是引脚上未提供的 ePWM 模块。 我使用的 ePWM4仅在100引脚外壳内提供。
    此外、我(错误)使用 ePWM4及其中断作为计时器、因此我认为需要控制 TB 模块以在特定点停止计数。

    因此我配置了:
    - TBPRD 至我所需的定时器间隔
    -计数为零并在 CNT = 0时抛出中断

    我想要实现的目标:
    -根据需要启动和停止此"计时器"
    -在"定时器"停止时或在运行时立即调整当前计数器值(任一或两个)

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

    您好、Benjo、

    ePWM 是一种功能非常强大的外设、但它可能不是满足所列要求的最佳选择。  

    将 TBCLKSYNC 更改为0不会关闭 ePWM 计时器、相反、该寄存器实际上只是提供了一种在启动时同步多个 ePWM 的方法。  您可以关闭 ePWM 时钟来停止 ePWM 计时器、但我相信您在停止时不能更改 TBPRD/TBCTR/CompareEvents。  但是、在运行时、您可以。

    我认为、该器件上的3个 CpuTimer 或6个 eCAP 外设更适合您尝试执行的操作。  它们具有内置的启动/停止功能(无需禁用外设时钟)。


    谢谢、
    Brett