STM32时钟体系、SetSysClock、PLL、时钟源
东风夜放花千树,更吹落、星如雨。宝马雕车香满路。 凤箫声动,玉壶光转,一夜鱼龙舞。 蛾儿雪柳黄金缕,笑语盈盈暗香去。 众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。
目录
一、时钟体系#
为单片机提供一个时钟信号(非常稳定),该信号可以用于各种时钟域的同步,包括系统时钟、HCLK、PCLK1、PCLK2、I2S时钟、USB PHY时钟、以太网PHY时钟等。
STM32的时钟系统由外部晶振、PLL(锁相环)和内部 RC 振荡器组成
其作用包括:
- 为处理器提供准确的时钟信号,保证处理器、总线和外设的正确工作。
- 通过 PLL 的倍频功能,产生多种频率的时钟信号,满足不同外设的时钟需求。
- 通过时钟系统提供的时钟分频器、预分频器等功能,进一步调整时钟频率,以适应不同的应用场景。
时钟系统在 STM32 的系统中扮演着关键的角色,它的稳定性和精度对整个系统的性能影响很大
1、参考手册#
STM32F4xx 中文参考手册.pdf 第 106 页
2、时钟源#
STM32F407IG可以使用三种不同的时钟源来驱动*系统时钟 (SYSCLK)*,CPU 运行的最高频率为 168MHz。
HSI(High-Speed Internal)振荡器时钟:内部高速时钟源,适用于简单、低功耗的应用,但如果需要更高的时钟精度或更快的时钟频率,可以选择外部晶振或通过PLL来调整时钟频率。
HSE(High-Speed External)振荡器时钟: 高速外部时钟源 16MHz-32.768MHz,用于高速、高精度的应用。
主 PLL (PLL) 时钟:主PLL主要通过倍频技术将较低频率的输入时钟(如HSE或HSI)转化为更高频率的输出时钟。例如,PLL可以将一个16 MHz的HSE时钟信号通过配置倍频因子输出更高的频率(例如,32 MHz、48 MHz等),为系统提供所需的高精度、高频时钟。
- 32 kHZ 低速内部 RC(LSI RC):LSI 是一个内部的低速 RC 振荡器,通常在 32 MHz 频率下工作。LSI 可以驱动独立看门狗(IWDG),确保系统在发生故障时可以被复位。此外,LSI 还可以提供给RTC(实时时钟)用于 停机 或者 待机模式下的自动唤醒。
- 32.768 kHz 低速外部晶振(LSE 晶振): LSE 是一个低频外部晶振,通常为 32.768 kHz。它主要用于驱动 RTC 时钟(RTCCLK),提供精确的时钟信号以支持系统的时间跟踪功能,尤其在长时间运行和电池供电应用中非常重要。
STM32 微控制器支持在不需要时关闭不必要的时钟源,以进一步降低功耗。这些次级时钟源(LSI 和 LSE)都可以根据应用的需求单独启用或禁用。例如:
- 禁用 LSI 或 LSE:如果不需要低速时钟源,用户可以禁用它们,以节省功耗。
- 启用 LSI 或 LSE:如果系统进入待机模式或需要 RTC 时钟工作,用户可以启用相应的时钟源。
3、时钟树#
STM32F407IG 时钟树如下图所示:
—————持续更新中—————
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 枫花荀-RMer!
评论