STM32F411 cant get PLL to stabilize using HSI
Hi,
I seem to behaving an issue getting my STM32F411 PLL to stabilize using the HSI. The code I am using shown below. Setting it to 100MHZ. The code gets stuck in RCC_GetSYSCLKSource() != 0x08 ) continue; . It never returns 8. I had originally got stuck at while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET ) continue;
until added the flash wait state. Any ideas what I am doing wrong. I have run out of ideas at the moment. Any help much appreciated. Thanks Clive
RCC_DeInit();
//FLASH->ACR = FLASH_ACR_ACC; // 64-bit access
FLASH->ACR |= FLASH_ACR_LATENCY_1WS; // two wait states
FLASH->ACR |= FLASH_ACR_PRFTEN; // prefetch enable
FLASH->ACR |= FLASH_ACR_ICEN; // instruction cache enable
FLASH->ACR |= FLASH_ACR_DCEN; // data cache enable
RCC_HSEConfig(RCC_HSE_OFF);
RCC_HSICmd(ENABLE);
while( RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);
// PLL_M = 16, PLL_N 400, PLL_P = 4, PLL_Q = 9
RCC_PLLConfig(RCC_PLLSource_HSI, 16, 400, 4, 9);
RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK ); // Use PLL as system clock
RCC_PLLCmd( ENABLE ); // Enable PLL
while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET ) continue; // Wait till PLL is readywhile( RCC_GetSYSCLKSource() != 0x08 ) continue; // Wait till PLL is stable
RCC_HCLKConfig(RCC_SYSCLK_Div1); // HCLK = SYSCLK = 100MHZ
RCC_PCLK1Config(RCC_HCLK_Div2); // PCLK1 = HCLK/4 APB1 - 50Mhz
RCC_PCLK2Config(RCC_HCLK_Div1); // PCLK2 = HCLK/4 APB2 - 100Mhz

