stm32时钟

  • SRAM : static random access memory

时钟 : 高低变化的方波信号

72MHz

时钟树

  • 分频器 : 对频率做除法
  • 复用器: 从多路信号中选择一路,,作为输入信号
  • 锁相环: 对频率做乘法

树根:

两套时钟树

  • HSI : high speed internal
    全称: high speed internal oscillator 高速内部振荡器
  • HSE : high speed external
  • LSE : low speed external
  • LSI: low speed internal

RCC : reset and clock controller

高速树

低速树

高速时钟源

低速时钟源

内部时钟源,,精度不高,,,如果对精度有要求,需要外接时钟源


AHB : advanced high-speed bus : 高级高速总线

APB1 : advanced peripheral bus 1 : 高级外设总线1

APB2 : advanced peripheral bus 2 : 高级外设总线2

HCLK : 全称 AHB clock : 高级高性能总线时钟,,系统时钟SYSCLK分频得到

PCLK1 : APB1 peripheral clock : APB1外设时钟,,低速外设总线,,,, HCLK分频得到

PCLK2 : APB2 peripheral clock

HSI / HSE : high speed internal/external 振荡时钟


时钟树的初始状态


RCC : reset and clock controller

锁相环: phase locked loop ,,,锁相环,, 相位锁定环路

PLL : 内部会 比较相位,自动调整频率,保持同步

--

HSI: 内部RC振荡器

  • 不用外部晶振
  • 成本低
  • 上电直接用
  • 电路简单
  • 频率会漂,,, 理论8MHz,,实际7.8MHz

HSE:

  • USART串口,, 要求双方波特率一致,,如果时钟不准,双方节奏对不上,,会丢数据,,乱码

USB :


指令预取

instruction prefetch

等待周期 ; wait state

cpu太快了,flash太慢了,, cpu只能傻等,,这个等待时间叫 等待周期

预取缓冲区 : prefetch buffer


定时器

  • 高级定时器
  • 通用计时器
  • 基本定时器

预分频器

周期: 转一圈用多少秒

分辨率: 最小能区分的时间单位 ,,, 普通的机械表,,分辨率就是1s,,,电子表是1ms更新一次,,分辨率就是1ms,,0.001s,0.002s

有的系统,,虽然时钟周期很小,,但是不一定真的能达到那个分辨率,,比如,软件延迟,采样限制,adc精度,滤波都会影响

stm32专门给TIM加了,,自动倍频器

APB总线上的很多外设不需要太高频率,,, APB1可以降速,降低 功耗和总线压力,,,,但是定时器需要高精度,,

比如 PWM,输入捕获,编码器,高频计数,,都需要高频时钟,,所以stm32专门给TIM加了个自动倍频器,,根据APB分频情况自动切换


APB1 时钟 = HCLK / APB1分频器 ,,, 如果分频器为1,, 那么PCLK1 = 72MHz,,, 但是 APB1最大只能36MHz,,,不可能72Mhz,,也就是说,,分频器=1,这个配置本身就是非法的,,所以正常配置必须 除以2

寄存器预加载

影子寄存器 : shadow register

活动寄存器 : active register

解决,,运行过程中修改参数导致定时器混乱

活动寄存器: 真正工作的

影子寄存器 : 先暂存,,等到更新时间 update event 发生时,把影子寄存器复制到活动寄存器

这种缓存的机制,,叫做寄存器的预加载

scaler : 脉冲计数器,, ,

相关推荐
smalming5 小时前
【产品开发】空气波按摩器的一些控制逻辑
嵌入式硬件·嵌入式软件
嗯? 嗯。6 小时前
S32K外设Usart
单片机·嵌入式硬件
星夜夏空996 小时前
STM32单片机学习(24) —— 硬件I2C和软件I2C
stm32·单片机·学习
资深流水灯工程师6 小时前
嵌入式系统中的环形缓冲区:原理、应用与 STM32 实现
网络·stm32·嵌入式硬件
星夜夏空996 小时前
STM32单片机学习(16) —— 中断相关概念
stm32·单片机·学习
余生皆假期-6 小时前
配置 CodeX 环境的 Simlink AI 工具链
笔记·单片机·嵌入式硬件·算法
嵌入式-老费7 小时前
esp开发与应用(1602液晶显示屏)
单片机·嵌入式硬件
嵌入式小站7 小时前
STM32 临界区是什么:为什么有时候要用 __disable_irq() 保护变量
chrome·stm32·嵌入式硬件
leo_jk7 小时前
STM32单片机 空闲中断
stm32·单片机·嵌入式硬件