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.

28377D,eCAP寄存器TSCTR和ePWM寄存器TBCTR同步的问题。

能否通过设置某些寄存器实现eCAP寄存器TSCTR和ePWM寄存器TBCTR的自动同步。

还是只能在中断或事件,通过程序让二者同步。

  • 可以通过同步信号来同步PWM和eCAP, 见TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual 的图


     

  • SyncSocRegs.SYNCSOCLOCK.bit.SYNCSELECT置位后Expressions中的值显示已置位,可是Registers中显示仍是0,EALLOW已写。

    要启用同步是否需要写这个寄存器?关于同步手册上并没有找到详细的设置说明,control中也未找到任何关于同步的例程。求指点

  • 你要让哪个PWM和Ecap进行同步?

    举个例子,你可以让PWM1在计数器等于0的时候产生一个同步信号,然后eCAP使用这个同步信号。

    EPwm1Regs.TBCTL.bit.SYNCOSEL = 1;  // PWM在计数器等于0的时候产生一个内部同步信号输出。

    在eCAP的寄存器ECCTL2 使能SYNCI_EN, 同时将CTRPHS寄存器清0. 

    这样当PWM在计数器等于0的时候产生一个同步信号给到eCAP模块,ecap模块将CTRPHS的值加载到TSCTR中。

    从而产生同步。

    ERIC

  • F28377d的同步信号输入还要增加一个选择寄存器SYNCSELECT.ECAP1SYNCIN。

    ERIC

  • 完美解决,多谢指点。

    ecap中还有一个寄存器没有搞明白如何用,ECap1Regs.ECCTL1.bit.PRESCALE。Event Prescale Control,设置了不同的数,发现没有效果。是不是还要配合其他寄存器使用。

  • 见手册的

    16.5.1 Event Prescaler
    • An input capture signal (pulse train) can be prescaled by N = 2-62 (in multiples of 2) or can bypass the
    prescaler.
    This is useful when very high frequency signals are used as inputs. Figure 16-4 shows a functional
    diagram and Figure 16-5 shows the operation of the prescale function.

    对输入捕获的信号进行分频用的。