This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dsp-C6455的pll1模块的div4设置

请问当dsp-C6455的pll1模块的div4设置改变后clk4的输出频率为啥不变?输入晶振时钟50MHz,prediv为一,20倍频,div4是6分频,为啥输出频率为60MHz?

  • 修改成任意值都不变?请将配置代码或者关键寄存器的值贴出来一下。
  • #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 CORE
    InitPeriphral(); //enable all Periphrals
    InitPLL2(); //ddr2 250MHz EMIFA 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;
  • 建议直接修改GEL文件中的init_PLL()进行配置。
    c6000.spectrumdigital.com/.../DSK6455.gel
  • 请教一下如果用EMIFA同步传输的话怎么读取FPGA发送的数据?需要用到EDMA3吗?能否提供一下代码?为什么异步EMIFA读取数据的时候在读脉冲之后还要等很长时间才开始下一个读脉冲?能否缩短读脉冲之间的等待时间?需要配置哪个寄存器?
  • 这个链接里面有程序。可以不用edma。
    c6000.spectrumdigital.com/.../
    是不是有可能CEnCFG里面setup+strobe+hold时间太长?
    有新的问题建议重新发帖,方便被更多人看到。