请问当dsp-C6455的pll1模块的div4设置改变后clk4的输出频率为啥不变?输入晶振时钟50MHz,prediv为一,20倍频,div4是6分频,为啥输出频率为60MHz?
Nancy Wang:
修改成任意值都不变?请将配置代码或者关键寄存器的值贴出来一下。
user5910726:
回复 Nancy Wang:
#include<C6455_lib.h>
Uint32 *pll4=(Uint32 *)(0x029A0160);Uint32 *pll5=(Uint32 *)(0x029A0164);Uint32 *pllstat=(Uint32 *)(0x029A013C);int Pll_Delay;//initialize PLL1 for(Pll_Delay=0;Pll_Delay<=100000;Pll_Delay++);
InitPLL1(20);//50MHz*20 = 1GHz to CPU COREInitPeriphral();//enable all Periphrals InitPLL2();//ddr2 250MHzEMIFA 125MHz
/* Enable the EMIFA*/CSL_FINST(((CSL_DevRegs*)CSL_DEV_REGS)->PERCFG1, DEV_PERCFG1_EMIFACTL, \ENABLE);/* Enable the ddr2 */CSL_FINST(((CSL_DevRegs*)CSL_DEV_REGS)->PERCFG1, DEV_PERCFG1_DDR2CTL, ENABLE);ddr2ReadWrite(); //*pll4=0x00008002;//*pll5=0x00008002; *pll4=0x00008000;*pll5=0x00008000; printf("%X\n",(*pllstat));while(((*pllstat)&0x1)==1){printf("%X\n",(*pllstat));};for(Pll_Delay=0;Pll_Delay<=100000;Pll_Delay++);emifaReadWrite();我用自带的pll库程序打不开pllctl寄存器的使能,这个网上下载的不知道行不行?运行后寄存器的情况如下:
pllctl=0x00000041;pllm=0x00000013;prediv=0x00008000;pllcmd=0x00000001;pllstat=0x00000006;plldiv4=0x00008000;plldiv5=0x00008000;
user5910726:
回复 Nancy Wang:
请教一下如果用EMIFA同步传输的话怎么读取FPGA发送的数据?需要用到EDMA3吗?能否提供一下代码?为什么异步EMIFA读取数据的时候在读脉冲之后还要等很长时间才开始下一个读脉冲?能否缩短读脉冲之间的等待时间?需要配置哪个寄存器?