TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320F28377D: EPWM触发ADC采样,如果通过定时器来控制EPWM是否生成event trigger 以控制ADC是否采样,其采样结果会产生偏差

Part Number:TMS320F28377D

如题

EPWM触发ADC采样,我希望通过Timer0来控制EPWM的freeze/un-freeze,也就是在Timer0中断进行时,关闭EPWM,不生成event trigger,不允许ADC采样,当Timer0中断结束时,再打开EPWM,开始ADC采样.

但是采样到的结果会发生变化,在打开EPWM后,ADC采样的结果会略高于上一次采样的值.请问是什么原因,怎么避免.

ps: 我的设计是,利用28377D的CLA处理ADC采样,经过160次采样后,Timer0中断发生,进行一次控制,并修改参数,但是实际的系统根据Timer0的周期频率,并不能准确的在160次时进入中断,在Timer0中断时,CLA依然处理ADC采样,待Timer0中断后,执行一次CLA中断,然后继续CLA处理并中断.这部分的数据会打乱我的数据,我希望能去掉,所以在Timer0中断中加入了开关ADC采样,并清除了CLA中断,重置了CLA的数据然后开始新一轮的循环.

如图是我用DAC输出了ADC采样的结果,中间信号中断的部分是进行了Timer0中断,DAC未更新输出,当Timer0中断后,重新开始采样时,信号的峰值会与前次采样的峰值不等,略高或略低,会不会是因为开关了EPWM/ADC导致采样结果的不正确

Green Deng:

你好,描述的内容很多,有些内容我一下子也没理解。

一个是你是通过什么方式来执行“通过Timer0来控制EPWM的freeze/un-freeze”这个操作的?

另外,“在Timer0中断中加入了开关ADC采样,并清除了CLA中断”,就是说进入Timer0中断后,一方面会关闭ePWM的中断触发信号,一方面还会关闭ADC?

最后回到波形上,我看你的DAC输出波形其实是有一个正弦弧度的上升和下降的,会不会是这个波形的上升下降导致你感觉采样到的值变高/低了?

,

Songxiaobai:

在Timer0中断任务中,用TBCTL.CTRMODE位置00或11控制开关,打开EPWM或关闭EPWM,使触发信号产生或不产生,进而控制ADC是否采样.

信号是标准的正弦信号,在Timer0中断前后,两段波形的峰值会略有不同

我测试过如果不开Timer0中断,采样的波形是稳定的正弦信号,但是开了Timer0中断,并控制ADC采样后,波形不变,但是信号的幅值会略有变化

是否是因为我开关EPWM的触发信号而影响了采样的结果.

或者说采样结果会因为什么而出现了偏置

另外,控制ADC是否采样,是否有其他的控制方式,可能其他的方式对于ADC采样的结果会影响很小?

,

Songxiaobai:

另外,我有一点不太明白. 在我的系统中,CLA读取ADC采样值,Timer0定时中断,当Timer0中断任务发生时,CLA继续进行计算,然后进入中断,但此时Timer0中断任务未结束,需要等待结束后,CLA中断任务才能进入,也就是说,CLA在Timer0中断任务时,仅进行了一次读取ADC采样?

,

Green Deng:

理论上PWM的开关不会影响采样值的结果,ADC的触发条件有好几种,如下所示:

• Multiple trigger sources – S/W – software immediate start – All ePWMs – ADCSOC A or B – GPIO XINT2 – CPU Timers 0/1/2 (from each C28x core present) – ADCINT1/2

如果采样和PWM没有相关性的话你可以考虑直接用Timer0来控制ADC采样。

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28377D: EPWM触发ADC采样,如果通过定时器来控制EPWM是否生成event trigger 以控制ADC是否采样,其采样结果会产生偏差
分享到: 更多 (0)