主题中讨论的其他器件:TMS320F28069、 C2000WARE、 TMS320F280049
工具/软件:Code Composer Studio
各位冠军:
在后台、我尝试从 eCAP 引脚捕获信号、并将 TSCTR 引脚与来自 ePWM 的 syncIn 信号同步。 因此、我的设置如下所示:
- EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO;
选择同步信号源的 CTR = 0。
ECap1Regs.ECCTL2.bit.SYNCI_EN = 1;
启用同步输入选项、因此当 PWM CTR = 0时、CAP TSCTR 将复位。
我已经在 TMS320F28069上实现了这个设置、并且它运行得很好。
接下来、我计划将代码迁移到 TMS320F280049。 与 C2000ware 中的示例代码存在一些差异、其中 F280049使用 driverlib。 我使用 F28069上的设置作为参考、对于同步部分、我使用以下两个函数:
- ePWM_setSyncOutPulseMode (EPWM1_base、ePWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
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 在同步设置上是否有任何差异?