使用的芯片是c6713B,开发板是合众达的dec6713。他们提供的dec6713.c文件中包含pll的设置代码如下:
/* Initialize PLL Registers */
/* Put PLL in bypass */
PLL_bypass();
PLLDelay(20);
/* Reset PLL */
PLL_reset();
PLLDelay(20);
/* Set main multiplier/divisor */
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);
/* Take PLL out of reset */
PLL_deassert();
PLLDelay(1500);
/* Enalbe PLL */
PLL_enable();
PLLDelay(20);
按照上面的代码及其注释,板子的晶振为25M,dsp的工作频率应该是225M,但是板子上的晶振经测量是10M的,所以配置完之后,dsp的工作频率应该是10*18/2=90M。我想提高工作频率,所以主要更改红 {MOD}部分的两行代码,
PLL_RSET(PLLM, 20);
PLL_RSET(PLLDIV1, PLL_PLLDIV1_RMK(1, 0));
配置完之后工作频率应该达到200M,但是发现run的时候程序报错,datasheet上说该dsp的工作频率上线为225m,为什么经过测试发现到140m左右就不工作了呢?
此帖出自
小平头技术问答
一周热门 更多>