Other Parts Discussed in Thread: TMDSCNCD263P, SYSCONFIG
器件型号: AM263P4
Thread 中讨论的其他器件: TMDSCNCD263P、 SysConfig
您好、
我对 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 影子模式不是?
感谢您的澄清。
天野哲夫