Цитата(Mr.Denis @ Apr 12 2012, 20:34)

Спасибо за ответ!
В примери который я превел в 7 сообщении, МК настроел на 60MHz и USB на 48MHz.
Вы написали Fcclk = 2*(M+1)*Fosc/(N+1), а случайно не M-1?
Пример инициализации pll для рабочего проекта на lpc2368
Fcco = 300MHz, Частота ядра Fcclk=50MHz (Fcco/(CCLKDivValue+1))
В примере ниже константы задаются на 1 меньше, отсюда и M+1 и N+1
CODE
#define PLL_MValue 24
#define PLL_NValue 1
#define CCLKDivValue 5
#define USBCLKDivValue 6
/* System configuration: Fosc, Fcclk, Fcco, Fpclk must be defined */
/* PLL input Crystal frequence range 4KHz~20MHz. */
#define Fosc 12000000
/* System frequence,should be less than 80MHz. */
#define Fcclk 50000000
#define Fcco 300000000
void ConfigurePLL ( void )
{
unsigned int MValue, NValue;
if ( PLLSTAT & (1 << 25) )
{
PLLCON = 1; /* Enable PLL, disconnected */
PLLFEED = 0xaa;
PLLFEED = 0x55;
}
PLLCON = 0; /* Disable PLL, disconnected */
PLLFEED = 0xaa;
PLLFEED = 0x55;
SCS |= 0x20; /* Enable main OSC */
while( !(SCS & 0x40) ); /* Wait until main OSC is usable */
CLKSRCSEL = 0x1; /* select main OSC, 12MHz, as the PLL clock source */
PLLCFG = PLL_MValue | (PLL_NValue << 16);
PLLFEED = 0xaa;
PLLFEED = 0x55;
PLLCON = 1; /* Enable PLL, disconnected */
PLLFEED = 0xaa;
PLLFEED = 0x55;
CCLKCFG = CCLKDivValue; /* Set clock divider */
#if USE_USB
USBCLKCFG = USBCLKDivValue; /* usbclk = 288 MHz/6 = 48 MHz */
#endif
while ( ((PLLSTAT & (1 << 26)) == 0) ); /* Check lock bit status */
MValue = PLLSTAT & 0x00007FFF;
NValue = (PLLSTAT & 0x00FF0000) >> 16;
while ((MValue != PLL_MValue) && ( NValue != PLL_NValue) );
PLLCON = 3; /* enable and connect */
PLLFEED = 0xaa;
PLLFEED = 0x55;
while ( ((PLLSTAT & (1 << 25)) == 0) ); /* Check connect bit status */
return;
}