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.

[参考译文] TMS320F280039C:澄清 Driverlib API "EPWM_setDeadBandControlShadowLoadMode ()"

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1210744/tms320f280039c-clarify-driverlib-api-epwm_setdeadbandcontrolshadowloadmode

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

尊敬的香槟:

我是为我们的客户提出这个问题的。

在 C2000ware V4.03 driverlib 中、  

 EPWM_setDeadBandControlShadowLoadMode (myEPWM1_base、EPWM_DB_LOAD_ON_CNTR_ZERO);

似乎清除了 DBCTL.OUT_MODE、这是意料之外的!!

请参阅观察窗口中的 CCS 分步调试、

在运行  EPWM_setDeadBandControlShadowLoadMode (myEPWM1_base、EPWM_DB_LOAD_ON_CNTR_ZERO)之前;

运行  EPWM_setDeadBandControlShadowLoadMode (myEPWM1_base、EPWM_DB_LOAD_ON_CNTR_ZERO)后;

查看其来源、

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static inline void
EPWM_setDeadBandControlShadowLoadMode(uint32_t base,
EPWM_DeadBandControlLoadMode loadMode)
{
//
// Check the arguments
//
ASSERT(EPWM_isBaseValid(base));
//
// Enable the shadow mode and setup the load event
//
HWREGH(base + EPWM_O_DBCTL2) =
((HWREGH(base + EPWM_O_DBCTL2) & ~EPWM_DBCTL2_LOADDBCTLMODE_M) |
(EPWM_DBCTL2_SHDWDBCTLMODE | (uint16_t)loadMode));
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

LoadMode 是否需要类似这样的移位 "(uint16_t) loadMode << ePWM_DBCTL2_LOADREDMODE_S"?

您是否愿意查看此内容?

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

    韦恩、您好!


    当影子模式被启用时、为 DBCTL 寄存器写入的位0:5中的值应该在影子模式被启用后被写入。 您已共享的代码片段中遵循的顺序似乎不正确。 客户首先尝试直接写入这些位、然后对其启用影子模式。

    我不太确定为什么会清除它、我可以向设计负责人核实这一点。 但是、无论如何、用户应该配置的方式与您共享的代码片段中当前配置的方式不同。

    谢谢。

    Aditya.

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

    尊敬的 Aditya:

    我刚使用基于位域的代码、发现了相同的结果、因此它与 driverlib 无关。

    相反、当我将1写入 DBCTL2.SHDWDBCTLMODE 时、它始终清除 DBCTL.DBCTL.OUT_MODE 和 POLSEL、TRM 中未记录这一点。

    如果可能、您会帮助确认吗?

    然后、我们应要求 TRM 所有者进行更新、以便用户知道他们应该 先设置 DBCTL2.SHDWDBCTLMODE、然后修改 DBCTL。

    到目前为止,我是按这一顺序实施的,效果很好。

     

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

    是的、我也观察到了同样的情况。 就用例而言、它不应该是用户的问题、因为无论如何、都应该在加载 DBCTL[0:5]位中的值之前启用影子配置。

    我将跟踪设计团队、看看这是否是一个可以记录或不可以记录的已知项目。

    谢谢。

    Aditya.