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.

[参考译文] AM263P4:AM263Px EPWM 死区:无法通过 SysConfig/驱动器 API 启用 DBCTL2[SHDWDBCTLMODE]?

Guru**** 2794765 points

Other Parts Discussed in Thread: TMDSCNCD263P, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1621790/am263p4-am263px-epwm-dead-band-dbctl2-shdwdbctlmode-cannot-be-enabled-via-sysconfig-driver-api

器件型号: AM263P4
Thread 中讨论的其他器件: TMDSCNCD263PSysConfig

您好、

我对 AM263Px 上的 ePWM 死区影子模式行为有疑问。

■环境
EVM:TMDSCNCD263P
SDK:mcu_plus_sdk_am263px_11_01_00_19
SysConfig:1.26.0

我在 ePWM 死区下评估了以下 SysConfig 选项:

1) 启用死区控制影子模式(关闭/打开)
2) 启用红色阴影模式(关闭/打开)
3) 启用进纸阴影模式(关闭/打开)

当这些选项设置为 On(开)时、将从生成的代码中删除相应的 EPWM_DISABLE***() 函数。

生成的相关代码如下:

/*死区*/
EPWM_disableDeadBandControlShadowLoadMode (CONFIG_EPWM1_BASE_ADDR); //如果 (1) 打开、则删除
EPWM_setDeadBandControlShadowLoadMode (CONFIG_EPWM1_BASE_ADDR、EPWM_DB_LOAD_ON_CNTR_ZERO);

EPWM_disableRisingEdgeDelayCountShadowLoadMode (CONFIG_EPWM1_BASE_ADDR);//如果 (2) 打开、则删除
EPWM_setRisingEdgeDelayCountShadowLoadMode (CONFIG_EPWM1_BASE_ADDR、EPWM_RED_LOAD_ON_CNTR_ZERO);

EPWM_disableFallingEdgeDelayCountShadowLoadMode (CONFIG_EPWM1_BASE_ADDR);//如果 (3) 打开、则删除
EPWM_setFallingEdgeDelayCountShadowLoadMode (CONFIG_EPWM1_BASE_ADDR、EPWM_FED_LOAD_ON_CNTR_ZERO);

■观察到的寄存器值(在调试执行期间在监视窗口中检查)

无论 SysConfig 开/关设置如何、我都观察到:

DBCTL2[SHDWDBCTLMODE]= 0
DBCTL[SHDWDBREDMODE] = 1
DBCTL[SHDWDBFEDMODE] = 1

■代码级分析

EPWM_setDeadBandControlShadowLoadMode () 仅设置 DBCTL2[LOADDBCTLMODE]
而不设置 DBCTL2[SHDWDBCTLMODE]。

但是、RED/FED 影子加载 API 会显式设置
DBCTL[SHDWDBREDMODE]和 DBCTL[SHDWDBFEDMODE]更改为 1。

因此、看来:

- DBCTL2[SHDWDBCTLMODE]无法通过 Sysconfig + driver API 启用。
- DBCTL[SHDWDBREDMODE]和 DBCTL[SHDWDBFEDMODE]始终启用
 何时调用相应的 SET API。

■问题

1) 此行为是有意的(根据设计)、还是实施问题
  新硬件功能吗?

2) 如果需要 DBCTL2 的影子模式控制、
  是否需要用户在其代码中手动设置 DBCTL2[SHDWDBCTLMODE]?

3) 是否存在明确启用红色/馈送阴影模式的设计原因
  在 API 中、而 DBCTL2 影子模式不是?

感谢您的澄清。

天野哲夫

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

    尊敬的 Tetsuo:

    EPWM_setDeadBandControlShadowLoadMode () 仅对加载事件选择 (DBCTL2[LOADDBCTLMODE]) 进行编程、而不使 DBCTL2[SHDWDBCTLMODE]生效。 因此、SHDWDBCTLMODE 保持在其复位/默认值(您观察到 0)。

    EPWM_setRisingEdgeDelayCountShadowLoadMode () 和 EPWM_setFallingEdgeDelayCountShadowLoadMode () 在配置加载模式时明确设置 DBCTL[SHDWDBREDMODE]= 1 和 DBCTL[SHDWDBFEDMODE]= 1(API 文本也意味着启用阴影)。 因此、一旦这些“set"API 运行“ 运行、无论 SysConfig 之前是否发出了 disable...()调用、监视窗口中的两个都将显示为 1。

    仅设置加载事件的实际实现是 DBCTL2[SHDWDBCTLMODE]的 driverlib + SysConfig 代码生成路径中的实现 GAP /缺失位集、这不是有意的“按设计“行为。 我将为此提交一份报告。

    是的、根据当前行为、如果需要 DBCTL 重影(DBCTL2 路径)、则在选择加载事件之前、应在应用中手动设置 DBCTL2[SHDWDBCTLMODE]= 1。

    此致、

    Masoud

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

    尊敬的 Masoud:

    感谢您的澄清和提交报告。

    您的解释与我的观察结果相符。
    现在、我将在选择加载事件之前在应用中手动设置 DBCTL2[SHDWDBCTLMODE]= 1。

    再次感谢您的支持。

    此致、
    Tetsuo