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.
您好!
我想将 ECAP1-ECAP4与同一 TBCTR (时基计数器)同步。
我按照以下讨论操作、使我的 ECAP 在同步中工作、以获取输入 ECAP 脉冲之间的相位差。
ECap1Regs.ECCTL2.bit.SYNCI_EN = 1;
/* Enable sync in*/
ECap1Regs.ECCTL2.bit.SYNCO_SEL = 0;
/* Pass through*/
ECap4Regs.ECCTL2.bit.SYNCI_EN = 1;
/* Enable sync in*/
ECap4Regs.ECCTL2.bit.SYNCO_SEL = 0;
/* Pass through*/
//Set up ECAP1 and ECAP4 for External Sync
EALLOW;
InputXbarRegs.INPUT5SELECT = 66U;
//0x66
GpioDataRegs.GPDDAT.bit.GPIO66 = 0;
SyncSocRegs.SYNCSELECT.bit.ECAP1SYNCIN = 5U;
//0x101
SyncSocRegs.SYNCSELECT.bit.ECAP4SYNCIN = 5U;
//0x101
EDIS;
//Synchronize ECAPS 1 through 4
ECap1Regs.ECCTL2.bit.SWSYNC = 1;
ECap4Regs.ECCTL2.bit.SWSYNC = 1;
Nirav、您好!
问题:
那么、正如下面的模块中提到的、ECAP1-ECAP2-ECAP3默认是同步的?
2.我是说同步是指同时启动计时器计数器? 上面的块显示 ECAP1 SyncOut 被馈送至 ECAP2 synctin、这不会使它们的定时器计数器在一条线路中启动。 如何做到这一点?
3.只有 ECAP1和 ECAP4可被用于具有同步基址计数器? 如果是、如何使用 EXTSYNCIN1触发 ECAP1-ECAP4?
4.为配置上述内容,在数据表中提到了以下各行:
• 在 InputXbarRegs.INPUT5SELECT 中选择未使用的 GPIO。
•将该 GPIO 配置为输出模式,并将‘0’写入 GPIO DAT 寄存器。 默认情况下、此设置已编程
因此该引脚上的任何活动都会导致 SWSYNC 出现问题
•编程 SYNCSEL[ECAPxSYNCIN]= 0x101。 这将使 ECAPx.EXTSYNCIN 进入非活动状态。
GPIO 输出引脚的用途是什么? 我需要连接该引脚以实现同步?
请建议一种实现这一目标的方法。
此致、
Manohar
您好、Manohar、
请在以下行中查找我的评论:
那么、 正如下面的模块中提到的、ECAP1-ECAP2-ECAP3默认是同步的?
ECAP2和 ECAP3由 ECAP1SYNCOUT 同步,所以答案是肯定的。
2. 我是说同步是指同时启动计时器计数器?
--是的
上面的块显示 ECAP1 SyncOut 被馈送至 ECAP2 synctin、这不会使它们的定时器计数器在一条线路中启动。 如何做到这一点?
--你是说 ECAP1计数器不是在 ECAP2的同时启动的吗? 您是如何确定的?
3. 只有 ECAP1和 ECAP4可被用于具有同步基址计数器? 如果是、如何使用 EXTSYNCIN1触发 ECAP1-ECAP4?
这不是真的,你可以将 ECAP1-ECAP4与 SW 同步同步,你也可以使用 EXTSYNCIN1来同步如果这是目的,你希望如何实现同步? 如果您想 使用 EXTSYNCIN1、只需执行以下操作:
ECap1Regs.ECCTL2.bit.SWSYNC = 0;
GpioDataRegs.GPDDAT.bit.GPIO66 = 0; -- Remove this, and provide trigger on this pin externally
GPIO 输出引脚的用途是什么? 我需要连接该引脚以实现同步?
--默认的 SYNCIN 是 EPWM1SYNCOUT,优先于软件同步。 但是、如果您希望使用 SWSYNC、并且不希望 EPWM1SYNCOUT 上的任何不需要的事件复位计数器、TI 建议您将 SYNCIN 源更改为 EXTSYNCIN1、并将其连接到未使用的 GPIO、并将该 GPIO 驱动为低电平、以便无伪事件将复位计数器、 同步仅通过 SW 触发器实现。
不需要,您不需要连接这个引脚,但是当这个引脚被用于 eCAP 同步时,这个引脚不能被用作其它操作的 GPIO
此致、
Nirav
Nirav、您好!
感谢您的宝贵回复。
--你是说 ECAP1计数器不是在 ECAP2的同时启动的吗? 您是如何确定的?
-我配置了 ECAP1 ECAP2并提供相位延迟为10%的输入脉冲。
ECAP1-2之间的 cap1寄存器数据之间的差异不会导致10%的相位延迟或时钟差异。
问题:
如果我减去 ECAP1和 ECAP2的 cap1寄存器值、我将得到相位差?
2.当从 ECAP1生成的同步信号启动 ECAP2基本计数器时? 直到我需要在配置后冻结 ECAP2模块?
我正在尝试获取两个输入脉冲之间的相位延迟。
请建议我如何实现这一点。
您好、Manohar、
在下面查找我对您的问题的评论:
如果我减去 ECAP1和 ECAP2的 cap1寄存器值、我将得到相位差?
-是的、但是如果您的输入信号是时钟、那么您可能还需要使用 CAP2、CAP3和 CAP4寄存器来捕捉时钟的所有四个事件、即第1个上升、第1个下降、第2个上升和第2个下降。
2.当从 ECAP1生成的同步信号启动 ECAP2基本计数器时? 直到我需要在配置后冻结 ECAP2模块?
不,你不需要。
您能在配置中澄清一下吗?
1.您有两个时钟信号、它们的相位差为10%、然后馈送到 ECAP1和 ECAP2中、对吧?
2、CAP1寄存器上升/下降的极性配置是什么?
捕获事件的捕获值是多少?
此致、
Nirav