TI论坛
直播中

h1654155275.5916

7年用户 993经验值
私信 关注

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

本帖最后由 一只耳朵怪 于 2018-6-14 11:13 编辑

能否通过设置某些寄存器实现eCAP寄存器TSCTR和ePWM寄存器TBCTR的自动同步。
还是只能在中断或事件,通过程序让二者同步。

回帖(6)

冯敬宇

2018-6-14 06:42:18
可以通过同步信号来同步PWM和eCAP, 见TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual 的图

 
                                                                         - ERIC
举报

h1654155275.5916

2018-6-14 06:53:00
引用: guigui_7044 发表于 2018-6-14 06:42
可以通过同步信号来同步PWM和eCAP, 见TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual 的图
<b><b/>
</b> 


SyncSocRegs.SYNCSOCLOCK.bit.SYNCSELECT置位后Expressions中的值显示已置位,可是Registers中显示仍是0,EALLOW已写。
要启用同步是否需要写这个寄存器?关于同步手册上并没有找到详细的设置说明,control中也未找到任何关于同步的例程。求指点
举报

冯敬宇

2018-6-14 07:11:40
引用: richips 发表于 2018-6-14 06:53
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
                                                                         - ERIC
举报

冯敬宇

2018-6-14 07:19:53
引用: guigui_7044 发表于 2018-6-14 07:11
你要让哪个PWM和Ecap进行同步?
举个例子,你可以让PWM1在计数器等于0的时候产生一个同步信号,然后eCAP使用这个同步信号。
EPwm1Regs.TBCTL.bit.SYNCOSEL = 1;  // PWM在计数器等于0的时候产生一个内部同步信号输出。

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

更多回帖

×
20
完善资料,
赚取积分