单片机的时钟源

文章目录

  • 系统时钟:指CPU运转所使用的时钟频率,一般是在内部或外部时钟信号源频率的基础上,经过分频和倍频而来,频率比信号源频率要高

锁相环PLL

  • 产生可编程的其他频率的时钟信号
  • PLL工作的基本原理是将压控振荡器的输出经过分频后与基准信号共同输入到鉴相器PD,PD通过比较这两个信号的频率差,输出一个代表两者差异的信号,再经过低通滤波器转变成一个直流脉冲电压去控制VCO使它的频率改变。这样经过一个很短的时间,VCO的输出就会稳定下来。所以PLL并不是直接对晶振进行倍频,而是将频率稳定的晶振作为基准信号,与PLL内部振荡电路生成的信号分频后进行比较,使PLL输出的信号频率稳定

基本频率源

精度:ppm的概念,百万分之一,例如:50ppm 相当于 0.005%,振荡1000,000次,误差50次

片内集成的RC振荡源

  • 谐振频率: f 0 = 1 2 π R C f_0=\frac{1}{2\pi RC} f0=2πRC1
  • 特点:
    • 起振快,但精度低,一般在1%左右
    • 可靠性高,是STM32默认的时钟源
    • 对于时钟精度要求不高的场合,可以节省片外时钟源的成本
    • 对于如USB、以太网、I2S和RTC等不适合使用

片外晶体

石英晶体谐振器

  • 特点:精度高(几十ppm),价格便宜,需要外部匹配相应的负载电容



陶瓷谐振器

  • 特点:精度略低(几千ppm),价格便宜,需要外围电路起振,类似无源晶体谐振器

与单片机的接口

起振原理

  • 皮尔斯振荡电路

片外时钟源

有源晶振

  • 特点:精度高(几十ppm),不用外围电路,通电就能产生相应频率的方波,价格贵。有带温度补偿等高精度型号


与单片机接口

时钟源的配置

系统时钟(SYSCLK)

  • 系统时钟(SYSCLK)可由以下四种不同的时钟源驱动
    • HSI:(high-speed internal RC oscillator clock)高速内部RC振荡器时钟
    • MSIS:(multi-speed internal RC oscillator clock)多速度内部RC振荡器时钟
    • HSE:(high-speed external crystal or clock)高速外部晶体或时钟,一般范围为4至50 MHz
    • PLL1时钟

附加时钟源

  • MSIK:(multi-speed internal RC oscillator clock used for peripherals kernel clocks)用于外设内核时钟的多速内部RC振荡器时钟
  • LSI:(low-speed internal RC oscillator clock)低速内部RC振荡器时钟,32 kHz/250 Hz,用于驱动独立看门狗,并可选择用于RTC以实现从停止/待机模式自动唤醒
  • LSE:(low-speed external crystal or clock)低速外部晶振/时钟,必须是32.768 kHz,可选择驱动实时时钟(rtc_ck)
  • HSI48:(High-speed internal 48 MHz RC oscillator clock)48 MHz内部RC时钟,可驱动OTG_FS、USB、SDMMC和随机数发生器(RNG)
  • SHSI:(secure high-speed internal RC oscillator clock)安全高速内部RC时钟,频率为48MHz,驱动SAES加密模块
  • PLL2和PLL3时钟

MSI(MSIS and MSIK)时钟

  • MSI由内部的RC振荡器产生
  • 每种振荡器有一个预分频器,可以1,2,3,或4 分频
  • MSIS可以选作系统时钟
  • MSIK可以选作一些外设的核心时钟

stm32u575时钟树

各个总线最大频率

  • 系统时钟的最大频率是 160 MHz
  • 复位后,MSIS被选作系统时钟源,频率是 4MHz
  • 不同电压范围下,各个总线的最大频率见下表

获取当前系统时钟的方法

  • HAL库函数,在 stm32u5xx_hal_rcc.c 中,头文件是 stm32u5xx_hal_rcc.h
c 复制代码
uint32_t HAL_RCC_GetSysClockFreq(void);

时钟输出能力

MCO

  • 使用PA8脚,对外输出
  • 主要功能:
    • 可以作为其他外设的时钟源
    • 可以观察相应的波形是否符合预期

LSCO

  • 使用PA2脚,对外输出

RCC 相关寄存器

复位相关寄存器

  • 寄存器命名规则:RCC_XXXXRSTRn
  • 对应的位清零为无效;置位为复位对应的外设
    • 外设相关寄存器置为复位值
    • 外设相关功能到上电复位状态
  • HAL库相关操作宏函数
    • 在库函数头文件:stm32u5xx_hal_rcc.h
    • 定义为 __HAL_RCC_外设名称_FORCE_RESET()
    • 例如: __HAL_RCC_GPIOA_FORCE_RESET()

时钟控制相关寄存器

  • 寄存器命名规则:RCC_XXXXENRn
  • 对应的位 清零为 不使能时钟,相当于关闭功能;置位为使能时钟,功能允许使用
  • 由CubeMX生成的初始化代码,已经完成了相关的配置
  • HAL库相关操作宏函数
    • 在库函数头文件:stm32u5xx_hal_rcc.h
    • 时钟使能,定义为 __HAL_RCC_外设名称_CLK_ENABLE()
    • 例如: __HAL_RCC_GPIOA_CLK_ENABLE()
    • 时钟无效,定义为 __HAL_RCC_外设名称_CLK_DISABLE()
    • 例如: __HAL_RCC_GPIOA_CLK_DISABLE()
相关推荐
今天的你比昨天进步了?15 小时前
单片机程序,keil可以正常编译,VScode编译报错处理
vscode·单片机·嵌入式硬件
linbaiwan66615 小时前
42V/50V/60V高耐压OVP保护芯片的应用——PW1600实测70V耐压
嵌入式硬件
嵌入式小站15 小时前
STM32 零基础可移植教程 24:SPI Flash 读数据,先从指定地址读几个字节
chrome·stm32·嵌入式硬件
崇山峻岭之间16 小时前
单片机汉字显示实验
单片机·嵌入式硬件
guygg8816 小时前
基于C# + Halcon的通用ROI绘制工具
stm32·单片机·c#
yugi98783817 小时前
基于 RFID 的智能公交刷卡系统
stm32·嵌入式硬件
点灯小铭17 小时前
基于单片机的雨量检测智能汽车雨刮器模拟系统设计与实现
单片机·嵌入式硬件·汽车·毕业设计·课程设计·期末大作业
三佛科技-1341638421218 小时前
腕式血压计方案开发设计,腕式血压计MCU控制芯片选择
单片机·嵌入式硬件·物联网·智能家居
cici1587418 小时前
C# LAS 点云读取与处理工具
stm32·单片机·c#