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.
您好!
我想在 ePWM1a 中有一个 RED 和 FED、但尽管将其配置为死区延迟、我在 ePWM 波形中看不到任何延迟。 这可能是一个问题。
我的 ePWM 死区的配置如下
/**<死区配置*/
/**<通过 b 比较器将红色配置为 xxxms 的延迟*//待机校验
//EPWM_setDeadBandCounterClock (EPWM1_BASE、EPWM_DB_COUNTER_CLOCK_FULL_CYCLE);
ePWM_setDeadBandDelayMode (EPWM1_BASE、ePWM_DB_RED、TRUE);
ePWM_setDeadBandDelayMode (EPWM1_base、ePWM_DB_FED、true);
ePWM_setRisingEdgeDeadBandDelayInput (EPWM1_BASE、ePWM_DB_INPUT_EPWMA)
ePWM_setFallingEdgeDeadBandDelayInput (EPWM1_BASE、ePWM_DB_INPUT_EPWMA);
EPWM_setDeadBandDelayPolarity (EPWM1_BASE、EPWM_DB_RED、EPWM_DB_POLICY_ACTIVE_LOW);
EPWM_setDeadBandDelayPolarity (EPWM1_BASE、EPWM_DB_FED、EPWM_DB_POLICY_ACTIVE_HIGH);
EPWM_setRisingEdgeDelayCount (EPWM1_BASE、0x1ff);
EPWM_setFallingEdgeDelayCount (EPWM1_BASE、0x5ff);
EPWM_setDeadBandControlShadowLoadMode (EPWM1_BASE、EPWM_DB_LOAD_ON_CNTR_ZERO);
ePWM_setRisingEdgeDelayCountShadowLoadMode (EPWM1_base、ePWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCountShadowLoadMode (EPWM1_base、EPWM_FED_LOAD_ON_CNTR_ZERO);
我附上示波器读数的快照
谢谢
尊敬的 Abayomi:
请参阅死区部分中的此图:
您能否确认以下信息:
DBCTL[IN_MODE]为0
DBCTL[DEDB_MODE]为1
DBCTL[OUT_MODE]为1
DBCTL[OUTSWAP]为1
如果所有这些设置均正确、则会发生以下情况:
EPWM1A 将进入上升沿延迟模块、
上升沿延迟模块的输出将进入下降沿延迟模块
下降沿延迟模块的输出将进入 OUTA、
谢谢!
卢克
Luke、您好!
感谢您的回复。
我检查了寄存器并更改了代码以在寄存器中获得预期值 、但波形出错、并且 PWM 中没有死区。
我的代码/调试器视图的一个快照被包围、波形的一个快照也被包围
显示寄存器值和代码会话的快照
示波器通道3和4显示了
我是否还应该发布 PWM 的整个代码。 我阅读了手册中的 ID 详细信息、并尝试了几种配置 ePWM 的方法、但仍然无法生成死区。
谢谢
尊敬的 Abayomi:
您能否在 C2000Ware 中测试 ePWM 示例8? 该示例展示了一个具有上升沿和下降沿延迟的死区示例。 如果该示例有效、我们可以开始识别示例代码与您的代码之间的差异。
此示例位于[C2000WARE Installation]/driverlib/f28004x/examples/epwm/epwm_ex8_deadband 中
谢谢!
卢克
Luke、您好!
感谢您的回复。 我看了看示例,他们都很好。
不过、其中没有红色和 FED 延迟的示例。
Abayomi,
根据我看到的代码、您的代码似乎是正确的。 您的 TBPRD 是什么? 可能上升沿和下降沿延迟值对于 TBPRD 来说太大。
您还可以 在死区配置代码之前测试是否添加了 EALLOW 语句?
谢谢!
卢克