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;"
:"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; \
my problem is: the DSP never exit from IDLE.
Could you give me some hints?