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.

[参考译文] TMS320F28075:当 EPWM1A 动作发生时、eCAP1计数器复位

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/978107/tms320f28075-ecap1-counter-resetting-when-epwm1a-action-occurs

器件型号:TMS320F28075

我正在尝试使用 ECAP 模块跟踪齿齿轮、并使用 ePWM 模块在特定时间发送脉冲。 但是、当 ePWM 触发时、ECAP 记录的事件时间不正确。  

我已经按如下方式配置了 ECAP:

ECAP_STOPCounter (ECAP1_BASE);
ECAP_enableCaptureMode (ECAP1_BASE);

ECAP_setCaptureMode (ECAP1_base、ECAP_Continuous_CAPTURE_MODE、ECAP_EVENT_1);
ECAP_setEventPolarity (ECAP1_base、ECAP_EVENT_1、ECAP_EVNT_RISTING _EDGE);
ECAP_enableCounterResetOnEvent (ECAP1_base、ECAP_EVENT_1);

eCAP_enableLoadCounter (ECAP1_base);
ECAP_setSyncOutMode (ECAP1_base、ECAP_SYNC_OUT_SYNCI);
ECAP_startCounter (ECAP1_base);
ECAP_enableTimeStampCapture (ECAP1_BASE);
eCAP_rearm (eCAP1_base);

ECAP_enableInterrupt (ECAP1_base、(ECAP_ISR_SOURCE、CAPTURE_EVENT_1 |
eCAP_ISR_SOURCE 计数器溢出);

INTERRUPT_ENABLE (INT_ECAP1); 

然后在 ECAP 的中断中、我使用以下代码测量事件:

periodCount = ECAP_getEventTimeStamp (ECAP1_base、ECAP_EVENT_1); 

中断按预期工作。

但是、我在 ePWM 模块上设置了一个脉冲、当该脉冲执行时、我获得了一个针对 ECAP 模块的错误周期测量值。 我使用以下代码设置脉冲:

ePWM_setActionQualifierAction (EPWM1_base、
ePWM_AQ_OUTPUT A、
ePWM_AQ_OUTPUT 高电平、
ePWM_AQ_output_on_timebase_up_CMPA); 

我设置一个数组来记录 ECAP 进行的每次测量。 齿齿轮的速度未改变。 当 ePWM 的操作执行时、ECAP 时序不正确。 您可以在以下数组中看到这一点:

我在这里迷路了。 我知道 ECAP 和 ePWM 可以同步它们的时钟、但我不知道它们之间会有何关联? 有人能解释一下吗?

编辑:我忘记了提到、当 ECAP 的时序不正确时、中断不会触发。 仅其事件时间不正确。  

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

    Mark、您好!

    当问题发生时、您能否读取 ECFLG 寄存器?

    此外、如何设置输入 GPIO 线路的鉴定模式? 您可以使用合格的3样本还是合格的6样本模式进行尝试?

    GPIO_setQualificationMode (24、GPIO_QUAL_3SAMPLE);

    您能否发送 完整的 eCAP 寄存器配置?

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

    对此进行了任何更新? 您是否能够解决此问题?