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.

[参考译文] CCS/TMS320F28379D:ECAP

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/920418/ccs-tms320f28379d-ecap

器件型号:TMS320F28379D

工具/软件:Code Composer Studio

尊敬的支持团队:

 大家好、我想知道如何判断 ECAP 模块的上升沿和下降沿。

ECAP 是否会捕获圈出的部分(如下图)的上升沿和下降沿?

 

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

    您好!

    不可以、圈出的部分似乎是现有信号上的尖峰。 它们不会影响 ECAP 运行。
    当信号状态从0变为1或从1变为0时、ECAP 将检测转换、具体取决于配置。

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

    您好,

     图中的两个信号是 INC 编码器 A 相位和 B 相位的信号。 我使用两个 ECAP 模块来捕获这两个信号。 配置如下:

      ECap1Regs.ECCTL1.bit.CAP1POL = 0;     //上升
      ECap1Regs.ECCTL1.bit.CAP2POL=1;     //fall
      ECap1Regs.ECCTL1.bit.CAP3POL = 0;     //上升
      ECap1Regs.ECCTL1.bit.CAP4POL = 1;     //fall

      ECap1Regs.ECCTL1.bit.CTRRST1 = 1;      // 1:delta 0:abs
      ECap1Regs.ECCTL1.bit.CTRST2 = 1;      // 1:delta 0:abs
      ECap1Regs.ECCTL1.bit.CTRST3 = 1;      // 1:delta 0:abs
      ECap1Regs.ECCTL1.bit.CTRRST4 = 1;      // 1:delta 0:abs

      ECap1Regs.ECCTL1.bit.CAPLDEN = 1;      //启用捕捉单元
      ECap1Regs.ECCTL1.bit.prescale = 0;     ///1

      ECap1Regs.ECCTL2.bit.CAP_APWM = 0;     //捕获模式
      ECap1Regs.ECCTL2.bit.CONT_ONESHT = 0;  //连续模式
      ECap1Regs.ECCTL2.bit.SYNCO_SEL =2;     //禁用 SYn 输出
      ECap1Regs.ECCTL2.bit.SYNCI_EN = 0;     //禁用系统输入

      ECap1Regs.ECEINT.ALL = 0x0000;
      ECap1Regs.ECCLR.ALL = 0xFFFF;
      ECap1Regs.ECCTL2.bit.TSCTRSTOP = 1;    //起始计数器
      ECap1Regs.ECEINT.BIT.CEVT4 = 1;        // 4个事件=__interrupt

      ECap2Regs.ECCTL1.bit.CAP1POL = 0;     //上升
      ECap2Regs.ECCTL1.bit.CAP2POL=1;     //fall
      ECap2Regs.ECCTL1.bit.CAP3POL = 0;     //上升
      ECap2Regs.ECCTL1.bit.CAP4POL = 1;     //fall

      ECap2Regs.ECCTL1.bit.CTRRST1 = 1;     // 1:delta 0:abs
      ECap2Regs.ECCTL1.bit.CTRST2 = 1;     // 1:delta 0:abs
      ECap2Regs.ECCTL1.bit.CTRST3 = 1;     // 1:delta 0:abs
      ECap2Regs.ECCTL1.bit.CTRRST4 = 1;      // 1:delta 0:abs

      ECap2Regs.ECCTL1.bit.CAPLDEN = 1;      //启用捕捉单元
      ECap2Regs.ECCTL1.bit.prescale = 0;     ///1

      ECap2Regs.ECCTL2.bit.CAP_APWM = 0;     //捕获模式
      ECap2Regs.ECCTL2.bit.CONT_ONESHT = 0;  //连续模式
      ECap2Regs.ECCTL2.bit.SYNCO_SEL =2;     //禁用 SYn 输出
      ECap2Regs.ECCTL2.bit.SYNCI_EN = 0;     //禁用系统输入

      ECap2Regs.ECEINT.ALL = 0x0000;
      ECap2Regs.ECCLR.ALL = 0xFFFF;
      ECap2Regs.ECCTL2.bit.TSCTRSTOP = 1;    //开始计数器
      ECap2Regs.ECEINT.BIT.CEVT4 = 1;        // 4个事件=__interrupt
    ECAP 是否会将信号上的 TIP 脉冲捕获为上升沿或下降沿?

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

    您好!

    [引用 USER="Robot Jarvs"] ECAP 是否会将信号上的 TIP 脉冲捕获为上升沿或下降沿?

    正如我先前所说的、脉冲的尖端无关紧要。 当信号状态从0变为1或从1变为0时、ECAP 将检测转换、具体取决于配置。

    因此、当输入信号从0转换为1或从1转换为0时、电压电平将被检测到边沿。
    您可以考虑大约为输入电压(3.3V)的一半。 有关准确的规格、请参阅数据表中的 VIH/VIL 参数。
    您在图中指示的峰值没有发生任何变化-对于 eCAP 的运行、它们没有任何作用。