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.

[参考译文] TMS320F280049:为何强制 DACEVT1 不能't 关闭 PWM(未设置 OST 标志)

Guru**** 2409930 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1527882/tms320f280049-why-forcing-dacevt1-doesn-t-shut-down-pwm-ost-flag-is-not-set

器件型号:TMS320F280049


工具/软件:

您好、

为什么强制 DACEVT1 不会关闭 PWM(未设置 OST 标志)?

在代码中、我设置强制标志 DCAEVT1、它反映在 TZFLG 寄存器中、但只设置 DCAEVT1。 根据块原理图、还应设置 OST 标志。

TZSEL.BIT.DCAEVT1 被置位。

谢谢你

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

    尊敬的 Martin:

    确保 TZSEL.BIT.DCAEVT1 配置正确。 请参阅下面的。

    当强制 TZFRC.DCAEVT1 时、将设置 DCAEVT1 和 OSHT 的 TZFLG。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我确信在 TZSEL 中设置了 DCAEVT1、请查看以下值:

    谢谢你

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

    尊敬的 Martin:

    您可以运行此测试用例并使用此测试用例来验证您的测试用例吗?

        uint16_t status = EPWM_getTripZoneFlagStatus(myEPWM1_BASE);
    // status should be 0xC

    e2e.ti.com/.../epwm_5F00_ex1_5F00_trip_5F00_zone_5F00_f28004x.7z

    此致、

    Ryan Ma

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

    您好、Ryan、

    感谢代码,我无法运行整个项目,因为我有不同版本的编译器和 C200Ware。 但我复制 PWM 初始化就奏效了。  

    所以我发现比一个区别是在设置 EVT1FRCSYNCSEL。 在我的代码中、它设为 1、在您的中设为 0。

    我想知道为什么此位影响 OST 标志。 您能否确认/解释?

    红色路径与 EVT1FRCSYNCSEL 无关

    谢谢你

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

    尊敬的 Martin:

    我唯一怀疑的是、因为它是一个 Aysnc 路径。

    与所有单次触发事件的“或“最终连接必须使用 sycn'ed DCAEVT1.force 与 TZFRC[DCEVT1]路径的“或“进行。 异步路径似乎未与 TZFRC[DCEVT1]路径进行“或“运算。  

    我需要联系我们的设计团队以获得最终答案。 这可能需要一些时间。

    但目前、如果您使用此路径、则应使用 TZFRC[OSHT]功能作为权变措施。

    此致、

    Ryan Ma

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

    您好、

    谢谢、现在我可以使用它了。

    我将等待您的团队给出最终答案。

    此致

    Martin

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

    尊敬的 Martin:

    我将保持这篇文章的最新.  

    此致、

    Ryan Ma

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

    尊敬的 Martin:

    但仍然尝试从设计中获得一些答案。 很抱歉耽误你的时间。

    此致、

    Ryan Ma

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

    尊敬的 Martin:

    我将从 7 月 11 日至 18 日离职。 但是、由于您有一个解决方案、我假设此问题不会停止您的开发。  

    当我回来时、仍在进行调试、以了解出现此问题的原因并提供一些结果。 对响应延迟深表歉意、但正在努力为您提供更多信息。

    此致、

    Ryan Ma  

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

    好的、没问题。

    谢谢你

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

    尊敬的 Martin:

    我找到了您的答案。 对于 F28004x、我们需要更新 TZ 图进行澄清。 在 EVTxSRCSEL 多路复用器输出之后有两条路径用于 Aysync 和 SYNC。

    为了使 TZFRC.DCxEVTy 发生并反映在 TZFLG 单次触发寄存器中、需要使用 SYNC 路径。

    如果不使用 SYNC 路径、而是需要异步路径 (DCxCTL.EVTxFRCSYNCSEL = 1)、则不能使用 TZFRC.DCxEVTy 来触发 TZ 单次触发条件。

    但是、对于 F2838x 等更高版本的器件、此事件触发更新了、以添加锁存异步路径的选项。 配置为  

    DCxCTL.EVT1FRCSYNCSEL = 1

    DCxCTL.EVTxLATSEL = 1

    然后、您可以使用 TZFRC.DCxEVTy 来强制施加单次触发条件。

    此致、

    Ryan Ma