stm32时钟树

本文详细介绍了STM32中的时钟系统,包括不同时钟源HSI、HSE、LSE、LSI的作用,PLL锁相环的工作原理及其在同步电路中的应用,以及如何通过HAL库API配置系统时钟以减少毛刺问题和提高系统稳定性。
摘要由CSDN通过智能技术生成

为什么需要时钟树

  1. stm32由多个数字电路组成的一个复杂的电路,当电路在输出正确结果之前,它可能由于延迟有一个短暂的中间状态,而这些中间状态会导致结果输出一个短暂错误,这种现象就是电路中的毛刺现象。(逻辑门电路输出结果有延迟,就有可能将中间态输入给下个门电路)如果电路运行的很快,那么这些毛刺会作为其它电路的输入采样,最终导致一个系统错误。
  2. 为了解决这种现象,在电路中加入时钟信号组成时序电路,电路都按照这个时钟信号节奏同步进行,那么就避免了门电路延迟导致的中间态问题了。

stm32 时钟系统

在这里插入图片描述

  • 时钟源
    HSI、HSE、LSE、LSI 分别是高速内部时钟信号、高速外部时钟信号、低速外部时钟信号、低速内部时钟信号;
    内部时钟源:内部RC振荡器,HSI为8MHZ;LSI为40KHZ,可作为独立看门狗时钟源;
    外部时钟源:外部振荡器,HSE为4MHZ~16MHZ;LSE为32.768KHZ,主要作为RTC时钟源;
    系统上电默认由HSI时钟启动,如果用户进行了硬件和软件的配置,芯片才会尝试从内部时钟源切换到外部时钟源。
  • PLL 锁相环
    什么是锁相环:锁相环在工作的过程中,当输出信号的频率与输入信号的频率相等时,输出电压与输入电压保持固定的相位差值,即输出电压与输入电压的相位被锁住,这就是锁相环名称的由来。
    为什么使用锁相环:锁相环是一个相位误差的控制系统,通过比较参考信号和输出信号之间的相位,产生相位误差来调整输出信号,来达到与参考信号同频的目的。
    图中:
    1 PLLXTPRE: HSE分频器作为PLL的输入
    2 PLLSRC: PLL输入时钟源
    3 PLLMUL: PLL倍频系数
  • SYSCLK系统时钟
    系统时钟为整个芯片提供时序信号;
    图中可以看到,HSI、PLLCLK、HSE可以选择一个作为系统时钟;
    系统时钟为 AHB、APB1、APB2等提供时钟。通过AHB预分频器提供时钟。
    USBCLK:是一个通用串行接口时钟,时钟来源于 PLLCLK;
    MCO:内部输出时钟,可以为外部提供时钟源。
  • 系统时钟配置,寄存器设置请查看对应手册。
    提一些hal库的api:
    1 配置 HSE_VALUE(STM32F1xx_hal_conf.h)
    2 调用 SystemInit 函数(system_stm32f1xx.c)1) 外部存储器配置2) 中断向量表地址配置
    3 在 main 函数里调用用户编写的时钟设置函数
    STM32F1xx_hal_rcc.h
    1)配置时钟源相关参数HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct);
    2)配置系统时钟源,以及 SYSCLK、AHB、APB1 和 APB2 相关参数HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint32_t FLatency);
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值