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.
工具/软件:Code Composer Studio
各位冠军:
在后台、我尝试从 eCAP 引脚捕获信号、并将 TSCTR 引脚与来自 ePWM 的 syncIn 信号同步。 因此、我的设置如下所示:
选择同步信号源的 CTR = 0。
ECap1Regs.ECCTL2.bit.SYNCI_EN = 1;
启用同步输入选项、因此当 PWM CTR = 0时、CAP TSCTR 将复位。
我已经在 TMS320F28069上实现了这个设置、并且它运行得很好。
接下来、我计划将代码迁移到 TMS320F280049。 与 C2000ware 中的示例代码存在一些差异、其中 F280049使用 driverlib。 我使用 F28069上的设置作为参考、对于同步部分、我使用以下两个函数:
HWREGH (base + ePWM_O_TBCTL)=
((HWREGH (base + ePWM_O_TBCTL)&~(ePWM_TBCTL_SYNCOSEL_M)|((uint16_t) ePWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO << ePWM_TBCTL_SYNCOSEL_S)));
选择同步源为 CTR = 0。
2. ecap_enableLoadCounter (ECAP1_base);
HWREGH (base + ECAP_O_ECCTL2)|= ECAP_ECCTL2_SYNCI_EN;
启用同步输入选项、因此当 PWM CTR = 0时、CAP TSCTR 将复位。
问题是当我检查 F280049的 ECap1Regs.TSCTR 时,它不会在 PWM CTR = 0时复位,而是继续运行到0xFFFFFFF。 我在手册中读出 F280049的电容器是1类 eCAP、但在 F28069上是0类 eCAP。 但是,我不知道两者的同步选项是否有一些差异。
那么、除了这两个设置之外、F280049上的同步设置错过了什么? 类型1和类型0 eCAP 在同步设置上是否有任何差异?
您好!
您还需要配置 SYNCSEL 寄存 器、以确保 EPWM1SYNCOUT 用于驱动 eCAP1的 SYNCIN 信号。 为此,您可以使用以下 SYSCTL API,它是 driverlib 的一部分:
SYSCTL_setSyncInputConfig (SYSCTL_SYNC_IN_ECAP1、SYSCTL_SYNC_IN_SRC_EPWM1SYNCOUT);
如果我的回复回答了您的问题、请点击位于我帖子底部的"我的问题已解决"按钮。
此致
Himanshu
您好、Himanshu、
您的建议确实有用、它起作用。
我不知道 SYNCSEL 寄存器。
非常感谢!
此致、
Luiz