Tengo un MCU STM32F427 con un cristal HSE de 8MHz. Estoy configurando el reloj de la siguiente manera:
#include <stm32f4xx.h>
#include <stm32f4xx_rcc.h>
void initClocks(void);
void initClocks(void) {
/*
HSE: 8 MHz
PLL: HSE / 8 * 192 => 192 MHz
SysCLK: PLL / 2 => 96 MHz
PrphCLK: PLL / 4 => 48 MHz
*/
RCC_PLLConfig(RCC_PLLSource_HSE, 8, 192, 2, 4);
RCC_PLLCmd(ENABLE);
// Wait
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET) continue;
// Use PLL
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while (RCC_GetSYSCLKSource() != 0x08) continue;
RCC_HCLKConfig(RCC_SYSCLK_Div1);
RCC_PCLK2Config(RCC_SYSCLK_Div1);
RCC_PCLK1Config(RCC_SYSCLK_Div1);
}
int main(void) {
RCC_ClocksTypeDef ClksFreq;
initClocks();
SystemCoreClockUpdate();
RCC_GetClocksFreq(&ClksFreq);
while(1) {}
}
HSE_VALUE se define como 8000000
Mi depurador muestra que SYSCLK
en ClksFreq
es 57.6MHz, aunque esperaría que fuera de 96Mhz.
¿Qué me estoy perdiendo?