Added more clock handlers for RCCv2.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14813 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
62d5bc81ae
commit
5567835ef7
|
@ -0,0 +1,109 @@
|
||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2021 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file RCCv1/stm32_csi.inc
|
||||||
|
* @brief Shared CSI clock handler.
|
||||||
|
*
|
||||||
|
* @addtogroup STM32_CSI_HANDLER
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local definitions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief CSI clock frequency.
|
||||||
|
*/
|
||||||
|
#define STM32_CSICLK 4000000U
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Derived constants and error checks. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/* Registry checks for robustness.*/
|
||||||
|
#if !defined(STM32_RCC_HAS_CSI)
|
||||||
|
#error "STM32_RCC_HAS_CSI not defined in stm32_registry.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Checks on configurations.*/
|
||||||
|
#if !defined(STM32_CSI_ENABLED)
|
||||||
|
#error "STM32_CSI_ENABLED not defined in mcuconf.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver exported variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
__STATIC_INLINE void csi_enable(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
RCC->CR |= RCC_CR_HSION;
|
||||||
|
while ((RCC->CR & RCC_CR_HSIRDY) == 0U) {
|
||||||
|
/* Waiting for CSI activation.*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void csi_disable(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
RCC->CR &= ~RCC_CR_HSION;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void csi_reset(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* Making sure HSI is active and ready.*/
|
||||||
|
hsi16_enable();
|
||||||
|
|
||||||
|
/* Clocking from HSI, in case HSI was not the default source.*/
|
||||||
|
RCC->CFGR = RCC_CFGR_SW_HSI;
|
||||||
|
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI) {
|
||||||
|
/* Wait until HSI is selected.*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void csi_init(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#if STM32_CSI_ENABLED
|
||||||
|
/* HSI activation.*/
|
||||||
|
hsi16_enable();
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver interrupt handlers. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver exported functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/** @} */
|
|
@ -0,0 +1,131 @@
|
||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2021 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file RCCv2/stm32_hse.inc
|
||||||
|
* @brief Shared HSE clock handler.
|
||||||
|
*
|
||||||
|
* @addtogroup STM32_HSE_HANDLER
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local definitions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Derived constants and error checks. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/* Registry checks for robustness.*/
|
||||||
|
#if !defined(STM32_RCC_HAS_HSE)
|
||||||
|
#error "STM32_RCC_HAS_HSE not defined in stm32_registry.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Checks on configurations.*/
|
||||||
|
#if !defined(STM32_HSE_ENABLED)
|
||||||
|
#error "STM32_HSE_ENABLED not defined in mcuconf.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(STM32_HSECLK)
|
||||||
|
#error "STM32_HSECLK not defined in board.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Check on limits.*/
|
||||||
|
#if !defined(STM32_HSECLK_MAX)
|
||||||
|
#error "STM32_HSECLK_MAX not defined in hal_lld.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(STM32_HSECLK_MIN)
|
||||||
|
#error "STM32_HSECLK_MIN not defined in hal_lld.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(STM32_HSECLK_BYP_MAX)
|
||||||
|
#error "STM32_HSECLK_BYP_MAX not defined in hal_lld.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(STM32_HSECLK_BYP_MIN)
|
||||||
|
#error "STM32_HSECLK_BYP_MIN not defined in hal_lld.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if STM32_HSE_ENABLED
|
||||||
|
#if STM32_HSECLK == 0
|
||||||
|
#error "HSE frequency not defined"
|
||||||
|
#else /* STM32_HSECLK != 0 */
|
||||||
|
#if defined(STM32_HSE_BYPASS)
|
||||||
|
#if (STM32_HSECLK < STM32_HSECLK_BYP_MIN) || (STM32_HSECLK > STM32_HSECLK_BYP_MAX)
|
||||||
|
#error "STM32_HSECLK outside acceptable range (STM32_HSECLK_BYP_MIN...STM32_HSECLK_BYP_MAX)"
|
||||||
|
#endif
|
||||||
|
#else /* !defined(STM32_HSE_BYPASS) */
|
||||||
|
#if (STM32_HSECLK < STM32_HSECLK_MIN) || (STM32_HSECLK > STM32_HSECLK_MAX)
|
||||||
|
#error "STM32_HSECLK outside acceptable range (STM32_HSECLK_MIN...STM32_HSECLK_MAX)"
|
||||||
|
#endif
|
||||||
|
#endif /* !defined(STM32_HSE_BYPASS) */
|
||||||
|
#endif /* STM32_HSECLK != 0 */
|
||||||
|
#endif /* STM32_HSE_ENABLED */
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver exported variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
__STATIC_INLINE void hse_enable(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#if defined(STM32_HSE_BYPASS)
|
||||||
|
/* HSE Bypass case.*/
|
||||||
|
RCC->CR |= RCC_CR_HSEON | RCC_CR_HSEBYP;
|
||||||
|
#else
|
||||||
|
RCC->CR |= RCC_CR_HSEON;
|
||||||
|
#endif
|
||||||
|
while ((RCC->CR & RCC_CR_HSERDY) == 0U) {
|
||||||
|
/* Waiting for HSE activation.*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void hse_disable(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
RCC->CR &= ~RCC_CR_HSEON;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void hse_init(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#if STM32_HSE_ENABLED
|
||||||
|
hse_enable();
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver interrupt handlers. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver exported functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/** @} */
|
|
@ -0,0 +1,109 @@
|
||||||
|
/*
|
||||||
|
ChibiOS - Copyright (C) 2006..2021 Giovanni Di Sirio
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file RCCv1/stm32_hsi64.inc
|
||||||
|
* @brief Shared HSI64 clock handler.
|
||||||
|
*
|
||||||
|
* @addtogroup STM32_HSI64_HANDLER
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local definitions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief HSI64 clock frequency.
|
||||||
|
*/
|
||||||
|
#define STM32_HSI64CLK 64000000U
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Derived constants and error checks. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/* Registry checks for robustness.*/
|
||||||
|
#if !defined(STM32_RCC_HAS_HSI64)
|
||||||
|
#error "STM32_RCC_HAS_HSI64 not defined in stm32_registry.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Checks on configurations.*/
|
||||||
|
#if !defined(STM32_HSI64_ENABLED)
|
||||||
|
#error "STM32_HSI64_ENABLED not defined in mcuconf.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver exported variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local variables. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver local functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
__STATIC_INLINE void hsi65_enable(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
RCC->CR |= RCC_CR_HSION;
|
||||||
|
while ((RCC->CR & RCC_CR_HSIRDY) == 0U) {
|
||||||
|
/* Waiting for HSI64 activation.*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void hsi16_disable(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
RCC->CR &= ~RCC_CR_HSION;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void hsi64_reset(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* Making sure HSI is active and ready.*/
|
||||||
|
hsi16_enable();
|
||||||
|
|
||||||
|
/* Clocking from HSI, in case HSI was not the default source.*/
|
||||||
|
RCC->CFGR = RCC_CFGR_SW_HSI;
|
||||||
|
while ((RCC->CFGR & RCC_CFGR_SWS) != RCC_CFGR_SWS_HSI) {
|
||||||
|
/* Wait until HSI is selected.*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
__STATIC_INLINE void hsi64_init(void) {
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
#if STM32_HSI64_ENABLED
|
||||||
|
/* HSI activation.*/
|
||||||
|
hsi16_enable();
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver interrupt handlers. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/*===========================================================================*/
|
||||||
|
/* Driver exported functions. */
|
||||||
|
/*===========================================================================*/
|
||||||
|
|
||||||
|
/** @} */
|
|
@ -91,15 +91,6 @@
|
||||||
#define CLK_ARRAY_SIZE 12U
|
#define CLK_ARRAY_SIZE 12U
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/**
|
|
||||||
* @name Internal clocks
|
|
||||||
* @{
|
|
||||||
*/
|
|
||||||
#define STM32_HSICLK 64000000
|
|
||||||
#define STM32_CSICLK 4000000
|
|
||||||
#define STM32_LSICLK 32000
|
|
||||||
/** @} */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @name RCC_RCK3SELR register bits definitions
|
* @name RCC_RCK3SELR register bits definitions
|
||||||
* @{
|
* @{
|
||||||
|
@ -193,17 +184,41 @@
|
||||||
#define STM32_I2S_CKIN_VALUE 0
|
#define STM32_I2S_CKIN_VALUE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables or disables the HSE clock source.
|
||||||
|
* @note This initialization is performed only if TZEN=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_HSE_ENABLED) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_HSE_ENABLED TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Enables or disables the HSI64 clock source.
|
||||||
|
* @note This initialization is performed only if TZEN=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
|
*/
|
||||||
|
#if !defined(STM32_HSI64_ENABLED) || defined(__DOXYGEN__)
|
||||||
|
#define STM32_HSI64_ENABLED TRUE
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables or disables the CSI clock source.
|
* @brief Enables or disables the CSI clock source.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_CSI_ENABLED) || defined(__DOXYGEN__)
|
#if !defined(STM32_CSI_ENABLED) || defined(__DOXYGEN__)
|
||||||
#define STM32_CSI_ENABLED FALSE
|
#define STM32_CSI_ENABLED TRUE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Clock source for the PLL3.
|
* @brief Clock source for the PLL3.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_PLL3SRC) || defined(__DOXYGEN__)
|
#if !defined(STM32_PLL3SRC) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3SRC STM32_PLL3SRC_HSE
|
#define STM32_PLL3SRC STM32_PLL3SRC_HSE
|
||||||
|
@ -212,7 +227,9 @@
|
||||||
/**
|
/**
|
||||||
* @brief PLL3 M divider value.
|
* @brief PLL3 M divider value.
|
||||||
* @note The allowed values are 1..64.
|
* @note The allowed values are 1..64.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_PLL3DIVM_VALUE) || defined(__DOXYGEN__)
|
#if !defined(STM32_PLL3DIVM_VALUE) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3DIVM_VALUE 3
|
#define STM32_PLL3DIVM_VALUE 3
|
||||||
|
@ -221,7 +238,9 @@
|
||||||
/**
|
/**
|
||||||
* @brief PLL3 N multiplier value.
|
* @brief PLL3 N multiplier value.
|
||||||
* @note The allowed values are 25..200.
|
* @note The allowed values are 25..200.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_PLL3DIVN_VALUE) || defined(__DOXYGEN__)
|
#if !defined(STM32_PLL3DIVN_VALUE) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3DIVN_VALUE 50
|
#define STM32_PLL3DIVN_VALUE 50
|
||||||
|
@ -230,7 +249,9 @@
|
||||||
/**
|
/**
|
||||||
* @brief PLL3 P divider value or zero if disabled.
|
* @brief PLL3 P divider value or zero if disabled.
|
||||||
* @note The allowed values are 1..128.
|
* @note The allowed values are 1..128.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_PLL3DIVP_VALUE) || defined(__DOXYGEN__)
|
#if !defined(STM32_PLL3DIVP_VALUE) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3DIVP_VALUE 2
|
#define STM32_PLL3DIVP_VALUE 2
|
||||||
|
@ -239,7 +260,9 @@
|
||||||
/**
|
/**
|
||||||
* @brief PLL3 Q divider value.
|
* @brief PLL3 Q divider value.
|
||||||
* @note The allowed values are 1..128.
|
* @note The allowed values are 1..128.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_PLL3DIVQ_VALUE) || defined(__DOXYGEN__)
|
#if !defined(STM32_PLL3DIVQ_VALUE) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3DIVQ_VALUE 4
|
#define STM32_PLL3DIVQ_VALUE 4
|
||||||
|
@ -248,7 +271,9 @@
|
||||||
/**
|
/**
|
||||||
* @brief PLL3 R divider value.
|
* @brief PLL3 R divider value.
|
||||||
* @note The allowed values are 1..128.
|
* @note The allowed values are 1..128.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_PLL3DIVR_VALUE) || defined(__DOXYGEN__)
|
#if !defined(STM32_PLL3DIVR_VALUE) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3DIVR_VALUE 4
|
#define STM32_PLL3DIVR_VALUE 4
|
||||||
|
@ -303,7 +328,9 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief MCU divider setting.
|
* @brief MCU divider setting.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_MCUDIV) || defined(__DOXYGEN__)
|
#if !defined(STM32_MCUDIV) || defined(__DOXYGEN__)
|
||||||
#define STM32_MCUDIV 2222222222
|
#define STM32_MCUDIV 2222222222
|
||||||
|
@ -311,7 +338,9 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief MCU main clock source selection.
|
* @brief MCU main clock source selection.
|
||||||
* @note This initialization is performed only if TZEN=0 or MCKPROT=0.
|
* @note This initialization is performed only if TZEN=0 or MCKPROT=0
|
||||||
|
* otherwise the setting must match the initialization performed
|
||||||
|
* on the Cortex-A side.
|
||||||
*/
|
*/
|
||||||
#if !defined(STM32_MCUSSRC) || defined(__DOXYGEN__)
|
#if !defined(STM32_MCUSSRC) || defined(__DOXYGEN__)
|
||||||
#define STM32_MCUSSRC 2222222222
|
#define STM32_MCUSSRC 2222222222
|
||||||
|
@ -405,6 +434,12 @@
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
#define STM32_MCUSS_CK_MAX 209000000
|
#define STM32_MCUSS_CK_MAX 209000000
|
||||||
|
|
||||||
|
#define STM32_HSECLK_MAX 48000000
|
||||||
|
#define STM32_HSECLK_MIN 8000000
|
||||||
|
#define STM32_HSECLK_BYP_MAX 48000000
|
||||||
|
#define STM32_HSECLK_BYP_MIN 8000000
|
||||||
|
|
||||||
#define STM32_PLL3INCLK_MAX 16000000
|
#define STM32_PLL3INCLK_MAX 16000000
|
||||||
#define STM32_PLL3INCLK_MIN 4000000
|
#define STM32_PLL3INCLK_MIN 4000000
|
||||||
#define STM32_PLL3INCLK_SD_MIN 8000000
|
#define STM32_PLL3INCLK_SD_MIN 8000000
|
||||||
|
@ -443,8 +478,9 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Clock handlers.*/
|
/* Clock handlers.*/
|
||||||
//#include "stm32_csi.inc"
|
#include "stm32_csi.inc"
|
||||||
//#include "stm32_hsi64.inc"
|
#include "stm32_hsi64.inc"
|
||||||
|
#include "stm32_hse.inc"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* CSI related checks.
|
* CSI related checks.
|
||||||
|
@ -469,7 +505,7 @@
|
||||||
* @brief PLL3 input clock frequency.
|
* @brief PLL3 input clock frequency.
|
||||||
*/
|
*/
|
||||||
#if (STM32_PLL3SRC == STM32_PLL3SRC_HSI) || defined(__DOXYGEN__)
|
#if (STM32_PLL3SRC == STM32_PLL3SRC_HSI) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL3MCLK STM32_HSICLK
|
#define STM32_PLL3MCLK STM32_HSI64CLK
|
||||||
|
|
||||||
#elif STM32_PLL3SRC == STM32_PLL3SRC_HSE
|
#elif STM32_PLL3SRC == STM32_PLL3SRC_HSE
|
||||||
#define STM32_PLL3MCLK STM32_HSECLK
|
#define STM32_PLL3MCLK STM32_HSECLK
|
||||||
|
@ -539,7 +575,7 @@
|
||||||
* @brief PLL4 input clock frequency.
|
* @brief PLL4 input clock frequency.
|
||||||
*/
|
*/
|
||||||
#if (STM32_PLL4SRC == STM32_PLL4SRC_HSI) || defined(__DOXYGEN__)
|
#if (STM32_PLL4SRC == STM32_PLL4SRC_HSI) || defined(__DOXYGEN__)
|
||||||
#define STM32_PLL4MCLK STM32_HSICLK
|
#define STM32_PLL4MCLK STM32_HSI64CLK
|
||||||
|
|
||||||
#elif STM32_PLL4SRC == STM32_PLL4SRC_HSE
|
#elif STM32_PLL4SRC == STM32_PLL4SRC_HSE
|
||||||
#define STM32_PLL4MCLK STM32_HSECLK
|
#define STM32_PLL4MCLK STM32_HSECLK
|
||||||
|
|
|
@ -53,6 +53,9 @@
|
||||||
defined(__DOXYGEN__)
|
defined(__DOXYGEN__)
|
||||||
|
|
||||||
/* RCC attributes.*/
|
/* RCC attributes.*/
|
||||||
|
#define STM32_RCC_HAS_CSI TRUE
|
||||||
|
#define STM32_RCC_HAS_HSI64 TRUE
|
||||||
|
#define STM32_RCC_HAS_HSE TRUE
|
||||||
#define STM32_RCC_HAS_PLL3 TRUE
|
#define STM32_RCC_HAS_PLL3 TRUE
|
||||||
#define STM32_RCC_PLL3_HAS_P TRUE
|
#define STM32_RCC_PLL3_HAS_P TRUE
|
||||||
#define STM32_RCC_PLL3_HAS_Q TRUE
|
#define STM32_RCC_PLL3_HAS_Q TRUE
|
||||||
|
|
Loading…
Reference in New Issue