mirror of https://github.com/ARMmbed/mbed-os.git
STM32L4 : code cleanup in MSI SetSysClock
parent
7bdfc07954
commit
b5c258e398
|
@ -322,15 +322,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -349,8 +353,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -322,15 +322,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -349,8 +353,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -322,15 +322,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -349,8 +353,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -309,15 +309,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -336,8 +340,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -309,15 +309,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -336,8 +340,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -309,15 +309,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -336,8 +340,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -309,15 +309,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -336,8 +340,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -321,15 +321,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -348,8 +352,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -309,15 +309,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -336,8 +340,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -323,15 +323,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -349,8 +353,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
|
@ -323,15 +323,19 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
|
||||||
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
// Enable LSE Oscillator to automatically calibrate the MSI clock
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSE;
|
||||||
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // No PLL update
|
||||||
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
RCC_OscInitStruct.LSEState = RCC_LSE_ON; // External 32.768 kHz clock on OSC_IN/OSC_OUT
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) == HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
RCC->CR |= RCC_CR_MSIPLLEN; // Enable MSI PLL-mode
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Enable the CSS interrupt in case LSE signal is corrupted or not present */
|
||||||
HAL_RCCEx_DisableLSECSS();
|
HAL_RCCEx_DisableLSECSS();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
/* Enable MSI Oscillator and activate PLL with MSI as source */
|
||||||
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI | RCC_OSCILLATORTYPE_HSI | RCC_OSCILLATORTYPE_HSE;
|
||||||
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
RCC_OscInitStruct.MSIState = RCC_MSI_ON;
|
||||||
|
@ -349,8 +353,12 @@ uint8_t SetSysClock_PLL_MSI(void)
|
||||||
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) {
|
||||||
return 0; // FAIL
|
return 0; // FAIL
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if MBED_CONF_TARGET_LSE_AVAILABLE
|
||||||
/* Enable MSI Auto-calibration through LSE */
|
/* Enable MSI Auto-calibration through LSE */
|
||||||
HAL_RCCEx_EnableMSIPLLMode();
|
HAL_RCCEx_EnableMSIPLLMode();
|
||||||
|
#endif /* MBED_CONF_TARGET_LSE_AVAILABLE */
|
||||||
|
|
||||||
/* Select MSI output as USB clock source */
|
/* Select MSI output as USB clock source */
|
||||||
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
|
||||||
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_MSI; /* 48 MHz */
|
||||||
|
|
Loading…
Reference in New Issue