Part Number:TMS320F28377D
问题一:载波同步,外部输出信号做触发信号
EPwm1Regs.TBCTL.bit.SYNCOSEL = 0x0;
EPwm2Regs.TBCTL.bit.SYNCOSEL = 0x0;
若是我PWM1和PWM2想做载波同步,上面的配置将PWM的同步信号变为外部输入信号。请问,该外部输入信号如何同步,是GPIO的时钟信号嘛?
问题2:
下面代码中,若是配置了ADCA通过eMPW7 ,eMPW4 触发转换SOC0和SOC1,同理ADCB也是。请问若是ePwm7信号SOC触发,此时ADCA和ADCB是否同时进行转换?
结果寄存器数据是怎么样的?
ADCA:
SOC 0 Sample ADCINA4, triggered by eMPW7 ADCSOCA/C
SOC 1 Sample ADCINA5, triggered by eMPW4 ADCSOCA/C
ADCB
SOC 0 Sample ADCINB2 triggered by eMPW4 ADCSOCA/C
SOC 1 Sample ADCINB1, triggered by eMPW7 ADCSOCA/C
Yale Li:
Hi Levin,
1. 器件会在外部信号的上升沿时刻产生同步信号。您可以根据这一点来进行设计。
2. 会同时进行转换。这是两个独立的ADC模块,它们有各自的结果寄存器。
,
Levin:
谢谢您的回复。我还相问下,
1、器件是指DSP GPIO同步时钟,还是其他除DSP的外部信号(经过GPIO口输入)?
2、28377D 4个ADC转换器,定义SOC时,每个ADC转换器都有其独立的转换序列嘛?即ADC a里面有 soc0 ,ADC b也有soc 0;触发转换时,每个ADC转换器内,按定义序列优先级进行转换?
,
Xiazi Lee:
1、器件应该指的是ePWM模块吧。ePWM有一个同步信号输入源EPWMxSYNCI,通过配置这个信号源可以选择同步源是X-bar还是其它的ePWM模块,而X-bar又可路由到外部的GPIO口输入。
2、每个ADC都有独立的转换序列,互相独立。通过配置不同ADC模块的触发源与转换序列,可以实现各自模块转换序列的转换和生成转换结果。不同ADC转换器不会互相影响。
,
Yale Li:
Hi Levin,
楼上的回复是正确的,我补充一下。
举个例子,当您配置EPWM2SYNCI为ePWM2的同步输出信号输出时,它作为下一个ePWM模块(即EPWM3)的同步信号进行输入。此时同步信号实际上是来自EPWM1的,EPWM2被直通了。您可以看下spruhm8i_TMS320F2837xD Dual-Core Delfino Microcontrollers Technical Reference Manual (Rev. I)第1876页的同步信号链:
可以在以下几个事件处产生同步信号:
对于处在同步信号链头部的模块,比如EPWM1、EPWM4,就可以选择外部信号作为同步输入信号。这个外部信号可以来自于器件之外,比如其他器件的EPWM输出,通过GPIO进行输入,在信号的上升沿产生同步信号。TI提供的例程就是将1个EPWM的输出导入到1个GPIO(通过外部连接),这个GPIO再通过Input XBAR将信号导入到需要同步的EPWM模块。
,
Levin:
您好,刚刚看了您的回复很有收获。自己也在手册找到如下的这段话,写的不够全,以下理解是否正确。
1、若是需要外部信号作为同步源,例如将xbar与空闲的Gpio22连接,配置Gpio22 为输入模式,22口的一个上升沿输入信号将产生同步信号?
2、上面有软件触发同步,需要将空闲口设置成输入模式,同时需要配置数据寄存器为0?
,
Yale Li:
Hi Levin,
1.
Levin 说:22口的一个上升沿输入信号将产生同步信号?
是的;
2.
ECAP1的同步信号输入的选择如上图所示,实际上我们并不能将输入信号关闭。
所以这个例子在使用软件触发同步信号时,将ECAP1的同步信号输入选择为外部输入1,并将由Input XBAR连接的相应的引脚配置成 输出 模式,结果寄存器赋 0 。这样可以保证软件触发不会被干扰。