From 9b277ae859dd9b09ceec43e4c89b18eb6a840cd6 Mon Sep 17 00:00:00 2001 From: bcostm Date: Fri, 15 Apr 2016 11:48:47 +0200 Subject: [PATCH] [STM32L4] Change LSI_VALUE to 32 kHz (#1662) * Add DEVICE_RTC_LSI=0 * Change LSI value to 32 kHz This is the value written in the device datasheet. * Replace tabulations with spaces --- .../hal/TARGET_STM/TARGET_STM32L4/rtc_api.c | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c b/libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c index bfb43bec9d..078b82802b 100644 --- a/libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c +++ b/libraries/mbed/targets/hal/TARGET_STM/TARGET_STM32L4/rtc_api.c @@ -65,9 +65,9 @@ void rtc_init(void) HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct); rtc_freq = LSE_VALUE; } else { - error("Cannot initialize RTC with LSE\n"); + error("Cannot initialize RTC with LSE\n"); } -#else +#else // Enable Power clock __HAL_RCC_PWR_CLK_ENABLE(); @@ -78,22 +78,22 @@ void rtc_init(void) __HAL_RCC_BACKUPRESET_FORCE(); __HAL_RCC_BACKUPRESET_RELEASE(); - // Enable LSI clock - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured! - RCC_OscInitStruct.LSEState = RCC_LSE_OFF; - RCC_OscInitStruct.LSIState = RCC_LSI_ON; - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { - error("Cannot initialize RTC with LSI\n"); - } - // Connect LSI to RTC - PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; - PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; - if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { - error("Cannot initialize RTC with LSI\n"); - } - // This value is LSI typical value. To be measured precisely using a timer input capture for example. - rtc_freq = 40000; + // Enable LSI clock + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI | RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; // Mandatory, otherwise the PLL is reconfigured! + RCC_OscInitStruct.LSEState = RCC_LSE_OFF; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { + error("Cannot initialize RTC with LSI\n"); + } + // Connect LSI to RTC + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; + PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) { + error("Cannot initialize RTC with LSI\n"); + } + // This value is LSI typical value (see device datasheet) + rtc_freq = 32000; #endif // Check if RTC is already initialized @@ -141,7 +141,7 @@ void rtc_free(void) #if DEVICE_RTC_LSI rtc_inited = 0; -#endif +#endif } int rtc_isenabled(void)