单片机的时钟源

文章目录

  • 系统时钟:指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()
相关推荐
AOI小白新手上路13 小时前
江科协51单片机 17-2 红外遥控电机调速实验调试总结
单片机·嵌入式硬件·51单片机
oshan201215 小时前
零基础STM32入门教程--10-PWM 呼吸灯
stm32·单片机·嵌入式硬件
记帖15 小时前
STM32C5A3R开发(7)----ADC电压采集
嵌入式硬件·adc·dac·stm32cubeide·stm32c5·stm32cubemx2·stm32c5a3rgt6
自小吃多18 小时前
器件移动、旋转、镜像、对齐、等间距操作笔记
笔记·嵌入式硬件
jianqiang.xue18 小时前
智能体整体架构设计:四大模块与目录组织
单片机·嵌入式硬件·物联网·架构·esp32
Messy create20 小时前
【BMS-AFE-温度检测】
stm32·单片机·能源
东莞市永盛电气20 小时前
三相208V变380V变压器,出海工业设备供电适配方案
python·单片机·嵌入式硬件
Learn-Share_HY21 小时前
[IT Network]如何配置反向路徑過濾器(rp_filter),以解決路由不對稱問題?
linux·嵌入式硬件·物联网·网络协议·tcp/ip·http·iot
深圳市宝华视联1 天前
医院内网部署手术示教系统注意事项
嵌入式硬件·实时互动·音视频·实时音视频·视频编解码·嵌入式实时数据库
新晨单片机设计1 天前
S001A-基于STM32单片机超声波视力保护仪【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus