AnsweredAssumed Answered

BF561 PLL

Question asked by CyberSamu on Mar 15, 2011
Latest reply on Mar 18, 2011 by PrasanthR

Hello,

 

I'm developing an application based on ADSP BF561 2 application, 1 for each core.

 

I'm trying to set the PLLwith the following function:

 

static void init_PLL(void)
{
    unsigned short msel, ssel, imask;
   
    msel = (unsigned short)ceil(((float)(PROC_CLOCK_FREQ_CORE) / (float)(PROC_CLOCK_FREQ_IN)));
    ssel = (unsigned short)ceil(((float)(PROC_CLOCK_FREQ_CORE) / (float)(PROC_CLOCK_FREQ_SYSTEM)));
   
    asm("cli r0; \
        %0 = r0;"
        :"=d"(imask)
        :
        :"r0");             //IMASK bitpattern saved in "imask".
       
    *pSIC_IWR0 |= 0x1;        //Enable PLL-interrupt to wakeup processor from idle-mode.

 

    *pPLL_DIV = ssel;
   
    msel = msel << 0x9;
    *pPLL_CTL = msel;
   
                            //PLL programming sequence.
    asm ("r0 = %0; \
        idle; \
        sti r0;"
        :
        :"d"(imask)
        :"r0");
}

 

my problem is: the DSP never exit from IDLE.

 

Could you give me some hints?

 

Thanks.

Outcomes