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

TMS320F28379D: 关于例程采样频率变化的原因

Part Number:TMS320F28379DOther Parts Discussed in Thread:C2000WARE

对于例程adc_soc_epwm_cpu01,我们在设置采样频率为200k后,为了持续采样,将211行asm("   ESTOP0");注释掉,结果虽然程序持续运行了,但采样频率却改变了,我们输入正方波后采样结果对比如下

未注释掉时采样频率正确:

注释掉时,采样频率明显下降(没几个数就出现0):

请问这是为什么呢,如何解决呢?

Green Deng:

你好,这个例程的采样频率是通过PWM触发的,所以你是更改了PWM的频率?具体是如何修改的?

另外,你说输入的是正方波?这样的话确实会有高低电平的变化,那采样结果不对的是未注释掉时的波形?

,

anqi Hu:

你好,修改代码如下图,没有注释掉时采样率就是200k,结果正确,但是注释掉之后,采样结果就不对了。

,

Green Deng:

你好,这个还是先回答一下第一次的问题吧。

你确定你测的是方波?

,

anqi Hu:

你好,我确定测的是频率为1k的正方波,我把PWM的频率改成200K了.没有注释掉asm("   ESTOP0")的时候,ADC在一个正方波周期采了200个点,说明采样频率是200K,但是这个时候程序不能持续运行。注释掉asm("   ESTOP0")之后,程序能持续运行,但是一个正方波周期只采了几个点,采样频率变小了很多

,

Green Deng:

有可能动作周期需要重新初始化一下,你试一下在197行代码后面加上这句:

EPwm1Regs.TBPRD = 0x1000;             // Set period to 4096 counts

即:

EPwm1Regs.ETSEL.bit.SOCAEN = 0;  //disable SOCAEPwm1Regs.TBCTL.bit.CTRMODE = 3; //freeze counter

EPwm1Regs.TBPRD = 0x1000;             // Set period to 4096 counts   add this

,

anqi Hu:

你好,我试了加上代码之后,问题还是没有解决,请问还有可能是其他原因吗?还是这个例程不能持续采样?

,

Green Deng:

你好,加上之后还是跟之前同样的问题吗?是否稍有改善或其他问题?

,

anqi Hu:

你好,加上之后还是之前的问题。请问还有没有其他可以持续采样的ADC例程呢?

,

Green Deng:

你可以看一下这个例程:C:\ti\c2000\C2000Ware_4_01_00_00\device_support\f2837xd\examples\cpu1\adc_soc_continuous

,

anqi Hu:

你好,我看了这个例程,好像没有地方能改ADC的采样频率啊,而且这个例程里也有asm("   ESTOP0"),可能会遇到一样的问题。上次的例程还有没有其他解决办法吗?

,

Green Deng:

这个例程是持续采样直到最大采样率,注释掉之后应该能持续采样。

我最近没办法测试例程,不知道你对例程有做过其他修改吗?还是只更改了采样频率和注释asm("   ESTOP0")?

如果只是注释asm("   ESTOP0")的话代码能正常运行吗?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28379D: 关于例程采样频率变化的原因
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1