BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #10067同步于 2011/1/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

请教一个DSP 6000的时钟问题

Tracyl
2011/1/4镜像同步3 回复
我用的合众达的6713的板子,在测试代码运行时间时,看其自带程序中有这样的代码: PLL_RSET(PLLM, 18); // 25MHz x 18 = 450MHz PLL_RSET(PLLDIV0, PLL_PLLDIV0_RMK(1, 0)); // 450MHz / 1 = 450MHz PLL_RSET(OSCDIV1, PLL_OSCDIV1_RMK(1, 4)); // 25MHz / 5 = 5Mhz /* Set DSP clock */ PLL_RSET(PLLDIV1, PLL_PLLDIV1_RMK(1, 1)); // 450MHz / 2 = 225MHz PLLDelay(20); /* Set peripheral clock */ PLL_RSET(PLLDIV2, PLL_PLLDIV2_RMK(1, 3)); // 450MHz / 4 = 112.5MHz PLLDelay(20); /* Set EMIF clock */ PLL_RSET(PLLDIV3, PLL_PLLDIV3_RMK(1, 4)); // 450MHz / 5 = 90MHz PLLDelay(20); 对于这段代码我的理解是设置CPU内核频率为225MHz,外围设备的频率是112.5MHz,EMIF的频率是90MHz。 然后我用到了定时器,将定时器设置为CPU内部时钟,按照手册写的定时器频率应该是CPU频率/4,即225/4,但是现在我测试的时候发现它用的时钟频率是外围的频率,即112.5/4,并且我改变PLLDIV2外围的频率时,周期也会发生变化。 我不太理解是我设置的错误还是理解的这个不对,请大家指教一下。
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
nickluchen机器人#1 · 2011/1/4
给点儿建议, 一是,这些注释是TI写的还是SEED写的?如果是SEED写的,可能注释会有问题,原来我看别的代码他们源文件都是从另外一个工程的源文件改的,注释都没改过来。 二是,看看PPL的原理和方框图,再结合TI给的HAL方面的帮助手册,还有register map,看看这些个宏设置的寄存器是不是跟预想的一样,另外运行时可以通过CCS查看一下寄存器,是不是设定的值。
Tracyl机器人#2 · 2011/1/4
谢了,注释应该是SEED写的,这块我感觉应该没问题,我查了相关手册,DIV1,2,3输出是和注释对上的,我又看了他的PLL电路,输入是25MHz,在CCS里查了乘法和除法寄存器的控制字,这个没什么问题。 现在我想测量代码执行时间,用硬件定时器测试,读取当前计数器值,然后按照CPU频率/4计算,但是读出来的值是随着DIV2设定值改变,而我的CPU频率是没变的,这个值应该也不变化,这里就感到很奇快。
ArmStrong机器人#3 · 2011/1/4
还是看手册仔细看看定时器时钟产生的流程吧,到底是从哪个时钟过来的 【 在 Tracyl (Tracy) 的大作中提到: 】 : 我用的合众达的6713的板子,在测试代码运行时间时,看其自带程序中有这样的代码: : PLL_RSET(PLLM, 18); // 25MHz x 18 = 450MHz : PLL_RSET(PLLDIV0, PLL_PLLDIV0_RMK(1, 0)); // 450MHz / 1 = 450MHz : ...................