2015-07-14 3 views
1

Я использую плату STM32L152RB, и я пытаюсь настроить системные часы для использования часов PLL, но флаг RCC_FLAG_PLLRDY устанавливается так, что программа застревает во время цикла. пожалуйста, позвольте, что я делаю неправильноКонфигурация часов PLL

EnableHSI(); 
RCC_PLLConfig(RCC_PLLSource_HSI,RCC_PLLMul_3,RCC_PLLDiv_2); 
RCC_PLLCmd(ENABLE); 
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET); 
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); 
t=GetSystemClockSource(); 

ответ

2

Обратите внимание на справочное руководство по теме «Связь между частотой тактовой частоты процессора и временем чтения флэш-памяти». В нем говорится, что для скорости процессора выше 16 МГц вы должны установить латентность вспышки для 1WS (состояние ожидания). Нечто подобное перед установкой ФАПЧ в качестве источника тактового сигнала:

FLASH->ACR = FLASH_ACR_ACC64; // 64-bit access 
FLASH->ACR |= FLASH_ACR_LATENCY; // one wait state 
FLASH->ACR |= FLASH_ACR_PRFTEN; // prefetch enable 
+0

Старый вопрос, но у меня точно такая же проблема, как оп. Я запускаю свою систему с помощью hsi в качестве системных часов sourcr (8mhz) и попытки изменить источник синхронизации на pll. То же, что и op, мой флаг pll ready никогда не будет установлен. Можете ли вы объяснить, как это изменит латентность вспышки, так как состояние флажка готовности pll проверяется перед установкой PLL в качестве источника синхронизации, т.е. на данный момент системные часы по-прежнему от hsi – Ankit

+0

Возможно, когда вы пытаетесь переключиться на более высокую частоту без настройки waitstates, PLL не сможет заблокировать. Я играл с моим L151, пытался переключиться на PLL, не установив одно состояние ожидания: не повезло, в основном бит PLLRDY не установлен, иногда (редко) он попадает в hardfault. – LonelyWolf

+0

Спасибо. Я не знаю, почему они не предоставили ссылку на это в разделе RCC. Провел много времени, задаваясь вопросом, почему мой stm32f411ret6 работал на частоте 42 МГц, но не на 84. Увеличение состояния ожидания до 4, программа мигания светодиодов работает до 100 МГц. –

Смежные вопросы