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

C6701 Timer精度问题

请问一下TI工程师,C6701的Timer1定时精度有多高,有多大误差。目前想使用Timer定时触发FPGA,定时时间为12秒,因为Timer1的运行时钟为DSP主频的四分之一,所以给Timer1 CTL寄存器,PRD寄存器,CNT寄存器分别配置了512,30000000*12, 0;但是简单的测试了一下发现有一定的误差,大概在1s左右。

Tony Tang:

提供的信息不全吧,CPU频率多少?输入时钟频率多少?

Shine:

有没有测量过CLKOUT1管脚上的时钟输出是否精确?

Gangping Li:

回复 Tony Tang:

Hello,Tony,目前DSP主频为120MHz,根据C6000 Timer技术手册,Timer如果选择内部时钟时,Timer默认输入时钟为DSP主频的1/4。后来经过排查是因为我们程序中存在着一个运行不稳定的代码,对该代码运行情况使用了FPGA运行时间测试,测试后发现是这段代码有问题。、另外,我还有一点疑问,如果DSP主频为120MHz,其中Timer运行在Dsp主频的1/4上,那么Timer频率为30Mhz,Timer计数使用了32位PRD寄存器存储计数总数,那么Timer最大的计数值位0xFFFF FFFF,换算十进制则为4294967296,而Timer计数一个,当前值增加1,需要的时间为1/30000000s,照这样可以推测出DSP timer最大的定时时间为4294967296/30000000 = 143.333s;而我这边的需求是DSP Timer定时的最大值可以到达1000s定时甚至更长,像这种情况,如何使得Timer定时更长呢?谢谢Tony

Gangping Li:

回复 Shine:

Hello,Shine,经过排查DSP时钟很精确,是我这边有部分代码有问题。
另外,请教一下Shine,如果DSP主频为120MHz,其中Timer运行在Dsp主频的1/4上,那么Timer频率为30Mhz,Timer计数使用了32位PRD寄存器存储计数总数,那么Timer最大的计数值位0xFFFF FFFF,换算十进制则为4294967296,而Timer计数一个,当前值增加1,需要的时间为1/30000000s,照这样可以推测出DSP timer最大的定时时间为4294967296/30000000 = 143.333s;而我这边的需求是DSP Timer定时的最大值可以到达1000s定时甚至更长,像这种情况,如何使得Timer定时更长呢?谢谢Shine

da qin zheng sheng:

回复 Gangping Li:

按照125秒,需要8次定时中断可以实现,这个和普通mcu原理一样!

Gangping Li:

回复 da qin zheng sheng:

你好,不太明白你的意思

da qin zheng sheng:

回复 Gangping Li:

我只会对c6000 dsp io口闪灯编程,不会dsp算法。

da qin zheng sheng:

回复 Gangping Li:

在定时,i2c编程方面和51,arm cortexm3原理是一样的。

da qin zheng sheng:

回复 Gangping Li:

在定时,i2c编程方面和51,arm cortexm3原理是一样的。

赞(0)
未经允许不得转载:TI中文支持网 » C6701 Timer精度问题
分享到: 更多 (0)